diff --git a/public/images/icons/icon-192.png b/public/images/icons/icon-192.png
new file mode 100644
index 0000000..ff86f9a
Binary files /dev/null and b/public/images/icons/icon-192.png differ
diff --git a/public/images/icons/icon-256.png b/public/images/icons/icon-256.png
new file mode 100644
index 0000000..4fd6dc8
Binary files /dev/null and b/public/images/icons/icon-256.png differ
diff --git a/public/images/icons/icon.png b/public/images/icons/icon.png
new file mode 100644
index 0000000..ea1a204
Binary files /dev/null and b/public/images/icons/icon.png differ
diff --git a/public/index.html b/public/index.html
index 17d5091..70a61e1 100644
--- a/public/index.html
+++ b/public/index.html
@@ -16,7 +16,7 @@
-->
魔法少女サイト - DropOut
-
+
@@ -26,12 +26,14 @@
-
+
-
-
+
+
+
+
@@ -44,6 +46,14 @@
gtag('config', 'UA-53682384-7');
+
diff --git a/public/manifest.json b/public/manifest.json
new file mode 100644
index 0000000..7b0656f
--- /dev/null
+++ b/public/manifest.json
@@ -0,0 +1,18 @@
+{
+ "name": "魔法少女サイト - DropOut",
+ "short_name": "魔法少女サイト",
+ "description": "『僕は魔法少女------そう思っていた』",
+ "background_color": "#484053",
+ "theme_color": "#484053",
+ "icons": [{
+ "src": "./images/icons/icon-256.png",
+ "sizes": "256x256",
+ "type": "image/png"
+ },{
+ "src": "./images/icons/icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ }],
+ "start_url": "./?utm_source=homescreen",
+ "display": "standalone"
+}
diff --git a/public/sw.js b/public/sw.js
new file mode 100644
index 0000000..7c2e43c
--- /dev/null
+++ b/public/sw.js
@@ -0,0 +1,68 @@
+const CACHE_NAME = 'magical-girl.site_version6.0.0'
+const urlsToCache = [
+ '/',
+ '/stylesheets/font.css',
+ '/stylesheets/style.css',
+ '/scripts/app.min.js',
+ 'https://use.fontawesome.com/releases/v5.0.10/css/all.css',
+ './images/load-view/poster/1.png',
+ './images/load-view/poster/2.png',
+ './images/load-view/poster/3.png',
+ './images/load-view/poster/4.png',
+ './images/load-view/sd/1.png',
+ './images/load-view/sd/2.png',
+ './images/load-view/sd/3.png',
+ './images/load-view/sd/4.png',
+ './images/load-view/text/1.png',
+ './images/load-view/text/2.png',
+ './images/load-view/text/3.png',
+ './images/load-view/text/4.png',
+ './images/bg.png',
+ './images/calling/say.png',
+ './images/calling/icons/eriri_large.png',
+ './images/calling/icons/eriri.png',
+ './images/calling/icons/gab_large.png',
+ './images/calling/icons/gab.png',
+ './images/calling/icons/yui_large.png',
+ './images/calling/icons/yui.png',
+ './images/end-animation/end.png',
+ './images/end-animation/end-roll/1.png',
+ './images/end-animation/end-roll/2.png',
+ './images/end-animation/end-roll/3.png',
+ './images/gab-animation/bg.png',
+ './images/gab-animation/gab.png',
+ './images/gab-animation/message.png',
+ './images/gab-animation/comic/1.png',
+ './images/gab-animation/comic/2.png',
+ './images/gab-animation/comic/3.png',
+ './images/gab-animation/comic/4.png',
+ './images/gab-animation/comic/bg.png',
+ './images/gab-animation/name/1.png',
+ './images/gab-animation/name/2.png',
+ './images/gab-animation/name/3.png',
+ './images/gab-animation/name/4.png',
+ './images/gab-animation/name/5.png',
+ './images/top-page/gab.png',
+ './images/top-page/logo.png',
+]
+
+self.addEventListener('install', e => {
+ e.waitUntil(
+ caches.open(CACHE_NAME)
+ .then(cache => {
+ return cache.addAll(urlsToCache)
+ })
+ )
+})
+
+self.addEventListener('activate', e => {})
+
+self.addEventListener('fetch', e => {
+ e.respondWith(
+ caches.match(e.request)
+ .then(res => {
+ if(res) return res
+ return fetch(e.request)
+ })
+ )
+})