diff --git a/_includes/favicons.html b/_includes/favicons.html
new file mode 100644
index 0000000000000000000000000000000000000000..97dab4ba8f8a3b51ca5dbc11c1869078bc4dabdb
--- /dev/null
+++ b/_includes/favicons.html
@@ -0,0 +1,9 @@
+<!-- Favicons -->
+<link rel="apple-touch-icon" href="{{ site.baseurl }}/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
+<link rel="icon" href="{{ site.baseurl }}/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
+<link rel="icon" href="{{ site.baseurl }}/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
+<link rel="manifest" href="{{ site.baseurl }}/assets/img/favicons/manifest.json">
+<link rel="mask-icon" href="{{ site.baseurl }}/assets/img/favicons/safari-pinned-tab.svg" color="#563d7c">
+<link rel="icon" href="{{ site.baseurl }}/favicon.ico">
+<meta name="msapplication-config" content="{{ site.baseurl }}/assets/img/favicons/browserconfig.xml">
+<meta name="theme-color" content="#563d7c">
diff --git a/_includes/header.html b/_includes/header.html
index d9eac3db301768a4451c12235b8d284ee0a1b26e..c7e5dbd9e5fa6feb5eb9921babc58c6d8d45a4c0 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -21,14 +21,10 @@
 
 <!-- Documentation extras -->
 {% if page.layout == "docs" %}
-<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
+<link href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" rel="stylesheet">
 {% endif %}
 <link href="{{ site.baseurl }}/assets/css/docs.min.css" rel="stylesheet">
 
-<!-- Favicons -->
-<link rel="apple-touch-icon" href="{{ site.baseurl }}/apple-touch-icon.png">
-<link rel="icon" href="{{ site.baseurl }}/favicon.ico">
-
 <script>
   (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
diff --git a/apple-touch-icon.png b/apple-touch-icon.png
deleted file mode 100644
index b6b1e843bb9fe36a98988f0fdc02436abc95c396..0000000000000000000000000000000000000000
Binary files a/apple-touch-icon.png and /dev/null differ
diff --git a/assets/img/favicons/android-chrome-192x192.png b/assets/img/favicons/android-chrome-192x192.png
new file mode 100644
index 0000000000000000000000000000000000000000..547386f3714c7b0a58c5fe519863f4a11e039b91
Binary files /dev/null and b/assets/img/favicons/android-chrome-192x192.png differ
diff --git a/assets/img/favicons/android-chrome-512x512.png b/assets/img/favicons/android-chrome-512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebafe360f3b2c0ef9568fa4ddf9f59d7107db480
Binary files /dev/null and b/assets/img/favicons/android-chrome-512x512.png differ
diff --git a/assets/img/favicons/apple-touch-icon.png b/assets/img/favicons/apple-touch-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..447cec2c47da7a30359729a36d3c5096dbde5a15
Binary files /dev/null and b/assets/img/favicons/apple-touch-icon.png differ
diff --git a/assets/img/favicons/browserconfig.xml b/assets/img/favicons/browserconfig.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8b193171af328234b05407f66d2c4ca7b659b1eb
--- /dev/null
+++ b/assets/img/favicons/browserconfig.xml
@@ -0,0 +1,11 @@
+---
+---
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+    <msapplication>
+        <tile>
+            <square150x150logo src="{{ site.baseurl }}/assets/img/favicons/mstile-150x150.png"/>
+            <TileColor>#563d7c</TileColor>
+        </tile>
+    </msapplication>
+</browserconfig>
diff --git a/assets/img/favicons/favicon-16x16.png b/assets/img/favicons/favicon-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f7d11880f60757cd3f1de2681def0e59e6b81b2
Binary files /dev/null and b/assets/img/favicons/favicon-16x16.png differ
diff --git a/assets/img/favicons/favicon-32x32.png b/assets/img/favicons/favicon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..d752fd5d71545548fb0baf3f3a1b500e13e520b9
Binary files /dev/null and b/assets/img/favicons/favicon-32x32.png differ
diff --git a/assets/img/favicons/manifest.json b/assets/img/favicons/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..14cd5241248de28b16b4aa382ad5ba8f2ce3742b
--- /dev/null
+++ b/assets/img/favicons/manifest.json
@@ -0,0 +1,22 @@
+---
+---
+{
+    "name": "Bootstrap",
+    "short_name": "Bootstrap",
+    "icons": [
+        {
+            "src": "{{ site.baseurl }}/assets/img/favicons/android-chrome-192x192.png",
+            "sizes": "192x192",
+            "type": "image/png"
+        },
+        {
+            "src": "{{ site.baseurl }}/assets/img/favicons/android-chrome-512x512.png",
+            "sizes": "512x512",
+            "type": "image/png"
+        }
+    ],
+    "start_url": "/",
+    "theme_color": "#563d7c",
+    "background_color": "#563d7c",
+    "display": "standalone"
+}
diff --git a/assets/img/favicons/mstile-144x144.png b/assets/img/favicons/mstile-144x144.png
new file mode 100644
index 0000000000000000000000000000000000000000..262a3c2e143d781bbe36dcaded90c4b2656f74bf
Binary files /dev/null and b/assets/img/favicons/mstile-144x144.png differ
diff --git a/assets/img/favicons/mstile-150x150.png b/assets/img/favicons/mstile-150x150.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb87faf74f15ea00e1a38555dc6162fb117a4fbe
Binary files /dev/null and b/assets/img/favicons/mstile-150x150.png differ
diff --git a/assets/img/favicons/mstile-310x150.png b/assets/img/favicons/mstile-310x150.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fc36a726824e23d17fff5efeada0b71128ea3cd
Binary files /dev/null and b/assets/img/favicons/mstile-310x150.png differ
diff --git a/assets/img/favicons/mstile-310x310.png b/assets/img/favicons/mstile-310x310.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f00d0c66a700d890ecf356f9ba2eb348b33283b
Binary files /dev/null and b/assets/img/favicons/mstile-310x310.png differ
diff --git a/assets/img/favicons/mstile-70x70.png b/assets/img/favicons/mstile-70x70.png
new file mode 100644
index 0000000000000000000000000000000000000000..4da2de9e366dac645b2f46c292c930c60964d4f0
Binary files /dev/null and b/assets/img/favicons/mstile-70x70.png differ
diff --git a/assets/img/favicons/safari-pinned-tab.svg b/assets/img/favicons/safari-pinned-tab.svg
new file mode 100644
index 0000000000000000000000000000000000000000..086866a177496e17efc59a8d46863fe64f9738fa
--- /dev/null
+++ b/assets/img/favicons/safari-pinned-tab.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.11, written by Peter Selinger 2001-2013
+</metadata>
+<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M975 6983 c-494 -88 -870 -467 -959 -965 -13 -72 -15 -404 -14 -2513
+0 -1970 3 -2446 13 -2515 46 -295 206 -564 445 -747 60 -46 164 -113 175 -113
+3 0 31 -13 62 -28 73 -35 146 -58 260 -82 84 -17 196 -18 2563 -16 2334 1
+2479 3 2545 19 39 10 77 20 85 22 74 18 226 87 310 139 92 58 255 209 298 276
+9 14 28 41 43 60 36 48 111 200 138 280 12 36 30 106 40 155 18 86 19 188 17
+2570 l-1 2480 -27 95 c-52 188 -106 300 -207 434 -170 225 -400 372 -691 442
+-71 17 -200 18 -2545 20 -2111 2 -2482 0 -2550 -13z"/>
+</g>
+</svg>