From 86fdba177ad82f3dcdfc237631fef4588042b9d6 Mon Sep 17 00:00:00 2001
From: John Olheiser <42128690+jolheiser@users.noreply.github.com>
Date: Tue, 11 Feb 2020 11:02:41 -0600
Subject: [PATCH] Add Octicon SVG spritemap (#10107)

* Add octicon SVG sprite

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Static prefix

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* SVG for all repo icons

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* make vendor

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Swap out octicons

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Move octicons to top of less imports

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Fix JS

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Definitely not a search/replace

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Missed regex

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Move to more generic calls and webpack

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* make svg -> make webpack

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Remove svg-sprite

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Update tests

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Missed a test

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Remove svg from makefile

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Suggestions

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Attempt to fix test

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Update tests

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Revert timetracking test

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Swap .octicon for .svg in less

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Add aria-hidden

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Replace mega-octicon

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Fix webpack globbing on Windows

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Revert

Co-Authored-By: silverwind <me@silverwind.io>

* Fix octions from upstream

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Fix Vue and missed JS function

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Add JS helper and PWA

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Preload SVG

Signed-off-by: jolheiser <john.olheiser@gmail.com>

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: techknowlogick <matti@mdranta.net>
---
 .gitignore                                    |   1 +
 go.mod                                        |   2 +-
 go.sum                                        |   4 +-
 integrations/repo_test.go                     |  12 +-
 modules/base/tool.go                          |   2 +-
 modules/templates/helper.go                   |   3 +
 package-lock.json                             | 632 +++++++++++++++++-
 package.json                                  |   4 +
 public/vendor/assets/octicons/LICENSE         |  21 -
 public/vendor/assets/octicons/octicons.eot    | Bin 44098 -> 0 bytes
 .../vendor/assets/octicons/octicons.min.css   |   1 -
 public/vendor/assets/octicons/octicons.svg    | 429 ------------
 public/vendor/assets/octicons/octicons.ttf    | Bin 43920 -> 0 bytes
 public/vendor/assets/octicons/octicons.woff   | Bin 24004 -> 0 bytes
 public/vendor/assets/octicons/octicons.woff2  | Bin 20248 -> 0 bytes
 templates/admin/org/list.tmpl                 |   2 +-
 templates/admin/repo/list.tmpl                |   2 +-
 templates/base/head.tmpl                      |   4 +-
 templates/base/head_navbar.tmpl               |  28 +-
 templates/explore/navbar.tmpl                 |   8 +-
 templates/explore/organizations.tmpl          |  18 +-
 templates/explore/repo_list.tmpl              |  12 +-
 templates/explore/users.tmpl                  |  16 +-
 templates/home.tmpl                           |   8 +-
 templates/org/header.tmpl                     |   4 +-
 templates/org/home.tmpl                       |  12 +-
 templates/org/member/members.tmpl             |  10 +-
 templates/org/settings/delete.tmpl            |   2 +-
 templates/org/team/navbar.tmpl                |   6 +-
 templates/org/team/repositories.tmpl          |  10 +-
 templates/org/team/sidebar.tmpl               |   2 +-
 templates/org/team/teams.tmpl                 |   2 +-
 templates/pwa/serviceworker_js.tmpl           |   3 +
 templates/repo/activity.tmpl                  |  20 +-
 templates/repo/blame.tmpl                     |   8 +-
 templates/repo/branch/list.tmpl               |  26 +-
 templates/repo/branch_dropdown.tmpl           |   6 +-
 templates/repo/commit_page.tmpl               |   2 +-
 templates/repo/commits.tmpl                   |   2 +-
 templates/repo/commits_table.tmpl             |   4 +-
 templates/repo/diff/blob_excerpt.tmpl         |   6 +-
 templates/repo/diff/box.tmpl                  |   2 +-
 templates/repo/diff/comment_form.tmpl         |   2 +-
 templates/repo/diff/compare.tmpl              |   2 +-
 templates/repo/diff/section_unified.tmpl      |   2 +-
 templates/repo/editor/commit_form.tmpl        |   6 +-
 templates/repo/editor/edit.tmpl               |   8 +-
 templates/repo/editor/upload.tmpl             |   2 +-
 templates/repo/empty.tmpl                     |   2 +-
 templates/repo/header.tmpl                    |  57 +-
 templates/repo/home.tmpl                      |   6 +-
 .../repo/issue/branch_selector_field.tmpl     |   4 +-
 templates/repo/issue/labels.tmpl              |   8 +-
 templates/repo/issue/list.tmpl                |  26 +-
 templates/repo/issue/milestone_issues.tmpl    |  30 +-
 templates/repo/issue/milestones.tmpl          |  24 +-
 templates/repo/issue/new_form.tmpl            |  14 +-
 .../repo/issue/view_content/add_reaction.tmpl |   4 +-
 .../repo/issue/view_content/attachments.tmpl  |   2 +-
 .../repo/issue/view_content/comments.tmpl     |  64 +-
 templates/repo/issue/view_content/pull.tmpl   |  46 +-
 .../repo/issue/view_content/sidebar.tmpl      |  32 +-
 templates/repo/issue/view_title.tmpl          |  10 +-
 templates/repo/pulls/tab_menu.tmpl            |   6 +-
 templates/repo/release/list.tmpl              |  12 +-
 templates/repo/release/new.tmpl               |   2 +-
 templates/repo/settings/collaboration.tmpl    |   4 +-
 templates/repo/settings/deploy_keys.tmpl      |   4 +-
 templates/repo/settings/githooks.tmpl         |   2 +-
 templates/repo/settings/lfs.tmpl              |   6 +-
 templates/repo/settings/lfs_file_find.tmpl    |   4 +-
 templates/repo/settings/lfs_locks.tmpl        |   8 +-
 templates/repo/settings/protected_branch.tmpl |   6 +-
 templates/repo/settings/webhook/history.tmpl  |   4 +-
 templates/repo/settings/webhook/list.tmpl     |   6 +-
 templates/repo/sub_menu.tmpl                  |   6 +-
 templates/repo/user_cards.tmpl                |   6 +-
 templates/repo/view_file.tmpl                 |   8 +-
 templates/repo/view_list.tmpl                 |   8 +-
 templates/repo/wiki/pages.tmpl                |   2 +-
 templates/repo/wiki/revision.tmpl             |   2 +-
 templates/repo/wiki/start.tmpl                |   2 +-
 templates/repo/wiki/view.tmpl                 |   2 +-
 templates/user/dashboard/dashboard.tmpl       |   8 +-
 templates/user/dashboard/feeds.tmpl           |   2 +-
 templates/user/dashboard/issues.tmpl          |  18 +-
 templates/user/dashboard/milestones.tmpl      |  24 +-
 templates/user/dashboard/navbar.tmpl          |  10 +-
 templates/user/notification/notification.tmpl |  20 +-
 templates/user/profile.tmpl                   |  24 +-
 templates/user/settings/account.tmpl          |   2 +-
 templates/user/settings/applications.tmpl     |   2 +-
 templates/user/settings/keys_gpg.tmpl         |   2 +-
 templates/user/settings/keys_ssh.tmpl         |   4 +-
 templates/user/settings/repos.tmpl            | 106 +--
 vendor/golang.org/x/net/html/const.go         |   1 -
 vendor/golang.org/x/net/html/foreign.go       |   1 -
 vendor/golang.org/x/net/html/parse.go         | 298 +++++----
 vendor/golang.org/x/net/html/render.go        |  31 +-
 vendor/golang.org/x/net/html/token.go         |   3 +-
 vendor/modules.txt                            |   2 +-
 web_src/js/index.js                           |  27 +-
 web_src/less/_base.less                       |  20 +-
 web_src/less/_dashboard.less                  |   2 +-
 web_src/less/_explore.less                    |   4 +-
 web_src/less/_home.less                       |   5 +-
 web_src/less/_repository.less                 |  50 +-
 web_src/less/_svg.less                        |   9 +
 web_src/less/_user.less                       |   4 +-
 web_src/less/index.less                       |   1 +
 web_src/less/themes/theme-arc-green.less      |   8 +-
 webpack.config.js                             |  34 +-
 112 files changed, 1387 insertions(+), 1122 deletions(-)
 delete mode 100644 public/vendor/assets/octicons/LICENSE
 delete mode 100644 public/vendor/assets/octicons/octicons.eot
 delete mode 100644 public/vendor/assets/octicons/octicons.min.css
 delete mode 100644 public/vendor/assets/octicons/octicons.svg
 delete mode 100644 public/vendor/assets/octicons/octicons.ttf
 delete mode 100644 public/vendor/assets/octicons/octicons.woff
 delete mode 100644 public/vendor/assets/octicons/octicons.woff2
 create mode 100644 web_src/less/_svg.less

diff --git a/.gitignore b/.gitignore
index 0a1d2e3b23c..f223edabffc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,6 +73,7 @@ coverage.all
 /public/js
 /public/css
 /public/fomantic
+/public/img/svg
 
 # Snapcraft
 snap/.snapcraft/
diff --git a/go.mod b/go.mod
index f28b199f0dc..b3e8db7785d 100644
--- a/go.mod
+++ b/go.mod
@@ -99,7 +99,7 @@ require (
 	github.com/yuin/goldmark v1.1.19
 	go.etcd.io/bbolt v1.3.3 // indirect
 	golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876
-	golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9
+	golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa
 	golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
 	golang.org/x/sys v0.0.0-20191127021746-63cb32ae39b2
 	golang.org/x/text v0.3.2
diff --git a/go.sum b/go.sum
index 30109a24e40..81150c0fd1a 100644
--- a/go.sum
+++ b/go.sum
@@ -627,8 +627,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9 h1:DPz9iiH3YoKiKhX/ijjoZvT0VFwK2c6CWYWQ7Zyr8TU=
-golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA=
+golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
diff --git a/integrations/repo_test.go b/integrations/repo_test.go
index d2e02dd37fb..485b77c00f2 100644
--- a/integrations/repo_test.go
+++ b/integrations/repo_test.go
@@ -149,16 +149,16 @@ func TestViewRepoWithSymlinks(t *testing.T) {
 	htmlDoc := NewHTMLParser(t, resp.Body)
 	files := htmlDoc.doc.Find("#repo-files-table > TBODY > TR > TD.name > SPAN")
 	items := files.Map(func(i int, s *goquery.Selection) string {
-		cls, _ := s.Find("SPAN").Attr("class")
+		cls, _ := s.Find("SVG").Attr("class")
 		file := strings.Trim(s.Find("A").Text(), " \t\n")
 		return fmt.Sprintf("%s: %s", file, cls)
 	})
 	assert.Equal(t, len(items), 5)
-	assert.Equal(t, items[0], "a: octicon octicon-file-directory")
-	assert.Equal(t, items[1], "link_b: octicon octicon-file-symlink-directory")
-	assert.Equal(t, items[2], "link_d: octicon octicon-file-symlink-file")
-	assert.Equal(t, items[3], "link_hi: octicon octicon-file-symlink-file")
-	assert.Equal(t, items[4], "link_link: octicon octicon-file-symlink-file")
+	assert.Equal(t, items[0], "a: svg octicon-file-directory")
+	assert.Equal(t, items[1], "link_b: svg octicon-file-symlink-directory")
+	assert.Equal(t, items[2], "link_d: svg octicon-file-symlink-file")
+	assert.Equal(t, items[3], "link_hi: svg octicon-file-symlink-file")
+	assert.Equal(t, items[4], "link_link: svg octicon-file-symlink-file")
 }
 
 // TestViewAsRepoAdmin tests PR #2167
diff --git a/modules/base/tool.go b/modules/base/tool.go
index aaa6e3ffb32..cb9b996142a 100644
--- a/modules/base/tool.go
+++ b/modules/base/tool.go
@@ -389,7 +389,7 @@ func EntryIcon(entry *git.TreeEntry) string {
 		return "file-submodule"
 	}
 
-	return "file-text"
+	return "file"
 }
 
 // SetupGiteaRoot Sets GITEA_ROOT if it is not already set and returns the value
diff --git a/modules/templates/helper.go b/modules/templates/helper.go
index 741161eb8bd..30ca9c1638b 100644
--- a/modules/templates/helper.go
+++ b/modules/templates/helper.go
@@ -286,6 +286,9 @@ func NewFuncMap() []template.FuncMap {
 			}
 			return false
 		},
+		"svg": func(icon string, size int) template.HTML {
+			return template.HTML(fmt.Sprintf(`<svg class="svg %s" width="%d" height="%d" aria-hidden="true"><use xlink:href="%s/img/svg/icons.svg#%s" /></svg>`, icon, size, size, setting.StaticURLPrefix, icon))
+		},
 	}}
 }
 
diff --git a/package-lock.json b/package-lock.json
index e00bae199cf..3ca1b0629ea 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1112,6 +1112,14 @@
         "@types/node": ">= 8"
       }
     },
+    "@primer/octicons": {
+      "version": "9.4.0",
+      "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-9.4.0.tgz",
+      "integrity": "sha512-7tAWOTt3Ay3Vkf9XwietC40TV1pxk5PS2DAODsOPnMfMd9Yzm2tfvHu0Q3dcffxGZxu7n5ZM6MFWbr/+4dqSdA==",
+      "requires": {
+        "object-assign": "^4.1.1"
+      }
+    },
     "@types/color-name": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
@@ -2440,6 +2448,16 @@
       "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
       "dev": true
     },
+    "camel-case": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+      "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0",
+        "upper-case": "^1.1.1"
+      }
+    },
     "camelcase": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
@@ -3255,15 +3273,27 @@
       }
     },
     "css-select": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
-      "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+      "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
       "dev": true,
       "requires": {
-        "boolbase": "^1.0.0",
-        "css-what": "^3.2.1",
-        "domutils": "^1.7.0",
-        "nth-check": "^1.0.2"
+        "boolbase": "~1.0.0",
+        "css-what": "2.1",
+        "domutils": "1.5.1",
+        "nth-check": "~1.0.1"
+      },
+      "dependencies": {
+        "domutils": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+          "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+          "dev": true,
+          "requires": {
+            "dom-serializer": "0",
+            "domelementtype": "1"
+          }
+        }
       }
     },
     "css-select-base-adapter": {
@@ -3297,9 +3327,9 @@
       "dev": true
     },
     "css-what": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
-      "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+      "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
       "dev": true
     },
     "css.escape": {
@@ -3679,6 +3709,15 @@
         "esutils": "^2.0.2"
       }
     },
+    "dom-converter": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+      "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+      "dev": true,
+      "requires": {
+        "utila": "~0.4"
+      }
+    },
     "dom-serializer": {
       "version": "0.2.2",
       "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
@@ -3723,6 +3762,12 @@
       "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.8.tgz",
       "integrity": "sha512-vIOSyOXkMx81ghEalh4MLBtDHMx1bhKlaqHDMqM2yeitJ996SLOk5mGdDpI9ifJAgokred8Rmu219fX4OltqXw=="
     },
+    "domready": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz",
+      "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=",
+      "dev": true
+    },
     "domutils": {
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
@@ -7075,12 +7120,110 @@
       "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
       "dev": true
     },
+    "html-minifier": {
+      "version": "3.5.21",
+      "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+      "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
+      "dev": true,
+      "requires": {
+        "camel-case": "3.0.x",
+        "clean-css": "4.2.x",
+        "commander": "2.17.x",
+        "he": "1.2.x",
+        "param-case": "2.1.x",
+        "relateurl": "0.2.x",
+        "uglify-js": "3.4.x"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.17.1",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+          "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "uglify-js": {
+          "version": "3.4.10",
+          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+          "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
+          "dev": true,
+          "requires": {
+            "commander": "~2.19.0",
+            "source-map": "~0.6.1"
+          },
+          "dependencies": {
+            "commander": {
+              "version": "2.19.0",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+              "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
     "html-tags": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
       "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
       "dev": true
     },
+    "html-webpack-plugin": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+      "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+      "dev": true,
+      "requires": {
+        "html-minifier": "^3.2.3",
+        "loader-utils": "^0.2.16",
+        "lodash": "^4.17.3",
+        "pretty-error": "^2.0.2",
+        "tapable": "^1.0.0",
+        "toposort": "^1.0.0",
+        "util.promisify": "1.0.0"
+      },
+      "dependencies": {
+        "big.js": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+          "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+          "dev": true
+        },
+        "json5": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+          "dev": true
+        },
+        "loader-utils": {
+          "version": "0.2.17",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+          "dev": true,
+          "requires": {
+            "big.js": "^3.1.3",
+            "emojis-list": "^2.0.0",
+            "json5": "^0.5.0",
+            "object-assign": "^4.0.1"
+          }
+        },
+        "util.promisify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+          "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+          "dev": true,
+          "requires": {
+            "define-properties": "^1.1.2",
+            "object.getownpropertydescriptors": "^2.0.3"
+          }
+        }
+      }
+    },
     "htmlparser2": {
       "version": "3.10.1",
       "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
@@ -7231,8 +7374,7 @@
     "image-size": {
       "version": "0.5.5",
       "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
-      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
-      "optional": true
+      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w="
     },
     "immutable": {
       "version": "3.8.2",
@@ -7959,6 +8101,12 @@
         "jquery": ">=1.4.2"
       }
     },
+    "js-base64": {
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
+      "dev": true
+    },
     "js-beautify": {
       "version": "1.10.3",
       "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.3.tgz",
@@ -8576,6 +8724,12 @@
         "js-tokens": "^3.0.0 || ^4.0.0"
       }
     },
+    "lower-case": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+      "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+      "dev": true
+    },
     "lru-cache": {
       "version": "4.1.5",
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -8949,6 +9103,15 @@
         }
       }
     },
+    "merge-options": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz",
+      "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==",
+      "dev": true,
+      "requires": {
+        "is-plain-obj": "^1.1"
+      }
+    },
     "merge-source-map": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
@@ -9211,6 +9374,12 @@
         "through2": "^2.0.0"
       }
     },
+    "mitt": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz",
+      "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=",
+      "dev": true
+    },
     "mixin-deep": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
@@ -9341,6 +9510,15 @@
       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
       "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
     },
+    "no-case": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+      "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+      "dev": true,
+      "requires": {
+        "lower-case": "^1.1.1"
+      }
+    },
     "node-fetch": {
       "version": "2.6.0",
       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
@@ -9832,6 +10010,15 @@
         "readable-stream": "^2.1.5"
       }
     },
+    "param-case": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+      "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0"
+      }
+    },
     "parent-module": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -10973,6 +11160,15 @@
         "postcss-values-parser": "^2.0.0"
       }
     },
+    "postcss-prefix-selector": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.7.2.tgz",
+      "integrity": "sha512-ddmzjWNmGs7E/nyolJ021/Gk6oBLRQLyyXKGV4Mu+Y0gquo+XlXSDP0/Y2J8C/cad/GLyftf2H0XtuDFQZxN3w==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
     "postcss-preset-env": {
       "version": "6.7.0",
       "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz",
@@ -11258,6 +11454,64 @@
         "uniq": "^1.0.1"
       }
     },
+    "posthtml": {
+      "version": "0.9.2",
+      "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz",
+      "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=",
+      "dev": true,
+      "requires": {
+        "posthtml-parser": "^0.2.0",
+        "posthtml-render": "^1.0.5"
+      }
+    },
+    "posthtml-parser": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz",
+      "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=",
+      "dev": true,
+      "requires": {
+        "htmlparser2": "^3.8.3",
+        "isobject": "^2.1.0"
+      },
+      "dependencies": {
+        "isobject": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+          "dev": true,
+          "requires": {
+            "isarray": "1.0.0"
+          }
+        }
+      }
+    },
+    "posthtml-rename-id": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.11.tgz",
+      "integrity": "sha512-8doF8+w+WJT4AZuLVC0feA8Yy7g00IUmZw3YDKn8CKx0uC8FLbCH7JaGMbDOE1ArjyZsJMt1vmyP+IZ8SnNmXw==",
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "1.0.5"
+      }
+    },
+    "posthtml-render": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.1.5.tgz",
+      "integrity": "sha512-yvt54j0zCBHQVEFAuR+yHld8CZrCa/E1Z/OcFNCV1IEWTLVxT8O7nYnM4IIw1CD4r8kaRd3lc42+0lgCKgm87w==",
+      "dev": true
+    },
+    "posthtml-svg-mode": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz",
+      "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==",
+      "dev": true,
+      "requires": {
+        "merge-options": "1.0.1",
+        "posthtml": "^0.9.2",
+        "posthtml-parser": "^0.2.1",
+        "posthtml-render": "^1.0.6"
+      }
+    },
     "prelude-ls": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -11276,6 +11530,16 @@
       "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
       "dev": true
     },
+    "pretty-error": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+      "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+      "dev": true,
+      "requires": {
+        "renderkid": "^2.0.1",
+        "utila": "~0.4"
+      }
+    },
     "pretty-hrtime": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
@@ -11764,6 +12028,12 @@
         }
       }
     },
+    "relateurl": {
+      "version": "0.2.7",
+      "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+      "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+      "dev": true
+    },
     "remark": {
       "version": "10.0.1",
       "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",
@@ -11853,6 +12123,36 @@
       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
     },
+    "renderkid": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz",
+      "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==",
+      "dev": true,
+      "requires": {
+        "css-select": "^1.1.0",
+        "dom-converter": "^0.2",
+        "htmlparser2": "^3.3.0",
+        "strip-ansi": "^3.0.0",
+        "utila": "^0.4.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        }
+      }
+    },
     "repeat-element": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
@@ -13273,6 +13573,253 @@
         "es6-symbol": "^3.1.1"
       }
     },
+    "svg-baker": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.5.0.tgz",
+      "integrity": "sha512-UMU4WQMfsmY1l8eqoxBoGTDht02RVu46cC0QoAVsJM6lUvbGCkPnAHHMG3mM8m/D1zAGg8Q0IZXnHokZ9umX0Q==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.0",
+        "clone": "^2.1.1",
+        "he": "^1.1.1",
+        "image-size": "^0.5.1",
+        "loader-utils": "^1.1.0",
+        "merge-options": "1.0.1",
+        "micromatch": "3.1.0",
+        "postcss": "^5.2.17",
+        "postcss-prefix-selector": "^1.6.0",
+        "posthtml-rename-id": "^1.0",
+        "posthtml-svg-mode": "^1.0.3",
+        "query-string": "^4.3.2",
+        "traverse": "^0.6.6"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+          "requires": {
+            "color-convert": "^1.9.0"
+          }
+        },
+        "chalk": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+          "requires": {
+            "ansi-styles": "^3.2.1",
+            "escape-string-regexp": "^1.0.5",
+            "supports-color": "^5.3.0"
+          }
+        },
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          },
+          "dependencies": {
+            "kind-of": {
+              "version": "6.0.3",
+              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+              "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+              "dev": true
+            }
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          },
+          "dependencies": {
+            "kind-of": {
+              "version": "6.0.3",
+              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+              "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+              "dev": true
+            }
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          },
+          "dependencies": {
+            "kind-of": {
+              "version": "6.0.3",
+              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+              "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+              "dev": true
+            }
+          }
+        },
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        },
+        "micromatch": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz",
+          "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==",
+          "dev": true,
+          "requires": {
+            "arr-diff": "^4.0.0",
+            "array-unique": "^0.3.2",
+            "braces": "^2.2.2",
+            "define-property": "^1.0.0",
+            "extend-shallow": "^2.0.1",
+            "extglob": "^2.0.2",
+            "fragment-cache": "^0.2.1",
+            "kind-of": "^5.0.2",
+            "nanomatch": "^1.2.1",
+            "object.pick": "^1.3.0",
+            "regex-not": "^1.0.0",
+            "snapdragon": "^0.8.1",
+            "to-regex": "^3.0.1"
+          }
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          },
+          "dependencies": {
+            "ansi-styles": {
+              "version": "2.2.1",
+              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+              "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+              "dev": true
+            },
+            "chalk": {
+              "version": "1.1.3",
+              "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+              "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+              "dev": true,
+              "requires": {
+                "ansi-styles": "^2.2.1",
+                "escape-string-regexp": "^1.0.2",
+                "has-ansi": "^2.0.0",
+                "strip-ansi": "^3.0.0",
+                "supports-color": "^2.0.0"
+              },
+              "dependencies": {
+                "supports-color": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                  "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+                  "dev": true
+                }
+              }
+            },
+            "has-flag": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+              "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+              "dev": true
+            },
+            "supports-color": {
+              "version": "3.2.3",
+              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+              "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+              "dev": true,
+              "requires": {
+                "has-flag": "^1.0.0"
+              }
+            }
+          }
+        },
+        "supports-color": {
+          "version": "5.5.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
+    "svg-baker-runtime": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/svg-baker-runtime/-/svg-baker-runtime-1.4.3.tgz",
+      "integrity": "sha512-QY6RlJN3v6xPxVQboSrsGiLWaWay+uFstic6QEzoIUK2l6M/lqL/wiqFcoqroBsGpqpP0knXplltLZGTzncbNw==",
+      "dev": true,
+      "requires": {
+        "deepmerge": "1.3.2",
+        "mitt": "1.1.2",
+        "svg-baker": "^1.5.0"
+      },
+      "dependencies": {
+        "deepmerge": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz",
+          "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=",
+          "dev": true
+        }
+      }
+    },
+    "svg-sprite-loader": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/svg-sprite-loader/-/svg-sprite-loader-4.2.1.tgz",
+      "integrity": "sha512-IQCJEHWD+CNP8yFptR2SkscLXBgwYwY+34VMNSLBE4RQmJ0dgpAfkF6q8ktgNsXlMhlX6cAM4Zw0t7SnLyyiQA==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.0",
+        "deepmerge": "1.3.2",
+        "domready": "1.0.8",
+        "escape-string-regexp": "1.0.5",
+        "html-webpack-plugin": "^3.2.0",
+        "loader-utils": "^1.1.0",
+        "svg-baker": "^1.5.0",
+        "svg-baker-runtime": "^1.4.3",
+        "url-slug": "2.0.0"
+      },
+      "dependencies": {
+        "deepmerge": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz",
+          "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=",
+          "dev": true
+        }
+      }
+    },
     "svg-tags": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
@@ -13320,6 +13867,24 @@
             "supports-color": "^5.3.0"
           }
         },
+        "css-select": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+          "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+          "dev": true,
+          "requires": {
+            "boolbase": "^1.0.0",
+            "css-what": "^3.2.1",
+            "domutils": "^1.7.0",
+            "nth-check": "^1.0.2"
+          }
+        },
+        "css-what": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
+          "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==",
+          "dev": true
+        },
         "supports-color": {
           "version": "5.5.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -13331,6 +13896,16 @@
         }
       }
     },
+    "svgo-loader": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/svgo-loader/-/svgo-loader-2.2.1.tgz",
+      "integrity": "sha512-9dyz/h6ae04pAVRz7QY8bLXtMbwA19NPpCPfCixgW0qXNDCOlHbDRqvtT5/2gzRxfuibWCUP6ZBQmZWF9rjWhQ==",
+      "dev": true,
+      "requires": {
+        "js-yaml": "^3.13.1",
+        "loader-utils": "^1.0.3"
+      }
+    },
     "swagger-client": {
       "version": "3.10.0",
       "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.10.0.tgz",
@@ -13761,6 +14336,12 @@
         "through2": "^2.0.3"
       }
     },
+    "toposort": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+      "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+      "dev": true
+    },
     "tough-cookie": {
       "version": "2.4.3",
       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
@@ -13981,6 +14562,12 @@
       "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
       "dev": true
     },
+    "unidecode": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/unidecode/-/unidecode-0.1.8.tgz",
+      "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=",
+      "dev": true
+    },
     "unified": {
       "version": "7.1.0",
       "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz",
@@ -14324,6 +14911,12 @@
         }
       }
     },
+    "upper-case": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+      "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+      "dev": true
+    },
     "uri-js": {
       "version": "4.2.2",
       "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -14370,6 +14963,15 @@
         "ip-regex": "^1.0.1"
       }
     },
+    "url-slug": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/url-slug/-/url-slug-2.0.0.tgz",
+      "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=",
+      "dev": true,
+      "requires": {
+        "unidecode": "0.1.8"
+      }
+    },
     "use": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
@@ -14419,6 +15021,12 @@
         "object.getownpropertydescriptors": "^2.1.0"
       }
     },
+    "utila": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+      "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+      "dev": true
+    },
     "uuid": {
       "version": "3.4.0",
       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
diff --git a/package.json b/package.json
index cfae51b5676..7f30cb9c240 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
     "node": ">=10"
   },
   "dependencies": {
+    "@primer/octicons": "9.4.0",
     "clipboard": "2.0.4",
     "fomantic-ui": "2.8.3",
     "highlight.js": "9.18.1",
@@ -36,6 +37,9 @@
     "postcss-safe-parser": "4.0.1",
     "stylelint": "13.0.0",
     "stylelint-config-standard": "19.0.0",
+    "svg-sprite-loader": "4.2.1",
+    "svgo": "1.3.2",
+    "svgo-loader": "2.2.1",
     "terser-webpack-plugin": "2.3.4",
     "updates": "9.3.3",
     "vue-loader": "15.8.3",
diff --git a/public/vendor/assets/octicons/LICENSE b/public/vendor/assets/octicons/LICENSE
deleted file mode 100644
index 4cf2020ce77..00000000000
--- a/public/vendor/assets/octicons/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2012-2016 GitHub, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/public/vendor/assets/octicons/octicons.eot b/public/vendor/assets/octicons/octicons.eot
deleted file mode 100644
index b4c7a989ae645fe4dcab1dea34cfffa8487b28c4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 44098
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

diff --git a/public/vendor/assets/octicons/octicons.min.css b/public/vendor/assets/octicons/octicons.min.css
deleted file mode 100644
index a000669c948..00000000000
--- a/public/vendor/assets/octicons/octicons.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@font-face{font-family:Octicons;src:url(octicons.eot?ef21c39f0ca9b1b5116e5eb7ac5eabe6);src:url(octicons.eot?#iefix) format("embedded-opentype"),url(octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("woff2"),url(octicons.woff?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("woff"),url(octicons.ttf?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("truetype"),url(octicons.svg?ef21c39f0ca9b1b5116e5eb7ac5eabe6#octicons) format("svg");font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 Octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-ms-user-select:none;user-select:none;speak:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:"\f02d"}.octicon-arrow-down:before{content:"\f03f"}.octicon-arrow-left:before{content:"\f040"}.octicon-arrow-right:before{content:"\f03e"}.octicon-arrow-small-down:before{content:"\f0a0"}.octicon-arrow-small-left:before{content:"\f0a1"}.octicon-arrow-small-right:before{content:"\f071"}.octicon-arrow-small-up:before{content:"\f09f"}.octicon-arrow-up:before{content:"\f03d"}.octicon-beaker:before{content:"\f0dd"}.octicon-bell:before{content:"\f0de"}.octicon-bold:before{content:"\f0e2"}.octicon-book:before{content:"\f007"}.octicon-bookmark:before{content:"\f07b"}.octicon-briefcase:before{content:"\f0d3"}.octicon-broadcast:before{content:"\f048"}.octicon-browser:before{content:"\f0c5"}.octicon-bug:before{content:"\f091"}.octicon-calendar:before{content:"\f068"}.octicon-check:before{content:"\f03a"}.octicon-checklist:before{content:"\f076"}.octicon-chevron-down:before{content:"\f0a3"}.octicon-chevron-left:before{content:"\f0a4"}.octicon-chevron-right:before{content:"\f078"}.octicon-chevron-up:before{content:"\f0a2"}.octicon-circle-slash:before{content:"\f084"}.octicon-circuit-board:before{content:"\f0d6"}.octicon-clippy:before{content:"\f035"}.octicon-clock:before{content:"\f046"}.octicon-cloud-download:before{content:"\f00b"}.octicon-cloud-upload:before{content:"\f00c"}.octicon-code:before{content:"\f05f"}.octicon-comment-discussion:before{content:"\f04f"}.octicon-comment:before{content:"\f02b"}.octicon-credit-card:before{content:"\f045"}.octicon-dash:before{content:"\f0ca"}.octicon-dashboard:before{content:"\f07d"}.octicon-database:before{content:"\f096"}.octicon-desktop-download:before{content:"\f0dc"}.octicon-device-camera-video:before{content:"\f057"}.octicon-device-camera:before{content:"\f056"}.octicon-device-desktop:before{content:"\f27c"}.octicon-device-mobile:before{content:"\f038"}.octicon-diff-added:before{content:"\f06b"}.octicon-diff-ignored:before{content:"\f099"}.octicon-diff-modified:before{content:"\f06d"}.octicon-diff-removed:before{content:"\f06c"}.octicon-diff-renamed:before{content:"\f06e"}.octicon-diff:before{content:"\f04d"}.octicon-ellipses:before{content:"\f101"}.octicon-ellipsis:before{content:"\f09a"}.octicon-eye:before{content:"\f04e"}.octicon-file-binary:before{content:"\f094"}.octicon-file-code:before{content:"\f010"}.octicon-file-directory:before{content:"\f016"}.octicon-file-media:before{content:"\f012"}.octicon-file-pdf:before{content:"\f014"}.octicon-file-submodule:before{content:"\f017"}.octicon-file-symlink-directory:before{content:"\f0b1"}.octicon-file-symlink-file:before{content:"\f0b0"}.octicon-file-text:before{content:"\f011"}.octicon-file-zip:before{content:"\f013"}.octicon-file:before{content:"\f102"}.octicon-flame:before{content:"\f0d2"}.octicon-fold:before{content:"\f0cc"}.octicon-gear:before{content:"\f02f"}.octicon-gift:before{content:"\f042"}.octicon-gist-secret:before{content:"\f08c"}.octicon-gist:before{content:"\f00e"}.octicon-git-branch:before{content:"\f020"}.octicon-git-commit:before{content:"\f01f"}.octicon-git-compare:before{content:"\f0ac"}.octicon-git-merge:before{content:"\f023"}.octicon-git-pull-request:before{content:"\f009"}.octicon-globe:before{content:"\f0b6"}.octicon-grabber:before{content:"\f103"}.octicon-graph:before{content:"\f043"}.octicon-heart:before{content:"\2665"}.octicon-history:before{content:"\f07e"}.octicon-home:before{content:"\f08d"}.octicon-horizontal-rule:before{content:"\f070"}.octicon-hubot:before{content:"\f09d"}.octicon-inbox:before{content:"\f0cf"}.octicon-info:before{content:"\f059"}.octicon-issue-closed:before{content:"\f028"}.octicon-issue-opened:before{content:"\f026"}.octicon-issue-reopened:before{content:"\f027"}.octicon-italic:before{content:"\f0e4"}.octicon-jersey:before{content:"\f019"}.octicon-key:before{content:"\f049"}.octicon-keyboard:before{content:"\f00d"}.octicon-law:before{content:"\f0d8"}.octicon-light-bulb:before{content:"\f000"}.octicon-link-external:before{content:"\f07f"}.octicon-link:before{content:"\f05c"}.octicon-list-ordered:before{content:"\f062"}.octicon-list-unordered:before{content:"\f061"}.octicon-location:before{content:"\f060"}.octicon-lock:before{content:"\f06a"}.octicon-logo-gist:before{content:"\f0ad"}.octicon-logo-github:before{content:"\f092"}.octicon-mail-read:before{content:"\f03c"}.octicon-mail-reply:before{content:"\f051"}.octicon-mail:before{content:"\f03b"}.octicon-mark-github:before{content:"\f00a"}.octicon-markdown:before{content:"\f0c9"}.octicon-megaphone:before{content:"\f077"}.octicon-mention:before{content:"\f0be"}.octicon-milestone:before{content:"\f075"}.octicon-mirror:before{content:"\f024"}.octicon-mortar-board:before{content:"\f0d7"}.octicon-mute:before{content:"\f080"}.octicon-no-newline:before{content:"\f09c"}.octicon-octoface:before{content:"\f008"}.octicon-organization:before{content:"\f037"}.octicon-package:before{content:"\f0c4"}.octicon-paintcan:before{content:"\f0d1"}.octicon-pencil:before{content:"\f058"}.octicon-person:before{content:"\f018"}.octicon-pin:before{content:"\f041"}.octicon-plug:before{content:"\f0d4"}.octicon-plus-small:before{content:"\f104"}.octicon-plus:before{content:"\f05d"}.octicon-primitive-dot:before{content:"\f052"}.octicon-primitive-square:before{content:"\f053"}.octicon-pulse:before{content:"\f085"}.octicon-question:before{content:"\f02c"}.octicon-quote:before{content:"\f063"}.octicon-radio-tower:before{content:"\f030"}.octicon-reply:before{content:"\f105"}.octicon-repo-clone:before{content:"\f04c"}.octicon-repo-force-push:before{content:"\f04a"}.octicon-repo-forked:before{content:"\f002"}.octicon-repo-pull:before{content:"\f006"}.octicon-repo-push:before{content:"\f005"}.octicon-repo:before{content:"\f001"}.octicon-rocket:before{content:"\f033"}.octicon-rss:before{content:"\f034"}.octicon-ruby:before{content:"\f047"}.octicon-search:before{content:"\f02e"}.octicon-server:before{content:"\f097"}.octicon-settings:before{content:"\f07c"}.octicon-shield:before{content:"\f0e1"}.octicon-sign-in:before{content:"\f036"}.octicon-sign-out:before{content:"\f032"}.octicon-smiley:before{content:"\f0e7"}.octicon-squirrel:before{content:"\f0b2"}.octicon-star:before{content:"\f02a"}.octicon-stop:before{content:"\f08f"}.octicon-sync:before{content:"\f087"}.octicon-tag:before{content:"\f015"}.octicon-tasklist:before{content:"\f0e5"}.octicon-telescope:before{content:"\f088"}.octicon-terminal:before{content:"\f0c8"}.octicon-text-size:before{content:"\f0e3"}.octicon-three-bars:before{content:"\f05e"}.octicon-thumbsdown:before{content:"\f0db"}.octicon-thumbsup:before{content:"\f0da"}.octicon-tools:before{content:"\f031"}.octicon-trashcan:before{content:"\f0d0"}.octicon-triangle-down:before{content:"\f05b"}.octicon-triangle-left:before{content:"\f044"}.octicon-triangle-right:before{content:"\f05a"}.octicon-triangle-up:before{content:"\f0aa"}.octicon-unfold:before{content:"\f039"}.octicon-unmute:before{content:"\f0ba"}.octicon-unverified:before{content:"\f0e8"}.octicon-verified:before{content:"\f0e6"}.octicon-versions:before{content:"\f064"}.octicon-watch:before{content:"\f0e0"}.octicon-x:before{content:"\f081"}.octicon-zap:before{content:"\26a1"}
\ No newline at end of file
diff --git a/public/vendor/assets/octicons/octicons.svg b/public/vendor/assets/octicons/octicons.svg
deleted file mode 100644
index 41cbd3f1fc9..00000000000
--- a/public/vendor/assets/octicons/octicons.svg
+++ /dev/null
@@ -1,429 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata>
-Created by FontForge 20150913 at Mon Jul 11 12:02:11 2016
- By Aaron Shekey
-</metadata>
-<defs>
-<font id="octicons" horiz-adv-x="96" >
-  <font-face 
-    font-family="octicons"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="96"
-    panose-1="2 0 5 9 0 0 0 0 0 0"
-    ascent="84"
-    descent="-12"
-    bbox="-0.5 -12.5 96.5 84.5"
-    underline-thickness="4"
-    underline-position="-14"
-    unicode-range="U+2665-F27C"
-  />
-<missing-glyph 
-d="M3 0v64h24v-64h-24zM6 3h18v58h-18v-58z" />
-    <glyph glyph-name=".notdef" 
-d="M3 0v64h24v-64h-24zM6 3h18v58h-18v-58z" />
-    <glyph glyph-name=".null" horiz-adv-x="0" 
- />
-    <glyph glyph-name="nonmarkingreturn" 
- />
-    <glyph glyph-name="heart" unicode="&#x2665;" 
-d="M67.5 66.5q4.5 -5.5 4.5 -12.5q0 -8 -4 -16q-5 -10 -32 -32q-27 21 -32 32q-4 8 -4 16q0 7 4.5 12.5t13.5 5.5q8 0 13 -6q5 -5 5 -6q0 1 5 6q5 6 13 6q9 0 13.5 -5.5z" />
-    <glyph glyph-name="zap" unicode="&#x26a1;" 
-d="M60 42l-54 -54l18 42h-24l54 54l-18 -42h24z" />
-    <glyph glyph-name="light-bulb" unicode="&#xf000;" 
-d="M39 84q14 0 23.5 -8.5t9.5 -21.5q0 -8 -6 -18q-11 -18 -12 -24v-6h-30v6q-1 6 -12 24q-6 10 -6 18q0 13 9.5 21.5t23.5 8.5zM61 39q5 9 5 15q0 10 -8 17t-19 7t-19 -7t-8 -17q0 -6 5 -15q2 -3 4 -7q8 -12 9 -19v-1h18v1q1 7 9 19q2 4 4 7zM24 0h30q-2 -12 -15 -12t-15 12
-z" />
-    <glyph glyph-name="repo" unicode="&#xf001;" 
-d="M24 30h-6v6h6v-6zM24 48v-6h-6v6h6zM24 60v-6h-6v6h6zM24 72v-6h-6v6h6zM72 78v-72q0 -6 -6 -6h-30v-12l-9 9l-9 -9v12h-12q-6 0 -6 6v72q0 6 6 6h60q6 0 6 -6zM66 18h-60v-12h12v6h18v-6h30v12zM66 78h-54v-54h54v54z" />
-    <glyph glyph-name="repo-forked" unicode="&#xf002;" 
-d="M48 78q12 0 12 -12q0 -7 -6 -10v-11l-18 -18v-11q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v11l-18 18v11q-6 3 -6 10q0 12 12 12t12 -12q0 -7 -6 -10v-8l12 -12l12 12v8q-6 3 -6 10q0 12 12 12zM12 59q7 0 7 7t-7 7t-7 -7t7 -7zM30 -1q7 0 7 7t-7 7t-7 -7t7 -7zM48 59
-q7 0 7 7t-7 7t-7 -7t7 -7z" />
-    <glyph glyph-name="repo-push" unicode="&#xf005;" 
-d="M24 66h-6v6h6v-6zM18 54v6h6v-6h-6zM42 54l18 -24h-12v-42h-12v42h-12zM66 84q6 0 6 -6v-72q0 -6 -6 -6h-12v6h12v12h-12v6h12v54h-54v-54h18v-6h-24v-12h24v-6h-24q-6 0 -6 6v72q0 6 6 6h60z" />
-    <glyph glyph-name="repo-pull" unicode="&#xf006;" 
-d="M78 36v12h-36v12h36v12l18 -18zM24 72v-6h-6v6h6zM66 42h6v-36q0 -6 -6 -6h-30v-12l-9 9l-9 -9v12h-12q-6 0 -6 6v72q0 6 6 6h60q6 0 6 -6v-12h-6v12h-54v-54h54v18zM66 18h-60v-12h12v6h18v-6h30v12zM24 48v-6h-6v6h6zM24 60v-6h-6v6h6zM18 30v6h6v-6h-6z" />
-    <glyph glyph-name="book" unicode="&#xf007;" 
-d="M18 54h24v-6h-24v6zM18 36v6h24v-6h-24zM18 24v6h24v-6h-24zM84 54v-6h-24v6h24zM84 42v-6h-24v6h24zM84 30v-6h-24v6h24zM96 66v-54q0 -6 -6 -6h-33l-6 -6l-6 6h-33q-6 0 -6 6v54q0 6 6 6h33l6 -6l6 6h33q6 0 6 -6zM48 63l-3 3h-33v-54h36v51zM90 66h-33l-3 -3v-51h36
-v54z" />
-    <glyph glyph-name="octoface" unicode="&#xf008;" 
-d="M88 52q8 -8 8 -20q0 -15 -6.5 -23.5t-16.5 -11.5t-25 -3q-23 0 -35.5 8t-12.5 30q0 12 8 20q-4 9 1 20q6 2 20 -8q7 2 19 2t19 -2q4 3 7.5 4.5t6 2.5t4 1h2.5q5 -11 1 -20zM48 0q12 0 18.5 1t12 5.5t5.5 13.5q0 7 -6 12q-3 3 -7 3.5t-12 0t-11 -0.5t-8.5 0.5t-8.5 0.5
-t-7 -1t-6 -3q-6 -5 -6 -12q0 -13 9 -16.5t27 -3.5zM33 30q7 0 7 -10.5t-7 -10.5t-7 10.5t7 10.5zM63 30q7 0 7 -10.5t-7 -10.5t-7 10.5t7 10.5z" />
-    <glyph glyph-name="git-pull-request" unicode="&#xf009;" 
-d="M66 16q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v38q0 2 -2 4t-4 2h-6v-12l-18 18l18 18v-12h6q7 0 12.5 -5.5t5.5 -12.5v-38zM60 -1q7 0 7 7t-7 7t-7 -7t7 -7zM24 66q0 -7 -6 -10v-40q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v40q-6 3 -6 10q0 12 12 12t12 -12zM19 6
-q0 7 -7 7t-7 -7t7 -7t7 7zM12 59q7 0 7 7t-7 7t-7 -7t7 -7z" />
-    <glyph glyph-name="mark-github" unicode="&#xf00a;" 
-d="M48 84q20 0 34 -14t14 -34q0 -10 -4 -19.5t-11.5 -16t-17.5 -10.5q-3 0 -3 3v4.5v8.5q0 6 -3 9q22 2 22 24q0 7 -5 12q2 6 -1 13q-4 1 -13 -5q-6 2 -12 2t-12 -2q-4 3 -7.5 4t-4.5 1h-1q-3 -7 -1 -13q-4 -5 -4 -12q0 -22 21 -24q-2 -2 -3 -7q-9 -4 -14 4q-3 5 -7 5
-q-3 0 -2.5 -1t2.5 -2q3 -2 5 -7q3 -8 16 -5v-6v-3q0 -3 -3 -3q-15 5 -24 17.5t-9 28.5q0 20 14 34t34 14z" />
-    <glyph glyph-name="cloud-download" unicode="&#xf00b;" 
-d="M54 12h12l-18 -18l-18 18h12v30h12v-30zM72 60q24 0 24 -21t-24 -21h-12v8h12q16 0 16 13t-16 13h-8v7q-3 11 -19 11q-7 0 -13 -5t-6 -11v-8h-8q-10 0 -10 -10t10 -10h18v-8h-18q-18 0 -18 18t18 18q0 9 8 16.5t19 7.5q10 0 16.5 -4t8.5 -8t2 -6z" />
-    <glyph glyph-name="cloud-upload" unicode="&#xf00c;" 
-d="M42 30h-12l18 18l18 -18h-12v-30h-12v30zM72 54q24 0 24 -21t-24 -21h-12v8h12q16 0 16 13t-16 13h-8v7q-3 11 -19 11q-7 0 -13 -5t-6 -11v-8h-8q-10 0 -10 -10t10 -10h18v-8h-18q-18 0 -18 18t18 18q0 9 8 16.5t19 7.5q10 0 16.5 -4t8.5 -8t2 -6z" />
-    <glyph glyph-name="keyboard" unicode="&#xf00d;" 
-d="M60 54h-6v6h6v-6zM18 48v-6h-6v6h6zM48 60v-6h-6v6h6zM24 60v-6h-12v6h12zM72 18v6h12v-6h-12zM48 42v6h6v-6h-6zM24 24v-6h-12v6h12zM72 60v-6h-6v6h6zM84 60v-6h-6v6h6zM72 30v18h12v-18h-12zM96 66v-54q0 -6 -6 -6h-84q-6 0 -6 6v54q0 6 6 6h84q6 0 6 -6zM90 66h-84
-v-54h84v54zM36 42v6h6v-6h-6zM36 60v-6h-6v6h6zM24 42v6h6v-6h-6zM30 18v6h36v-6h-36zM60 42v6h6v-6h-6zM18 36v-6h-6v6h6zM48 36h6v-6h-6v6zM36 36h6v-6h-6v6zM30 36v-6h-6v6h6zM60 30v6h6v-6h-6z" />
-    <glyph glyph-name="gist" unicode="&#xf00e;" 
-d="M45 54l15 -15l-15 -15l-5 4l11 11l-11 11zM27 54l5 -4l-11 -11l11 -11l-5 -4l-15 15zM0 6v66q0 6 6 6h60q6 0 6 -6v-66q0 -6 -6 -6h-60q-6 0 -6 6zM6 6h60v66h-60v-66z" />
-    <glyph glyph-name="file-code" unicode="&#xf010;" 
-d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 0v54l-18 18h-42v-72h60zM30 42l-9 -9l9 -9l-3 -6l-15 15l15 15zM45 48l15 -15l-15 -15l-3 6l9 9l-9 9z" />
-    <glyph glyph-name="file-text" unicode="&#xf011;" 
-d="M36 54h-24v6h24v-6zM12 36v6h42v-6h-42zM12 24v6h42v-6h-42zM12 12v6h42v-6h-42zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-72h60v54z" />
-    <glyph glyph-name="file-media" unicode="&#xf012;" 
-d="M36 54h12v-12h-12v12zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-66l18 30l12 -24l12 12l18 -18v48z" />
-    <glyph glyph-name="file-zip" unicode="&#xf013;" 
-d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 0v54l-18 18h-18v-6h-6v6h-18v-72h60zM30 60v6h6v-6h-6zM24 60h6v-6h-6v6zM30 48v6h6v-6h-6zM24 48h6v-6h-6v6zM30 36v6h6v-6h-6zM24 28v8h6v-6q12 0 12 -12v-6h-24v6q0 7 6 10zM36 24h-12v-6h12v6z" />
-    <glyph glyph-name="file-pdf" unicode="&#xf014;" 
-d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM6 72v-56l6 4q2 1 4 1q0 1 1 2.5t2 4t3 4.5l6 16q-1 6 -2 11q0 5 1 9q0 2 1 3t2 1h-24zM33 43v0l-6 -14t-4 -7q6 2 11.5 3.5t10.5 1.5q-3 2 -5 4q-5 5 -7 12zM66 0v0v18h-2l-8 2t-8 3q-5 -1 -9 -1q-6 -2 -9 -2
-l-2 -1q-3 -1 -5 -2q-4 -8 -11 -14q-2 -2 -4 -3h1h57zM66 29v0v25l-18 18h-15q2 0 4 -1q1 -3 1 -6v-4q0 -6 -1 -12q2 -8 7 -14q3 -3 6 -4q4 0 8 1q2 -1 4 -1z" />
-    <glyph glyph-name="tag" unicode="&#xf015;" 
-d="M46 74l37 -37q4 -4 0 -8l-28 -28q-4 -4 -8 0l-37 37q-4 4 -4 10v15q0 6 4.5 10.5t10.5 4.5h15q6 0 10 -4zM14 41l37 -36l28 28l-36 37q-3 3 -7 3h-15q-10 0 -10 -10v-15q0 -4 3 -7zM18 66h12v-12h-12v12z" />
-    <glyph glyph-name="file-directory" unicode="&#xf016;" 
-d="M78 60q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h30q6 0 6 -6v-6h36zM36 60v6h-30v-6h30z" />
-    <glyph glyph-name="file-submodule" unicode="&#xf017;" 
-d="M60 42v-6h24v-30q0 -6 -6 -6h-54v42h36zM54 30v6h-24v-6h24zM78 60q6 0 6 -6v-12h-18q0 6 -6 6h-36q-6 0 -6 -6v-42h-12q-6 0 -6 6v60q0 6 6 6h30q6 0 6 -6v-6h36zM36 60v6h-30v-6h30z" />
-    <glyph glyph-name="person" unicode="&#xf018;" 
-d="M72 0q0 -6 -6 -6h-60q-6 0 -6 6v6q0 7 6 13t12 9l6 2q1 2 0 6q-6 4 -6 24q1 18 18 18t18 -18q0 -20 -6 -24v-6q24 -8 24 -24v-6z" />
-    <glyph glyph-name="jersey" unicode="&#xf019;" 
-d="M27 48h12l3 -3v-30l-3 -3h-12l-3 3v30zM36 18v24h-6v-24h6zM73.5 61.5q1.5 -12.5 10.5 -13.5v-54q0 -2 -2 -4t-4 -2h-66q-2 0 -4 2t-2 4v54q9 1 10 14q2 12 2 22h18q0 -2 2 -4t7 -2t7 2t2 4h18q0 -10 1.5 -22.5zM78 -6v48q-7 5 -10 16q-2 7 -2 20h-6q0 -7 -3 -12
-q-3 -6 -12 -6t-12 6q-3 5 -3 12h-6q0 -14 -2 -22q-2 -9 -10 -14v-48h66zM51 48h12l3 -3v-30l-3 -3h-12l-3 3v30zM60 18v24h-6v-24h6z" />
-    <glyph glyph-name="git-commit" unicode="&#xf01f;" 
-d="M65 42h19v-12h-19q-5 -18 -23 -18t-23 18h-19v12h19q5 18 23 18t23 -18zM42 23q5 0 9 4t4 9t-4 9t-9 4t-9 -4t-4 -9t4 -9t9 -4z" />
-    <glyph glyph-name="git-branch" unicode="&#xf020;" 
-d="M60 54q0 -7 -6 -10q-1 -12 -8 -19t-16 -7q-3 0 -6 -1l-1.5 -1.5l-1.5 -1.5q3 -3 3 -8q0 -12 -12 -12t-12 12q0 7 6 10v40q-6 3 -6 10q0 5 3.5 8.5t8.5 3.5t8.5 -3.5t3.5 -8.5q0 -7 -6 -10v-29q4 3 12 3q5 0 8.5 3.5t3.5 8.5v2q-6 3 -6 10q0 12 12 12t12 -12zM12 73
-q-7 0 -7 -7t7 -7t7 7t-7 7zM12 -1q7 0 7 7t-7 7t-7 -7t7 -7zM48 47q7 0 7 7t-7 7t-7 -7t7 -7z" />
-    <glyph glyph-name="git-merge" unicode="&#xf023;" 
-d="M60 42q12 0 12 -12t-12 -12q-7 0 -10 6q-11 0 -18.5 4t-13.5 10v-22q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v40q-6 3 -6 10q0 3 1.5 6t4.5 4.5t6 1.5q5 0 8.5 -3.5t3.5 -8.5q0 -6 -4 -9q4 -9 11 -15q8 -6 19 -6q3 6 10 6zM19 6q0 7 -7 7t-7 -7t7 -7t7 7zM12 59
-q7 0 7 7t-7 7t-7 -7t7 -7zM60 23q7 0 7 7t-7 7t-7 -7t7 -7z" />
-    <glyph glyph-name="mirror" unicode="&#xf024;" 
-d="M93 56q3 -2 3 -5v-63l-45 24l-45 -24v63q0 3 3 5l42 28zM90 -3v54l-36 24v-27h-6v27l-36 -24v-54l36 19v8h6v-8zM36 42h30v12l18 -18l-18 -18v12h-30v-12l-18 18l18 18v-12z" />
-    <glyph glyph-name="issue-opened" unicode="&#xf026;" 
-d="M42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5zM48 60v-30h-12v30h12zM48 24v-12h-12v12h12z" />
-    <glyph glyph-name="issue-reopened" unicode="&#xf027;" 
-d="M48 30h-12v30h12v-30zM36 12v12h12v-12h-12zM74 24h10v-24l-10 10q-12 -16 -32 -16q-17 0 -29.5 12.5t-12.5 29.5v6h8v-6q0 -14 10 -24t24 -10q17 0 27 13l-9 9h14zM10 48h-10v24l10 -10q12 16 32 16q17 0 29.5 -12.5t12.5 -29.5v-6h-8v6q0 14 -10 24t-24 10
-q-17 0 -27 -13l9 -9h-14z" />
-    <glyph glyph-name="issue-closed" unicode="&#xf028;" 
-d="M42 24h12v-12h-12v12zM54 60v-30h-12v30h12zM63 51l9 -9l18 21l6 -6l-24 -27l-15 15zM48 2q12 0 21 7t12 18l9 9q0 -17 -12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5q20 0 33 -15l-6 -6q-10 13 -27 13q-14 0 -24 -10t-10 -24t10 -24t24 -10z" />
-    <glyph glyph-name="star" unicode="&#xf02a;" 
-d="M84 48l-22 -20l6 -28l-26 14l-26 -14l6 28l-22 20l29 4l13 26l13 -26z" />
-    <glyph glyph-name="comment" unicode="&#xf02b;" 
-d="M84 78q6 0 6 -6v-48q0 -6 -6 -6h-39l-21 -21v21h-12q-6 0 -6 6v48q0 6 6 6h72zM84 24v48h-72v-48h18v-12l12 12h42z" />
-    <glyph glyph-name="question" unicode="&#xf02c;" 
-d="M36 24h12v-12h-12v12zM60 45q0 -6 -3 -9.5t-6 -4.5l-3 -1h-12q0 6 6 6h3q3 0 3 3v6q0 3 -3 3h-6q-3 0 -3 -3v-3h-12q0 7 5.5 12.5t12.5 5.5q18 0 18 -15zM42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5t12.5 -29.5
-t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5z" />
-    <glyph glyph-name="alert" unicode="&#xf02d;" 
-d="M53 75l41 -72q2 -3 0.5 -6t-5.5 -3h-82q-4 0 -5.5 3t0.5 6l41 72q1 3 4.5 3t5.5 -3zM54 6v12h-12v-12h12zM54 24v24h-12v-24h12z" />
-    <glyph glyph-name="search" unicode="&#xf02e;" 
-d="M94 4q4 -4 0 -8q-1 -2 -3.5 -2t-4.5 2l-23 23q-10 -7 -21 -7q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -11 -7 -21zM42 20q12 0 20 8t8 20t-8 20t-20 8t-20 -8t-8 -20t8 -20t20 -8z" />
-    <glyph glyph-name="gear" unicode="&#xf02f;" 
-d="M84 31v1l-12 -5l-2 -6l5 -11l-7 -7l-11 5l-6 -2l-4 -12h-10l-4 12l-6 2l-11 -5l-7 7l5 11l-2 6l-12 4v10l12 4l2 6l-5 11l7 7l11 -5l6 2l4 12h10l4 -12l6 -2l11 5l7 -7l-5 -11l2 -6l12 -4v-10zM42 18q7 0 12.5 5.5t5.5 12.5t-5.5 12.5t-12.5 5.5t-12.5 -5.5t-5.5 -12.5
-t5.5 -12.5t12.5 -5.5z" />
-    <glyph glyph-name="radio-tower" unicode="&#xf030;" 
-d="M29 47.5q-3 -2.5 -6 -0.5q-5 6 -5 13t5 13q1 1 3 1t3 -1q2 -3 -0.5 -6t-2.5 -7t3 -7t0 -5.5zM14 81q3 -3 0 -6q-6 -6 -6 -15t6 -15q3 -3 0 -6t-6 0q-8 9 -8 21t8 21q2 1 3.5 1t2.5 -1zM48 50q-10 0 -10 10t10 10t10 -10t-10 -10zM88 81q8 -9 8 -21t-8 -21q-2 -1 -3.5 -1
-t-2.5 1q-3 3 0 6q6 6 6 15t-6 15q-3 3 0 6t6 0zM48 42q4 0 7 2l19 -50h-9l-5 6h-24l-5 -6h-9l19 50q3 -2 7 -2zM48 40l-6 -22h12zM36 6h24l-6 6h-12zM67 72.5q3 2.5 6 0.5q5 -6 5 -13t-5 -13q-1 -1 -3 -1t-3 1q-2 3 0.5 6t2.5 7t-3 7t0 5.5z" />
-    <glyph glyph-name="tools" unicode="&#xf031;" 
-d="M27 40q-12 -4 -21 6q-8 8 -5 20l11 -12l12 3l3 12l-12 12q12 3 20 -5.5t5 -20.5l3 -3l-10 -11l5 -5l-3 -4zM66 29l22 -24q3 -3 3 -7t-3 -7t-7 -3t-6 3l-23 24zM96 69l-43 -45l-6 6l-26 -27l-3 -6l-13 -9l-2 2l8 14l6 3l26 27l-5 5l43 45z" />
-    <glyph glyph-name="sign-out" unicode="&#xf032;" 
-d="M72 30v12h-24v12h24v12l24 -18zM60 12v24h6v-24q0 -6 -6 -6h-24v-18l-33 16q-3 2 -3 6v68q0 6 6 6h54q6 0 6 -6v-18h-6v18h-48l24 -12v-54h24z" />
-    <glyph glyph-name="rocket" unicode="&#xf033;" 
-d="M73 61q2 -2 5 -3.5t6 -2.5q-3 -6 -6 -10q-4 -5 -9 -10q-2 -2 -15 -11v-18l-18 -18v18l12 12q-2 -1 -6.5 -2.5l-7.5 -2.5l-4 -1l-6 6q-1 1 6 18l-12 -12h-18l18 18h18q10 14 11 15q5 5 10 8.5t10 6.5l2 -6q2 -3 4 -5zM96 84q-1 -2 -2 -6q-2 -7 -6 -16q-7 0 -10.5 4
-t-3.5 10q10 5 16 6l6 2v0z" />
-    <glyph glyph-name="rss" unicode="&#xf034;" 
-d="M12 6h-12v12q12 0 12 -12zM0 66q25 0 42.5 -17.5t17.5 -42.5h-6q0 22 -16 38t-38 16v6zM0 42q15 0 25.5 -10.5t10.5 -25.5h-6q0 12 -9 21t-21 9v6z" />
-    <glyph glyph-name="clippy" unicode="&#xf035;" 
-d="M12 6h24v-6h-24v6zM42 42v-6h-30v6h30zM54 24h30v-12h-30v-12l-18 18l18 18v-12zM27 30v-6h-15v6h15zM12 12v6h15v-6h-15zM66 6h6v-12q0 -3 -2 -4.5t-4 -1.5h-60q-6 0 -6 6v66q0 6 6 6h18q0 12 12 12t12 -12h18q6 0 6 -6v-30h-6v18h-60v-54h60v12zM12 54h48q0 6 -6 6h-6
-q-6 0 -6 6t-6 6t-6 -6t-6 -6h-6q-6 0 -6 -6z" />
-    <glyph glyph-name="sign-in" unicode="&#xf036;" 
-d="M42 44v-32h24v24h6v-24q0 -6 -6 -6h-24v-18l-33 16q-3 2 -3 6v68q0 6 6 6h54q6 0 6 -6v-18h-6v18h-48l24 -12v-14l18 14v-12h24v-12h-24v-12z" />
-    <glyph glyph-name="organization" unicode="&#xf037;" 
-d="M96 6q0 -6 -6 -6h-42q-6 0 -6 6h-36q-6 0 -6 6q0 7 4.5 13t9.5 9l4 2q1 2 0 6q-6 5 -6 18q0 18 15 18t15 -18q0 -13 -6 -18v-6q9 -4 15 -13l9 7q1 2 0 6l-1 1q-5 4 -5 17q0 18 15 18t15 -18q0 -7 -0.5 -10.5t-1.5 -4.5t-4 -3v-6q18 -8 18 -24v0z" />
-    <glyph glyph-name="device-mobile" unicode="&#xf038;" 
-d="M54 84q6 0 6 -6v-84q0 -6 -6 -6h-48q-6 0 -6 6v84q0 6 6 6h48zM30 -8q8 0 8 8t-8 8t-8 -8t8 -8zM54 12v60h-48v-60h48z" />
-    <glyph glyph-name="unfold" unicode="&#xf039;" 
-d="M69 39l15 -15q0 -6 -6 -6h-24v6h21l-12 12h-42l-12 -12h21v-6h-24q-6 0 -6 6l15 15l-15 15q0 6 6 6h24v-6h-21l12 -12h42l12 12h-21v6h24q6 0 6 -6zM36 48v18h-12l18 18l18 -18h-12v-18h-12zM48 30v-18h12l-18 -18l-18 18h12v18h12z" />
-    <glyph glyph-name="check" unicode="&#xf03a;" 
-d="M72 54l-48 -48l-24 24l9 9l15 -15l39 39z" />
-    <glyph glyph-name="mail" unicode="&#xf03b;" 
-d="M0 60q0 6 6 6h72q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v48zM78 60h-72l36 -30zM6 51v-36l24 18zM12 12h60l-21 18l-9 -9l-9 9zM78 15v36l-24 -18z" />
-    <glyph glyph-name="mail-read" unicode="&#xf03c;" 
-d="M36 54h-12v6h12v-6zM54 48v-6h-30v6h30zM84 51v-51q0 -6 -6 -6h-72q-6 0 -6 6v51q0 3 3 5l9 7v3q0 6 6 6h7l17 12l17 -12h7q6 0 6 -6v-3l9 -7q3 -2 3 -5zM18 39l24 -15l24 15v27h-48v-27zM6 3l27 18l-27 18v-36zM72 0l-30 18l-30 -18h60zM78 39l-27 -18l27 -18v36z" />
-    <glyph glyph-name="arrow-up" unicode="&#xf03d;" 
-d="M30 66l30 -36h-18v-24h-24v24h-18z" />
-    <glyph glyph-name="arrow-right" unicode="&#xf03e;" 
-d="M60 36l-36 -30v18h-24v24h24v18z" />
-    <glyph glyph-name="arrow-down" unicode="&#xf03f;" 
-d="M42 42h18l-30 -36l-30 36h18v24h24v-24z" />
-    <glyph glyph-name="arrow-left" unicode="&#xf040;" 
-d="M36 66v-18h24v-24h-24v-18l-36 30z" />
-    <glyph glyph-name="pin" unicode="&#xf041;" 
-d="M60 77q0 2 2 2.5t3 -0.5l26 -26q1 -1 0.5 -3t-2.5 -2h-5l-6 3l-18 -27v-23q0 -2 -2 -2.5t-3 0.5l-19 19l-30 -24l24 30l-19 19q-1 1 -0.5 3t2.5 2h23l27 18l-3 6v5z" />
-    <glyph glyph-name="gift" unicode="&#xf042;" 
-d="M78 60q6 0 6 -6v-18h-6v-30q0 -6 -6 -6h-54q-6 0 -6 6v30h-6v18q0 6 6 6h8q-2 3 -2 5q-1 7 3 10q3 3 9 3q5 0 9 -3t6 -8q2 5 6 8t9 3h1q5 0 8 -3t3 -10q0 -2 -2 -5h8zM49 65l-2 -5h17q3 4 3 6q0 4 -2 6q-1 1 -4 1h-1q-3 0 -6 -2t-5 -6zM25 72q-2 -2 -2 -6q0 -2 3 -6h17
-l-2 5q-2 4 -5 6t-6 2q-4 0 -5 -1zM42 6v30h-24v-30h24zM42 42v12h-30v-12h30zM72 6v30h-24v-30h24zM78 42v12h-30v-12h30z" />
-    <glyph glyph-name="graph" unicode="&#xf043;" 
-d="M96 0v-6h-96v90h6v-84h90zM30 6h-12v30h12v-30zM54 6h-12v60h12v-60zM78 6h-12v42h12v-42z" />
-    <glyph glyph-name="triangle-left" unicode="&#xf044;" 
-d="M36 72v-72l-36 36z" />
-    <glyph glyph-name="credit-card" unicode="&#xf045;" 
-d="M72 30h-60v6h60v-6zM96 66v-54q0 -6 -6 -6h-84q-6 0 -6 6v54q0 6 6 6h84q6 0 6 -6zM90 48h-84v-36h84v36zM90 66h-84v-6h84v6zM36 24v-6h-24v6h24z" />
-    <glyph glyph-name="clock" unicode="&#xf046;" 
-d="M48 36h18v-12h-24q-6 0 -6 6v30h12v-24zM42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5z" />
-    <glyph glyph-name="ruby" unicode="&#xf047;" 
-d="M78 48l-30 -30v42h18zM96 48l-48 -48l-48 48l24 24h48zM48 9l39 39l-18 18h-42l-18 -18z" />
-    <glyph glyph-name="broadcast" unicode="&#xf048;" 
-d="M54 30q6 0 6 -6v-12h-6v-18q0 -6 -6 -6h-6q-6 0 -6 6v18h-6v12q0 6 6 6h6q-6 0 -6 6v6q0 6 6 6h6q6 0 6 -6v-6q0 -6 -6 -6h6zM42 42v-6h6v6h-6zM54 18v6h-18v-6h6v-24h6v24h6zM67 39q0 9 -6.5 15.5t-15.5 6.5t-15.5 -6.5t-6.5 -15.5q0 -3 1 -5v-12q-6 8 -6 17q0 11 8 19
-t19 8q7 0 13.5 -3.5t10 -10t3.5 -13.5q0 -9 -6 -17v12q1 3 1 5zM90 39q0 -27 -24 -40v7q19 11 19 33q0 16 -12 28t-28 12t-28 -12t-12 -28q0 -22 19 -33v-7q-24 13 -24 40q0 19 13 32t32 13t32 -13t13 -32z" />
-    <glyph glyph-name="key" unicode="&#xf049;" 
-d="M77 71q7 -7 7 -17t-7 -17t-17 -7q-3 0 -5 1l-7 -7h-12v-6h-6v-6h-6v-6l-6 -6h-12l-6 6v6l37 37q-1 2 -1 5q0 10 7 17t17 7t17 -7zM66 52q8 0 8 8t-8 8t-8 -8t8 -8z" />
-    <glyph glyph-name="repo-force-push" unicode="&#xf04a;" 
-d="M60 30h-12v-42h-12v42h-12l14 18h-14l18 24l18 -24h-14zM66 84q6 0 6 -6v-72q0 -6 -6 -6h-12v6h12v12h-12v6h12v54h-54v-54h18v-6h-24v-12h24v-6h-24q-6 0 -6 6v72q0 6 6 6h60z" />
-    <glyph glyph-name="repo-clone" unicode="&#xf04c;" 
-d="M90 84q6 0 6 -6v-36q0 -6 -6 -6h-18v-6h-6v6h-6q-6 0 -6 6v42h36zM66 42v6h-6v-6h6zM90 42v6h-18v-6h18zM90 54v24h-24v-24h24zM24 54h-6v6h6v-6zM24 66h-6v6h6v-6zM12 78v-54h60v-18q0 -6 -6 -6h-30v-12l-9 9l-9 -9v12h-12q-6 0 -6 6v72q0 6 6 6h42v-6h-36zM66 18h-60
-v-12h12v6h18v-6h30v12zM18 36h6v-6h-6v6zM24 42h-6v6h6v-6z" />
-    <glyph glyph-name="diff" unicode="&#xf04d;" 
-d="M36 42h12v-6h-12v-12h-6v12h-12v6h12v12h6v-12zM18 6v6h30v-6h-30zM45 72l21 -21v-57q0 -6 -6 -6h-54q-6 0 -6 6v72q0 6 6 6h39zM60 48l-18 18h-36v-72h54v54zM51 84l27 -27v-51h-6v48l-24 24h-30v6h33z" />
-    <glyph glyph-name="eye" unicode="&#xf04e;" 
-d="M48 72q9 0 17 -3.5t13 -9t9.5 -11t6.5 -8.5l2 -4q-2 -4 -6 -10t-16 -16t-26 -10q-8 0 -16 3.5t-13.5 9t-10 11t-6.5 8.5l-2 4q2 4 6 10t16.5 16t25.5 10zM48 12q10 0 17 7t7 17t-7 17t-17 7t-17 -7t-7 -17t7 -17t17 -7zM60 36q0 -12 -12 -12t-12 12t12 12t12 -12z" />
-    <glyph glyph-name="comment-discussion" unicode="&#xf04f;" 
-d="M90 78q6 0 6 -6v-36q0 -6 -6 -6h-6v-18l-18 18h-6v-12q0 -6 -6 -6h-24l-18 -18v18h-6q-6 0 -6 6v36q0 6 6 6h24v12q0 6 6 6h54zM54 18v12h-18q-6 0 -6 6v18h-24v-36h12v-9l9 9h27zM90 36v36h-54v-36h33l9 -9v9h12z" />
-    <glyph glyph-name="mail-reply" unicode="&#xf051;" 
-d="M36 69v-18q15 -2 25.5 -13.5t10.5 -30.5q-3 13 -14.5 19.5t-21.5 6.5v-18l-36 27z" />
-    <glyph glyph-name="primitive-dot" unicode="&#xf052;" 
-d="M0 36q0 10 7 17t17 7t17 -7t7 -17t-7 -17t-17 -7t-17 7t-7 17z" />
-    <glyph glyph-name="primitive-square" unicode="&#xf053;" 
-d="M48 12h-48v48h48v-48z" />
-    <glyph glyph-name="device-camera" unicode="&#xf056;" 
-d="M90 66q6 0 6 -6v-54q0 -6 -6 -6h-84q-6 0 -6 6v54q0 6 6 6q0 6 6 6h24q6 0 6 -6h48zM36 54v6h-24v-6h24zM63 12q9 0 15 6t6 15t-6 15t-15 6t-15 -6t-6 -15t6 -15t15 -6zM78 33q0 -15 -15 -15q-6 0 -10.5 4.5t-4.5 10.5t4.5 10.5t10.5 4.5t10.5 -4.5t4.5 -10.5z" />
-    <glyph glyph-name="device-camera-video" unicode="&#xf057;" 
-d="M91 71q2 2 3.5 1t1.5 -3v-60q0 -2 -1.5 -3t-3.5 1l-31 21v-16q0 -6 -6 -6h-48q-6 0 -6 6v54q0 6 6 6h48q6 0 6 -6v-16z" />
-    <glyph glyph-name="pencil" unicode="&#xf058;" 
-d="M0 12l48 48l18 -18l-48 -48h-18v18zM18 0v6h-6v6h-6v-12h12zM80 56l-8 -8l-18 18l8 8q4 4 8 0l10 -10q4 -4 0 -8z" />
-    <glyph glyph-name="info" unicode="&#xf059;" 
-d="M38 50q-2 2 -2 4.5t2 4t4.5 1.5t4 -2t1.5 -4.5t-2 -3.5q-2 -2 -4 -2t-4 2zM48 36v-18h6q0 -2 -2 -4t-4 -2h-6q-2 0 -4 2t-2 4v18h-6q0 2 2 4t4 2h6q2 0 4 -2t2 -4zM42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5
-t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 30t12.5 29.5t29.5 12z" />
-    <glyph glyph-name="triangle-right" unicode="&#xf05a;" 
-d="M0 0v72l36 -36z" />
-    <glyph glyph-name="triangle-down" unicode="&#xf05b;" 
-d="M0 54h72l-36 -36z" />
-    <glyph glyph-name="link" unicode="&#xf05c;" 
-d="M24 30h6v-6h-6q-7 0 -12.5 6.5t-5.5 14.5t5.5 14.5t12.5 6.5h24q7 0 12.5 -6.5t5.5 -14.5q0 -14 -12 -19v6q6 5 6 13q0 6 -4 10.5t-8 4.5h-24q-4 0 -8 -4.5t-4 -10.5t3.5 -10.5t8.5 -4.5zM78 48q7 0 12.5 -6.5t5.5 -14.5t-5.5 -14.5t-12.5 -6.5h-24q-7 0 -12.5 6.5
-t-5.5 14.5q0 14 12 19v-6q-6 -5 -6 -13q0 -6 4 -10.5t8 -4.5h24q4 0 8 4.5t4 10.5t-3.5 10.5t-8.5 4.5h-6v6h6z" />
-    <glyph glyph-name="plus" unicode="&#xf05d;" 
-d="M72 30h-30v-30h-12v30h-30v12h30v30h12v-30h30v-12z" />
-    <glyph glyph-name="three-bars" unicode="&#xf05e;" 
-d="M68 30h-64q-4 0 -4 6t4 6h64q4 0 4 -6t-4 -6zM68 54h-64q-4 0 -4 6t4 6h64q4 0 4 -6t-4 -6zM4 18h64q4 0 4 -6t-4 -6h-64q-4 0 -4 6t4 6z" />
-    <glyph glyph-name="code" unicode="&#xf05f;" 
-d="M57 66l27 -30l-27 -30l-9 9l21 21l-21 21zM27 66l9 -9l-21 -21l21 -21l-9 -9l-27 30z" />
-    <glyph glyph-name="location" unicode="&#xf060;" 
-d="M36 84q15 0 25.5 -9.5t10.5 -23.5q0 -12 -9 -28t-18 -25l-9 -10q-36 36 -36 63q0 14 10.5 23.5t25.5 9.5zM36 -3q30 32 30 54q0 11 -8.5 19t-21.5 8q-12 0 -21 -8t-9 -19q0 -22 30 -54zM48 51q0 -12 -12 -12t-12 12t12 12t12 -12z" />
-    <glyph glyph-name="list-unordered" unicode="&#xf061;" 
-d="M12 6q0 -6 -4 -6h-4q-4 0 -4 6t4 6h4q4 0 4 -6zM28 60q-4 0 -4 6t4 6h40q4 0 4 -6t-4 -6h-40zM8 42q4 0 4 -6t-4 -6h-4q-4 0 -4 6t4 6h4zM8 72q4 0 4 -6t-4 -6h-4q-4 0 -4 6t4 6h4zM68 42q4 0 4 -6t-4 -6h-40q-4 0 -4 6t4 6h40zM68 12q4 0 4 -6t-4 -6h-40q-4 0 -4 6t4 6
-h40z" />
-    <glyph glyph-name="list-ordered" unicode="&#xf062;" 
-d="M72 6q0 -6 -4 -6h-40q-4 0 -4 6t4 6h40q4 0 4 -6zM28 60q-4 0 -4 6t4 6h40q4 0 4 -6t-4 -6h-40zM68 42q4 0 4 -6t-4 -6h-40q-4 0 -4 6t4 6h40zM12 78v-19h6v-5h-17v5h5v13h-4v4q4 1 6 2h4zM14 29h-1h4l1 -5h-18v3q10 10 10 13t-3 3q-1 0 -4 -2l-3 3q4 4 8 4q8 0 8 -8
-q0 -4 -6 -11h4zM13 7q5 -2 5 -6q0 -7 -10 -7q-5 0 -8 3l3 4q2 -2 5 -2t3 2q0 3 -6 3v5q5 0 5 2t-2 2t-4 -1l-3 3q3 4 7 4q9 0 9 -7q0 -4 -4 -5z" />
-    <glyph glyph-name="quote" unicode="&#xf063;" 
-d="M37 63q-22 -14 -22 -35h3q6 0 10.5 -4t4.5 -10q0 -16 -15 -16q-18 0 -18 26q0 33 30 50zM79 63q-22 -14 -22 -35h3q4 0 7.5 -1.5t5.5 -5t2 -7.5q0 -16 -15 -16q-18 0 -18 26q0 33 30 50z" />
-    <glyph glyph-name="versions" unicode="&#xf064;" 
-d="M78 66q6 0 6 -6v-48q0 -6 -6 -6h-36q-6 0 -6 6v48q0 6 6 6h36zM72 18v36h-24v-36h24zM24 60h6v-6h-6v-36h6v-6h-6q-6 0 -6 6v36q0 6 6 6zM6 54h6v-6h-6v-24h6v-6h-6q-6 0 -6 6v24q0 6 6 6z" />
-    <glyph glyph-name="calendar" unicode="&#xf068;" 
-d="M78 72q6 0 6 -6v-66q0 -6 -6 -6h-66q-6 0 -6 6v66q0 6 6 6h6v-9q0 -3 3 -3h12q3 0 3 3v9h18v-9q0 -3 3 -3h12q3 0 3 3v9h6zM78 0v54h-66v-54h66zM30 66h-6v12h6v-12zM66 66h-6v12h6v-12zM36 42h-6v6h6v-6zM48 42h-6v6h6v-6zM60 42h-6v6h6v-6zM72 42h-6v6h6v-6zM24 30h-6
-v6h6v-6zM36 30h-6v6h6v-6zM48 30h-6v6h6v-6zM60 30h-6v6h6v-6zM72 30h-6v6h6v-6zM24 18h-6v6h6v-6zM36 18h-6v6h6v-6zM48 18h-6v6h6v-6zM60 18h-6v6h6v-6zM72 18h-6v6h6v-6zM24 6h-6v6h6v-6zM36 6h-6v6h6v-6zM48 6h-6v6h6v-6zM60 6h-6v6h6v-6z" />
-    <glyph glyph-name="lock" unicode="&#xf06a;" 
-d="M24 6h-6v6h6v-6zM72 42v-42q0 -6 -6 -6h-60q-6 0 -6 6v42q0 6 6 6h6v12q0 10 7 17t17 7t17 -7t7 -17v-12h6q6 0 6 -6zM23 48h26v12q0 5 -3.5 9t-9 4t-9.5 -4t-4 -9v-12zM66 42h-54v-42h54v42zM24 36v-6h-6v6h6zM24 24v-6h-6v6h6z" />
-    <glyph glyph-name="diff-added" unicode="&#xf06b;" 
-d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM36 30h-18v12h18v18h12v-18h18v-12h-18v-18h-12v18z" />
-    <glyph glyph-name="diff-removed" unicode="&#xf06c;" 
-d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM66 30h-48v12h48v-12z" />
-    <glyph glyph-name="diff-modified" unicode="&#xf06d;" 
-d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM24 36q0 7 5.5 12.5t12.5 5.5t12.5 -5.5t5.5 -12.5t-5.5 -12.5t-12.5 -5.5t-12.5 5.5t-5.5 12.5z" />
-    <glyph glyph-name="diff-renamed" unicode="&#xf06e;" 
-d="M36 30h-18v12h18v18l30 -24l-30 -24v18zM84 72v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72q6 0 6 -6zM78 72h-72v-72h72v72z" />
-    <glyph glyph-name="horizontal-rule" unicode="&#xf070;" 
-d="M6 42v-12h-6v36h6v-18h12v18h6v-36h-6v12h-12zM60 30h-6v12h6v-12zM60 48h-6v12h6v-12zM42 48h12v-6h-12v-12h-6v36h18v-6h-12v-12zM0 6v12h60v-12h-60z" />
-    <glyph glyph-name="arrow-small-right" unicode="&#xf071;" 
-d="M36 36l-24 -18v12h-12v12h12v12z" />
-    <glyph glyph-name="milestone" unicode="&#xf075;" 
-d="M48 72h-12v12h12v-12zM72 42h-60q-6 0 -6 6v12q0 6 6 6h60l12 -12zM48 60h-12v-12h12v12zM36 -12v48h12v-48h-12z" />
-    <glyph glyph-name="checklist" unicode="&#xf076;" 
-d="M96 33l-36 -36l-18 18l9 9l9 -9l27 27zM34 11l5 -5h-27q-6 0 -6 6v54q0 6 6 6h42q6 0 6 -6v-39l-5 5q-4 4 -8 0l-13 -13q-4 -4 0 -8zM24 60h30v6h-30v-6zM24 48h30v6h-30v-6zM24 36h18v6h-18v-6zM18 30h-6v-6h6v6zM18 42h-6v-6h6v6zM18 54h-6v-6h6v6zM18 66h-6v-6h6v6z
-" />
-    <glyph glyph-name="megaphone" unicode="&#xf077;" 
-d="M60 78q6 0 6 -6v-66q0 -6 -6 -6q-2 0 -3 1q-2 1 -5.5 3.5t-8 5.5l-7.5 5v-21h-12v28q-4 1 -6 2q-18 0 -18 15t18 15q4 1 11.5 5.5t16.5 10.5t11 7q1 1 3 1zM60 6v66l-9 -6q-1 0 -2 -1l-1 -1v-50q1 0 2 -1l1 -1q7 -5 9 -6zM72 42h24v-6h-24v6zM72 30l24 -12v-6l-24 12v6z
-M96 66v-6l-24 -12v6z" />
-    <glyph glyph-name="chevron-right" unicode="&#xf078;" 
-d="M45 36l-30 -30l-9 9l22 21l-22 21l9 9z" />
-    <glyph glyph-name="bookmark" unicode="&#xf07b;" 
-d="M54 84q6 0 6 -6v-90l-30 19l-30 -19v90q0 6 6 6h48zM49 58q2 2 0 2h-14l-4 13h-2l-4 -13h-14q-2 0 0 -2l11 -8l-4 -13q-1 -2 1 -1l11 8l11 -8h1.5t-0.5 1l-4 13z" />
-    <glyph glyph-name="settings" unicode="&#xf07c;" 
-d="M24 42h-6v30h6v-30zM18 0v18h6v-18h-6zM48 0v36h6v-36h-6zM78 0v12h6v-12h-6zM84 72v-36h-6v36h6zM54 72v-12h-6v12h6zM30 36q6 0 6 -6t-6 -6h-18q-6 0 -6 6t6 6h18zM60 54q6 0 6 -6t-6 -6h-18q-6 0 -6 6t6 6h18zM90 30q6 0 6 -6t-6 -6h-18q-6 0 -6 6t6 6h18z" />
-    <glyph glyph-name="dashboard" unicode="&#xf07d;" 
-d="M54 54h-6v6h6v-6zM78 36v-6h-6v6h6zM36 54v-6h-6v6h6zM30 36v-6h-6v6h6zM96 69l-36 -33v-6q0 -6 -6 -6h-6q-6 0 -6 6v6q0 6 6 6h6l39 30zM86 44l6 6q4 -8 4 -17q0 -19 -13 -32t-32 -13t-32 13t-13 32t13 32t32 13q14 0 25 -8l-5 -5q-9 5 -20 5q-15 0 -26 -11t-11 -26
-t11 -26t26 -11q10 0 18.5 5t13.5 13.5t5 18.5q0 6 -2 11z" />
-    <glyph glyph-name="history" unicode="&#xf07e;" 
-d="M48 6h-12v42h30v-12h-18v-30zM42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5v6h8v-6q0 -14 10 -24t24 -10t24 10t10 24t-10 24t-24 10q-17 0 -27 -13l9 -9h-24v24l10 -10q12 16 32 16z" />
-    <glyph glyph-name="link-external" unicode="&#xf07f;" 
-d="M66 24h6v-18q0 -6 -6 -6h-60q-6 0 -6 6v60q0 6 6 6h18v-6h-18v-60h60v18zM36 72h36v-36l-14 14l-19 -20l-9 9l20 19z" />
-    <glyph glyph-name="mute" unicode="&#xf080;" 
-d="M48 67v-62q0 -3 -3 -4t-5 1l-22 22h-12q-6 0 -6 6v12q0 6 6 6h12l22 22q2 2 5 1t3 -4zM93 48l-12 -12l12 -12l-6 -6l-12 12l-12 -12l-6 6l12 12l-12 12l6 6l12 -12l12 12z" />
-    <glyph glyph-name="x" unicode="&#xf081;" 
-d="M45 36l22 -22l-9 -9l-22 22l-22 -22l-9 9l22 22l-22 22l9 9l22 -22l22 22l9 -9z" />
-    <glyph glyph-name="circle-slash" unicode="&#xf084;" 
-d="M42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5zM42 70q-14 0 -24 -10t-10 -24q0 -11 7 -21l48 48q-10 7 -21 7zM42 2q14 0 24 10t10 24q0 11 -7 21l-48 -48q10 -7 21 -7z" />
-    <glyph glyph-name="pulse" unicode="&#xf085;" 
-d="M69 36h15v-12h-20l-10 9l-22 -31l-5 33l-5 -11h-22v12h14l19 38l7 -41l13 19z" />
-    <glyph glyph-name="sync" unicode="&#xf087;" 
-d="M61 40l11 -2q1 -16 -10 -27q-10 -10 -23.5 -10.5t-24.5 7.5l-7 -8l-4 25l26 -3l-7 -7q17 -12 32 3q9 9 7 22zM18 54q-9 -9 -7 -22l-11 2q-1 16 10 27q10 10 23.5 10.5t24.5 -7.5l7 8l4 -25l-26 3l7 7q-17 12 -32 -3z" />
-    <glyph glyph-name="telescope" unicode="&#xf088;" 
-d="M48 30l18 -36h-6l-12 24v-30h-6v36l-12 -30h-6l12 30zM42 84v-6h-6v6h6zM30 66v-6h-6v6h6zM12 78v-6h-6v6h6zM4 30l7 5l7 -12l-8 -4q-3 -1 -4 1l-3 6q-1 2 1 4zM51 62l11 -18l-38 -18l-8 13zM76 55q2 -3 -1 -5l-8 -3l-11 19l7 5q3 2 5 -1z" />
-    <glyph glyph-name="gist-secret" unicode="&#xf08c;" 
-d="M48 21l6 -21h-24l6 21l-4 9h20zM60 48l12 -6h-60l12 6h36zM54 72l6 -18h-36l6 18l12 -6zM78 26q6 -2 4 -8l-3 -14q-1 -4 -6 -4h-19l12 18l-6 12zM24 30l-6 -12l12 -18h-19q-5 0 -6 4l-3 14q-2 6 4 8z" />
-    <glyph glyph-name="home" unicode="&#xf08d;" 
-d="M96 30h-12l-6 -30q0 -6 -6 -6h-48q-6 0 -6 6l-6 30h-12l48 48l18 -18v12h12v-24zM72 0l7 38l-31 31l-31 -31l7 -38h18v24h12v-24h18z" />
-    <glyph glyph-name="stop" unicode="&#xf08f;" 
-d="M60 78l24 -24v-36l-24 -24h-36l-24 24v36l24 24h36zM78 21v30l-21 21h-30l-21 -21v-30l21 -21h30zM36 60h12v-30h-12v30zM36 24h12v-12h-12v12z" />
-    <glyph glyph-name="bug" unicode="&#xf091;" 
-d="M66 24v-6l19 -6l-2 -6l-17 6v-6q0 -6 -6 -6h-6l-6 6v42h-6v-42l-6 -6h-6q-6 0 -6 6v6l-17 -6l-2 6l19 6v6h-18v6h18v6l-19 6l2 6l17 -6v6q0 6 6 6v6q0 5 5 6l-6 6h-11v6h13l12 -12h4l12 12h13v-6h-11l-6 -6q5 -1 5 -6v-6q6 0 6 -6v-6l17 6l2 -6l-19 -6v-6h18v-6h-18z
-M54 54v6h-18v-6h18z" />
-    <glyph glyph-name="logo-github" unicode="&#xf092;" 
-d="M40 58h-1h1v0zM40 58v0v-3v-1h-3q-6 0 -6 6v7h-3v3l3 1v5h5v-5h3h1v-4h-1h-3v-7q0 -2 2 -2h1h1zM90 63q0 5 -3 4l-2 -1v-7q1 -1 2 -1q3 0 3 5zM95 63q0 -9 -6 -9l-6 2v-1v-1h-3l-1 1v23l1 1h4l1 -1v-8q1 2 4 2q6 0 6 -9zM77 71v0v-16v-1h-3l-1 1v1q-2 -2 -5 -2q-6 0 -6 6
-v11h5v-10q0 -3 2 -3l3 1v12h5zM26 71v0v-16v-1h-4q-1 0 -1 1v16h1h4zM24 78q3 0 3 -3t-3 -3t-3 3t3 3zM59 79v-1v-23v-1h-4l-1 1v10h-7v-10v-1h-5v1v23v1h5v-1v-8h7v8l1 1h4zM19 68v-12q-3 -2 -7 -2q-12 0 -12 13t11 13q5 0 7 -2l-1 -4q-3 1 -5 1q-7 0 -7 -8t6 -8h3v5h-4v4
-v1h8z" />
-    <glyph glyph-name="file-binary" unicode="&#xf094;" 
-d="M24 12h6v-6h-18v6h6v12h-6v6h12v-18zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-72h60v54zM48 60v-18h6v-6h-18v6h6v12h-6v6h12zM12 60h18v-24h-18v24zM18 42h6v12h-6v-12zM36 30h18v-24h-18v24zM42 12h6v12h-6v-12z" />
-    <glyph glyph-name="database" unicode="&#xf096;" 
-d="M36 -6q-36 0 -36 12v12q0 1 1 3q7 -9 35 -9t35 9q1 -2 1 -3v-12q0 -12 -36 -12zM36 18q-36 0 -36 12v12q0 1 1 2v1q7 -9 35 -9t35 9v-1q1 -1 1 -2v-12q0 -12 -36 -12zM36 42q-36 0 -36 12v6v6q0 12 36 12t36 -12v-6v-6q0 -12 -36 -12zM36 72q-24 0 -24 -6t24 -6t24 6
-t-24 6z" />
-    <glyph glyph-name="server" unicode="&#xf097;" 
-d="M66 48q6 0 6 -6v-12q0 -6 -6 -6h-60q-6 0 -6 6v12q0 6 6 6h60zM12 30v12h-6v-12h6zM24 30v12h-6v-12h6zM36 30v12h-6v-12h6zM48 30v12h-6v-12h6zM66 78q6 0 6 -6v-12q0 -6 -6 -6h-60q-6 0 -6 6v12q0 6 6 6h60zM12 60v12h-6v-12h6zM24 60v12h-6v-12h6zM36 60v12h-6v-12h6z
-M48 60v12h-6v-12h6zM66 66v6h-6v-6h6zM66 18q6 0 6 -6v-12q0 -6 -6 -6h-60q-6 0 -6 6v12q0 6 6 6h60zM12 0v12h-6v-12h6zM24 0v12h-6v-12h6zM36 0v12h-6v-12h6zM48 0v12h-6v-12h6z" />
-    <glyph glyph-name="diff-ignored" unicode="&#xf099;" 
-d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM27 12h-9v9l39 39h9v-9z" />
-    <glyph glyph-name="ellipsis" unicode="&#xf09a;" 
-d="M66 54q6 0 6 -6v-24q0 -6 -6 -6h-60q-6 0 -6 6v24q0 6 6 6h60zM24 30v12h-12v-12h12zM42 30v12h-12v-12h12zM60 30v12h-12v-12h12z" />
-    <glyph glyph-name="no-newline" unicode="&#xf09c;" 
-d="M96 54v-18q0 -6 -6 -6h-18v-12l-18 18l18 18v-12h12v12h12zM48 36q0 -10 -7 -17t-17 -7t-17 7t-7 17t7 17t17 7t17 -7t7 -17zM9 26l25 25q-5 3 -10 3q-7 0 -12.5 -5.5t-5.5 -12.5q0 -5 3 -10zM42 36q0 5 -3 10l-25 -25q5 -3 10 -3q7 0 12.5 5.5t5.5 12.5z" />
-    <glyph glyph-name="hubot" unicode="&#xf09d;" 
-d="M18 48h48q6 0 6 -6v-12q0 -6 -6 -6h-48q-6 0 -6 6v12q0 6 6 6zM66 38v4h-4l-8 -8l-8 8h-8l-8 -8l-8 8h-4v-4l8 -8h8l8 8l8 -8h8zM30 18h24v-6h-24v6zM42 72q17 0 29.5 -11.5t12.5 -27.5v-27q0 -6 -6 -6h-72q-6 0 -6 6v27q0 16 12.5 27.5t29.5 11.5zM78 6v27
-q0 14 -10.5 24t-25.5 10t-25.5 -10t-10.5 -24v-27h72z" />
-    <glyph glyph-name="arrow-small-up" unicode="&#xf09f;" 
-d="M18 54l18 -24h-12v-12h-12v12h-12z" />
-    <glyph glyph-name="arrow-small-down" unicode="&#xf0a0;" 
-d="M24 42h12l-18 -24l-18 24h12v12h12v-12z" />
-    <glyph glyph-name="arrow-small-left" unicode="&#xf0a1;" 
-d="M24 42h12v-12h-12v-12l-24 18l24 18v-12z" />
-    <glyph glyph-name="chevron-up" unicode="&#xf0a2;" 
-d="M60 24l-9 -9l-21 23l-21 -23l-9 9l30 30z" />
-    <glyph glyph-name="chevron-down" unicode="&#xf0a3;" 
-d="M30 18l-30 30l9 9l21 -23l21 23l9 -9z" />
-    <glyph glyph-name="chevron-left" unicode="&#xf0a4;" 
-d="M33 66l9 -9l-22 -21l22 -21l-9 -9l-30 30z" />
-    <glyph glyph-name="triangle-up" unicode="&#xf0aa;" 
-d="M72 18h-72l36 36z" />
-    <glyph glyph-name="git-compare" unicode="&#xf0ac;" 
-d="M30 12v12l18 -18l-18 -18v12h-6q-7 0 -12.5 5.5t-5.5 12.5v38q-6 3 -6 10q0 12 12 12t12 -12q0 -7 -6 -10v-38q0 -2 2 -4t4 -2h6zM12 73q-7 0 -7 -7t7 -7t7 7t-7 7zM78 16q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v38q0 2 -2 4t-4 2h-6v-12l-18 18l18 18v-12h6
-q7 0 12.5 -5.5t5.5 -12.5v-38zM72 -1q7 0 7 7t-7 7t-7 -7t7 -7z" />
-    <glyph glyph-name="logo-gist" unicode="&#xf0ad;" 
-d="M18 50v4h14v-22q-6 -2 -14 -2q-18 0 -18 23t18 23q7 0 12 -2v-4q-6 3 -12 3q-14 0 -14 -19.5t14 -19.5q7 0 9 1v15h-9zM43 36v0q0 -3 2 -3v-3q-6 0 -6 7v24h4v-25zM44 70q0 -3 -3 -3t-3 3t3 3t3 -3zM60 48v0q11 -1 11 -9q0 -9 -12 -9q-5 0 -9 2v3q4 -1 9 -1q8 0 8 5t-7 5
-q-11 1 -11 8q0 9 12 9q5 0 8 -1v-4q-4 1 -8 1q-8 0 -8 -5q0 -4 7 -4zM93 57v0h-9v-18q0 -5 6 -5h2v-4h-3q-9 0 -9 8v19h-6v2l6 2v8l4 1v-9h9v-4z" />
-    <glyph glyph-name="file-symlink-file" unicode="&#xf0b0;" 
-d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 0v54l-18 18h-42v-72h60zM36 57l24 -18l-24 -18v12q-9 0 -15.5 -4t-8.5 -14q0 15 6.5 22.5t17.5 7.5v12z" />
-    <glyph glyph-name="file-symlink-directory" unicode="&#xf0b1;" 
-d="M78 60q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h30q6 0 6 -6v-6h36zM6 66v-6h30v6h-30zM42 12l24 18l-24 18v-12q-11 0 -17.5 -7.5t-6.5 -22.5q2 10 8.5 14t15.5 4v-12z" />
-    <glyph glyph-name="squirrel" unicode="&#xf0b2;" 
-d="M72 78q10 0 17 -7t7 -17q0 -12 -7.5 -14.5t-10.5 2.5q-5 4 -8 -3q-2 -4 2 -9q6 -8 6 -15q0 -21 -30 -21h-36q0 6 6 6h6q-19 17 0 24q-7 0 -11.5 3t-6.5 3q-5 0 -4.5 3t4.5 3q2 0 8.5 -3t7.5 1q1 1 0.5 3.5t-3.5 2.5q-12 -2 -15 3q0 7 3 11.5t5 6.5l3 1l1 4q2 0 3 -2l2 2
-l3 -4q7 0 15.5 -10t8.5 -28q1 6 1 11.5v9t-0.5 8t-0.5 7.5q0 8 7 13t17 5zM15 48q3 0 3 3t-3 3t-3 -3t3 -3z" />
-    <glyph glyph-name="globe" unicode="&#xf0b6;" 
-d="M42 78q17 0 29.5 -12.5t12.5 -29.5q0 -15 -9.5 -26.5t-23.5 -14.5l1.5 2t2.5 3q2 1 8 5q1 1 2 3l3 3q1 1 4.5 6.5t2.5 6.5q-1 2 -4.5 2h-3.5l-0.5 1.5t-1 2t-2.5 1t-5 1.5q-3 2 -6 1l-2 -1.5l-2 -1.5q-6 1 -6 4q0 2 -3 3v1q1 2 0 3l-3 -2t-4 1q-2 5 4 6q2 1 4 0.5
-t2.5 -1.5t1.5 -1v2q-1 1 -1 2t1.5 2l1.5 1q-1 5 3 5q-1 1 0 2t1 0l2 2q-2 2 1 4q-4 3 -5 3q-1 1 -1.5 0.5t-1.5 0.5q-1 0 -1.5 0.5t-1.5 -0.5q1 -2 1 -3.5t-3 -0.5q0 1 -0.5 1t-1.5 1q-2 1 -1 2q1 0 2 0.5t0 1.5l1 1h-1q-2 0 -3.5 1l-1.5 1l-2 -1h-2q-5 2 -7 0l-7 -5l5 1
-q1 0 1 -2.5v-3.5l-1 -1q0 -1 -1 -3t-1 -3t1 -5q2 -3 2 -4v-1q2 -3 2 -2.5t-1 2.5l-1 2h1l1 -2q0 -1 1 -1q1 -2 1 -3q0 -3 3 -4q6 -2 8 -3h1t1 -0.5t0.5 -1l1.5 -1.5q2 -2 3 -2l1 1q2 0 2 -1v-1.5v-0.5q-2 -5 -2 -6q1 -2 1 -3q1 -1 2 -3t3 -3q3 -2 -1 -11q-1 -1 -1 -3.5
-t1 -2.5q-4 -1 -8 -1q-17 0 -29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5zM52 39q-3 -1 -5 0l-4 2h-1l1 1q2 0 4.5 -1.5l2.5 -1.5l1 0.5t1 -0.5v0zM38 74l1 1v0h3zM45 68q2 0 1 2q0 1 -2 2h-1q0 1 -2 1h-2l1 -1q5 0 2 -3zM54 69q1 0 0 2q-1 1 -1 2q0 2 -4 3h-6q-1 -1 0 -2h1
-q2 0 5 -2q4 -4 5 -3z" />
-    <glyph glyph-name="unmute" unicode="&#xf0ba;" 
-d="M72 36q0 -10 -7 -17l-4 4q5 5 5 13t-5 13l4 4q7 -7 7 -17zM46 70q2 2 5 1t3 -4v-62q0 -3 -3 -4t-5 1l-22 22h-12q-6 0 -6 6v12q0 6 6 6h12zM82 70q14 -14 14 -34t-14 -34l-4 4q12 12 12 29.5t-12 30.5zM74 61q10 -10 10 -25t-10 -26l-5 5q9 8 9 20.5t-9 21.5z" />
-    <glyph glyph-name="mention" unicode="&#xf0be;" 
-d="M39 -6q-17 0 -28 10.5t-11 29.5q0 22 14 36t33 14q17 0 27 -10.5t10 -27.5q0 -13 -7 -21.5t-16 -8.5q-10 0 -11 9q-7 -7 -14 -7q-14 0 -14 15q0 10 6.5 18.5t15.5 8.5q6 0 9 -5l1 4h6l-4 -23q-3 -13 6 -13q6 0 10.5 6.5t4.5 16.5t-3.5 17t-10.5 11t-17 4q-16 0 -28 -12
-t-12 -31q0 -16 9.5 -25.5t24.5 -9.5q10 0 18 5l3 -5q-9 -6 -22 -6zM38 24q5 0 10 6l3 18q-3 5 -7 5q-6 0 -10.5 -6t-4.5 -13q0 -10 9 -10z" />
-    <glyph glyph-name="package" unicode="&#xf0c4;" 
-d="M6 58q0 5 4 6l40 11h2l40 -11q4 -1 4 -6v-44q0 -5 -4 -6l-40 -11h-2l-40 11q-4 1 -4 6v44zM48 4v40l-36 10v-41zM12 60l39 -10l15 4l-39 10zM90 13v41l-12 -3v-15l-12 -3v15l-12 -4v-40zM78 57l12 3l-39 10l-12 -3z" />
-    <glyph glyph-name="browser" unicode="&#xf0c5;" 
-d="M30 66v-6h6v6h-6zM18 66v-6h6v6h-6zM6 66v-6h6v6h-6zM78 6v48h-72v-48h72zM78 60v6h-36v-6h36zM84 66v-60q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h72q6 0 6 -6z" />
-    <glyph glyph-name="terminal" unicode="&#xf0c8;" 
-d="M42 24h24v-6h-24v6zM24 18l-4 4l13 14l-13 14l4 4l18 -18zM84 66v-60q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h72q6 0 6 -6zM78 66h-72v-60h72v60z" />
-    <glyph glyph-name="markdown" unicode="&#xf0c9;" 
-d="M89 66q7 0 7 -7v-46q0 -7 -7 -7h-82q-7 0 -7 7v46q0 7 7 7h82zM54 18v36h-12l-9 -12l-9 12h-12v-36h12v18l9 -12l9 12v-18h12zM72 15l15 21h-9v18h-12v-18h-9z" />
-    <glyph glyph-name="dash" unicode="&#xf0ca;" 
-d="M0 42h48v-12h-48v12z" />
-    <glyph glyph-name="fold" unicode="&#xf0cc;" 
-d="M42 30l18 -18h-12v-18h-12v18h-12zM60 66l-18 -18l-18 18h12v18h12v-18h12zM84 54l-15 -15l15 -15q0 -6 -6 -6h-15l-6 6h18l-12 12h-42l-12 -12h18l-6 -6h-15q-6 0 -6 6l15 15l-15 15q0 6 6 6h15l6 -6h-18l12 -12h42l12 12h-18l6 6h15q6 0 6 -6z" />
-    <glyph glyph-name="inbox" unicode="&#xf0cf;" 
-d="M84 30v-30q0 -6 -6 -6h-72q-6 0 -6 6v30l7 43q1 5 6 5h58q5 0 6 -5zM64 27q2 3 6 3h8l-6 42h-60l-6 -42h8q4 0 6 -3l2 -6q2 -3 6 -3h28q4 0 6 3z" />
-    <glyph glyph-name="trashcan" unicode="&#xf0d0;" 
-d="M66 72q6 0 6 -6v-6q0 -6 -6 -6v-54q0 -6 -6 -6h-42q-6 0 -6 6v54q-6 0 -6 6v6q0 6 6 6h12q0 6 6 6h18q6 0 6 -6h12zM60 0v54h-6v-48h-6v48h-6v-48h-6v48h-6v-48h-6v48h-6v-54h42zM66 60v6h-54v-6h54z" />
-    <glyph glyph-name="paintcan" unicode="&#xf0d1;" 
-d="M36 84q15 0 25.5 -10.5t10.5 -25.5v-6q0 -6 -6 -6v-30q0 -12 -30 -12t-30 12v30q-6 0 -6 6v6q0 15 10.5 25.5t25.5 10.5zM54 24q6 0 6 6v11q-9 -5 -24 -5t-24 5v-11q0 -6 6 -6v-6q0 -6 6 -6t6 6v3q0 3 3 3t3 -3v-12q0 -3 3 -3t3 3v15q0 3 3 3t3 -3v-3q0 -3 3 -3t3 3v3z
-M36 42q16 0 22 6q-6 6 -22 6t-22 -6q6 -6 22 -6zM36 60q30 0 30 -12q0 12 -9 21t-21 9t-21 -9t-9 -21q0 12 30 12z" />
-    <glyph glyph-name="flame" unicode="&#xf0d2;" 
-d="M30 82v0q15 -9 17 -21t-5 -16q-7 -7 0 -11q4 -2 7.5 0.5t3.5 7.5q-1 15 11 17q-2 -5 -1.5 -9.5t2.5 -7t4.5 -7.5t2.5 -10q0 -7 -3 -13.5t-9.5 -12.5t-16.5 -7q7 3 7 10q0 6 -4 9t-10 1t-10 3.5t-1 14.5q-11 -10 -10 -22.5t12 -17.5q-15 3 -21.5 12t-5.5 18t5 16
-q4 5 12 11.5t10 8.5q9 10 3 26z" />
-    <glyph glyph-name="briefcase" unicode="&#xf0d3;" 
-d="M54 60h24q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v48q0 6 6 6h24v6q0 6 6 6h12q6 0 6 -6v-6zM36 66v-6h12v6h-12zM78 30v24h-6v-18h-60v18h-6v-24h30v-6h12v6h30z" />
-    <glyph glyph-name="plug" unicode="&#xf0d4;" 
-d="M84 48h-24v-18h24v-6h-24v-12h-12v6h-12q-9 0 -12 12l-6 6q-12 0 -12 -12v-12h-6v12q0 7 5.5 12.5t12.5 5.5l6 6q2 12 12 12h12v6h12v-12h24v-6z" />
-    <glyph glyph-name="circuit-board" unicode="&#xf0d6;" 
-d="M18 54q0 6 6 6t6 -6t-6 -6t-6 6zM66 54q0 -6 -6 -6t-6 6t6 6t6 -6zM66 18q0 -6 -6 -6t-6 6t6 6t6 -6zM78 78q6 0 6 -6v-72q0 -6 -6 -6h-54l18 18h7q3 -7 11 -7q6 0 10 5t2 11q-1 7 -9 9q-9 2 -14 -6h-13l-30 -30q-6 0 -6 6v72q0 6 6 6h12v-13q-9 -4 -6 -14q2 -7 9 -9
-q9 -3 14 6h14q3 -7 11 -7q6 0 10 5t2 11q-1 7 -9 9q-9 2 -14 -6h-14q-2 3 -5 5v13h48z" />
-    <glyph glyph-name="mortar-board" unicode="&#xf0d7;" 
-d="M47 29v0h2l23 7v-15q0 -9 -24 -9t-24 9q0 2 -6 19l-4 14q3 -3 10 -18zM49 67l45 -14q2 -1 2 -2.5t-2 -1.5l-45 -15h-2l-29 10v-9q3 -2 3 -5q0 -2 -1 -3q1 -1 1 -3v-16q0 -2 -6 -2t-6 2v16q0 1 1 3q-1 1 -1 3q0 3 3 5v11l-10 3q-2 0 -2 1.5t2 2.5l45 14h2zM48 48q6 0 6 3
-t-6 3t-6 -3t6 -3z" />
-    <glyph glyph-name="law" unicode="&#xf0d8;" 
-d="M42 60q-9 0 -9 9t9 9t9 -9t-9 -9zM84 24q0 -12 -12 -12h-6q-12 0 -12 12l12 24h-6q-6 0 -6 6h-6v-48q6 0 6 -6h6q6 0 6 -6h-48q0 6 6 6h6q0 6 6 6v48h-6q0 -6 -6 -6h-6l12 -24q0 -12 -12 -12h-6q-12 0 -12 12l12 24h-6v6h18q0 6 6 6h24q6 0 6 -6h18v-6h-6zM15 42l-9 -18
-h18zM78 24l-9 18l-9 -18h18z" />
-    <glyph glyph-name="thumbsup" unicode="&#xf0da;" 
-d="M84 0l6 36q0 6 -6 6h-12q-6 0 -6 6v6q0 6 -4 15t-8 9q-2 0 -4 -2t-2 -4q3 -16 -5 -25q-10 -11 -19 -11v-36l10 -6h38q12 0 12 6zM84 48q12 0 12 -12v-1l-6 -36q-1 -11 -18 -11h-38q-2 0 -3 1l-9 5h-10q-12 0 -12 12v24q0 5 3.5 8.5t8.5 3.5h12q6 0 14 9q6 7 4 20
-q-1 5 3 8q3 5 9 5q7 0 12.5 -11t5.5 -19v-6h12z" />
-    <glyph glyph-name="thumbsdown" unicode="&#xf0db;" 
-d="M96 37v-1q0 -12 -12 -12h-12v-6q0 -8 -5.5 -19t-12.5 -11q-6 0 -9 5q-4 3 -3 8q2 13 -4 20q-8 9 -14 9h-12q-12 0 -12 12v24q0 12 12 12h10l9 5q1 1 3 1h38q17 0 18 -11zM84 30q6 0 6 6l-6 36q0 6 -12 6h-38l-10 -6v-36q9 0 19 -11q8 -9 5 -25q0 -2 2 -4t4 -2t5 4.5t5 10
-t2 9.5v6q0 6 6 6h12z" />
-    <glyph glyph-name="desktop-download" unicode="&#xf0dc;" 
-d="M24 48h18v36h12v-36h18l-24 -24zM90 72q6 0 6 -6v-54q0 -6 -6 -6h-32q3 -7 14 -12h-48q11 5 14 12h-32q-6 0 -6 6v54q0 6 6 6h24v-6h-24v-48h84v48h-24v6h24z" />
-    <glyph glyph-name="beaker" unicode="&#xf0dd;" 
-d="M86 -4q4 -8 -5 -8h-72q-3 0 -5 2.5t0 5.5l20 46v24h-6v6h54v-6h-6v-24zM22 24h45l-7 18v24h-30v-24zM48 36h6v-6h-6v6zM42 42h-6v6h6v-6zM42 60h6v-6h-6v6zM42 78h-6v6h6v-6z" />
-    <glyph glyph-name="bell" unicode="&#xf0de;" 
-d="M84 12v-6h-84v6l4 3q3 3 8 27q2 10 8 17.5t11 10.5l5 2q0 6 6 6t6 -6q20 -7 25 -30q5 -24 7 -27zM42 -12q-12 0 -12 12h24q0 -12 -12 -12z" />
-    <glyph glyph-name="watch" unicode="&#xf0e0;" 
-d="M36 36h12v-6h-18v24h6v-18zM72 36q0 -21 -18 -31v-11q0 -6 -6 -6h-24q-6 0 -6 6v11q-18 10 -18 31t18 31v11q0 6 6 6h24q6 0 6 -6v-11q18 -10 18 -31zM66 36q0 12 -9 21t-21 9t-21 -9t-9 -21t9 -21t21 -9t21 9t9 21z" />
-    <glyph glyph-name="shield" unicode="&#xf0e1;" 
-d="M42 84l42 -12v-36q0 -19 -16 -33.5t-26 -14.5t-26 14.5t-16 33.5v36zM30 18h24l-7 17q0 2 2 3q5 4 5 10q0 3 -1.5 6t-4.5 4.5t-6 1.5q-5 0 -8.5 -3.5t-3.5 -8.5q0 -6 5 -10q2 -1 2 -3z" />
-    <glyph glyph-name="bold" unicode="&#xf0e2;" 
-d="M6 72h23q26 0 26 -18q0 -12 -10 -15v-1q14 -3 14 -17q0 -21 -28 -21h-25v72zM28 42q14 0 14 10t-14 10h-9v-20h9zM30 10q16 0 16 12q0 11 -16 11h-11v-23h11z" />
-    <glyph glyph-name="text-size" unicode="&#xf0e3;" 
-d="M73 36l-8 28h-1l-8 -28h17zM30 30q-5 19 -6 22l-6 -22h12zM92 9h-12l-5 18h-21l-6 -18h-12l-3 13h-18l-3 -13h-12l18 51h13l12 -33l15 46h13z" />
-    <glyph glyph-name="italic" unicode="&#xf0e4;" 
-d="M17 54h12l-11 -54h-12zM19 70q0 8 8 8q7 0 7 -6q0 -8 -8 -8q-7 0 -7 6z" />
-    <glyph glyph-name="tasklist" unicode="&#xf0e5;" 
-d="M92 30h-46q-4 0 -4 6t4 6h46q4 0 4 -6t-4 -6zM58 60q-4 0 -4 6t4 6h34q4 0 4 -6t-4 -6h-34zM0 61l8 7l10 -9l25 25l8 -8l-33 -33zM46 12h46q4 0 4 -6t-4 -6h-46q-4 0 -4 6t4 6z" />
-    <glyph glyph-name="verified" unicode="&#xf0e6;" 
-d="M94 42q5 -6 0 -12l-6 -8q-2 -2 -2 -4l-2 -11q0 -7 -8 -8l-10 -1q-2 0 -4 -2l-8 -6q-6 -5 -12 0l-8 6q-2 2 -4 2l-11 2q-7 0 -8 8l-1 10q0 2 -2 4l-6 8q-5 6 0 12l6 8q2 2 2 4l2 11q0 7 8 8l10 1q2 0 4 2l8 6q6 5 12 0l8 -6q2 -2 4 -2l11 -2q7 0 8 -8l1 -10q0 -2 2 -4z
-M39 12l39 39l-9 9l-30 -30l-12 12l-9 -9z" />
-    <glyph glyph-name="smiley" unicode="&#xf0e7;" 
-d="M48 84q20 0 34 -14t14 -34t-14 -34t-34 -14t-34 14t-14 34t14 34t34 14zM76.5 7.5q5.5 5.5 9 12.5t3.5 16t-3.5 16t-9 12.5t-12.5 9t-16 3.5t-16 -3.5t-12.5 -9t-9 -12.5t-3.5 -16t3.5 -16t9 -12.5t12.5 -9t16 -3.5t16 3.5t12.5 9zM24 43v4q0 7 7 7h4q7 0 7 -7v-4
-q0 -7 -7 -7h-4q-7 0 -7 7zM54 43v4q0 7 7 7h4q7 0 7 -7v-4q0 -7 -7 -7h-4q-7 0 -7 7zM78 24q-7 -18 -30 -18t-30 18q-2 6 4 6h52q6 0 4 -6z" />
-    <glyph glyph-name="unverified" unicode="&#xf0e8;" 
-d="M94 42q5 -6 0 -12l-6 -8q-2 -2 -2 -4l-2 -11q0 -7 -8 -8l-10 -1q-2 0 -4 -2l-8 -6q-6 -5 -12 0l-8 6q-2 2 -4 2l-11 2q-7 0 -8 8l-1 10q0 2 -2 4l-6 8q-5 6 0 12l6 8q2 2 2 4l2 11q0 7 8 8l10 1q2 0 4 2l8 6q6 5 12 0l8 -6q2 -2 4 -2l11 -2q7 0 8 -8l1 -10q0 -2 2 -4z
-M54 15v6q0 3 -3 3h-6q-3 0 -3 -3v-6q0 -3 3 -3h6q3 0 3 3zM63 44q1 1 1 4t-1 5t-3 4l-6 2t-7 1q-3 0 -6 -1t-5.5 -2.5t-3.5 -3.5q-2 -3 -2 -5h12q0 1 1 2l1 1l1 1h2q3 0 4 -1t1 -4q0 -1 -1 -3t-3 -3t-3 -2.5t-1 -2.5q-1 -2 -1 -3v-3h10v2t1 1q0 1 1 2t1 2l4 2q0 1 1.5 2.5
-t1.5 2.5z" />
-    <glyph glyph-name="ellipses" unicode="&#xf101;" 
-d="M66 54q6 0 6 -6v-24q0 -6 -6 -6h-60q-6 0 -6 6v24q0 6 6 6h60zM24 30v12h-12v-12h12zM42 30v12h-12v-12h12zM60 30v12h-12v-12h12z" />
-    <glyph glyph-name="file" unicode="&#xf102;" 
-d="M36 54h-24v6h24v-6zM12 36v6h42v-6h-42zM12 24v6h42v-6h-42zM12 12v6h42v-6h-42zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-72h60v54z" />
-    <glyph glyph-name="grabber" unicode="&#xf103;" 
-d="M48 60v-6h-48v6h48zM0 36v6h48v-6h-48zM0 18v6h48v-6h-48z" />
-    <glyph glyph-name="plus-small" unicode="&#xf104;" 
-d="M24 42h18v-6h-18v-18h-6v18h-18v6h18v18h6v-18z" />
-    <glyph glyph-name="reply" unicode="&#xf105;" 
-d="M36 63q20 -2 34 -16.5t14 -43.5q-16 36 -48 36v-21l-33 33l33 33v-21z" />
-    <glyph glyph-name="device-desktop" unicode="&#xf27c;" 
-d="M90 72q6 0 6 -6v-54q0 -6 -6 -6h-32q3 -7 14 -12h-48q11 5 14 12h-32q-6 0 -6 6v54q0 6 6 6h84zM90 18v48h-84v-48h84z" />
-  </font>
-</defs></svg>
diff --git a/public/vendor/assets/octicons/octicons.ttf b/public/vendor/assets/octicons/octicons.ttf
deleted file mode 100644
index ff0dda18470bed62d7090c8dd6762dba05e098c7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 43920
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
L-YzJe4$S!<Atr^d

diff --git a/public/vendor/assets/octicons/octicons.woff b/public/vendor/assets/octicons/octicons.woff
deleted file mode 100644
index 01aa43d7756c645e161347d3573af41a7d893087..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 24004
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
RgUe>t6gCDI7Xa&RB`>?C>4N|O

diff --git a/public/vendor/assets/octicons/octicons.woff2 b/public/vendor/assets/octicons/octicons.woff2
deleted file mode 100644
index 69e7b2a4044aab1229fb72eee8379df10f82e4cf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 20248
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

diff --git a/templates/admin/org/list.tmpl b/templates/admin/org/list.tmpl
index 26f91faa743..fc512f2ad92 100644
--- a/templates/admin/org/list.tmpl
+++ b/templates/admin/org/list.tmpl
@@ -32,7 +32,7 @@
 							<td>
 								<a href="{{.HomeLink}}">{{.Name}}</a>
 								{{if .Visibility.IsPrivate}}
-									<span class="text gold"><i class="octicon octicon-lock"></i></span>
+									<span class="text gold">{{svg "octicon-lock" 16}}</span>
 								{{end}}
 							</td>
 							<td>{{.NumTeams}}</td>
diff --git a/templates/admin/repo/list.tmpl b/templates/admin/repo/list.tmpl
index 793d9c620eb..f946b8a461b 100644
--- a/templates/admin/repo/list.tmpl
+++ b/templates/admin/repo/list.tmpl
@@ -33,7 +33,7 @@
 							<td>
 								<a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a>
 								{{if .Owner.Visibility.IsPrivate}}
-									<span class="text gold"><i class="octicon octicon-lock"></i></span>
+									<span class="text gold">{{svg "octicon-lock" 16}}</span>
 								{{end}}
 							</td>
 							<td><a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Name}}</a></td>
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index 440dd3e5e28..c9ae07f6329 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -37,6 +37,7 @@
 	<meta name="referrer" content="no-referrer" />
 	<meta name="_csrf" content="{{.CsrfToken}}" />
 	<meta name="_suburl" content="{{AppSubUrl}}" />
+	<meta name="_staticprefix" content="{{StaticUrlPrefix}}" />
 	{{if .IsSigned}}
 		<meta name="_uid" content="{{.SignedUser.ID}}" />
 	{{end}}
@@ -98,10 +99,9 @@
 	<link rel="apple-touch-icon" href="{{StaticUrlPrefix}}/img/apple-touch-icon.png">
 	<link rel="mask-icon" href="{{StaticUrlPrefix}}/img/gitea-safari.svg" color="#609926">
 	<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css">
-	<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.min.css">
 	<link rel="preload" as="font" href="{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/icons.woff2" type="font/woff2" crossorigin="anonymous">
 	<link rel="preload" as="font" href="{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/outline-icons.woff2" type="font/woff2" crossorigin="anonymous">
-	<link rel="preload" as="font" href="{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6" type="font/woff2" crossorigin="anonymous">
+	<link rel="preload" as="image" href="{{StaticUrlPrefix}}/img/svg/icons.svg">
 {{if .RequireSimpleMDE}}
 	<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/simplemde/simplemde.min.css">
 {{end}}
diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl
index 4219e33775f..51a021d0e59 100644
--- a/templates/base/head_navbar.tmpl
+++ b/templates/base/head_navbar.tmpl
@@ -44,7 +44,7 @@
 		<div class="right stackable menu">
 			<a href="{{AppSubUrl}}/notifications" class="item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted">
 				<span class="text">
-					<i class="fitted octicon octicon-bell"></i>
+					<span class="fitted">{{svg "octicon-bell" 16}}</span>
 					<span class="sr-mobile-only">{{.i18n.Tr "notifications"}}</span>
 
 					{{if .NotificationUnreadCount}}
@@ -57,20 +57,20 @@
 
 			<div class="ui dropdown jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
 				<span class="text">
-					<i class="fitted octicon octicon-plus"></i>
+					<span class="fitted">{{svg "octicon-plus" 16}}</span>
 					<span class="sr-mobile-only">{{.i18n.Tr "create_new"}}</span>
-					<i class="fitted octicon octicon-triangle-down not-mobile"></i>
+					<span class="fitted not-mobile">{{svg "octicon-triangle-down" 16}}</span>
 				</span>
 				<div class="menu">
 					<a class="item" href="{{AppSubUrl}}/repo/create">
-						<i class="octicon octicon-plus"></i> {{.i18n.Tr "new_repo"}}
+						<span class="fitted">{{svg "octicon-plus" 16}}</span> {{.i18n.Tr "new_repo"}}
 					</a>
 					<a class="item" href="{{AppSubUrl}}/repo/migrate">
-						<i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
+						<span class="fitted">{{svg "octicon-repo-clone" 16}}</span> {{.i18n.Tr "new_migrate"}}
 					</a>
 					{{if .SignedUser.CanCreateOrganization}}
 					<a class="item" href="{{AppSubUrl}}/org/create">
-						<i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
+						<span class="fitted">{{svg "octicon-organization" 16}}</span> {{.i18n.Tr "new_org"}}
 					</a>
 					{{end}}
 				</div><!-- end content create new menu -->
@@ -81,7 +81,7 @@
 					<img class="ui tiny avatar image" width="24" height="24" src="{{.SignedUser.RelAvatarLink}}">
 					<span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
 					<span class="mobile-only">{{.SignedUser.Name}}</span>
-					<i class="fitted octicon octicon-triangle-down not-mobile" tabindex="-1"></i>
+					<span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down" 16}}</span>
 				</span>
 				<div class="menu user-menu" tabindex="-1">
 					<div class="ui header">
@@ -90,19 +90,19 @@
 
 					<div class="divider"></div>
 					<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}">
-						<i class="octicon octicon-person"></i>
+						{{svg "octicon-person" 16}}
 						{{.i18n.Tr "your_profile"}}<!-- Your profile -->
 					</a>
 					<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}?tab=stars">
-						<i class="octicon octicon-star"></i>
+						{{svg "octicon-star" 16}}
 						{{.i18n.Tr "your_starred"}}
 					</a>
 					<a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings">
-						<i class="octicon octicon-settings"></i>
+						{{svg "octicon-settings" 16}}
 						{{.i18n.Tr "your_settings"}}<!-- Your settings -->
 					</a>
 					<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">
-						<i class="octicon octicon-question"></i>
+						{{svg "octicon-question" 16}}
 						{{.i18n.Tr "help"}}<!-- Help -->
 					</a>
 					{{if .IsAdmin}}
@@ -116,7 +116,7 @@
 
 					<div class="divider"></div>
 					<a class="item" href="{{AppSubUrl}}/user/logout">
-						<i class="octicon octicon-sign-out"></i>
+						{{svg "octicon-sign-out" 16}}
 						{{.i18n.Tr "sign_out"}}<!-- Sign Out -->
 					</a>
 				</div><!-- end content avatar menu -->
@@ -129,11 +129,11 @@
 		<div class="right stackable menu">
 			{{if .ShowRegistrationButton}}
 				<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
-					<i class="octicon octicon-person"></i> {{.i18n.Tr "register"}}
+					{{svg "octicon-person" 16}} {{.i18n.Tr "register"}}
 				</a>
 			{{end}}
 			<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{.Link}}">
-				<i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
+				{{svg "octicon-sign-in" 16}} {{.i18n.Tr "sign_in"}}
 			</a>
 		</div><!-- end anonymous right menu -->
 
diff --git a/templates/explore/navbar.tmpl b/templates/explore/navbar.tmpl
index 3bd52645e21..54334259721 100644
--- a/templates/explore/navbar.tmpl
+++ b/templates/explore/navbar.tmpl
@@ -1,16 +1,16 @@
 <div class="ui secondary pointing tabular top attached borderless stackable menu navbar">
 	<a class="{{if .PageIsExploreRepositories}}active{{end}} item" href="{{AppSubUrl}}/explore/repos">
-		<span class="octicon octicon-repo"></span> {{.i18n.Tr "explore.repos"}}
+		{{svg "octicon-repo" 16}} {{.i18n.Tr "explore.repos"}}
 	</a>
 	<a class="{{if .PageIsExploreUsers}}active{{end}} item" href="{{AppSubUrl}}/explore/users">
-		<span class="octicon octicon-person"></span> {{.i18n.Tr "explore.users"}}
+		{{svg "octicon-person" 16}} {{.i18n.Tr "explore.users"}}
 	</a>
 	<a class="{{if .PageIsExploreOrganizations}}active{{end}} item" href="{{AppSubUrl}}/explore/organizations">
-		<span class="octicon octicon-organization"></span> {{.i18n.Tr "explore.organizations"}}
+		{{svg "octicon-organization" 16}} {{.i18n.Tr "explore.organizations"}}
 	</a>
 	{{if .IsRepoIndexerEnabled}}
 	<a class="{{if .PageIsExploreCode}}active{{end}} item" href="{{AppSubUrl}}/explore/code">
-		<span class="octicon octicon-code"></span> {{.i18n.Tr "explore.code"}}
+		{{svg "octicon-code" 16}} {{.i18n.Tr "explore.code"}}
 	</a>
 	{{end}}
 </div>
diff --git a/templates/explore/organizations.tmpl b/templates/explore/organizations.tmpl
index 4e2bfc9fd9a..6980622de18 100644
--- a/templates/explore/organizations.tmpl
+++ b/templates/explore/organizations.tmpl
@@ -12,18 +12,18 @@
 					<span class="header">
 						<a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}
 						{{if .Visibility.IsPrivate}}
-							<span class="text gold"><i class="octicon octicon-lock"></i></span>
+							<span class="text gold">{{svg "octicon-lock" 16}}</span>
 						{{end}}
 					</span>
 					<div class="description">
-							{{if .Location}}
-								<i class="octicon octicon-location"></i> {{.Location}}
-							{{end}}
-							{{if and .Website}}
-								<i class="octicon octicon-link"></i>
-								<a href="{{.Website}}" rel="nofollow">{{.Website}}</a>
-							{{end}}
-							<i class="octicon octicon-clock"></i> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
+						{{if .Location}}
+							{{svg "octicon-location" 16}} {{.Location}}
+						{{end}}
+						{{if and .Website}}
+							{{svg "octicon-link" 16}}
+							<a href="{{.Website}}" rel="nofollow">{{.Website}}</a>
+						{{end}}
+						{{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 					</div>
 				  </div>
 				</div>
diff --git a/templates/explore/repo_list.tmpl b/templates/explore/repo_list.tmpl
index fec304cc917..2dbfac5a2af 100644
--- a/templates/explore/repo_list.tmpl
+++ b/templates/explore/repo_list.tmpl
@@ -10,22 +10,22 @@
 					{{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}}
 				</a>
 				{{if .IsPrivate}}
-					<span class="text gold"><i class="octicon octicon-lock"></i></span>
+					<span class="middle text gold">{{svg "octicon-lock" 16}}</span>
 				{{else if .IsFork}}
-					<span><i class="octicon octicon-repo-forked"></i></span>
+					<span class="middle">{{svg "octicon-repo-forked" 16}}</span>
 				{{else if .IsMirror}}
-					<span><i class="octicon octicon-repo-clone"></i></span>
+					<span class="middle">{{svg "octicon-repo-clone" 16}}</span>
 				{{else if .Owner}}
 					{{if .Owner.Visibility.IsPrivate}}
-					<span class="text gold"><i class="octicon octicon-lock"></i></span>
+					<span class="text gold">{{svg "octicon-lock" 16}}</span>
 					{{end}}
 				{{end}}
 				<div class="ui right metas">
 					{{if .PrimaryLanguage }}
 					<span class="text grey"><i class="color-icon" style="background-color: {{.PrimaryLanguage.Color}}"></i>{{ .PrimaryLanguage.Language }}</span>
 					{{end}}
-					<span class="text grey"><i class="octicon octicon-star"></i> {{.NumStars}}</span>
-					<span class="text grey"><i class="octicon octicon-git-branch"></i> {{.NumForks}}</span>
+					<span class="text grey">{{svg "octicon-repo" 16}} {{.NumStars}}</span>
+					<span class="text grey">{{svg "octicon-git-branch" 16}} {{.NumForks}}</span>
 				</div>
 			</div>
 			<div class="description">
diff --git a/templates/explore/users.tmpl b/templates/explore/users.tmpl
index 32a36931c70..1929eb296cc 100644
--- a/templates/explore/users.tmpl
+++ b/templates/explore/users.tmpl
@@ -11,14 +11,14 @@
 				  <div class="content">
 					<span class="header"><a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}</span>
 					<div class="description">
-							{{if .Location}}
-								<i class="octicon octicon-location"></i> {{.Location}}
-							{{end}}
-							{{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}}
-								<i class="octicon octicon-mail"></i>
-								<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
-							{{end}}
-							<i class="octicon octicon-clock"></i> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
+						{{if .Location}}
+							{{svg "octicon-location" 16}} {{.Location}}
+						{{end}}
+						{{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}}
+							{{svg "octicon-mail" 16}}
+							<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
+						{{end}}
+						{{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 					</div>
 				  </div>
 				</div>
diff --git a/templates/home.tmpl b/templates/home.tmpl
index 6616e3c870b..5daea544fe8 100644
--- a/templates/home.tmpl
+++ b/templates/home.tmpl
@@ -16,7 +16,7 @@
 	<div class="ui stackable middle very relaxed page grid">
 		<div class="eight wide center column">
 			<h1 class="hero ui icon header">
-				<i class="octicon octicon-flame"></i> {{.i18n.Tr "startpage.install"}}
+				{{svg "octicon-flame" 16}} {{.i18n.Tr "startpage.install"}}
 			</h1>
 			<p class="large">
 				{{.i18n.Tr "startpage.install_desc" | Str2html}}
@@ -24,7 +24,7 @@
 		</div>
 		<div class="eight wide center column">
 			<h1 class="hero ui icon header">
-				<i class="octicon octicon-device-desktop"></i> {{.i18n.Tr "startpage.platform"}}
+				{{svg "octicon-device-desktop" 16}} {{.i18n.Tr "startpage.platform"}}
 			</h1>
 			<p class="large">
 				{{.i18n.Tr "startpage.platform_desc" | Str2html}}
@@ -34,7 +34,7 @@
 	<div class="ui stackable middle very relaxed page grid">
 		<div class="eight wide center column">
 			<h1 class="hero ui icon header">
-				<i class="octicon octicon-rocket"></i> {{.i18n.Tr "startpage.lightweight"}}
+				{{svg "octicon-rocket" 16}} {{.i18n.Tr "startpage.lightweight"}}
 			</h1>
 			<p class="large">
 				{{.i18n.Tr "startpage.lightweight_desc" | Str2html}}
@@ -42,7 +42,7 @@
 		</div>
 		<div class="eight wide center column">
 			<h1 class="hero ui icon header">
-				<i class="octicon octicon-code"></i> {{.i18n.Tr "startpage.license"}}
+				{{svg "octicon-code" 16}} {{.i18n.Tr "startpage.license"}}
 			</h1>
 			<p class="large">
 				{{.i18n.Tr "startpage.license_desc" | Str2html}}
diff --git a/templates/org/header.tmpl b/templates/org/header.tmpl
index 806682aca90..2dc93dbf8d1 100644
--- a/templates/org/header.tmpl
+++ b/templates/org/header.tmpl
@@ -9,11 +9,11 @@
 					<div class="ui right">
 						<div class="ui menu">
 							<a class="{{if $.PageIsOrgMembers}}active{{end}} item" href="{{$.OrgLink}}/members">
-								<i class="octicon octicon-organization"></i>&nbsp;{{$.i18n.Tr "org.people"}}
+								{{svg "octicon-organization" 16}}&nbsp;{{$.i18n.Tr "org.people"}}
 								<div class="floating ui black label">{{.NumMembers}}</div>
 							</a>
 							<a class="{{if $.PageIsOrgTeams}}active{{end}} item" href="{{$.OrgLink}}/teams">
-								<i class="octicon octicon-jersey"></i>&nbsp;{{$.i18n.Tr "org.teams"}}
+								{{svg "octicon-jersey" 16}}&nbsp;{{$.i18n.Tr "org.teams"}}
 								<div class="floating ui black label">{{.NumTeams}}</div>
 							</a>
 						</div>
diff --git a/templates/org/home.tmpl b/templates/org/home.tmpl
index 0aa575707ab..46c590342bb 100644
--- a/templates/org/home.tmpl
+++ b/templates/org/home.tmpl
@@ -7,12 +7,12 @@
 		<div id="org-info">
 			<div class="ui header">
 				{{.Org.DisplayName}}
-				{{if .IsOrganizationOwner}}<a class="text grey" href="{{.OrgLink}}/settings"><span class="octicon octicon-gear"></span></a>{{end}}
+				{{if .IsOrganizationOwner}}<a class="middle text grey" href="{{.OrgLink}}/settings">{{svg "octicon-gear" 16}}</a>{{end}}
 			</div>
 			{{if .Org.Description}}<p class="desc">{{.Org.Description}}</p>{{end}}
 			<div class="text grey meta">
-				{{if .Org.Location}}<div class="item"><span class="octicon octicon-location"></span> <span>{{.Org.Location}}</span></div>{{end}}
-				{{if .Org.Website}}<div class="item"><span class="octicon octicon-link"></span> <a target="_blank" rel="noopener noreferrer" href="{{.Org.Website}}">{{.Org.Website}}</a></div>{{end}}
+				{{if .Org.Location}}<div class="item">{{svg "octicon-location" 16}} <span>{{.Org.Location}}</span></div>{{end}}
+				{{if .Org.Website}}<div class="item">{{svg "octicon-link" 16}} <a target="_blank" rel="noopener noreferrer" href="{{.Org.Website}}">{{.Org.Website}}</a></div>{{end}}
 			</div>
 		</div>
 	</div>
@@ -24,7 +24,7 @@
 			<div class="ui eleven wide column">
 				{{if .CanCreateOrgRepo}}
 					<div class="text right">
-						<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "new_repo"}}</a>
+						<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{svg "octicon-repo-create" 16}} {{.i18n.Tr "new_repo"}}</a>
 					</div>
 					<div class="ui divider"></div>
 				{{end}}
@@ -38,7 +38,7 @@
 					<strong>{{.i18n.Tr "org.people"}}</strong>
 					{{if .IsOrganizationMember}}
 						<div class="ui right">
-							<a class="text grey" href="{{.OrgLink}}/members">{{.Org.NumMembers}} <span class="octicon octicon-chevron-right"></span></a>
+							<a class="text grey" href="{{.OrgLink}}/members">{{.Org.NumMembers}} {{svg "octicon-chevron-right" 16}}</a>
 						</div>
 					{{end}}
 				</h4>
@@ -55,7 +55,7 @@
 					<div class="ui top attached header">
 						<strong>{{.i18n.Tr "org.teams"}}</strong>
 						<div class="ui right">
-							<a class="text grey" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> <span class="octicon octicon-chevron-right"></span></a>
+							<a class="text grey" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right" 16}}</a>
 						</div>
 					</div>
 					<div class="ui attached table segment teams">
diff --git a/templates/org/member/members.tmpl b/templates/org/member/members.tmpl
index 03aadf97b83..81cfcf51e6c 100644
--- a/templates/org/member/members.tmpl
+++ b/templates/org/member/members.tmpl
@@ -34,7 +34,7 @@
 							{{$.i18n.Tr "org.members.member_role"}}
 						</div>
 						<div class="meta">
-							<strong>{{if index $.MembersIsUserOrgOwner .ID}}<span class="octicon octicon-shield"></span> {{$.i18n.Tr "org.members.owner"}}{{else}}{{$.i18n.Tr "org.members.member"}}{{end}}</strong>
+							<strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock" 16}} {{$.i18n.Tr "org.members.owner"}}{{else}}{{$.i18n.Tr "org.members.member"}}{{end}}</strong>
 						</div>
 					</div>
 					<div class="ui one wide column center">
@@ -42,7 +42,13 @@
 							2FA
 						</div>
 						<div class="meta">
-							<strong><span class="octicon {{if index $.MembersTwoFaStatus .ID}}octicon-check text green{{else}}octicon-x{{end}}"></span></strong>
+							<strong>
+								{{if index $.MembersTwoFaStatus .ID}}
+									<span class="text green">{{svg "octicon-check" 16}}</span>
+								{{else}}
+									{{svg "octicon-x" 16}}
+								{{end}}
+							</strong>
 						</div>
 					</div>
 					<div class="ui four wide column">
diff --git a/templates/org/settings/delete.tmpl b/templates/org/settings/delete.tmpl
index 3b0ee09b17e..729126b7b9c 100644
--- a/templates/org/settings/delete.tmpl
+++ b/templates/org/settings/delete.tmpl
@@ -11,7 +11,7 @@
 				</h4>
 				<div class="ui attached warning segment">
 					<div class="ui red message">
-						<p class="text left"><i class="octicon octicon-alert"></i> {{.i18n.Tr "org.settings.delete_prompt" | Str2html}}</p>
+						<p class="text left">{{svg "octicon-alert" 16}} {{.i18n.Tr "org.settings.delete_prompt" | Str2html}}</p>
 					</div>
 					<form class="ui form ignore-dirty" id="delete-form" action="{{.Link}}" method="post">
 						{{.CsrfTokenHtml}}
diff --git a/templates/org/team/navbar.tmpl b/templates/org/team/navbar.tmpl
index 1a8f1083319..95329a2be33 100644
--- a/templates/org/team/navbar.tmpl
+++ b/templates/org/team/navbar.tmpl
@@ -1,4 +1,4 @@
 <div class="ui top attached tabular menu">
-  <a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}"><span class="octicon octicon-person"></span> <strong>{{.Team.NumMembers}}</strong>&nbsp; {{$.i18n.Tr "org.lower_members"}}</a>
-  <a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/repositories"><span class="octicon octicon-repo"></span> <strong>{{.Team.NumRepos}}</strong>&nbsp; {{$.i18n.Tr "org.lower_repositories"}}</a>
-</div>
\ No newline at end of file
+  <a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}">{{svg "octicon-person" 16}} <strong>{{.Team.NumMembers}}</strong>&nbsp; {{$.i18n.Tr "org.lower_members"}}</a>
+  <a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/repositories">{{svg "octicon-repo" 16}} <strong>{{.Team.NumRepos}}</strong>&nbsp; {{$.i18n.Tr "org.lower_repositories"}}</a>
+</div>
diff --git a/templates/org/team/repositories.tmpl b/templates/org/team/repositories.tmpl
index 66af5195b00..e81ff889eb9 100644
--- a/templates/org/team/repositories.tmpl
+++ b/templates/org/team/repositories.tmpl
@@ -38,7 +38,15 @@
 								<a class="ui red small button right" href="{{$.OrgLink}}/teams/{{$.Team.LowerName}}/action/repo/remove?repoid={{.ID}}">{{$.i18n.Tr "remove"}}</a>
 							{{end}}
 							<a class="member" href="{{AppSubUrl}}/{{$.Org.Name}}/{{.Name}}">
-								<i class="octicon octicon-{{if .IsPrivate}}lock{{else if .IsFork}}repo-forked{{else if .IsMirror}}repo-clone{{else}}repo{{end}}"></i>
+								{{if .IsPrivate}}
+									{{svg "octicon-lock" 16}}
+								{{else if .IsFork}}
+									{{svg "octicon-repo-forked" 16}}
+								{{else if .IsMirror}}
+									{{svg "octicon-repo-clone" 16}}
+								{{else}}
+									{{svg "octicon-repo" 16}}
+								{{end}}
 								<strong>{{$.Org.Name}}/{{.Name}}</strong>
 							</a>
 						</div>
diff --git a/templates/org/team/sidebar.tmpl b/templates/org/team/sidebar.tmpl
index 75c5ce756d4..ee612069b54 100644
--- a/templates/org/team/sidebar.tmpl
+++ b/templates/org/team/sidebar.tmpl
@@ -47,7 +47,7 @@
 	</div>
 	{{if .IsOrganizationOwner}}
 		<div class="ui bottom attached segment">
-			<a class="ui teal small button" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/edit"><span class="octicon octicon-gear"></span> {{$.i18n.Tr "org.teams.settings"}}</a>
+			<a class="ui teal small button" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/edit">{{svg "octicon-gear" 16}} {{$.i18n.Tr "org.teams.settings"}}</a>
 		</div>
 	{{end}}
 </div>
diff --git a/templates/org/team/teams.tmpl b/templates/org/team/teams.tmpl
index 87141811407..9d4a4690289 100644
--- a/templates/org/team/teams.tmpl
+++ b/templates/org/team/teams.tmpl
@@ -5,7 +5,7 @@
 		{{template "base/alert" .}}
 		{{if .IsOrganizationOwner}}
 			<div class="text right">
-				<a class="ui green button" href="{{.OrgLink}}/teams/new"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "org.create_new_team"}}</a>
+				<a class="ui green button" href="{{.OrgLink}}/teams/new">{{svg "octicon-plus" 16}} {{.i18n.Tr "org.create_new_team"}}</a>
 			</div>
 			<div class="ui divider"></div>
 		{{end}}
diff --git a/templates/pwa/serviceworker_js.tmpl b/templates/pwa/serviceworker_js.tmpl
index e7751714f47..f1dd63a2503 100644
--- a/templates/pwa/serviceworker_js.tmpl
+++ b/templates/pwa/serviceworker_js.tmpl
@@ -40,6 +40,9 @@ var urlsToCache = [
   '{{StaticUrlPrefix}}/img/gitea-sm.png',
   '{{StaticUrlPrefix}}/img/gitea-lg.png',
 
+  // svg
+  '{{StaticUrlPrefix}}/img/svg/icons.svg'
+
   // fonts
   '{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/icons.woff2',
   '{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6',
diff --git a/templates/repo/activity.tmpl b/templates/repo/activity.tmpl
index 8c3167bca7f..c11a841b2d6 100644
--- a/templates/repo/activity.tmpl
+++ b/templates/repo/activity.tmpl
@@ -63,21 +63,21 @@
 		<div class="ui attached segment horizontal segments">
 			{{if .Permission.CanRead $.UnitTypePullRequests}}
 				<a href="#merged-pull-requests" class="ui attached segment text center">
-					<i class="text purple octicon octicon-git-pull-request"></i> <strong>{{.Activity.MergedPRCount}}</strong><br>
+					<span class="text purple">{{svg "octicon-git-pull-request" 16}}</span> <strong>{{.Activity.MergedPRCount}}</strong><br>
 					{{.i18n.Tr (TrN .i18n.Lang .Activity.MergedPRCount "repo.activity.merged_prs_count_1" "repo.activity.merged_prs_count_n") }}
 				</a>
 				<a href="#proposed-pull-requests" class="ui attached segment text center">
-					<i class="text green octicon octicon-git-branch"></i> <strong>{{.Activity.OpenedPRCount}}</strong><br>
+					<span class="text green">{{svg "octicon-git-branch" 16}}</span> <strong>{{.Activity.OpenedPRCount}}</strong><br>
 					{{.i18n.Tr (TrN .i18n.Lang .Activity.OpenedPRCount "repo.activity.opened_prs_count_1" "repo.activity.opened_prs_count_n") }}
 				</a>
 			{{end}}
 			{{if .Permission.CanRead $.UnitTypeIssues}}
 				<a href="#closed-issues" class="ui attached segment text center">
-					<i class="text red octicon octicon-issue-closed"></i> <strong>{{.Activity.ClosedIssueCount}}</strong><br>
+					<span class="text red">{{svg "octicon-issue-closed" 16}}</span> <strong>{{.Activity.ClosedIssueCount}}</strong><br>
 					{{.i18n.Tr (TrN .i18n.Lang .Activity.ClosedIssueCount "repo.activity.closed_issues_count_1" "repo.activity.closed_issues_count_n") }}
 				</a>
 				<a href="#new-issues" class="ui attached segment text center">
-					<i class="text green octicon octicon-issue-opened"></i> <strong>{{.Activity.OpenedIssueCount}}</strong><br>
+					<span class="text green">{{svg "octicon-issue-opened" 16}}</span> <strong>{{.Activity.OpenedIssueCount}}</strong><br>
 					{{.i18n.Tr (TrN .i18n.Lang .Activity.OpenedIssueCount "repo.activity.new_issues_count_1" "repo.activity.new_issues_count_n") }}
 				</a>
 			{{end}}
@@ -120,7 +120,7 @@
 
 		{{if gt .Activity.PublishedReleaseCount 0}}
 			<h4 class="ui horizontal divider header" id="published-releases">
-				<i class="text octicon octicon-tag"></i>
+				<span class="text">{{svg "octicon-tag" 16}}</span>
 				{{.i18n.Tr "repo.activity.title.releases_published_by" (.i18n.Tr (TrN .i18n.Lang .Activity.PublishedReleaseCount "repo.activity.title.releases_1" "repo.activity.title.releases_n") .Activity.PublishedReleaseCount) (.i18n.Tr (TrN .i18n.Lang .Activity.PublishedReleaseAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.PublishedReleaseAuthorCount) }}
 			</h4>
 			<div class="list">
@@ -139,7 +139,7 @@
 
 		{{if gt .Activity.MergedPRCount 0}}
 			<h4 class="ui horizontal divider header" id="merged-pull-requests">
-				<i class="text octicon octicon-git-pull-request"></i>
+				<span class="text">{{svg "octicon-git-pull-request" 16}}</span>
 				{{.i18n.Tr "repo.activity.title.prs_merged_by" (.i18n.Tr (TrN .i18n.Lang .Activity.MergedPRCount "repo.activity.title.prs_1" "repo.activity.title.prs_n") .Activity.MergedPRCount) (.i18n.Tr (TrN .i18n.Lang .Activity.MergedPRAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.MergedPRAuthorCount) }}
 			</h4>
 			<div class="list">
@@ -155,7 +155,7 @@
 
 		{{if gt .Activity.OpenedPRCount 0}}
 			<h4 class="ui horizontal divider header" id="proposed-pull-requests">
-				<i class="text octicon octicon-git-branch"></i>
+				<span class="text">{{svg "octicon-git-branch" 16}}</span>
 				{{.i18n.Tr "repo.activity.title.prs_opened_by" (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedPRCount "repo.activity.title.prs_1" "repo.activity.title.prs_n") .Activity.OpenedPRCount) (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedPRAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.OpenedPRAuthorCount) }}
 			</h4>
 			<div class="list">
@@ -171,7 +171,7 @@
 
 		{{if gt .Activity.ClosedIssueCount 0}}
 			<h4 class="ui horizontal divider header" id="closed-issues">
-				<i class="text octicon octicon-issue-closed"></i>
+				<span class="text">{{svg "octicon-issue-closed" 16}}</span>
 				{{.i18n.Tr "repo.activity.title.issues_closed_by" (.i18n.Tr (TrN .i18n.Lang .Activity.ClosedIssueCount "repo.activity.title.issues_1" "repo.activity.title.issues_n") .Activity.ClosedIssueCount) (.i18n.Tr (TrN .i18n.Lang .Activity.ClosedIssueAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.ClosedIssueAuthorCount) }}
 			</h4>
 			<div class="list">
@@ -187,7 +187,7 @@
 
 		{{if gt .Activity.OpenedIssueCount 0}}
 			<h4 class="ui horizontal divider header" id="new-issues">
-				<i class="text octicon octicon-issue-opened"></i>
+				<span class="text">{{svg "octicon-issue-opened" 16}}</span>
 				{{.i18n.Tr "repo.activity.title.issues_created_by" (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedIssueCount "repo.activity.title.issues_1" "repo.activity.title.issues_n") .Activity.OpenedIssueCount) (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedIssueAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.OpenedIssueAuthorCount) }}
 			</h4>
 			<div class="list">
@@ -203,7 +203,7 @@
 
 		{{if gt .Activity.UnresolvedIssueCount 0}}
 			<h4 class="ui horizontal divider header" id="unresolved-conversations">
-				<i class="text octicon octicon-comment-discussion"></i>
+				<span class="text">{{svg "octicon-comment-discussion" 16}}</span>
 				{{.i18n.Tr (TrN .i18n.Lang .Activity.UnresolvedIssueCount "repo.activity.title.unresolved_conv_1" "repo.activity.title.unresolved_conv_n") .Activity.UnresolvedIssueCount }}
 			</h4>
 			<div class="text center desc">
diff --git a/templates/repo/blame.tmpl b/templates/repo/blame.tmpl
index 483f8d38eb8..0a906d1f181 100644
--- a/templates/repo/blame.tmpl
+++ b/templates/repo/blame.tmpl
@@ -18,14 +18,14 @@
                     </div>
                     {{if .Repository.CanEnableEditor}}
                         {{if .CanEditFile}}
-                            <a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-pencil btn-octicon poping up"  data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a>
+                            <a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon poping up"  data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span></a>
                         {{else}}
-                            <i class="octicon octicon-pencil btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i>
+                            <span class="btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span>
                         {{end}}
                         {{if .CanDeleteFile}}
-                            <a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-trashcan btn-octicon btn-octicon-danger poping up"  data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a>
+                            <a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon btn-octicon-danger poping up"  data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span></a>
                         {{else}}
-                            <i class="octicon octicon-trashcan btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i>
+                            <span class="btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span>
                         {{end}}
                     {{end}}
                 </div>
diff --git a/templates/repo/branch/list.tmpl b/templates/repo/branch/list.tmpl
index a24360795eb..26a14eb6ffb 100644
--- a/templates/repo/branch/list.tmpl
+++ b/templates/repo/branch/list.tmpl
@@ -16,10 +16,10 @@
 						{{range .Branches}}
 							{{if eq .Name $.DefaultBranch}}
 								{{if .IsProtected}}
-									<i class="octicon octicon-shield"></i>
+									{{svg "octicon-shield-lock" 16}}
 								{{end}}
 								<a href="{{$.RepoLink}}/src/branch/{{$.DefaultBranch | EscapePound}}">{{$.DefaultBranch}}</a>
-								<p class="info"><i class="octicon octicon-git-commit"></i><a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p>
+								<p class="info">{{svg "octicon-git-commit" 16}}<a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p>
 							{{end}}
 						{{end}}
 						</td>
@@ -27,8 +27,8 @@
 							<div class="ui basic jump dropdown icon button poping up" data-content="{{$.i18n.Tr "repo.branch.download" ($.DefaultBranch)}}" data-variation="tiny inverted" data-position="top right">
 							  <i class="download icon"></i>
 							  <div class="menu">
-							    <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a>
-							    <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a>
+							    <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.zip">{{svg "octicon-file-zip" 16}}&nbsp;ZIP</a>
+							    <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.tar.gz">{{svg "octicon-file-zip" 16}}&nbsp;TAR.GZ</a>
 							  </div>
 							</div>
 						</td>
@@ -53,10 +53,10 @@
 										<p class="info">{{$.i18n.Tr "repo.branch.deleted_by" .DeletedBranch.DeletedBy.Name}} {{TimeSinceUnix .DeletedBranch.DeletedUnix $.i18n.Lang}}</p>
 									{{else}}
 										{{if .IsProtected}}
-											<i class="octicon octicon-shield"></i>
+											{{svg "octicon-shield-lock" 16}}
 										{{end}}
 										<a href="{{$.RepoLink}}/src/branch/{{.Name | EscapePound}}">{{.Name}}</a>
-										<p class="info"><i class="octicon octicon-git-commit"></i><a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p>
+										<p class="info">{{svg "octicon-git-commit" 16}}<a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p>
 									{{end}}
 									</td>
 									<td class="three wide ui">
@@ -77,7 +77,7 @@
 										{{if not .LatestPullRequest}}
 											{{if .IsIncluded}}
 												<a class="ui poping up orange small label" data-content="{{$.i18n.Tr "repo.branch.included_desc"}}" data-variation="tiny inverted" data-position="top right">
-													<i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.branch.included"}}
+													{{svg "octicon-git-pull-request" 16}} {{$.i18n.Tr "repo.branch.included"}}
 												</a>
 											{{else if and (not .IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
 											<a href="{{$.RepoLink}}/compare/{{$.DefaultBranch | EscapePound}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{$.Owner.Name}}:{{end}}{{.Name | EscapePound}}">
@@ -93,11 +93,11 @@
 										{{else}}
 											<a href="{{.LatestPullRequest.Issue.HTMLURL}}">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a>
 											{{if .LatestPullRequest.HasMerged}}
-												<a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui purple mini label"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.merged"}}</a>
+												<a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui purple mini label">{{svg "octicon-git-pull-request" 16}} {{$.i18n.Tr "repo.pulls.merged"}}</a>
 											{{else if .LatestPullRequest.Issue.IsClosed}}
-												<a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui red mini label"><i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.issues.closed_title"}}</a>
+												<a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui red mini label">{{svg "octicon-issue-closed" 16}} {{$.i18n.Tr "repo.issues.closed_title"}}</a>
 											{{else}}
-												<a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui green mini label"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.open_title"}}</a>
+												<a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui green mini label">{{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.issues.open_title"}}</a>
 											{{end}}
 										{{end}}
 									</td>
@@ -106,14 +106,14 @@
 											<div class="ui basic jump dropdown icon button poping up" data-content="{{$.i18n.Tr "repo.branch.download" (.Name)}}" data-variation="tiny inverted" data-position="top right">
 												<i class="download icon"></i>
 												<div class="menu">
-													<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a>
-													<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a>
+													<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.zip">{{svg "octicon-file-zip" 16}}&nbsp;ZIP</a>
+													<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.tar.gz">{{svg "octicon-file-zip" 16}}&nbsp;TAR.GZ</a>
 												</div>
 											</div>
 										{{end}}
 										{{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}}
 											{{if .IsDeleted}}
-												<a class="ui basic jump button icon poping up undo-button" href data-url="{{$.Link}}/restore?branch_id={{.DeletedBranch.ID | urlquery}}&name={{.DeletedBranch.Name | urlquery}}" data-content="{{$.i18n.Tr "repo.branch.restore" (.Name)}}" data-variation="tiny inverted" data-position="top right"><i class="octicon octicon-reply text blue"></i></a>
+												<a class="ui basic jump button icon poping up undo-button" href data-url="{{$.Link}}/restore?branch_id={{.DeletedBranch.ID | urlquery}}&name={{.DeletedBranch.Name | urlquery}}" data-content="{{$.i18n.Tr "repo.branch.restore" (.Name)}}" data-variation="tiny inverted" data-position="top right"><span class="text blue">{{svg "octicon-reply" 16}}</span></a>
 											{{else}}
 												<a class="ui basic jump button icon poping up delete-branch-button" href data-url="{{$.Link}}/delete?name={{.Name | urlquery}}" data-content="{{$.i18n.Tr "repo.branch.delete" (.Name)}}" data-variation="tiny inverted" data-position="top right" data-name="{{.Name}}"><i class="trash icon text red"></i></a>
 											{{end}}
diff --git a/templates/repo/branch_dropdown.tmpl b/templates/repo/branch_dropdown.tmpl
index b7f4c912128..28aa14abea0 100644
--- a/templates/repo/branch_dropdown.tmpl
+++ b/templates/repo/branch_dropdown.tmpl
@@ -2,7 +2,7 @@
 	<div class="ui floating filter dropdown custom" data-can-create-branch="{{.CanCreateBranch}}" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
 		<div class="ui basic small compact button" @click="menuVisible = !menuVisible" @keyup.enter="menuVisible = !menuVisible">
 			<span class="text">
-				<i class="octicon octicon-git-branch"></i>
+				{{svg "octicon-git-branch" 16}}
 				{{if .IsViewBranch}}{{.i18n.Tr "repo.branch"}}{{else}}{{.i18n.Tr "repo.tree"}}{{end}}:
 				<strong>{{if .IsViewBranch}}{{.BranchName}}{{else}}{{ShortSha .BranchName}}{{end}}</strong>
 			</span>
@@ -26,7 +26,7 @@
 					<div class="two column row">
 						<a class="reference column" href="#" @click="mode = 'branches'; focusSearchField()">
 							<span class="text" :class="{black: mode == 'branches'}">
-								<i class="octicon octicon-git-branch"></i> {{.i18n.Tr "repo.branches"}}
+								{{svg "octicon-git-branch" 16}} {{.i18n.Tr "repo.branches"}}
 							</span>
 						</a>
 						<a class="reference column" href="#" @click="mode = 'tags'; focusSearchField()">
@@ -42,7 +42,7 @@
 				<div class="item" v-if="showCreateNewBranch" :class="{active: active == filteredItems.length}" :ref="'listItem' + filteredItems.length">
 					<a href="#" @click="createNewBranch()">
 						<div>
-							<i class="octicon octicon-git-branch"></i>
+							{{svg "octicon-git-branch" 16}}
 							{{.i18n.Tr "repo.branch.create_branch" `${ searchTerm }` | Safe}}
 						</div>
 						<div class="text small">
diff --git a/templates/repo/commit_page.tmpl b/templates/repo/commit_page.tmpl
index 5b19523cf2a..e8477ed985f 100644
--- a/templates/repo/commit_page.tmpl
+++ b/templates/repo/commit_page.tmpl
@@ -10,7 +10,7 @@
 			{{if IsMultilineCommitMessage .Commit.Message}}
 				<pre class="commit-body">{{RenderCommitBody .Commit.Message $.RepoLink $.Repository.ComposeMetas}}</pre>
 			{{end}}
-			<span class="text grey"><i class="octicon octicon-git-branch"></i>{{.BranchName}}</span>
+			<span class="text grey">{{svg "octicon-git-branch" 16}}{{.BranchName}}</span>
 		</div>
 		<div class="ui attached info segment {{if .Commit.Signature}} isSigned {{if .Verification.Verified }} isVerified {{end}}{{end}}">
 			<div class="ui stackable grid">
diff --git a/templates/repo/commits.tmpl b/templates/repo/commits.tmpl
index 32301a038a3..3b4c39524de 100644
--- a/templates/repo/commits.tmpl
+++ b/templates/repo/commits.tmpl
@@ -8,7 +8,7 @@
 			<div class="fitted item">
 				<a href="{{.RepoLink}}/graph" class="ui basic small compact button">
 					<span class="text">
-						<i class="octicon octicon-git-branch"></i>
+						{{svg "octicon-git-branch" 16}}
 					</span>
 					{{.i18n.Tr "repo.commit_graph"}}
 				</a>
diff --git a/templates/repo/commits_table.tmpl b/templates/repo/commits_table.tmpl
index 0e53936f0ae..da2a1349947 100644
--- a/templates/repo/commits_table.tmpl
+++ b/templates/repo/commits_table.tmpl
@@ -21,9 +21,9 @@
 					<button class="ui blue tiny button" data-panel="#add-deploy-key-panel" data-tooltip={{.i18n.Tr "repo.commits.search.tooltip"}}>{{.i18n.Tr "repo.commits.find"}}</button>
 				</form>
 			{{else if .IsDiffCompare}}
-				<a href="{{$.CommitRepoLink}}/commit/{{.BeforeCommitID}}" class="ui green sha label">{{if not .BaseIsCommit}}{{if .BaseIsBranch}}<i class="octicon octicon-git-branch"></i>{{else if .BaseIsTag}}<i class="octicon octicon-tag"></i>{{end}}{{.BaseBranch}}{{else}}{{ShortSha .BaseBranch}}{{end}}</a>
+				<a href="{{$.CommitRepoLink}}/commit/{{.BeforeCommitID}}" class="ui green sha label">{{if not .BaseIsCommit}}{{if .BaseIsBranch}}{{svg "octicon-git-branch" 16}}{{else if .BaseIsTag}}{{svg "octicon-tag" 16}}{{end}}{{.BaseBranch}}{{else}}{{ShortSha .BaseBranch}}{{end}}</a>
 				...
-				<a href="{{$.CommitRepoLink}}/commit/{{.AfterCommitID}}" class="ui green sha label">{{if not .HeadIsCommit}}{{if .HeadIsBranch}}<i class="octicon octicon-git-branch"></i>{{else if .HeadIsTag}}<i class="octicon octicon-tag"></i>{{end}}{{.HeadBranch}}{{else}}{{ShortSha .HeadBranch}}{{end}}</a>
+				<a href="{{$.CommitRepoLink}}/commit/{{.AfterCommitID}}" class="ui green sha label">{{if not .HeadIsCommit}}{{if .HeadIsBranch}}{{svg "octicon-git-branch" 16}}{{else if .HeadIsTag}}{{svg "octicon-tag" 16}}{{end}}{{.HeadBranch}}{{else}}{{ShortSha .HeadBranch}}{{end}}</a>
 			{{end}}
 		</div>
 	</div>
diff --git a/templates/repo/diff/blob_excerpt.tmpl b/templates/repo/diff/blob_excerpt.tmpl
index 5f0cd30bb7b..ad5e3b1b105 100644
--- a/templates/repo/diff/blob_excerpt.tmpl
+++ b/templates/repo/diff/blob_excerpt.tmpl
@@ -10,7 +10,7 @@
       <i class="ui blob-excerpt fa fa-caret-up" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up" data-anchor="{{$.Anchor}}"></i>
       {{end}}
       {{if or (eq $line.GetExpandDirection 2)}}
-      <i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="{{$.Anchor}}"></i>
+      <span class="ui blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="{{$.Anchor}}">{{svg "octicon-fold" 16}}</span>
       {{end}}
     </td>
     <td colspan="5" class="lines-code lines-code-old "><span class="mono wrap{{if $.highlightClass}} language-{{$.highlightClass}}{{else}} nohighlight{{end}}">{{$.section.GetComputedInlineDiffFor $line}}</span></td>
@@ -36,7 +36,7 @@
       <i class="ui blob-excerpt fa fa-caret-down" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=down" data-anchor="{{$.Anchor}}"></i>
       {{end}}
       {{if or (eq $line.GetExpandDirection 2)}}
-      <i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="{{$.Anchor}}"></i>
+      <span class="ui blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="{{$.Anchor}}">{{svg "octicon-fold" 16}}</span>
       {{end}}
     </td>
     {{else}}
@@ -47,4 +47,4 @@
     <td class="blob-excerpt lines-code{{if (not $line.RightIdx)}} lines-code-old{{end}}"><span class="mono wrap{{if $.highlightClass}} language-{{$.highlightClass}}{{else}} nohighlight{{end}}">{{$.section.GetComputedInlineDiffFor $line}}</span></td>
   </tr>
   {{end}}
-{{end}}
\ No newline at end of file
+{{end}}
diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl
index 15ba387dca0..0b5c7a0564a 100644
--- a/templates/repo/diff/box.tmpl
+++ b/templates/repo/diff/box.tmpl
@@ -133,7 +133,7 @@
 																		<i class="ui blob-excerpt fa fa-caret-up" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i>
 																	{{end}}
 																	{{if or (eq $line.GetExpandDirection 2)}}
-																		<i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i>
+																		<span class="ui blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">{{svg "octicon-fold" 16}}</span>
 																	{{end}}
 																</td>
 																<td colspan="5" class="lines-code lines-code-old "><span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}} nohighlight{{end}}">{{$section.GetComputedInlineDiffFor $line}}</span></td>
diff --git a/templates/repo/diff/comment_form.tmpl b/templates/repo/diff/comment_form.tmpl
index 822b1e54f67..0bcd5d20283 100644
--- a/templates/repo/diff/comment_form.tmpl
+++ b/templates/repo/diff/comment_form.tmpl
@@ -24,7 +24,7 @@
 		{{.i18n.Tr "loading"}}
 		</div>
 		<div class="footer">
-			<span class="markdown-info"><i class="octicon octicon-markdown"></i> {{$.root.i18n.Tr "repo.diff.comment.markdown_info"}}</span>
+			<span class="markdown-info">{{svg "octicon-markdown" 16}} {{$.root.i18n.Tr "repo.diff.comment.markdown_info"}}</span>
 			<div class="ui right floated">
 				{{if $.reply}}
 					<button name="reply" value="{{$.reply}}" class="ui submit green tiny button btn-reply">{{$.root.i18n.Tr "repo.diff.comment.reply"}}</button>
diff --git a/templates/repo/diff/compare.tmpl b/templates/repo/diff/compare.tmpl
index 50a51c44acc..e98823953c7 100644
--- a/templates/repo/diff/compare.tmpl
+++ b/templates/repo/diff/compare.tmpl
@@ -13,7 +13,7 @@
 			{{ end }}
 		</h2>
 		<div class="ui segment choose branch">
-			<span class="octicon octicon-git-compare"></span>
+			{{svg "octicon-git-compare" 16}}
 			<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
 				<div class="ui basic small button">
 					<span class="text">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span>
diff --git a/templates/repo/diff/section_unified.tmpl b/templates/repo/diff/section_unified.tmpl
index fcc511af75e..33544fd0322 100644
--- a/templates/repo/diff/section_unified.tmpl
+++ b/templates/repo/diff/section_unified.tmpl
@@ -12,7 +12,7 @@
 					<i class="ui blob-excerpt fa fa-caret-up" data-url="{{$.root.RepoLink}}/blob_excerpt/{{$.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=up" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i>
 				{{end}}
 				{{if or (eq $line.GetExpandDirection 2)}}
-					<i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.root.RepoLink}}/blob_excerpt/{{$.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i>
+					<span class="ui blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{$.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">{{svg "octicon-fold" 16}}</span>
 				{{end}}
 				</td>
 			{{else}}
diff --git a/templates/repo/editor/commit_form.tmpl b/templates/repo/editor/commit_form.tmpl
index 1915e9be21b..35fe1a910da 100644
--- a/templates/repo/editor/commit_form.tmpl
+++ b/templates/repo/editor/commit_form.tmpl
@@ -17,7 +17,7 @@
 				<div class="ui radio checkbox {{if not .CanCommitToBranch.CanCommitToBranch}}disabled{{end}}">
 					<input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="direct" button_text="{{.i18n.Tr "repo.editor.commit_changes"}}" {{if eq .commit_choice "direct"}}checked{{end}}>
 					<label>
-						<i class="octicon octicon-git-commit" height="16" width="14"></i>
+						{{svg "octicon-git-commit" 16}}
 						{{.i18n.Tr "repo.editor.commit_directly_to_this_branch" (.BranchName|Escape) | Safe}}
 						{{if not .CanCommitToBranch.CanCommitToBranch}}
 						<div class="ui visible small warning message">
@@ -41,7 +41,7 @@
 						<input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="commit-to-new-branch" button_text="{{.i18n.Tr "repo.editor.commit_changes"}}" {{if eq .commit_choice "commit-to-new-branch"}}checked{{end}}>
 					{{end}}
 					<label>
-						<i class="octicon octicon-git-pull-request" height="16" width="12"></i>
+						{{svg "octicon-git-pull-request" 16}}
 						{{if $pullRequestEnabled}}
 							{{.i18n.Tr "repo.editor.create_new_branch" | Safe}}
 						{{else}}
@@ -52,7 +52,7 @@
 			</div>
 			<div class="quick-pull-branch-name {{if not (eq .commit_choice "commit-to-new-branch")}}hide{{end}}">
 				<div class="new-branch-name-input field {{if .Err_NewBranchName}}error{{end}}">
-					<i class="octicon octicon-git-branch" height="16" width="10"></i>
+					{{svg "octicon-git-branch" 16}}
 					<input type="text" name="new_branch_name" value="{{.new_branch_name}}" class="input-contrast mr-2 js-quick-pull-new-branch-name" placeholder="{{.i18n.Tr "repo.editor.new_branch_name_desc"}}" {{if eq .commit_choice "commit-to-new-branch"}}required{{end}}>
 					<span class="text-muted js-quick-pull-normalization-info"></span>
 				</div>
diff --git a/templates/repo/editor/edit.tmpl b/templates/repo/editor/edit.tmpl
index d0ba1becc80..3eac405aa62 100644
--- a/templates/repo/editor/edit.tmpl
+++ b/templates/repo/editor/edit.tmpl
@@ -16,7 +16,7 @@
 							<div class="divider"> / </div>
 							{{if eq $i $l}}
 								<input id="file-name" value="{{$v}}" placeholder="{{$.i18n.Tr "repo.editor.name_your_file"}}" data-ec-url-prefix="{{$.EditorconfigURLPrefix}}" required autofocus>
-								<span class="octicon octicon-info poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted"></span>
+								<span class="poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-info" 16}}</span>
 							{{else}}
 								<span class="section"><a href="{{EscapePound $.BranchLink}}/{{index $.TreePaths $i | EscapePound}}">{{$v}}</a></span>
 							{{end}}
@@ -28,10 +28,10 @@
 			</div>
 			<div class="field">
 				<div class="ui top attached tabular menu" data-write="write" data-preview="preview" data-diff="diff">
-					<a class="active item" data-tab="write"><i class="octicon octicon-code"></i> {{if .IsNewFile}}{{.i18n.Tr "repo.editor.new_file"}}{{else}}{{.i18n.Tr "repo.editor.edit_file"}}{{end}}</a>
+					<a class="active item" data-tab="write">{{svg "octicon-code" 16}} {{if .IsNewFile}}{{.i18n.Tr "repo.editor.new_file"}}{{else}}{{.i18n.Tr "repo.editor.edit_file"}}{{end}}</a>
 					{{if not .IsNewFile}}
-					<a class="item" data-tab="preview" data-url="{{.Repository.APIURL}}/markdown" data-context="{{.RepoLink}}/src/{{.BranchNameSubURL | EscapePound}}" data-preview-file-modes="{{.PreviewableFileModes}}"><i class="octicon octicon-eye"></i> {{.i18n.Tr "preview"}}</a>
-					<a class="item" data-tab="diff" data-url="{{.RepoLink}}/_preview/{{.BranchName | EscapePound}}/{{.TreePath | EscapePound}}" data-context="{{.BranchLink}}"><i class="octicon octicon-diff"></i> {{.i18n.Tr "repo.editor.preview_changes"}}</a>
+					<a class="item" data-tab="preview" data-url="{{.Repository.APIURL}}/markdown" data-context="{{.RepoLink}}/src/{{.BranchNameSubURL | EscapePound}}" data-preview-file-modes="{{.PreviewableFileModes}}">{{svg "octicon-eye" 16}} {{.i18n.Tr "preview"}}</a>
+					<a class="item" data-tab="diff" data-url="{{.RepoLink}}/_preview/{{.BranchName | EscapePound}}/{{.TreePath | EscapePound}}" data-context="{{.BranchLink}}">{{svg "octicon-diff" 16}} {{.i18n.Tr "repo.editor.preview_changes"}}</a>
 					{{end}}
 				</div>
 				<div class="ui bottom attached active tab segment" data-tab="write">
diff --git a/templates/repo/editor/upload.tmpl b/templates/repo/editor/upload.tmpl
index 23fdc8bafc1..f1ca5b756fc 100644
--- a/templates/repo/editor/upload.tmpl
+++ b/templates/repo/editor/upload.tmpl
@@ -15,7 +15,7 @@
 							<div class="divider"> / </div>
 							{{if eq $i $l}}
 								<input type="text" id="file-name" value="{{$v}}" placeholder="{{$.i18n.Tr "repo.editor.add_subdir"}}" autofocus>
-								<span class="octicon octicon-info poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted"></span>
+								<span class="poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-info" 16}}</span>
 							{{else}}
 								<span class="section"><a href="{{EscapePound $.BranchLink}}/{{index $.TreePaths $i | EscapePound}}">{{$v}}</a></span>
 							{{end}}
diff --git a/templates/repo/empty.tmpl b/templates/repo/empty.tmpl
index 07c01fe5425..d6965d6fb99 100644
--- a/templates/repo/empty.tmpl
+++ b/templates/repo/empty.tmpl
@@ -35,7 +35,7 @@
 								{{end}}
 								{{if not (and $.DisableHTTP $.DisableSSH)}}
 									<button class="ui basic button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
-										<i class="octicon octicon-clippy"></i>
+										{{svg "octicon-clippy" 16}}
 									</button>
 								{{end}}
 							</div>
diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl
index b3757b2764b..c92feb5a789 100644
--- a/templates/repo/header.tmpl
+++ b/templates/repo/header.tmpl
@@ -4,15 +4,46 @@
 		<div class="repo-header">
 			<div class="ui huge breadcrumb repo-title">
 				{{if .RelAvatarLink}}
-				<img class="ui avatar image" src="{{.RelAvatarLink}}">
+					<img class="ui avatar image" src="{{.RelAvatarLink}}">
+				{{else if .IsTemplate}}
+					{{if .IsPrivate}}
+						{{svg "octicon-repo-template-private" 32}}
+					{{else}}
+						{{svg "octicon-repo-template" 32}}
+					{{end}}
 				{{else}}
-				<i class="mega-octicon octicon-{{if .IsPrivate}}lock{{else if .IsMirror}}repo-clone{{else if .IsFork}}repo-forked{{else}}repo{{end}}"></i>
+					{{if .IsPrivate}}
+						{{svg "octicon-lock" 32}}
+					{{else if .IsMirror}}
+						{{svg "octicon-repo-clone" 32}}
+					{{else if .IsFork}}
+						{{svg "octicon-repo-fork" 32}}
+					{{else}}
+						{{svg "octicon-repo" 32}}
+					{{end}}
 				{{end}}
 				<a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a>
 				<div class="divider"> / </div>
 				<a href="{{$.RepoLink}}">{{.Name}}</a>
-				{{if and .RelAvatarLink .IsPrivate}}<i class="mega-octicon octicon-lock"></i>{{end}}
-				{{if .IsTemplate}}<i class="icon fa-copy"></i>{{end}}
+				{{if .RelAvatarLink}}
+					{{if .IsTemplate}}
+						{{if .IsPrivate}}
+							{{svg "octicon-repo-template-private" 32}}
+						{{else}}
+							{{svg "octicon-repo-template" 32}}
+						{{end}}
+					{{else}}
+						{{if .IsPrivate}}
+							{{svg "octicon-lock" 32}}
+						{{else if .IsMirror}}
+							{{svg "octicon-repo-clone" 32}}
+						{{else if .IsFork}}
+							{{svg "octicon-repo-fork" 32}}
+						{{else}}
+							{{svg "octicon-repo" 32}}
+						{{end}}
+					{{end}}
+				{{end}}
 				{{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}}
 				{{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener noreferrer" href="{{if .SanitizedOriginalURL}}{{.SanitizedOriginalURL}}{{else}}{{MirrorAddress $.Mirror}}{{end}}">{{if .SanitizedOriginalURL}}{{.SanitizedOriginalURL}}{{else}}{{MirrorAddress $.Mirror}}{{end}}</a></div>{{end}}
 				{{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{SubStr .BaseRepo.RelLink 1 -1}}</a></div>{{end}}
@@ -39,7 +70,7 @@
 					{{if and (not .IsEmpty) ($.Permission.CanRead $.UnitTypeCode)}}
 						<div class="ui labeled button {{if and ($.IsSigned) (not $.CanSignedUserFork)}}disabled-repo-button{{end}}" tabindex="0">
 							<a class="ui compact basic button {{if or (not $.IsSigned) (not $.CanSignedUserFork)}}poping up{{end}}" {{if $.CanSignedUserFork}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else if $.IsSigned}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" {{ else }} data-content="{{$.i18n.Tr "repo.fork_guest_user" }}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{AppSubUrl}}/repo/fork/{{.ID}}" {{end}} data-position="top center" data-variation="tiny">
-								<i class="octicon octicon-repo-forked"></i>{{$.i18n.Tr "repo.fork"}}
+								{{svg "octicon-repo-forked" 16}}{{$.i18n.Tr "repo.fork"}}
 							</a>
 							<a class="ui basic label" href="{{.Link}}/forks">
 								{{.NumForks}}
@@ -56,43 +87,43 @@
 			<div class="ui tabular stackable menu navbar">
 				{{if .Permission.CanRead $.UnitTypeCode}}
 				<a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}{{if (ne .BranchName .Repository.DefaultBranch)}}/src/{{.BranchNameSubURL | EscapePound}}{{end}}">
-					<i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}}
+					{{svg "octicon-code" 16}} {{.i18n.Tr "repo.code"}}
 				</a>
 				{{end}}
 
 				{{if .Permission.CanRead $.UnitTypeIssues}}
 					<a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues">
-						<i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span>
+						{{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span>
 					</a>
 				{{end}}
 
 				{{if .Permission.CanRead $.UnitTypeExternalTracker}}
 					<a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoExternalIssuesLink}}" target="_blank" rel="noopener noreferrer">
-						<i class="octicon octicon-link-external"></i> {{.i18n.Tr "repo.issues"}} </span>
+						{{svg "octicon-link-external" 16}} {{.i18n.Tr "repo.issues"}} </span>
 					</a>
 				{{end}}
 
 				{{if and .Repository.CanEnablePulls (.Permission.CanRead $.UnitTypePullRequests)}}
 					<a class="{{if .PageIsPullList}}active{{end}} item" href="{{.RepoLink}}/pulls">
-						<i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.pulls"}} <span class="ui {{if not .Repository.NumOpenPulls}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenPulls}}</span>
+						{{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "repo.pulls"}} <span class="ui {{if not .Repository.NumOpenPulls}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenPulls}}</span>
 					</a>
 				{{end}}
 
 				{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }}
 				<a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases">
-					<i class="octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span>
+					{{svg "octicon-tag" 16}} {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span>
 				</a>
 				{{end}}
 
 				{{if or (.Permission.CanRead $.UnitTypeWiki) (.Permission.CanRead $.UnitTypeExternalWiki)}}
 					<a class="{{if .PageIsWiki}}active{{end}} item" href="{{.RepoLink}}/wiki" {{if (.Permission.CanRead $.UnitTypeExternalWiki)}} target="_blank" rel="noopener noreferrer" {{end}}>
-						<i class="octicon octicon-book"></i> {{.i18n.Tr "repo.wiki"}}
+						{{svg "octicon-book" 16}} {{.i18n.Tr "repo.wiki"}}
 					</a>
 				{{end}}
 
 				{{if and (.Permission.CanReadAny $.UnitTypePullRequests $.UnitTypeIssues $.UnitTypeReleases) (not .IsEmptyRepo)}}
 					<a class="{{if .PageIsActivity}}active{{end}} item" href="{{.RepoLink}}/activity">
-						<i class="octicon octicon-pulse"></i> {{.i18n.Tr "repo.activity"}}
+						{{svg "octicon-pulse" 16}} {{.i18n.Tr "repo.activity"}}
 					</a>
 				{{end}}
 
@@ -101,7 +132,7 @@
 				{{if .Permission.IsAdmin}}
 					<div class="right menu">
 						<a class="{{if .PageIsSettings}}active{{end}} item" href="{{.RepoLink}}/settings">
-							<i class="octicon octicon-tools"></i> {{.i18n.Tr "repo.settings"}}
+							{{svg "octicon-tools" 16}} {{.i18n.Tr "repo.settings"}}
 						</a>
 					</div>
 				{{end}}
diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl
index 19989bbe061..2397cb1b889 100644
--- a/templates/repo/home.tmpl
+++ b/templates/repo/home.tmpl
@@ -127,14 +127,14 @@
 						{{end}}
 						{{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}}
 							<button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
-								<i class="octicon octicon-clippy"></i>
+								{{svg "octicon-clippy" 16}}
 							</button>
 						{{end}}
 						<div class="ui basic jump dropdown icon button poping up" data-content="{{.i18n.Tr "repo.download_archive"}}" data-variation="tiny inverted" data-position="top right">
 							<i class="download icon"></i>
 							<div class="menu">
-								<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a>
-								<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a>
+								<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip">{{svg "octicon-file-zip" 16}}&nbsp;ZIP</a>
+								<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz">{{svg "octicon-file-zip" 16}}&nbsp;TAR.GZ</a>
 							</div>
 						</div>
 					</div>
diff --git a/templates/repo/issue/branch_selector_field.tmpl b/templates/repo/issue/branch_selector_field.tmpl
index 8758be4ae0a..a584152d61f 100644
--- a/templates/repo/issue/branch_selector_field.tmpl
+++ b/templates/repo/issue/branch_selector_field.tmpl
@@ -15,7 +15,7 @@
 				<div class="two column row">
 					<a class="reference column" href="#" data-target="#branch-list">
 						<span class="text black">
-							<i class="octicon octicon-git-branch"></i> {{.i18n.Tr "repo.branches"}}
+							{{svg "octicon-git-branch" 16}} {{.i18n.Tr "repo.branches"}}
 						</span>
 					</a>
 					<a class="reference column" href="#" data-target="#tag-list">
@@ -40,4 +40,4 @@
 </div>
 
 <div class="ui divider"></div>
-{{end}}
\ No newline at end of file
+{{end}}
diff --git a/templates/repo/issue/labels.tmpl b/templates/repo/issue/labels.tmpl
index 32a5c2a4ef1..4719c8f1fb2 100644
--- a/templates/repo/issue/labels.tmpl
+++ b/templates/repo/issue/labels.tmpl
@@ -98,18 +98,18 @@
 				<li class="item">
 					<div class="ui grid">
 						<div class="three wide column">
-							<div class="ui label has-emoji" style="color: {{.ForegroundColor}}; background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div>
+							<div class="ui label has-emoji" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{svg "octicon-tag" 16}} {{.Name}}</div>
 						</div>
 						<div class="seven wide column">
 							{{.Description}}
 						</div>
 						<div class="three wide column">
-							<a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a>
+							<a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}">{{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a>
 						</div>
 						<div class="three wide column">
 							{{if and (not $.Repository.IsArchived) (or $.CanWriteIssues $.CanWritePulls)}}
-							<a class="ui right delete-button" href="#" data-url="{{$.RepoLink}}/labels/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a>
-							<a class="ui right edit-label-button" href="#" data-id="{{.ID}}" data-title="{{.Name}}" data-description="{{.Description}}" data-color={{.Color}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a>
+							<a class="ui right delete-button" href="#" data-url="{{$.RepoLink}}/labels/delete" data-id="{{.ID}}">{{svg "octicon-trashcan" 16}} {{$.i18n.Tr "repo.issues.label_delete"}}</a>
+							<a class="ui right edit-label-button" href="#" data-id="{{.ID}}" data-title="{{.Name}}" data-description="{{.Description}}" data-color={{.Color}}>{{svg "octicon-pencil" 16}} {{$.i18n.Tr "repo.issues.label_edit"}}</a>
 						{{end}}
 						</div>
 					</div>
diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl
index ca6fa72b983..0b618daaa9d 100644
--- a/templates/repo/issue/list.tmpl
+++ b/templates/repo/issue/list.tmpl
@@ -30,11 +30,11 @@
 			<div class="six wide column">
 				<div class="ui tiny basic status buttons">
 					<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-opened"></i>
+						{{svg "octicon-issue-opened" 16}}
 						{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
 					</a>
 					<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-closed"></i>
+						{{svg "octicon-issue-closed" 16}}
 						{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
 					</a>
 				</div>
@@ -51,7 +51,7 @@
 							<span class="info">{{.i18n.Tr "repo.issues.filter_label_exclude" | Safe}}</span>
 							<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
 							{{range .Labels}}
-								<a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}"><span class="octicon {{if .IsExcluded}}octicon-circle-slash{{else if .IsSelected}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
+								<a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}">{{if .IsExcluded}}{{svg "octicon-circle-slash" 16}}{{else if .IsSelected}}{{svg "octicon-check" 16}}{{end}}<span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
 							{{end}}
 						</div>
 					</div>
@@ -124,11 +124,11 @@
 			<div class="six wide column">
 				<div class="ui tiny basic status buttons">
 					<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-opened"></i>
+						{{svg "octicon-issue-opened" 16}}
 						{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
 					</a>
 					<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-closed"></i>
+						{{svg "octicon-issue-closed" 16}}
 						{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
 					</a>
 				</div>
@@ -155,7 +155,7 @@
 						<div class="menu">
 							{{range .Labels}}
 								<div class="item issue-action has-emoji" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels">
-									<span class="octicon {{if contain $.SelLabelIDs .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
+									{{if contain $.SelLabelIDs .ID}}{{svg "octicon-check" 16}}{{end}}<span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
 								</div>
 							{{end}}
 						</div>
@@ -223,11 +223,11 @@
 					{{end}}
 
 					{{if .NumComments}}
-						<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>
+						<span class="comment ui right">{{svg "octicon-comment" 16}} {{.NumComments}}</span>
 					{{end}}
 
 					{{if .TotalTrackedTime}}
-						<span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span>
+						<span class="comment ui right">{{svg "octicon-clock" 16}} {{.TotalTrackedTime | Sec2Time}}</span>
 					{{end}}
 
 					<p class="desc">
@@ -242,24 +242,24 @@
 
 						{{if .Milestone}}
 							<a class="milestone" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
-								<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
+								{{svg "octicon-milestone" 16}} {{.Milestone.Name}}
 							</a>
 						{{end}}
 						{{if .Ref}}
 							<a class="ref" href="{{$.RepoLink}}/src/branch/{{.Ref | PathEscapeSegments}}">
-								<span class="octicon octicon-git-branch"></span> {{.Ref}}
+								{{svg "octicon-git-branch" 16}} {{.Ref}}
 							</a>
 						{{end}}
 						{{$tasks := .GetTasks}}
 						{{if gt $tasks 0}}
 							{{$tasksDone := .GetTasksDone}}
 							<span class="checklist">
-								<span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
+								{{svg "octicon-checklist" 16}} {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
 							</span>
 						{{end}}
 						{{if ne .DeadlineUnix 0}}
 							<span class="due-date poping up" data-content="{{$.i18n.Tr "repo.issues.due_date"}}" data-variation="tiny inverted" data-position="right center">
-								<span class="octicon octicon-calendar"></span><span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span>
+								{{svg "octicon-calendar" 16}}<span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span>
 							</span>
 						{{end}}
 						{{range .Assignees}}
@@ -269,7 +269,7 @@
 						{{end}}
 						{{if .IsPull}}
 							{{if and (not .PullRequest.HasMerged) ((len .PullRequest.ConflictedFiles) gt 0)}}
-								<span class="conflicting"><i class="octicon octicon-mirror"></i> {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span>
+								<span class="conflicting">{{svg "octicon-mirror" 16}} {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span>
 							{{end}}
 						{{end}}
 					</p>
diff --git a/templates/repo/issue/milestone_issues.tmpl b/templates/repo/issue/milestone_issues.tmpl
index fb0609601ca..fdde0ad6b4e 100644
--- a/templates/repo/issue/milestone_issues.tmpl
+++ b/templates/repo/issue/milestone_issues.tmpl
@@ -7,7 +7,7 @@
 				<h3>{{.Milestone.Name}}</h3>
 			</div>
 			<div class="column center aligned">
-				
+
 			</div>
 			{{if not .Repository.IsArchived}}
 				<div class="column right aligned">
@@ -22,16 +22,16 @@
             <div class="column">
                 {{ $closedDate:= TimeSinceUnix .Milestone.ClosedDateUnix $.Lang }}
                 {{if .IsClosed}}
-                    <span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
+					{{svg "octicon-clock" 16}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
                 {{else}}
-                    <span class="octicon octicon-calendar"></span>
+					{{svg "octicon-calendar" 16}}
                     {{if .Milestone.DeadlineString}}
                         <span {{if .IsOverdue}}class="overdue"{{end}}>{{.Milestone.DeadlineString}}</span>
                     {{else}}
                         {{$.i18n.Tr "repo.milestones.no_due_date"}}
                     {{end}}
                 {{end}}
-                &nbsp; 
+                &nbsp;
                 <b>{{.i18n.Tr "repo.milestones.completeness" .Milestone.Completeness}}</b>
             </div>
         </div>
@@ -40,11 +40,11 @@
 			<div class="six wide column">
 				<div class="ui tiny basic status buttons">
 					<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-opened"></i>
+						{{svg "octicon-issue-opened" 16}}
 						{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
 					</a>
 					<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-closed"></i>
+						{{svg "octicon-issue-closed" 16}}
 						{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
 					</a>
 				</div>
@@ -61,7 +61,7 @@
 							<span class="info">{{.i18n.Tr "repo.issues.filter_label_exclude" | Safe}}</span>
 							<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
 							{{range .Labels}}
-								<a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}"><span class="octicon {{if .IsExcluded}}octicon-circle-slash{{else if contain $.SelLabelIDs .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
+								<a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}">{{if .IsExcluded}}{{svg "octicon-circle-slash" 16}}{{else if contain $.SelLabelIDs .ID}}{{svg "octicon-check" 16}}{{end}}"><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
 							{{end}}
 						</div>
 					</div>
@@ -118,11 +118,11 @@
 			<div class="six wide column">
 				<div class="ui tiny basic status buttons">
 					<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-opened"></i>
+						{{svg "octicon-issue-opened" 16}}
 						{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
 					</a>
 					<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&assignee={{.AssigneeID}}">
-						<i class="octicon octicon-issue-closed"></i>
+						{{svg "octicon-issue-closed" 16}}
 						{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
 					</a>
 				</div>
@@ -149,7 +149,7 @@
 						<div class="menu">
 							{{range .Labels}}
 								<div class="item issue-action has-emoji" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels">
-									<span class="octicon {{if contain $.SelLabelIDs .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
+									{{if contain $.SelLabelIDs .ID}}{{svg "octicon-check" 16}}{{end}}"><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
 								</div>
 							{{end}}
 						</div>
@@ -193,11 +193,11 @@
 					{{end}}
 
 					{{if .NumComments}}
-						<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>
+						<span class="comment ui right">{{svg "octicon-comment" 16}} {{.NumComments}}</span>
 					{{end}}
 
 					{{if .TotalTrackedTime}}
-						<span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span>
+						<span class="comment ui right">{{svg "octicon-clock" 16}} {{.TotalTrackedTime | Sec2Time}}</span>
 					{{end}}
 
 					<p class="desc">
@@ -208,18 +208,18 @@
 						{{end}}
 						{{if .Ref}}
 							<a class="ref" href="{{$.RepoLink}}/src/branch/{{.Ref}}">
-								<span class="octicon octicon-git-branch"></span> {{.Ref}}
+								{{svg "octicon-git-branch" 16}} {{.Ref}}
 							</a>
 						{{end}}
 						{{$tasks := .GetTasks}}
 						{{if gt $tasks 0}}
 							{{$tasksDone := .GetTasksDone}}
 							<span class="checklist">
-								<span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
+								{{svg "octicon-checklist" 16}} {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
 							</span>
 						{{end}}
 						{{if ne .DeadlineUnix 0}}
-							<span class="octicon octicon-calendar"></span>
+							{{svg "octicon-calendar" 16}}
 							<span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span>
 						{{end}}
 						{{range .Assignees}}
diff --git a/templates/repo/issue/milestones.tmpl b/templates/repo/issue/milestones.tmpl
index ef5eece770d..e33124e66e9 100644
--- a/templates/repo/issue/milestones.tmpl
+++ b/templates/repo/issue/milestones.tmpl
@@ -14,11 +14,11 @@
 		{{template "base/alert" .}}
 		<div class="ui tiny basic buttons">
 			<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.RepoLink}}/milestones?state=open">
-				<i class="octicon octicon-milestone"></i>
+				{{svg "octicon-milestone" 16}}
 				{{.i18n.Tr "repo.milestones.open_tab" .OpenCount}}
 			</a>
 			<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.RepoLink}}/milestones?state=closed">
-				<i class="octicon octicon-milestone"></i>
+				{{svg "octicon-milestone" 16}}
 				{{.i18n.Tr "repo.milestones.close_tab" .ClosedCount}}
 			</a>
 		</div>
@@ -43,7 +43,7 @@
 		<div class="milestone list">
 			{{range .Milestones}}
 				<li class="item">
-					<i class="octicon octicon-milestone"></i> <a href="{{$.RepoLink}}/milestone/{{.ID}}">{{.Name}}</a>
+					{{svg "octicon-milestone" 16}} <a href="{{$.RepoLink}}/milestone/{{.ID}}">{{.Name}}</a>
 					<div class="ui right green progress" data-percent="{{.Completeness}}">
 						<div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}>
 							<div class="progress"></div>
@@ -52,9 +52,9 @@
 					<div class="meta">
 						{{ $closedDate:= TimeSinceUnix .ClosedDateUnix $.Lang }}
 						{{if .IsClosed}}
-							<span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
+							{{svg "octicon-clock" 16}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
 						{{else}}
-							<span class="octicon octicon-calendar"></span>
+							{{svg "octicon-calendar" 16}}
 							{{if .DeadlineString}}
 								<span {{if .IsOverdue}}class="overdue"{{end}}>{{.DeadlineString}}</span>
 							{{else}}
@@ -62,20 +62,20 @@
 							{{end}}
 						{{end}}
 						<span class="issue-stats">
-							<i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.open_tab" .NumOpenIssues}}
-							<i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.issues.close_tab" .NumClosedIssues}}
-							{{if .TotalTrackedTime}}<i class="octicon octicon-clock"></i> {{.TotalTrackedTime|Sec2Time}}{{end}}
+							{{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.issues.open_tab" .NumOpenIssues}}
+							{{svg "octicon-issue-closed" 16}} {{$.i18n.Tr "repo.issues.close_tab" .NumClosedIssues}}
+							{{if .TotalTrackedTime}}{{svg "octicon-clock" 16}} {{.TotalTrackedTime|Sec2Time}}{{end}}
 						</span>
 					</div>
 					{{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
 						<div class="ui right operate">
-							<a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a>
+							<a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-pencil" 16}} {{$.i18n.Tr "repo.issues.label_edit"}}</a>
 							{{if .IsClosed}}
-								<a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-check"></i> {{$.i18n.Tr "repo.milestones.open"}}</a>
+								<a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-check" 16}} {{$.i18n.Tr "repo.milestones.open"}}</a>
 							{{else}}
-								<a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.milestones.close"}}</a>
+								<a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-x" 16}} {{$.i18n.Tr "repo.milestones.close"}}</a>
 							{{end}}
-							<a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a>
+							<a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trashcan" 16}} {{$.i18n.Tr "repo.issues.label_delete"}}</a>
 						</div>
 					{{end}}
 					{{if .Content}}
diff --git a/templates/repo/issue/new_form.tmpl b/templates/repo/issue/new_form.tmpl
index 470139d7f30..524b849c144 100644
--- a/templates/repo/issue/new_form.tmpl
+++ b/templates/repo/issue/new_form.tmpl
@@ -41,12 +41,12 @@
 			<div class="ui {{if not .Labels}}disabled{{end}} floating jump select-label dropdown">
 				<span class="text">
 					<strong>{{.i18n.Tr "repo.issues.new.labels"}}</strong>
-					<span class="octicon octicon-gear"></span>
+					{{svg "octicon-gear" 16}}
 				</span>
 				<div class="filter menu" data-id="#label_ids">
 					<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div>
 					{{range .Labels}}
-						<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
+						<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
 						{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a>
 					{{end}}
 				</div>
@@ -64,14 +64,14 @@
 			<div class="ui {{if not (or .OpenMilestones .ClosedMilestones)}}disabled{{end}} floating jump select-milestone dropdown">
 				<span class="text">
 					<strong>{{.i18n.Tr "repo.issues.new.milestone"}}</strong>
-					<span class="octicon octicon-gear"></span>
+					{{svg "octicon-gear" 16}}
 				</span>
 				<div class="menu">
 					<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_milestone"}}</div>
 					{{if .OpenMilestones}}
 						<div class="divider"></div>
 						<div class="header">
-							<i class="octicon octicon-milestone"></i>
+							{{svg "octicon-milestone" 16}}
 							{{.i18n.Tr "repo.issues.new.open_milestone"}}
 						</div>
 						{{range .OpenMilestones}}
@@ -81,7 +81,7 @@
 					{{if .ClosedMilestones}}
 						<div class="divider"></div>
 						<div class="header">
-							<i class="octicon octicon-milestone"></i>
+							{{svg "octicon-milestone" 16}}
 							{{.i18n.Tr "repo.issues.new.closed_milestone"}}
 						</div>
 						{{range .ClosedMilestones}}
@@ -105,13 +105,13 @@
 				<div class="ui {{if not .Assignees}}disabled{{end}} floating jump select-assignees dropdown">
 					<span class="text">
 						<strong>{{.i18n.Tr "repo.issues.new.assignees"}}</strong>
-						<span class="octicon octicon-gear"></span>
+						{{svg "octicon-gear" 16}}
 					</span>
 					<div class="filter menu" data-id="#assignee_ids">
 						<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignees"}}</div>
 						{{range .Assignees}}
 							<a class="item" href="#" data-id="{{.ID}}" data-id-selector="#assignee_{{.ID}}">
-								<span class="octicon"></span>
+								<span class="octicon-check invisible">{{svg "octicon-check" 16}}</span>
 								<span class="text">
 									<img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.GetDisplayName}}
 								</span>
diff --git a/templates/repo/issue/view_content/add_reaction.tmpl b/templates/repo/issue/view_content/add_reaction.tmpl
index 9e1dc3cc875..543f313f0ab 100644
--- a/templates/repo/issue/view_content/add_reaction.tmpl
+++ b/templates/repo/issue/view_content/add_reaction.tmpl
@@ -1,8 +1,8 @@
 {{if .ctx.IsSigned}}
 <div class="item action ui pointing top right select-reaction dropdown" data-action-url="{{ .ActionURL }}">
 	<a class="add-reaction">
-		<i class="octicon octicon-plus-small" style="width: 10px"></i>
-		<i class="octicon octicon-smiley"></i>
+		{{svg "octicon-plus-small" 16}}
+		{{svg "octicon-smiley" 16}}
 	</a>
 	<div class="menu has-emoji">
 		<div class="header">{{ .ctx.i18n.Tr "repo.pick_reaction"}}</div>
diff --git a/templates/repo/issue/view_content/attachments.tmpl b/templates/repo/issue/view_content/attachments.tmpl
index a97f5d85da4..17bf9bb9ed8 100644
--- a/templates/repo/issue/view_content/attachments.tmpl
+++ b/templates/repo/issue/view_content/attachments.tmpl
@@ -3,7 +3,7 @@
     {{if FilenameIsImage .Name}}
       <img class="ui image" src="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'>
     {{else}}
-      <span class="ui image octicon octicon-desktop-download" title='{{$.ctx.i18n.Tr "repo.issues.attachment.download" .Name}}'></span>
+      <span class="ui image" title='{{$.ctx.i18n.Tr "repo.issues.attachment.download" .Name}}'>{{svg "octicon-desktop-download" 16}}</span>
     {{end}}
   </a>
 {{end}}
diff --git a/templates/repo/issue/view_content/comments.tmpl b/templates/repo/issue/view_content/comments.tmpl
index 9c99f44ba80..2e9d8a32ba1 100644
--- a/templates/repo/issue/view_content/comments.tmpl
+++ b/templates/repo/issue/view_content/comments.tmpl
@@ -70,7 +70,7 @@
 		</div>
 	{{else if eq .Type 1}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -78,7 +78,7 @@
 		</div>
 	{{else if eq .Type 2}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-circle-slash issue-symbol"></span>
+			<span class="issue-symbol">{{svg "octicon-circle-slash" 16}}</span>
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -99,7 +99,7 @@
 		{{end}}
 		{{ $createdStr:= TimeSinceUnix .CreatedUnix $.Lang }}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-bookmark"></span>
+			{{svg "octicon-bookmark" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -115,21 +115,21 @@
 		</div>
 	{{else if eq .Type 4}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-bookmark"></span>
+			{{svg "octicon-bookmark" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
 			<span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.commit_ref_at" .EventTag $createdStr | Safe}}</span>
 
 			<div class="detail">
-				<span class="octicon octicon-git-commit"></span>
+				{{svg "octicon-git-commit" 16}}
 				<span class="text grey">{{.Content | Str2html}}</span>
 			</div>
 		</div>
 	{{else if eq .Type 7}}
 		{{if .Label}}
 			<div class="event" id="{{.HashTag}}">
-				<span class="octicon octicon-primitive-dot"></span>
+				{{svg "octicon-primitive-dot" 16}}
 				<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 					<img src="{{.Poster.RelAvatarLink}}">
 				</a>
@@ -139,7 +139,7 @@
 		{{end}}
 	{{else if eq .Type 8}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -148,7 +148,7 @@
 		</div>
 	{{else if eq .Type 9}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			{{if gt .AssigneeID 0}}
 				{{if .RemovedAssignee}}
 					<a class="ui avatar image" href="{{.Assignee.HomeLink}}">
@@ -179,7 +179,7 @@
 		</div>
 	{{else if eq .Type 10}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -189,7 +189,7 @@
 		</div>
 	{{else if eq .Type 11}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -199,7 +199,7 @@
 		</div>
 	{{else if eq .Type 12}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -207,32 +207,32 @@
 		</div>
 	{{else if eq .Type 13}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
 			<span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.stop_tracking_history"  $createdStr | Safe}}</span>
 
 			<div class="detail">
-				<span class="octicon octicon-clock"></span>
+				{{svg "octicon-clock" 16}}
 				<span class="text grey">{{.Content}}</span>
 			</div>
 		</div>
 	{{else if eq .Type 14}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
 			<span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.add_time_history"  $createdStr | Safe}}</span>
 			<div class="detail">
-				<span class="octicon octicon-clock"></span>
+				{{svg "octicon-clock" 16}}
 				<span class="text grey">{{.Content}}</span>
 			</div>
 		</div>
 	{{else if eq .Type 15}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -240,7 +240,7 @@
 		</div>
 	{{else if eq .Type 16}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -250,7 +250,7 @@
 		</div>
 	{{else if eq .Type 17}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -260,7 +260,7 @@
 		</div>
 	{{else if eq .Type 18}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -270,7 +270,7 @@
 		</div>
 	{{else if eq .Type 19}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -279,7 +279,7 @@
 			</span>
 			{{if .DependentIssue}}
 				<div class="detail">
-					<span class="octicon octicon-plus"></span>
+					{{svg "octicon-plus" 16}}
 					<span class="text grey">
 						<a href="{{.DependentIssue.HTMLURL}}">
 							{{if eq .DependentIssue.RepoID .Issue.RepoID}}
@@ -294,7 +294,7 @@
 		</div>
 	{{else if eq .Type 20}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -303,7 +303,7 @@
 			</span>
 			{{if .DependentIssue}}
 				<div class="detail">
-					<span class="text grey octicon octicon-trashcan"></span>
+					<span class="text grey">{{svg "octicon-trashcan" 16}}</span>
 					<span class="text grey">
 						<a href="{{.DependentIssue.HTMLURL}}">
 							{{if eq .DependentIssue.RepoID .Issue.RepoID}}
@@ -318,7 +318,7 @@
 		</div>
 	{{else if eq .Type 22}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-{{.Review.Type.Icon}} issue-symbol"></span>
+			<span class="issue-symbol">{{svg (printf "octicon-%s" .Review.Type.Icon) 16}}</span>
 			{{if .OriginalAuthor }}
 			{{else}}
 				<a class="ui avatar image"{{if gt .Poster.ID 0}} href="{{.Poster.HomeLink}}"{{end}}>
@@ -344,7 +344,7 @@
 			</span>
 			{{if .Content}}
 				<div class="detail">
-					<span class="octicon octicon-quote"></span>
+					{{svg "octicon-quote" 16}}
 					<span class="text grey has-emoji">{{.Content}}</span>
 				</div>
 			{{end}}
@@ -355,11 +355,11 @@
 								{{$invalid := (index $comms 0).Invalidated}}
 							{{if $invalid}}
 								<button id="show-outdated-{{(index $comms 0).ID}}" data-comment="{{(index $comms 0).ID}}" class="ui compact right labeled button show-outdated">
-									<i class="octicon octicon-fold"></i>
+									{{svg "octicon-fold" 16}}
 									{{$.i18n.Tr "repo.issues.review.show_outdated"}}
 								</button>
 								<button id="hide-outdated-{{(index $comms 0).ID}}" data-comment="{{(index $comms 0).ID}}" class="hide ui compact right labeled button hide-outdated">
-									<i class="octicon octicon-fold"></i>
+									{{svg "octicon-fold" 16}}
 									{{$.i18n.Tr "repo.issues.review.hide_outdated"}}
 								</button>
 							{{end}}
@@ -417,7 +417,7 @@
 		</div>
 	{{else if eq .Type 23}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-lock issue-symbol"></span>
+			<span class="issue-symbol">{{svg "octicon-lock" 16}}</span>
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -434,7 +434,7 @@
 		</div>
 	{{else if eq .Type 24}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-key issue-symbol"></span>
+			<span class="issue-symbol">{{svg "octicon-key" 16}}</span>
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -445,7 +445,7 @@
 		</div>
 	{{else if eq .Type 25}}
 		<div class="event">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
@@ -455,13 +455,13 @@
 		</div>
 	{{else if eq .Type 26}}
 		<div class="event" id="{{.HashTag}}">
-			<span class="octicon octicon-primitive-dot"></span>
+			{{svg "octicon-primitive-dot" 16}}
 			<a class="ui avatar image" href="{{.Poster.HomeLink}}">
 				<img src="{{.Poster.RelAvatarLink}}">
 			</a>
 			<span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.del_time_history"  $createdStr | Safe}}</span>
 			<div class="detail">
-				<span class="octicon octicon-clock"></span>
+				{{svg "octicon-clock" 16}}
 				<span class="text grey">{{.Content}}</span>
 			</div>
 		</div>
diff --git a/templates/repo/issue/view_content/pull.tmpl b/templates/repo/issue/view_content/pull.tmpl
index 32c744515c0..0d98f08e69c 100644
--- a/templates/repo/issue/view_content/pull.tmpl
+++ b/templates/repo/issue/view_content/pull.tmpl
@@ -11,7 +11,7 @@
 							{{else if eq .Type 2}}grey
 							{{else if eq .Type 3}}red
 							{{else}}grey{{end}}">
-							<span class="octicon octicon-{{.Type.Icon}}"></span>
+							{{svg (printf "octicon-%s" .Type.Icon) 16}}
 						</span>
 						{{if .Stale}}
 						<span class="type-icon text grey">
@@ -52,7 +52,7 @@
 	{{else if and .RequireSigned (not .WillSign)}}}red
 	{{else if .Issue.PullRequest.IsChecking}}yellow
 	{{else if .Issue.PullRequest.CanAutoMerge}}green
-	{{else}}red{{end}}"><span class="mega-octicon octicon-git-merge"></span></a>
+	{{else}}red{{end}}">{{svg "octicon-git-merge" 32}}</a>
 	<div class="content">
 		{{template "repo/pulls/status" .}}
 		<div class="ui {{if not $.LatestCommitStatus}}top attached header{{else}}attached merge-section segment{{end}}">
@@ -87,7 +87,7 @@
 				{{end}}
 			{{else if .IsPullFilesConflicted}}
 				<div class="item text grey">
-					<span class="octicon octicon-x"></span>
+					{{svg "octicon-x" 16}}
 					{{$.i18n.Tr "repo.pulls.files_conflicted"}}
 					{{range .ConflictedFiles}}
 						<div>{{.}}</div>
@@ -95,38 +95,38 @@
 				</div>
 			{{else if .IsPullRequestBroken}}
 				<div class="item text red">
-					<i class="icon icon-octicon"><span class="octicon octicon-x"></span></i>
+					<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 					{{$.i18n.Tr "repo.pulls.data_broken"}}
 				</div>
 			{{else if .IsPullWorkInProgress}}
 				<div class="item text grey">
-					<i class="icon icon-octicon"><span class="octicon octicon-x"></span></i>
+					<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 					{{$.i18n.Tr "repo.pulls.cannot_merge_work_in_progress" .WorkInProgressPrefix | Str2html}}
 				</div>
 			{{else if .Issue.PullRequest.IsChecking}}
 				<div class="item text yellow">
-					<i class="icon icon-octicon"><span class="octicon octicon-sync"></span></i>
+					<i class="icon icon-octicon">{{svg "octicon-sync" 16}}</i>
 					{{$.i18n.Tr "repo.pulls.is_checking"}}
 				</div>
 			{{else if .Issue.PullRequest.CanAutoMerge}}
 				{{if .IsBlockedByApprovals}}
 					<div class="item text red">
-						<i class="icon icon-octicon"><span class="octicon octicon-x"></span></i>
+						<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 					{{$.i18n.Tr "repo.pulls.blocked_by_approvals" .GrantedApprovals .Issue.PullRequest.ProtectedBranch.RequiredApprovals}}
 					</div>
 				{{else if .IsBlockedByRejection}}
 					<div class="item text red">
-						<i class="icon icon-octicon"><span class="octicon octicon-x"></span></i>
+						<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 					{{$.i18n.Tr "repo.pulls.blocked_by_rejection"}}
 					</div>
 				{{else if and .EnableStatusCheck (or .RequiredStatusCheckState.IsError .RequiredStatusCheckState.IsFailure)}}
 					<div class="item text red">
-						<i class="icon icon-octicon"><span class="octicon octicon-x"></span></i>
+						<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 						{{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
 					</div>
 				{{else if and .RequireSigned (not .WillSign)}}
 					<div class="item text red">
-						<i class="icon icon-octicon"><span class="octicon octicon-x"></span></i>
+						<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 						{{$.i18n.Tr "repo.pulls.require_signed_wont_sign"}}
 					</div>
 					<div class="item text yellow">
@@ -138,12 +138,12 @@
 				{{if and (or $.IsRepoAdmin (not $notAllOverridableChecksOk)) (or (not .RequireSigned) .WillSign)}}
 					{{if $notAllOverridableChecksOk}}
 						<div class="item text yellow">
-							<i class="icon icon-octicon"><span class="octicon octicon-primitive-dot"></span></i>
+							<i class="icon icon-octicon">{{svg "octicon-primitive-dot" 16}}</i>
 							{{$.i18n.Tr "repo.pulls.required_status_check_administrator"}}
 						</div>
 					{{else}}
 						<div class="item text green">
-							<i class="icon icon-octicon"><span class="octicon octicon-check"></span></i>
+							<i class="icon icon-octicon">{{svg "octicon-check" 16}}</i>
 							{{$.i18n.Tr "repo.pulls.can_auto_merge_desc"}}
 						</div>
 					{{end}}
@@ -162,7 +162,7 @@
 					<div class="ui very compact branch-update grid">
   						<div class="row">
 							<div class="item text gray eleven wide left floated column">
-								<i class="icon icon-octicon"><span class="octicon octicon-alert"></span></i>
+								<i class="icon icon-octicon">{{svg "octicon-alert" 16}}</i>
 								{{$.i18n.Tr "repo.pulls.outdated_with_base_branch"}}
 							</div>
 							{{if .UpdateAllowed}}
@@ -256,7 +256,7 @@
 							{{end}}
 							<div class="ui {{if $notAllOverridableChecksOk}}red{{else}}green{{end}} buttons merge-button">
 								<button class="ui button" data-do="{{.MergeStyle}}">
-									<span class="octicon octicon-git-merge"></span>
+									{{svg "octicon-git-merge" 16}}
 									<span class="button-text">
 									{{if eq .MergeStyle "merge"}}
 										{{$.i18n.Tr "repo.pulls.merge_pull_request"}}
@@ -292,17 +292,17 @@
 							</div>
 						{{else}}
 							<div class="item text red">
-								<span class="octicon octicon-x"></span>
+								{{svg "octicon-x" 16}}
 								{{$.i18n.Tr "repo.pulls.no_merge_desc"}}
 							</div>
 							<div class="item text grey">
-								<span class="octicon octicon-info"></span>
+								{{svg "octicon-info" 16}}
 								{{$.i18n.Tr "repo.pulls.no_merge_helper"}}
 							</div>
 						{{end}}
 					{{else}}
 						<div class="item text grey">
-							<span class="octicon octicon-info"></span>
+							{{svg "octicon-info" 16}}
 							{{$.i18n.Tr "repo.pulls.no_merge_access"}}
 						</div>
 					{{end}}
@@ -311,31 +311,31 @@
 				{{/* Merge conflict without specific file. Suggest manual merge, only if all reviews and status checks OK. */}}
 				{{if .IsBlockedByApprovals}}
 					<div class="item text red">
-						<span class="octicon octicon-x"></span>
+						{{svg "octicon-x" 16}}
 					{{$.i18n.Tr "repo.pulls.blocked_by_approvals" .GrantedApprovals .Issue.PullRequest.ProtectedBranch.RequiredApprovals}}
 					</div>
 				{{else if .IsBlockedByRejection}}
 					<div class="item text red">
-						<span class="octicon octicon-x"></span>
+						{{svg "octicon-x" 16}}
 					{{$.i18n.Tr "repo.pulls.blocked_by_rejection"}}
 					</div>
 				{{else if and .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}}
 					<div class="item text red">
-						<span class="octicon octicon-x"></span>
+						{{svg "octicon-x" 16}}
 						{{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
 					</div>
 				{{else if and .RequireSigned (not .WillSign)}}
 					<div class="item text red">
-						<span class="octicon octicon-x"></span>
+						{{svg "octicon-x" 16}}
 						{{$.i18n.Tr "repo.pulls.require_signed_wont_sign"}}
 					</div>
 				{{else}}
 					<div class="item text red">
-						<span class="octicon octicon-x"></span>
+						{{svg "octicon-x" 16}}
 						{{$.i18n.Tr "repo.pulls.cannot_auto_merge_desc"}}
 					</div>
 					<div class="item text grey">
-						<span class="octicon octicon-info"></span>
+						{{svg "octicon-info" 16}}
 						{{$.i18n.Tr "repo.pulls.cannot_auto_merge_helper"}}
 					</div>
 				{{end}}
diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl
index 4d571736171..a9a4035594f 100644
--- a/templates/repo/issue/view_content/sidebar.tmpl
+++ b/templates/repo/issue/view_content/sidebar.tmpl
@@ -5,12 +5,12 @@
 		<div class="ui {{if or (not .IsIssueWriter) .Repository.IsArchived}}disabled{{end}} floating jump select-label dropdown">
 			<span class="text">
 				<strong>{{.i18n.Tr "repo.issues.new.labels"}}</strong>
-				<span class="octicon octicon-gear"></span>
+				{{svg "octicon-gear" 16}}
 			</span>
 			<div class="filter menu labels" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/labels">
 				<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div>
 				{{range .Labels}}
-					<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
+					<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
 					{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a>
 				{{end}}
 			</div>
@@ -30,14 +30,14 @@
 		<div class="ui {{if or (not .IsIssueWriter) .Repository.IsArchived}}disabled{{end}} floating jump select-milestone dropdown">
 			<span class="text">
 				<strong>{{.i18n.Tr "repo.issues.new.milestone"}}</strong>
-				<span class="octicon octicon-gear"></span>
+				{{svg "octicon-gear" 16}}
 			</span>
 			<div class="menu" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/milestone">
 				<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_milestone"}}</div>
 				{{if .OpenMilestones}}
 					<div class="divider"></div>
 					<div class="header">
-						<i class="octicon octicon-milestone"></i>
+						{{svg "octicon-milestone" 16}}
 						{{.i18n.Tr "repo.issues.new.open_milestone"}}
 					</div>
 					{{range .OpenMilestones}}
@@ -47,7 +47,7 @@
 				{{if .ClosedMilestones}}
 					<div class="divider"></div>
 					<div class="header">
-						<i class="octicon octicon-milestone"></i>
+						{{svg "octicon-milestone" 16}}
 						{{.i18n.Tr "repo.issues.new.closed_milestone"}}
 					</div>
 					{{range .ClosedMilestones}}
@@ -71,7 +71,7 @@
 		<div class="ui {{if or (not .IsIssueWriter) .Repository.IsArchived}}disabled{{end}} floating jump select-assignees-modify dropdown">
 			<span class="text">
 				<strong>{{.i18n.Tr "repo.issues.new.assignees"}}</strong>
-				<span class="octicon octicon-gear"></span>
+				{{svg "octicon-gear" 16}}
 			</span>
 			<div class="filter menu" data-action="" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/assignee">
 				<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignees"}}</div>
@@ -83,11 +83,13 @@
 						 checked
 						{{end}}
 					{{end}}" href="#" data-id="{{.ID}}" data-id-selector="#assignee_{{.ID}}">
-						<span class="octicon{{range $.Issue.Assignees}}
-						{{if eq .ID $AssigneeID}}
-						 octicon-check
+						{{$checked := false}}
+						{{range $.Issue.Assignees}}
+							{{if eq .ID $AssigneeID}}
+								{{$checked = true}}
+							{{end}}
 						{{end}}
-					{{end}}"></span>
+						<span class="octicon-check {{if not $checked}}invisible{{end}}">{{svg "octicon-check" 16}}</span>
 						<span class="text">
 							<img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.GetDisplayName}}
 						</span>
@@ -130,10 +132,10 @@
 						{{$.CsrfTokenHtml}}
 						<button class="fluid ui button">
 							{{if $.IssueWatch.IsWatching}}
-								<i class="octicon octicon-mute"></i>
+								{{svg "octicon-mute" 16}}
 								{{.i18n.Tr "repo.issues.unsubscribe"}}
 							{{else}}
-								<i class="octicon octicon-unmute"></i>
+								{{svg "octicon-unmute" 16}}
 								{{.i18n.Tr "repo.issues.subscribe"}}
 							{{end}}
 						</button>
@@ -218,7 +220,7 @@
 			</div>
 			{{if ne .Issue.DeadlineUnix 0}}
 				<p>
-					<span class="octicon octicon-calendar"></span>
+					{{svg "octicon-calendar" 16}}
 					{{.Issue.DeadlineUnix.FormatShort}}
 					{{if .Issue.IsOverdue}}
 						<span style="color: red;">{{.i18n.Tr "repo.issues.due_date_overdue"}}</span>
@@ -344,10 +346,10 @@
 				<div>
 					<button class="fluid ui  show-modal button {{if .Issue.IsLocked }} negative {{ end }}" data-modal="#lock">
 							{{if .Issue.IsLocked}}
-								<i class="octicon octicon-key"></i>
+								{{svg "octicon-key" 16}}
 								{{.i18n.Tr "repo.issues.unlock"}}
 							{{else}}
-								<i class="octicon octicon-lock"></i>
+								{{svg "octicon-lock" 16}}
 								{{.i18n.Tr "repo.issues.lock"}}
 							{{end}}
 						</button>
diff --git a/templates/repo/issue/view_title.tmpl b/templates/repo/issue/view_title.tmpl
index 11bede37134..21ebf62129c 100644
--- a/templates/repo/issue/view_title.tmpl
+++ b/templates/repo/issue/view_title.tmpl
@@ -17,13 +17,13 @@
 		{{end}}
 	</div>
 	{{if .HasMerged}}
-		<div class="ui purple large label"><i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.pulls.merged"}}</div>
+		<div class="ui purple large label">{{svg "octicon-gt-pull-request" 16}} {{.i18n.Tr "repo.pulls.merged"}}</div>
 	{{else if .Issue.IsClosed}}
-		<div class="ui red large label"><i class="octicon octicon-issue-closed"></i> {{.i18n.Tr "repo.issues.closed_title"}}</div>
+		<div class="ui red large label">{{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.closed_title"}}</div>
 	{{else if .Issue.IsPull}}
-		<div class="ui green large label"><i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.issues.open_title"}}</div>
+		<div class="ui green large label">{{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "repo.issues.open_title"}}</div>
 	{{else}}
-		<div class="ui green large label"><i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues.open_title"}}</div>
+		<div class="ui green large label">{{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_title"}}</div>
 	{{end}}
 
 	{{if .Issue.IsPull}}
@@ -51,7 +51,7 @@
                 		<span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$.HeadTarget}}</span>
                 	</div>
                 </div>
-                <i class="octicon octicon-arrow-right"></i>
+                {{svg "octicon-arrow-right" 16}}
                  <div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
                 	<div class="ui basic small button">
                 		<span class="text" id="pull-target-branch" data-basename="{{$.BaseName}}" data-branch="{{$.BaseBranch}}">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span>
diff --git a/templates/repo/pulls/tab_menu.tmpl b/templates/repo/pulls/tab_menu.tmpl
index e3f39e8ad2d..b54751a4011 100644
--- a/templates/repo/pulls/tab_menu.tmpl
+++ b/templates/repo/pulls/tab_menu.tmpl
@@ -1,16 +1,16 @@
 <div class="ui top attached pull tabular stackable menu">
 	<a class="item {{if .PageIsPullConversation}}active{{end}}" href="{{.RepoLink}}/pulls/{{.Issue.Index}}">
-		<span class="octicon octicon-comment-discussion"></span>
+		{{svg "octicon-comment-discussion" 16}}
 		{{$.i18n.Tr "repo.pulls.tab_conversation"}}
 		<span class="ui {{if not .Issue.NumComments}}gray{{else}}blue{{end}} small label">{{.Issue.NumComments}}</span>
 	</a>
 	<a class="item {{if .PageIsPullCommits}}active{{end}}" {{if .NumCommits}}href="{{.RepoLink}}/pulls/{{.Issue.Index}}/commits"{{end}}>
-		<span class="octicon octicon-git-commit"></span>
+		{{svg "octicon-git-commit" 16}}
 		{{$.i18n.Tr "repo.pulls.tab_commits"}}
 		<span class="ui {{if not .NumCommits}}gray{{else}}blue{{end}} small label">{{if .NumCommits}}{{.NumCommits}}{{else}}N/A{{end}}</span>
 	</a>
 	<a class="item {{if .PageIsPullFiles}}active{{end}}" {{if .NumFiles}}href="{{.RepoLink}}/pulls/{{.Issue.Index}}/files"{{end}}>
-		<span class="octicon octicon-diff"></span>
+		{{svg "octicon-diff" 16}}
 		{{$.i18n.Tr "repo.pulls.tab_files"}}
 		<span class="ui {{if not .NumFiles}}gray{{else}}blue{{end}} small label">{{if .NumFiles}}{{.NumFiles}}{{else}}N/A{{end}}</span>
 	</a>
diff --git a/templates/repo/release/list.tmpl b/templates/repo/release/list.tmpl
index 71cf697495c..eb3b0432384 100644
--- a/templates/repo/release/list.tmpl
+++ b/templates/repo/release/list.tmpl
@@ -43,8 +43,8 @@
 							<div class="download">
 							{{if $.Permission.CanRead $.UnitTypeCode}}
 								<a href="{{$.RepoLink}}/src/commit/{{.Sha1}}" rel="nofollow"><i class="code icon"></i> {{ShortSha .Sha1}}</a>
-								<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><i class="octicon octicon-file-zip"></i> ZIP</a>
-								<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a>
+								<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16}}&nbsp;ZIP</a>
+								<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz">{{svg "octicon-file-zip" 16}}&nbsp;TAR.GZ</a>
 							{{end}}
 							</div>
 						{{else}}
@@ -75,18 +75,18 @@
 								<ul class="list">
 									{{if $.Permission.CanRead $.UnitTypeCode}}
 									<li>
-										<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><strong><i class="octicon octicon-file-zip"></i> {{$.i18n.Tr "repo.release.source_code"}} (ZIP)</strong></a>
+										<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><strong>{{svg "octicon-file-zip" 16}} {{$.i18n.Tr "repo.release.source_code"}} (ZIP)</strong></a>
 									</li>
 									<li>
-										<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><strong><i class="octicon octicon-file-zip"></i> {{$.i18n.Tr "repo.release.source_code"}} (TAR.GZ)</strong></a>
+										<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><strong>{{svg "octicon-file-zip" 16}} {{$.i18n.Tr "repo.release.source_code"}} (TAR.GZ)</strong></a>
 									</li>
 									{{end}}
 									{{if .Attachments}}
 										{{range .Attachments}}
 										<li>
-											<span class="ui text right" data-tooltip="{{$.i18n.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}" data-position="bottom right"><i class="ui octicon octicon-info"></i></span>
+											<span class="ui text right" data-tooltip="{{$.i18n.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}" data-position="bottom right">{{svg "octicon-info" 16}}</span>
 											<a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}">
-												<strong><span class="ui image octicon octicon-package" title='{{.Name}}'></span> {{.Name}}</strong>
+												<strong><span class="ui image" title='{{.Name}}'>{{svg "octicon-package" 16}}</span> {{.Name}}</strong>
 												<span class="ui text grey right">{{.Size | FileSize}}</span>
 											</a>
 										</li>
diff --git a/templates/repo/release/new.tmpl b/templates/repo/release/new.tmpl
index 01af6edc125..c45c5b20bf7 100644
--- a/templates/repo/release/new.tmpl
+++ b/templates/repo/release/new.tmpl
@@ -23,7 +23,7 @@
 						<span class="at">@</span>
 						<div class="ui selection dropdown">
 							<input type="hidden" name="tag_target" value="{{.tag_target}}"/>
-							<i class="octicon octicon-git-branch"></i>
+							{{svg "octicon-git-branch" 16}}
 							<div class="text">
 								{{.i18n.Tr "repo.release.target"}} :
 								<strong id="repo-branch-current">{{.Repository.DefaultBranch}}</strong>
diff --git a/templates/repo/settings/collaboration.tmpl b/templates/repo/settings/collaboration.tmpl
index f6234f94a00..8c6e6461ad8 100644
--- a/templates/repo/settings/collaboration.tmpl
+++ b/templates/repo/settings/collaboration.tmpl
@@ -18,7 +18,7 @@
 						</a>
 					</div>
 					<div class="ui eight wide column">
-						<span class="octicon octicon-shield"></span>
+						{{svg "octicon-shield-lock" 16}}
 						<div class="ui inline dropdown">
 							<div class="text">{{if eq .Collaboration.Mode 1}}{{$.i18n.Tr "repo.settings.collaboration.read"}}{{else if eq .Collaboration.Mode 2}}{{$.i18n.Tr "repo.settings.collaboration.write"}}{{else if eq .Collaboration.Mode 3}}{{$.i18n.Tr "repo.settings.collaboration.admin"}}{{else}}{{$.i18n.Tr "repo.settings.collaboration.undefined"}}{{end}}</div>
 							<i class="dropdown icon"></i>
@@ -67,7 +67,7 @@
 						</a>
 					</div>
 					<div class="ui eight wide column poping up" data-content="Team's permission is set on the team setting page and can't be changed per repository">
-						<span class="octicon octicon-shield"></span>
+						{{svg "octicon-shield-lock" 16}}
 						<div class="ui inline dropdown">
 							<div class="text">{{if eq .Authorize 1}}{{$.i18n.Tr "repo.settings.collaboration.read"}}{{else if eq .Authorize 2}}{{$.i18n.Tr "repo.settings.collaboration.write"}}{{else if eq .Authorize 3}}{{$.i18n.Tr "repo.settings.collaboration.admin"}}{{else if eq .Authorize 4}}{{$.i18n.Tr "repo.settings.collaboration.owner"}}{{else}}{{$.i18n.Tr "repo.settings.collaboration.undefined"}}{{end}}</div>
 						</div>
diff --git a/templates/repo/settings/deploy_keys.tmpl b/templates/repo/settings/deploy_keys.tmpl
index 57477b37a8a..2d228597e1b 100644
--- a/templates/repo/settings/deploy_keys.tmpl
+++ b/templates/repo/settings/deploy_keys.tmpl
@@ -24,14 +24,14 @@
 										{{$.i18n.Tr "settings.delete_key"}}
 									</button>
 						    </div>
-								<i class="mega-octicon octicon-key {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}></i>
+								<i class="{{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}>{{svg "octicon-key" 32}}</i>
 								<div class="content">
 									<strong>{{.Name}}</strong>
 									<div class="print meta">
 										{{.Fingerprint}}
 									</div>
 									<div class="activity meta">
-										<i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> —  <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}} - <span>{{$.i18n.Tr "settings.can_read_info"}}{{if not .IsReadOnly}} / {{$.i18n.Tr "settings.can_write_info"}} {{end}}</span></i>
+										<i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> —  {{svg "octicon-info" 16}} {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}} - <span>{{$.i18n.Tr "settings.can_read_info"}}{{if not .IsReadOnly}} / {{$.i18n.Tr "settings.can_write_info"}} {{end}}</span></i>
 									</div>
 								</div>
 						</div>
diff --git a/templates/repo/settings/githooks.tmpl b/templates/repo/settings/githooks.tmpl
index 2af66780f9a..99a38cb800b 100644
--- a/templates/repo/settings/githooks.tmpl
+++ b/templates/repo/settings/githooks.tmpl
@@ -14,7 +14,7 @@
 				</div>
 				{{range .Hooks}}
 					<div class="item">
-						<span class="text {{if .IsActive}}green{{else}}grey{{end}}"><i class="octicon octicon-primitive-dot"></i></span>
+						<span class="text {{if .IsActive}}green{{else}}grey{{end}}">{{svg "octicon-primitive-dot" 16}}</span>
 						<span>{{.Name}}</span>
 						<a class="text blue ui right" href="{{$.RepoLink}}/settings/hooks/git/{{.Name}}"><i class="fa fa-pencil"></i></a>
 					</div>
diff --git a/templates/repo/settings/lfs.tmpl b/templates/repo/settings/lfs.tmpl
index f43f9479a25..cde718d0cc5 100644
--- a/templates/repo/settings/lfs.tmpl
+++ b/templates/repo/settings/lfs.tmpl
@@ -7,8 +7,8 @@
 		<h4 class="ui top attached header">
 			{{.i18n.Tr "repo.settings.lfs_filelist"}} ({{.i18n.Tr "admin.total" .Total}})
 			<div class="ui right">
-				<a class="ui black tiny show-panel button" href="{{.Link}}/locks"><i class="octicon octicon-lock octicon-tiny"></i>{{.i18n.Tr "repo.settings.lfs_locks"}}</a>
-				<a class="ui blue tiny show-panel button" href="{{.Link}}/pointers"><i class="octicon octicon-search octicon-tiny"></i>&nbsp;{{.i18n.Tr "repo.settings.lfs_findpointerfiles"}}</a>
+				<a class="ui black tiny show-panel button" href="{{.Link}}/locks"><span class="octicon-tiny">{{svg "octicon-lock" 16}}</span>{{.i18n.Tr "repo.settings.lfs_locks"}}</a>
+				<a class="ui blue tiny show-panel button" href="{{.Link}}/pointers"><span class="octicon-tiny">{{svg "octicon-search" 16}}</span>&nbsp;{{.i18n.Tr "repo.settings.lfs_findpointerfiles"}}</a>
 			</div>
 		</h4>
 		<table id="lfs-files-table" class="ui attached segment single line table">
@@ -27,7 +27,7 @@
 						<td class="right aligned">
 							<a class="ui blue show-panel button" href="{{$.Link}}/find?oid={{.Oid}}&size={{.Size}}">{{$.i18n.Tr "repo.settings.lfs_findcommits"}}</a>
 							<button class="ui basic show-modal icon button" data-modal="#delete-{{.Oid}}">
-								<i class="octicon octicon-trashcan btn-octicon btn-octicon-danger poping up"  data-content="{{$.i18n.Tr "repo.editor.delete_this_file"}}" data-position="bottom center" data-variation="tiny inverted"></i>
+								<span class="btn-octicon btn-octicon-danger poping up"  data-content="{{$.i18n.Tr "repo.editor.delete_this_file"}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span>
 							</button>
 						</td>
 					</tr>
diff --git a/templates/repo/settings/lfs_file_find.tmpl b/templates/repo/settings/lfs_file_find.tmpl
index 18db0215a5b..1057cfa9452 100644
--- a/templates/repo/settings/lfs_file_find.tmpl
+++ b/templates/repo/settings/lfs_file_find.tmpl
@@ -13,7 +13,7 @@
 					{{range .Results}}
 						<tr>
 							<td>
-								<span class="octicon octicon-file-text"></span>
+								{{svg "octicon-file" 16}}
 								<a href="{{EscapePound $.RepoLink}}/src/commit/{{.SHA}}/{{EscapePound .Name}}" title="{{.Name}}">{{.Name}}</a>
 							</td>
 							<td class="message has-emoji">
@@ -24,7 +24,7 @@
 								</span>
 							</td>
 							<td>
-								<span class="text grey"><i class="octicon octicon-git-branch"></i>{{.BranchName}}</span>
+								<span class="text grey">{{svg "octicon-git-branch" 16}}{{.BranchName}}</span>
 							</td>
 							<td>
 								{{if .ParentHashes}}
diff --git a/templates/repo/settings/lfs_locks.tmpl b/templates/repo/settings/lfs_locks.tmpl
index 8a5f6e16584..4830fb2542b 100644
--- a/templates/repo/settings/lfs_locks.tmpl
+++ b/templates/repo/settings/lfs_locks.tmpl
@@ -23,14 +23,14 @@
 						<tr>
 							<td>
 								{{if index $.Linkable $index}}
-								<span class="octicon octicon-file-text"></span>
+									{{svg "octicon-file" 16}}
 								<a href="{{EscapePound $.RepoLink}}/src/branch/{{EscapePound $lock.Repo.DefaultBranch}}/{{EscapePound $lock.Path}}" title="{{$lock.Path}}">{{$lock.Path}}</a>
 								{{else}}
-								<span class="octicon octicon-diff"></span>
+									{{svg "octicon-diff" 16}}
 								<span class="poping up" title="{{$.i18n.Tr "repo.settings.lfs_lock_file_no_exist"}}">{{$lock.Path}}</span>
 								{{end}}
 								{{if not (index $.Lockables $index)}}
-									<i class="octicon octicon-alert poping up" title="{{$.i18n.Tr "repo.settings.lfs_noattribute"}}"></i>
+									<span class="poping up" title="{{$.i18n.Tr "repo.settings.lfs_noattribute"}}">{{svg "octicon-alert" 16}}</span>
 								{{end}}
 							</td>
 							<td>
@@ -43,7 +43,7 @@
 							<td class="right aligned">
 								<form action="{{$.LFSFilesLink}}/locks/{{$lock.ID}}/unlock" method="POST">
 									{{$.CsrfTokenHtml}}
-									<button class="ui blue button"><i class="octicon octicon-lock btn-octicon"></i>{{$.i18n.Tr "repo.settings.lfs_force_unlock"}}</button>
+									<button class="ui blue button"><span class="btn-octicon">{{svg "octicon-lock" 16}}</span>{{$.i18n.Tr "repo.settings.lfs_force_unlock"}}</button>
 								</form>
 							</td>
 						</tr>
diff --git a/templates/repo/settings/protected_branch.tmpl b/templates/repo/settings/protected_branch.tmpl
index b4c65f78302..86045f433f0 100644
--- a/templates/repo/settings/protected_branch.tmpl
+++ b/templates/repo/settings/protected_branch.tmpl
@@ -65,7 +65,7 @@
 									<div class="menu">
 										{{range .Teams}}
 											<div class="item" data-value="{{.ID}}">
-												<i class="octicon octicon-jersey"></i>
+												{{svg "octicon-jersey" 16}}
 												{{.Name}}
 											</div>
 										{{end}}
@@ -115,7 +115,7 @@
 								<div class="menu">
 								{{range .Teams}}
 									<div class="item" data-value="{{.ID}}">
-										<i class="octicon octicon-jersey"></i>
+										{{svg "octicon-jersey" 16}}
 									{{.Name}}
 									</div>
 								{{end}}
@@ -195,7 +195,7 @@
 									<div class="menu">
 									{{range .Teams}}
 										<div class="item" data-value="{{.ID}}">
-											<i class="octicon octicon-jersey"></i>
+											{{svg "octicon-jersey" 16}}
 										{{.Name}}
 										</div>
 									{{end}}
diff --git a/templates/repo/settings/webhook/history.tmpl b/templates/repo/settings/webhook/history.tmpl
index 577f3577203..53c01c168b9 100644
--- a/templates/repo/settings/webhook/history.tmpl
+++ b/templates/repo/settings/webhook/history.tmpl
@@ -14,9 +14,9 @@
 				<div class="item">
 					<div class="meta">
 						{{if .IsSucceed}}
-							<span class="text green"><i class="octicon octicon-check"></i></span>
+							<span class="text green">{{svg "octicon-check" 16}}</span>
 						{{else}}
-							<span class="text red"><i class="octicon octicon-alert"></i></span>
+							<span class="text red">{{svg "octicon-alert" 16}}</span>
 						{{end}}
 						<a class="ui blue sha label toggle button" data-target="#info-{{.ID}}">{{.UUID}}</a>
 						<div class="ui right">
diff --git a/templates/repo/settings/webhook/list.tmpl b/templates/repo/settings/webhook/list.tmpl
index d1784564dc5..5813b749141 100644
--- a/templates/repo/settings/webhook/list.tmpl
+++ b/templates/repo/settings/webhook/list.tmpl
@@ -38,11 +38,11 @@
 		{{range .Webhooks}}
 			<div class="item">
 				{{if eq .LastStatus 1}}
-					<span class="text green"><i class="octicon octicon-check"></i></span>
+					<span class="text green">{{svg "octicon-check" 16}}</span>
 				{{else if eq .LastStatus 2}}
-					<span class="text red"><i class="octicon octicon-alert"></i></span>
+					<span class="text red">{{svg "octicon-alert" 16}}</span>
 				{{else}}
-					<span class="text grey"><i class="octicon octicon-primitive-dot"></i></span>
+					<span class="text grey">{{svg "octicon-primitive-dot" 16}}</span>
 				{{end}}
 				<a class="dont-break-out" href="{{$.BaseLink}}/{{.ID}}">{{.URL}}</a>
 				<div class="ui right">
diff --git a/templates/repo/sub_menu.tmpl b/templates/repo/sub_menu.tmpl
index 96128fb2af0..51d8d26c307 100644
--- a/templates/repo/sub_menu.tmpl
+++ b/templates/repo/sub_menu.tmpl
@@ -3,15 +3,15 @@
 		<div class="ui two horizontal center link list">
 			{{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo)}}
 				<div class="item{{if .PageIsCommits}} active{{end}}">
-					<a class="ui" href="{{.RepoLink}}/commits{{if .IsViewBranch}}/branch{{else if .IsViewTag}}/tag{{else if .IsViewCommit}}/commit{{end}}/{{EscapePound .BranchName}}"><i class="octicon octicon-history"></i> <b>{{.CommitsCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .CommitsCount "repo.commit" "repo.commits") }}</a>
+					<a class="ui" href="{{.RepoLink}}/commits{{if .IsViewBranch}}/branch{{else if .IsViewTag}}/tag{{else if .IsViewCommit}}/commit{{end}}/{{EscapePound .BranchName}}">{{svg "octicon-history" 16}} <b>{{.CommitsCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .CommitsCount "repo.commit" "repo.commits") }}</a>
 				</div>
 			{{end}}
 			{{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo) }}
 				<div class="item{{if .PageIsBranches}} active{{end}}">
-					<a class="ui" href="{{.RepoLink}}/branches/"><i class="octicon octicon-git-branch"></i> <b>{{.BranchesCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .BranchesCount "repo.branch" "repo.branches") }}</a>
+					<a class="ui" href="{{.RepoLink}}/branches/">{{svg "octicon-git-branch" 16}} <b>{{.BranchesCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .BranchesCount "repo.branch" "repo.branches") }}</a>
 				</div>
 				<div class="item">
-					<a class="ui" href="#"><i class="octicon octicon-database"></i> <b>{{SizeFmt .Repository.Size}}</b></a>
+					<a class="ui" href="#">{{svg "octicon-database" 16}} <b>{{SizeFmt .Repository.Size}}</b></a>
 				</div>
 			{{end}}
 		</div>
diff --git a/templates/repo/user_cards.tmpl b/templates/repo/user_cards.tmpl
index cd7f15a710f..9bf05604275 100644
--- a/templates/repo/user_cards.tmpl
+++ b/templates/repo/user_cards.tmpl
@@ -14,11 +14,11 @@
 
 				<div class="meta">
 					{{if .Website}}
-						<span class="octicon octicon-link"></span> <a href="{{.Website}}" target="_blank" rel="noopener noreferrer">{{.Website}}</a>
+						{{svg "octicon-link" 16}} <a href="{{.Website}}" target="_blank" rel="noopener noreferrer">{{.Website}}</a>
 					{{else if .Location}}
-						<span class="octicon octicon-location"></span> {{.Location}}
+						{{svg "octicon-location" 16}} {{.Location}}
 					{{else}}
-						<span class="octicon octicon-clock"></span> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
+						{{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 					{{end}}
 				</div>
 			</li>
diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl
index f95076272ec..f1cf198dee6 100644
--- a/templates/repo/view_file.tmpl
+++ b/templates/repo/view_file.tmpl
@@ -40,14 +40,14 @@
 				</div>
 				{{if .Repository.CanEnableEditor}}
 					{{if .CanEditFile}}
-						<a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-pencil btn-octicon poping up"  data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a>
+						<a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon poping up"  data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span></a>
 					{{else}}
-						<i class="octicon octicon-pencil btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i>
+						<span class="btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span>
 					{{end}}
 					{{if .CanDeleteFile}}
-						<a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-trashcan btn-octicon btn-octicon-danger poping up"  data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a>
+						<a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon btn-octicon-danger poping up"  data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span></a>
 					{{else}}
-						<i class="octicon octicon-trashcan btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i>
+						<span class="btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span>
 					{{end}}
 				{{end}}
 			</div>
diff --git a/templates/repo/view_list.tmpl b/templates/repo/view_list.tmpl
index 3ba0eeec8d6..3d4fc14cbb9 100644
--- a/templates/repo/view_list.tmpl
+++ b/templates/repo/view_list.tmpl
@@ -42,7 +42,7 @@
 	<tbody>
 		{{if .HasParentPath}}
 			<tr class="has-parent">
-				<td colspan="3"><i class="octicon octicon-mail-reply"></i><a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td>
+				<td colspan="3">{{svg "octicon-mail-reply" 16}}<a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td>
 			</tr>
 		{{end}}
 		{{range $item := .Files}}
@@ -52,7 +52,7 @@
 				{{if $entry.IsSubModule}}
 					<td>
 						<span class="truncate">
-							<span class="octicon octicon-file-submodule"></span>
+							{{svg "octicon-file-submodule" 16}}
 							{{$refURL := $commit.RefURL AppUrl $.BranchLink}}
 							{{if $refURL}}
 								<a href="{{$refURL}}">{{$entry.Name}}</a> @ <a href="{{$refURL}}/commit/{{$commit.RefID}}">{{ShortSha $commit.RefID}}</a>
@@ -67,7 +67,7 @@
 							{{if $entry.IsDir}}
 								{{$subJumpablePathName := $entry.GetSubJumpablePathName}}
 								{{$subJumpablePath := SubJumpablePath $subJumpablePathName}}
-								<span class="octicon octicon-file-directory"></span>
+								{{svg "octicon-file-directory" 16}}
 								<a href="{{EscapePound $.TreeLink}}/{{EscapePound $subJumpablePathName}}" title="{{$subJumpablePathName}}">
 									{{if eq (len $subJumpablePath) 2}}
 										<span class="jumpable-path">{{index  $subJumpablePath 0}}</span>{{index  $subJumpablePath 1}}
@@ -76,7 +76,7 @@
 									{{end}}
 								</a>
 							{{else}}
-								<span class="octicon octicon-{{EntryIcon $entry}}"></span>
+								{{svg (printf "octicon-%s" (EntryIcon $entry)) 16}}
 								<a href="{{EscapePound $.TreeLink}}/{{EscapePound $entry.Name}}" title="{{$entry.Name}}">{{$entry.Name}}</a>
 							{{end}}
 						</span>
diff --git a/templates/repo/wiki/pages.tmpl b/templates/repo/wiki/pages.tmpl
index 61903423f39..01e86279447 100644
--- a/templates/repo/wiki/pages.tmpl
+++ b/templates/repo/wiki/pages.tmpl
@@ -15,7 +15,7 @@
 				{{range .Pages}}
 					<tr>
 						<td>
-							<i class="octicon octicon-file-text"></i>
+							{{svg "octicon-file" 16}}
 							<a href="{{$.RepoLink}}/wiki/{{.SubURL}}">{{.Name}}</a>
 						</td>
 						{{$timeSince := TimeSinceUnix .UpdatedUnix $.Lang}}
diff --git a/templates/repo/wiki/revision.tmpl b/templates/repo/wiki/revision.tmpl
index 13d3a6227f3..019bd1ea45a 100644
--- a/templates/repo/wiki/revision.tmpl
+++ b/templates/repo/wiki/revision.tmpl
@@ -23,7 +23,7 @@
 					{{end}}
 					{{if or ((not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)))}}
 						<button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
-							<i class="octicon octicon-clippy"></i>
+							{{svg "octicon-clippy" 16}}
 						</button>
 					{{end}}
 				</div>
diff --git a/templates/repo/wiki/start.tmpl b/templates/repo/wiki/start.tmpl
index 0341e8067b1..d8de0fcb77c 100644
--- a/templates/repo/wiki/start.tmpl
+++ b/templates/repo/wiki/start.tmpl
@@ -3,7 +3,7 @@
 	{{template "repo/header" .}}
 	<div class="ui container">
 		<div class="ui center segment">
-			<span class="mega-octicon octicon-book"></span>
+			{{svg "octicon-book" 32}}
 			<h2>{{.i18n.Tr "repo.wiki.welcome"}}</h2>
 			<p>{{.i18n.Tr "repo.wiki.welcome_desc"}}</p>
 			{{if and .CanWriteWiki (not .Repository.IsMirror)}}
diff --git a/templates/repo/wiki/view.tmpl b/templates/repo/wiki/view.tmpl
index f775ac94292..f160deedbd5 100644
--- a/templates/repo/wiki/view.tmpl
+++ b/templates/repo/wiki/view.tmpl
@@ -47,7 +47,7 @@
 					{{end}}
 					{{if or ((not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)))}}
 						<button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
-							<i class="octicon octicon-clippy"></i>
+							{{svg "octicon-clippy" 16}}
 						</button>
 					{{end}}
 				</div>
diff --git a/templates/user/dashboard/dashboard.tmpl b/templates/user/dashboard/dashboard.tmpl
index 27a0a76bc44..7ebe28195a2 100644
--- a/templates/user/dashboard/dashboard.tmpl
+++ b/templates/user/dashboard/dashboard.tmpl
@@ -85,11 +85,11 @@
 								<ul class="repo-owner-name-list">
 									<li v-for="repo in repos" :class="{'private': repo.private}" v-show="showRepo(repo, reposFilter)">
 										<a :href="suburl + '/' + repo.full_name">
-											<i :class="repoClass(repo)"></i>
+											<svg :class="'svg ' + repoClass(repo)" width="16" height="16" aria-hidden="true"><use :xlink:href="staticPrefix + '/img/svg/icons.svg#' + repoClass(repo)" /></svg>
 											<strong class="text truncate item-name">${repo.full_name}</strong>
 											<i v-if="repo.archived" class="archive icon archived-icon"></i>
 											<span class="ui right text light grey">
-												${repo.stars_count} <i class="octicon octicon-star rear"></i>
+												${repo.stars_count} <span class="rear">{{svg "octicon-star" 16}}</span>
 											</span>
 										</a>
 									</li>
@@ -113,10 +113,10 @@
 								<ul class="repo-owner-name-list">
 									<li v-for="org in organizations">
 										<a :href="suburl + '/' + org.name">
-											<i class="octicon octicon-organization"></i>
+											{{svg "octicon-organization" 16}}
 											<strong class="text truncate item-name">${org.name}</strong>
 											<span class="ui right text light grey">
-												${org.num_repos} <i class="octicon octicon-repo rear"></i>
+												${org.num_repos} <span class="rear">{{svg "octicon-repo" 16}}</span>
 											</span>
 										</a>
 									</li>
diff --git a/templates/user/dashboard/feeds.tmpl b/templates/user/dashboard/feeds.tmpl
index 7c4b1da0c78..fe92cad5597 100644
--- a/templates/user/dashboard/feeds.tmpl
+++ b/templates/user/dashboard/feeds.tmpl
@@ -101,7 +101,7 @@
 				</div>
 			</div>
 			<div class="ui two wide right aligned column">
-				<i class="text grey mega-octicon octicon-{{ActionIcon .GetOpType}}"></i>
+				<span class="text grey">{{svg (printf "octicon-%s" (ActionIcon .GetOpType)) 32}}</span>
 			</div>
 		</div>
 		<div class="ui divider"></div>
diff --git a/templates/user/dashboard/issues.tmpl b/templates/user/dashboard/issues.tmpl
index c8cc8b09df2..dfb94560e56 100644
--- a/templates/user/dashboard/issues.tmpl
+++ b/templates/user/dashboard/issues.tmpl
@@ -54,11 +54,11 @@
 			<div class="twelve wide column content">
 				<div class="ui tiny basic status buttons">
 					<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open">
-						<i class="octicon octicon-issue-opened"></i>
+						{{svg "octicon-issue-opened" 16}}
 						{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
 					</a>
 					<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed">
-						<i class="octicon octicon-issue-closed"></i>
+						{{svg "octicon-issue-closed" 16}}
 						{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
 					</a>
 				</div>
@@ -110,10 +110,10 @@
 							{{end}}
 
 							{{if .NumComments}}
-								<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>
+								<span class="comment ui right">{{svg "octicon-comment" 16}} {{.NumComments}}</span>
 							{{end}}
 							{{if .TotalTrackedTime}}
-								<span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span>
+								<span class="comment ui right">{{svg "octicon-clock" 16}} {{.TotalTrackedTime | Sec2Time}}</span>
 							{{end}}
 
 							<p class="desc">
@@ -126,12 +126,12 @@
 								{{end}}
 								{{if .Milestone}}
 									<a class="milestone" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
-										<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
+										{{svg "octicon-milestone" 16}} {{.Milestone.Name}}
 									</a>
 								{{end}}
 								{{if .Ref}}
 									<a class="ref" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/src/branch/{{.Ref}}">
-										<span class="octicon octicon-git-branch"></span> {{.Ref}}
+										{{svg "octicon-git-branch" 16}} {{.Ref}}
 									</a>
 								{{end}}
 								{{range .Assignees}}
@@ -143,17 +143,17 @@
 								{{if gt $tasks 0}}
 									{{$tasksDone := .GetTasksDone}}
 									<span class="checklist">
-										<span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
+										{{svg "octicon-checklist" 16}} {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
 									</span>
 								{{end}}
 								{{if ne .DeadlineUnix 0}}
 									<span class="due-date poping up" data-content="{{$.i18n.Tr "repo.issues.due_date"}}" data-variation="tiny inverted" data-position="right center">
-										<span class="octicon octicon-calendar"></span><span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span>
+										{{svg "octicon-calendar" 16}}<span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span>
 									</span>
 								{{end}}
 								{{if .IsPull}}
 									{{if and (not .PullRequest.HasMerged) ((len .PullRequest.ConflictedFiles) gt 0)}}
-										<span class="conflicting"><i class="octicon octicon-mirror"></i> {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span>
+										<span class="conflicting">{{svg "octicon-mirror" 16}} {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span>
 									{{end}}
 								{{end}}
 							</p>
diff --git a/templates/user/dashboard/milestones.tmpl b/templates/user/dashboard/milestones.tmpl
index 98b99c6430e..2a4226e9236 100644
--- a/templates/user/dashboard/milestones.tmpl
+++ b/templates/user/dashboard/milestones.tmpl
@@ -36,11 +36,11 @@
 			<div class="twelve wide column content">
 				<div class="ui tiny basic status buttons">
 					<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open">
-						<i class="octicon octicon-issue-opened"></i>
+						{{svg "octicon-issue-opened" 16}}
 						{{.i18n.Tr "repo.milestones.open_tab" .MilestoneStats.OpenCount}}
 					</a>
 					<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed">
-						<i class="octicon octicon-issue-closed"></i>
+						{{svg "octicon-issue-closed" 16}}
 						{{.i18n.Tr "repo.milestones.close_tab" .MilestoneStats.ClosedCount}}
 					</a>
 				</div>
@@ -66,7 +66,7 @@
                     {{range .Milestones}}
                         <li class="item">
                             <div class="ui label">{{.Repo.FullName}}</div>
-                            <i class="octicon octicon-milestone"></i> <a href="{{.Repo.Link }}/milestone/{{.ID}}">{{.Name}}</a>
+							{{svg "octicon-milestone" 16}} <a href="{{.Repo.Link }}/milestone/{{.ID}}">{{.Name}}</a>
                             <div class="ui right green progress" data-percent="{{.Completeness}}">
                                 <div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}>
                                     <div class="progress"></div>
@@ -75,9 +75,9 @@
                             <div class="meta">
                                 {{ $closedDate:= TimeSinceUnix .ClosedDateUnix $.Lang }}
                                 {{if .IsClosed}}
-                                    <span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
+									{{svg "octicon-clock" 16}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
                                 {{else}}
-                                    <span class="octicon octicon-calendar"></span>
+									{{svg "octicon-calendar" 16}}
                                     {{if .DeadlineString}}
                                         <span {{if .IsOverdue}}class="overdue"{{end}}>{{.DeadlineString}}</span>
                                     {{else}}
@@ -85,20 +85,20 @@
                                     {{end}}
                                 {{end}}
                                 <span class="issue-stats">
-                                    <i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.milestones.open_tab" .NumOpenIssues}}
-                                    <i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.milestones.close_tab" .NumClosedIssues}}
-                                    {{if .TotalTrackedTime}}<i class="octicon octicon-clock"></i> {{.TotalTrackedTime|Sec2Time}}{{end}}
+                                    {{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.milestones.open_tab" .NumOpenIssues}}
+									{{svg "octicon-issue-closed" 16}} {{$.i18n.Tr "repo.milestones.close_tab" .NumClosedIssues}}
+                                    {{if .TotalTrackedTime}}{{svg "octicon-clock" 16}} {{.TotalTrackedTime|Sec2Time}}{{end}}
                                 </span>
                             </div>
                             {{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
                                 <div class="ui right operate">
-                                    <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a>
+                                    <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-pencil" 16}} {{$.i18n.Tr "repo.issues.label_edit"}}</a>
                                     {{if .IsClosed}}
-                                        <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-check"></i> {{$.i18n.Tr "repo.milestones.open"}}</a>
+                                        <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-check" 16}} {{$.i18n.Tr "repo.milestones.open"}}</a>
                                     {{else}}
-                                        <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.milestones.close"}}</a>
+                                        <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-x" 16}} {{$.i18n.Tr "repo.milestones.close"}}</a>
                                     {{end}}
-                                    <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a>
+                                    <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trashcan" 16}} {{$.i18n.Tr "repo.issues.label_delete"}}</a>
                                 </div>
                             {{end}}
                             {{if .Content}}
diff --git a/templates/user/dashboard/navbar.tmpl b/templates/user/dashboard/navbar.tmpl
index 1ebd20c8b24..7afb975bbc5 100644
--- a/templates/user/dashboard/navbar.tmpl
+++ b/templates/user/dashboard/navbar.tmpl
@@ -25,7 +25,7 @@
 					</div>
 					{{if .SignedUser.CanCreateOrganization}}
 					<a class="item" href="{{AppSubUrl}}/org/create">
-						<i class="octicon octicon-plus"></i>&nbsp;&nbsp;&nbsp;{{.i18n.Tr "new_org"}}
+						{{svg "octicon-plus" 16}}&nbsp;&nbsp;&nbsp;{{.i18n.Tr "new_org"}}
 					</a>
 					{{end}}
 				</div>
@@ -35,17 +35,17 @@
 		{{if .ContextUser.IsOrganization}}
 			<div class="right stackable menu">
 				<a class="{{if .PageIsNews}}active{{end}} item" style="margin-left: auto" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/dashboard">
-					<i class="octicon octicon-rss"></i>&nbsp;{{.i18n.Tr "activities"}}
+					{{svg "octicon-rss" 16}}&nbsp;{{.i18n.Tr "activities"}}
 				</a>
 				<a class="{{if .PageIsIssues}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/issues">
-					<i class="octicon octicon-issue-opened"></i>&nbsp;{{.i18n.Tr "issues"}}
+					{{svg "octicon-issue-opened" 16}}&nbsp;{{.i18n.Tr "issues"}}
 				</a>
 				<a class="{{if .PageIsPulls}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/pulls">
-					<i class="octicon octicon-git-pull-request"></i>&nbsp;{{.i18n.Tr "pull_requests"}}
+					{{svg "octicon-git-pull-request" 16}}&nbsp;{{.i18n.Tr "pull_requests"}}
 				</a>
 				{{if .ShowMilestonesDashboardPage}}
 					<a class="{{if .PageIsMilestonesDashboard}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/milestones">
-						<i class="octicon octicon-milestone"></i>&nbsp;{{.i18n.Tr "milestones"}}
+						{{svg "octicon-milestone" 16}}&nbsp;{{.i18n.Tr "milestones"}}
 					</a>
 				{{end}}
 				<div class="item">
diff --git a/templates/user/notification/notification.tmpl b/templates/user/notification/notification.tmpl
index beeac0181e3..c4f744a2917 100644
--- a/templates/user/notification/notification.tmpl
+++ b/templates/user/notification/notification.tmpl
@@ -18,7 +18,7 @@
 				<form action="{{AppSubUrl}}/notifications/purge" method="POST" style="margin-left: auto;">
 					{{$.CsrfTokenHtml}}
 					<button class="ui mini button primary" title='{{$.i18n.Tr "notification.mark_all_as_read"}}'>
-						<i class="octicon octicon-checklist"></i>
+						{{svg "octicon-checklist" 16}}
 					</button>
 				</form>
 			{{end}}
@@ -41,22 +41,22 @@
 							<tr data-href="{{$notification.HTMLURL}}">
 								<td class="collapsing">
 									{{if eq $notification.Status 3}}
-										<i class="blue octicon octicon-pin"></i>
+										<span class="blue">{{svg "octicon-pin" 16}}</span>
 									{{else if $issue.IsPull}}
 										{{if $issue.IsClosed}}
 											{{if $issue.GetPullRequest.HasMerged}}
-												<i class="purple octicon octicon-git-merge"></i>
+												<span class="purple">{{svg "octicon-git-merge" 16}}</span>
 											{{else}}
-												<i class="red octicon octicon-git-pull-request"></i>
+												<span class="red">{{svg "octicon-git-pull-request" 16}}</span>
 											{{end}}
 										{{else}}
-											<i class="green octicon octicon-git-pull-request"></i>
+											<span class="green">{{svg "octicon-git-pull-request" 16}}</span>
 										{{end}}
 									{{else}}
 										{{if $issue.IsClosed}}
-											<i class="red octicon octicon-issue-closed"></i>
+											<span class="red">{{svg "octicon-issue-closed" 16}}</span>
 										{{else}}
-											<i class="green octicon octicon-issue-opened"></i>
+											<span class="green">{{svg "octicon-issue-opened" 16}}</span>
 										{{end}}
 									{{end}}
 								</td>
@@ -77,7 +77,7 @@
 											<input type="hidden" name="notification_id" value="{{$notification.ID}}" />
 											<input type="hidden" name="status" value="pinned" />
 											<button class="ui mini button" title='{{$.i18n.Tr "notification.pin"}}'>
-												<i class="octicon octicon-pin"></i>
+												{{svg "octicon-pin" 16}}
 											</button>
 										</form>
 									{{end}}
@@ -90,7 +90,7 @@
 											<input type="hidden" name="status" value="read" />
 											<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" />
 											<button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_read"}}'>
-												<i class="octicon octicon-check"></i>
+												{{svg "octicon-check" 16}}
 											</button>
 										</form>
 									{{else if eq $notification.Status 2}}
@@ -100,7 +100,7 @@
 											<input type="hidden" name="status" value="unread" />
 											<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" />
 											<button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_unread"}}'>
-												<i class="octicon octicon-bell"></i>
+												{{svg "octicon-bell" 16}}
 											</button>
 										</form>
 									{{end}}
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index 101a2e7d453..945cc90f0d3 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -20,23 +20,23 @@
 					<div class="extra content wrap">
 						<ul class="text black">
 							{{if .Owner.Location}}
-								<li><i class="octicon octicon-location"></i> {{.Owner.Location}}</li>
+								<li>{{svg "octicon-location" 16}} {{.Owner.Location}}</li>
 							{{end}}
 							{{if .ShowUserEmail }}
 								<li>
-									<i class="octicon octicon-mail"></i>
+									{{svg "octicon-mail" 16}}
 									<a href="mailto:{{.Owner.Email}}" rel="nofollow">{{.Owner.Email}}</a>
 								</li>
 							{{end}}
 							{{if .Owner.Website}}
 								<li>
-									<i class="octicon octicon-link"></i>
+									{{svg "octicon-link" 16}}
 									<a target="_blank" rel="noopener noreferrer me" href="{{.Owner.Website}}">{{.Owner.Website}}</a>
 								</li>
 							{{end}}
 							{{if .Owner.Description}}
 								<li>
-									<i class="octicon octicon-info"></i>
+									{{svg "octicon-info" 16}}
 									<span>{{.Owner.Description}}</span>
 								</li>
 							{{end}}
@@ -48,7 +48,7 @@
 									</li>
 								{{end}}
 							{{end}}
-							<li><i class="octicon octicon-clock"></i> {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li>
+							<li>{{svg "octicon-clock" 16}} {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li>
 							{{if and .Orgs .HasOrgsVisible}}
 							<li>
 								<ul class="user-orgs">
@@ -65,9 +65,9 @@
 							{{if and .IsSigned (ne .SignedUserName .Owner.Name)}}
 							<li class="follow">
 								{{if .SignedUser.IsFollowing .Owner.ID}}
-								<a class="ui basic red button" href="{{.Link}}/action/unfollow?redirect_to={{$.Link}}"><i class="octicon octicon-person"></i> {{.i18n.Tr "user.unfollow"}}</a>
+								<a class="ui basic red button" href="{{.Link}}/action/unfollow?redirect_to={{$.Link}}">{{svg "octicon-person" 16}} {{.i18n.Tr "user.unfollow"}}</a>
 								{{else}}
-								<a class="ui basic green button" href="{{.Link}}/action/follow?redirect_to={{$.Link}}"><i class="octicon octicon-person"></i> {{.i18n.Tr "user.follow"}}</a>
+								<a class="ui basic green button" href="{{.Link}}/action/follow?redirect_to={{$.Link}}">{{svg "octicon-person" 16}} {{.i18n.Tr "user.follow"}}</a>
 								{{end}}
 							</li>
 							{{end}}
@@ -78,21 +78,21 @@
 			<div class="ui eleven wide column">
 				<div class="ui secondary stackable pointing menu">
 					<a class='{{if and (ne .TabName "activity") (ne .TabName "following") (ne .TabName "followers") (ne .TabName "stars")}}active{{end}} item' href="{{.Owner.HomeLink}}">
-						<i class="octicon octicon-repo"></i> {{.i18n.Tr "user.repositories"}}
+						{{svg "octicon-repo" 16}} {{.i18n.Tr "user.repositories"}}
 					</a>
 					<a class='{{if eq .TabName "activity"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=activity">
-						<i class="octicon octicon-rss"></i> {{.i18n.Tr "user.activity"}}
+						{{svg "octicon-rss" 16}} {{.i18n.Tr "user.activity"}}
 					</a>
 					<a class='{{if eq .TabName "stars"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=stars">
-						<i class="octicon octicon-star"></i> {{.i18n.Tr "user.starred"}}
+						{{svg "octicon-star" 16}}  {{.i18n.Tr "user.starred"}}
 						<div class="ui label">{{.Owner.NumStars}}</div>
 					</a>
 					<a class='{{if eq .TabName "following"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=following">
-						<i class="octicon octicon-person"></i> {{.i18n.Tr "user.following"}}
+						{{svg "octicon-person" 16}}  {{.i18n.Tr "user.following"}}
 						<div class="ui label">{{.Owner.NumFollowing}}</div>
 					</a>
 					<a class='{{if eq .TabName "followers"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=followers">
-						<i class="octicon octicon-person"></i> {{.i18n.Tr "user.followers"}}
+						{{svg "octicon-person" 16}}  {{.i18n.Tr "user.followers"}}
 						<div class="ui label">{{.Owner.NumFollowers}}</div>
 					</a>
 				</div>
diff --git a/templates/user/settings/account.tmpl b/templates/user/settings/account.tmpl
index dcb5770acc5..59608a8f16b 100644
--- a/templates/user/settings/account.tmpl
+++ b/templates/user/settings/account.tmpl
@@ -151,7 +151,7 @@
 		</h4>
 		<div class="ui attached warning segment">
 			<div class="ui red message">
-				<p class="text left"><i class="octicon octicon-alert"></i> {{.i18n.Tr "settings.delete_prompt" | Str2html}}</p>
+				<p class="text left">{{svg "octicon-alert" 16}} {{.i18n.Tr "settings.delete_prompt" | Str2html}}</p>
 			</div>
 			<form class="ui form ignore-dirty" id="delete-form" action="{{AppSubUrl}}/user/settings/account/delete" method="post">
 				{{.CsrfTokenHtml}}
diff --git a/templates/user/settings/applications.tmpl b/templates/user/settings/applications.tmpl
index 08b2ca71952..4131350cb09 100644
--- a/templates/user/settings/applications.tmpl
+++ b/templates/user/settings/applications.tmpl
@@ -22,7 +22,7 @@
 						<div class="content">
 							<strong>{{.Name}}</strong>
 							<div class="activity meta">
-								<i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> —  <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i>
+								<i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> —  {{svg "octicon-info" 16}} {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i>
 							</div>
 						</div>
 					</div>
diff --git a/templates/user/settings/keys_gpg.tmpl b/templates/user/settings/keys_gpg.tmpl
index 0a4afbfb635..3682d3237b4 100644
--- a/templates/user/settings/keys_gpg.tmpl
+++ b/templates/user/settings/keys_gpg.tmpl
@@ -16,7 +16,7 @@
 						{{$.i18n.Tr "settings.delete_key"}}
 					</button>
 				</div>
-				<i class="mega-octicon octicon-key {{if or .ExpiredUnix.IsZero ($.PageStartTime.Before .ExpiredUnix.AsTime)}}green{{end}}"></i>
+				<span class="{{if or .ExpiredUnix.IsZero ($.PageStartTime.Before .ExpiredUnix.AsTime)}}green{{end}}">{{svg "octicon-key" 32}}</span>
 				<div class="content">
 					{{range .Emails}}<strong>{{.Email}} </strong>{{end}}
 					<div class="print meta">
diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl
index e954472ff94..f5c18d760ea 100644
--- a/templates/user/settings/keys_ssh.tmpl
+++ b/templates/user/settings/keys_ssh.tmpl
@@ -20,14 +20,14 @@
                         {{$.i18n.Tr "settings.delete_key"}}
                     </button>
                 </div>
-                <i class="mega-octicon octicon-key {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted tiny"{{end}}></i>
+                <span class="{{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted tiny"{{end}}>{{svg "octicon-key" 32}}</span>
                 <div class="content">
                     <strong>{{.Name}}</strong>
                     <div class="print meta">
                         {{.Fingerprint}}
                     </div>
                     <div class="activity meta">
-                        <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> —	<i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i>
+                        <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> —	{{svg "octicon-info" 16}} {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i>
                     </div>
                 </div>
 			</div>
diff --git a/templates/user/settings/repos.tmpl b/templates/user/settings/repos.tmpl
index efb2c41c5b7..d28f067fdde 100644
--- a/templates/user/settings/repos.tmpl
+++ b/templates/user/settings/repos.tmpl
@@ -1,53 +1,53 @@
-{{template "base/head" .}}
-<div class="user settings repos">
-	{{template "user/settings/navbar" .}}
-	<div class="ui container">
-		{{template "base/alert" .}}
-		<h4 class="ui top attached header">
-			{{.i18n.Tr "settings.repos"}}
-		</h4>
-		<div class="ui attached segment">
-			{{if .Repos}}
-				<div class="ui middle aligned divided list">
-					{{range .Repos}}
-					<div class="item">
-						<div class="content">
-							{{if .IsPrivate}}
-								<span class="text gold iconFloat"><i class="octicon octicon-lock"></i></span>
-							{{else if .IsFork}}
-								<span class="iconFloat"><i class="octicon octicon-repo-forked"></i></span>
-							{{else if .IsMirror}}
-								<span class="iconFloat"><i class="octicon octicon-repo-clone"></i></span>
-							{{else}}
-								<span class="iconFloat"><i class="octicon octicon-repo"></i></span>
-							{{end}}
-							<a class="name" href="{{AppSubUrl}}/{{$.Owner.Name}}/{{.Name}}">{{$.Owner.Name}}/{{.Name}}</a>
-							<span>{{SizeFmt .Size}}</span>
-							{{if .IsFork}}
-								{{$.i18n.Tr "repo.forked_from"}}
-								<span><a href="{{AppSubUrl}}/{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}">{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}</a></span>
-							{{end}}
-							</div>
-						</div>
-					{{end}}
-				</div>
-			{{else}}
-				<div class="item">
-					{{.i18n.Tr "settings.repos_none"}}
-				</div>
-			{{end}}
-		</div>
-	</div>
-</div>
-
-<div class="ui small basic delete modal">
-	<div class="ui icon header">
-		<i class="trash icon"></i>
-		{{.i18n.Tr "settings.remove_account_link"}}
-	</div>
-	<div class="content">
-		<p>{{.i18n.Tr "settings.remove_account_link_desc"}}</p>
-	</div>
-	{{template "base/delete_modal_actions" .}}
-</div>
-{{template "base/footer" .}}
+{{template "base/head" .}}
+<div class="user settings repos">
+	{{template "user/settings/navbar" .}}
+	<div class="ui container">
+		{{template "base/alert" .}}
+		<h4 class="ui top attached header">
+			{{.i18n.Tr "settings.repos"}}
+		</h4>
+		<div class="ui attached segment">
+			{{if .Repos}}
+				<div class="ui middle aligned divided list">
+					{{range .Repos}}
+					<div class="item">
+						<div class="content">
+							{{if .IsPrivate}}
+								<span class="text gold iconFloat">{{svg "octicon-lock" 16}}</span>
+							{{else if .IsFork}}
+								<span class="iconFloat">{{svg "octicon-repo-forked" 16}}</span>
+							{{else if .IsMirror}}
+								<span class="iconFloat">{{svg "octicon-repo-clone" 16}}</span>
+							{{else}}
+								<span class="iconFloat">{{svg "octicon-repo" 16}}</span>
+							{{end}}
+							<a class="name" href="{{AppSubUrl}}/{{$.Owner.Name}}/{{.Name}}">{{$.Owner.Name}}/{{.Name}}</a>
+							<span>{{SizeFmt .Size}}</span>
+							{{if .IsFork}}
+								{{$.i18n.Tr "repo.forked_from"}}
+								<span><a href="{{AppSubUrl}}/{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}">{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}</a></span>
+							{{end}}
+							</div>
+						</div>
+					{{end}}
+				</div>
+			{{else}}
+				<div class="item">
+					{{.i18n.Tr "settings.repos_none"}}
+				</div>
+			{{end}}
+		</div>
+	</div>
+</div>
+
+<div class="ui small basic delete modal">
+	<div class="ui icon header">
+		<i class="trash icon"></i>
+		{{.i18n.Tr "settings.remove_account_link"}}
+	</div>
+	<div class="content">
+		<p>{{.i18n.Tr "settings.remove_account_link_desc"}}</p>
+	</div>
+	{{template "base/delete_modal_actions" .}}
+</div>
+{{template "base/footer" .}}
diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go
index a3a918f0b38..73804d3472c 100644
--- a/vendor/golang.org/x/net/html/const.go
+++ b/vendor/golang.org/x/net/html/const.go
@@ -52,7 +52,6 @@ var isSpecialElementMap = map[string]bool{
 	"iframe":     true,
 	"img":        true,
 	"input":      true,
-	"isindex":    true, // The 'isindex' element has been removed, but keep it for backwards compatibility.
 	"keygen":     true,
 	"li":         true,
 	"link":       true,
diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go
index 01477a96397..74774c458ae 100644
--- a/vendor/golang.org/x/net/html/foreign.go
+++ b/vendor/golang.org/x/net/html/foreign.go
@@ -172,7 +172,6 @@ var svgAttributeAdjustments = map[string]string{
 	"diffuseconstant":           "diffuseConstant",
 	"edgemode":                  "edgeMode",
 	"externalresourcesrequired": "externalResourcesRequired",
-	"filterres":                 "filterRes",
 	"filterunits":               "filterUnits",
 	"glyphref":                  "glyphRef",
 	"gradienttransform":         "gradientTransform",
diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go
index 992cff2a33a..2cd12fc816e 100644
--- a/vendor/golang.org/x/net/html/parse.go
+++ b/vendor/golang.org/x/net/html/parse.go
@@ -184,6 +184,17 @@ func (p *parser) clearStackToContext(s scope) {
 	}
 }
 
+// parseGenericRawTextElements implements the generic raw text element parsing
+// algorithm defined in 12.2.6.2.
+// https://html.spec.whatwg.org/multipage/parsing.html#parsing-elements-that-contain-only-text
+// TODO: Since both RAWTEXT and RCDATA states are treated as tokenizer's part
+// officially, need to make tokenizer consider both states.
+func (p *parser) parseGenericRawTextElement() {
+	p.addElement()
+	p.originalIM = p.im
+	p.im = textIM
+}
+
 // generateImpliedEndTags pops nodes off the stack of open elements as long as
 // the top node has a tag name of dd, dt, li, optgroup, option, p, rb, rp, rt or rtc.
 // If exceptions are specified, nodes with that name will not be popped off.
@@ -192,16 +203,17 @@ func (p *parser) generateImpliedEndTags(exceptions ...string) {
 loop:
 	for i = len(p.oe) - 1; i >= 0; i-- {
 		n := p.oe[i]
-		if n.Type == ElementNode {
-			switch n.DataAtom {
-			case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc:
-				for _, except := range exceptions {
-					if n.Data == except {
-						break loop
-					}
+		if n.Type != ElementNode {
+			break
+		}
+		switch n.DataAtom {
+		case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc:
+			for _, except := range exceptions {
+				if n.Data == except {
+					break loop
 				}
-				continue
 			}
+			continue
 		}
 		break
 	}
@@ -369,8 +381,7 @@ findIdenticalElements:
 // Section 12.2.4.3.
 func (p *parser) clearActiveFormattingElements() {
 	for {
-		n := p.afe.pop()
-		if len(p.afe) == 0 || n.Type == scopeMarkerNode {
+		if n := p.afe.pop(); len(p.afe) == 0 || n.Type == scopeMarkerNode {
 			return
 		}
 	}
@@ -625,25 +636,29 @@ func inHeadIM(p *parser) bool {
 		switch p.tok.DataAtom {
 		case a.Html:
 			return inBodyIM(p)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta:
+		case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta:
 			p.addElement()
 			p.oe.pop()
 			p.acknowledgeSelfClosingTag()
 			return true
 		case a.Noscript:
-			p.addElement()
 			if p.scripting {
-				p.setOriginalIM()
-				p.im = textIM
-			} else {
-				p.im = inHeadNoscriptIM
+				p.parseGenericRawTextElement()
+				return true
 			}
+			p.addElement()
+			p.im = inHeadNoscriptIM
+			// Don't let the tokenizer go into raw text mode when scripting is disabled.
+			p.tokenizer.NextIsNotRawText()
 			return true
-		case a.Script, a.Title, a.Noframes, a.Style:
+		case a.Script, a.Title:
 			p.addElement()
 			p.setOriginalIM()
 			p.im = textIM
 			return true
+		case a.Noframes, a.Style:
+			p.parseGenericRawTextElement()
+			return true
 		case a.Head:
 			// Ignore the token.
 			return true
@@ -855,7 +870,7 @@ func inBodyIM(p *parser) bool {
 				return true
 			}
 			copyAttributes(p.oe[0], p.tok)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title:
+		case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title:
 			return inHeadIM(p)
 		case a.Body:
 			if p.oe.contains(a.Template) {
@@ -881,7 +896,7 @@ func inBodyIM(p *parser) bool {
 			p.addElement()
 			p.im = inFramesetIM
 			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
+		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dialog, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Main, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
 			p.popUntil(buttonScope, a.P)
 			p.addElement()
 		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
@@ -1014,53 +1029,6 @@ func inBodyIM(p *parser) bool {
 			p.tok.DataAtom = a.Img
 			p.tok.Data = a.Img.String()
 			return false
-		case a.Isindex:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			action := ""
-			prompt := "This is a searchable index. Enter search keywords: "
-			attr := []Attribute{{Key: "name", Val: "isindex"}}
-			for _, t := range p.tok.Attr {
-				switch t.Key {
-				case "action":
-					action = t.Val
-				case "name":
-					// Ignore the attribute.
-				case "prompt":
-					prompt = t.Val
-				default:
-					attr = append(attr, t)
-				}
-			}
-			p.acknowledgeSelfClosingTag()
-			p.popUntil(buttonScope, a.P)
-			p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
-			if p.form == nil {
-				// NOTE: The 'isindex' element has been removed,
-				// and the 'template' element has not been designed to be
-				// collaborative with the index element.
-				//
-				// Ignore the token.
-				return true
-			}
-			if action != "" {
-				p.form.Attr = []Attribute{{Key: "action", Val: action}}
-			}
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(StartTagToken, a.Label, a.Label.String())
-			p.addText(prompt)
-			p.addChild(&Node{
-				Type:     ElementNode,
-				DataAtom: a.Input,
-				Data:     a.Input.String(),
-				Attr:     attr,
-			})
-			p.oe.pop()
-			p.parseImpliedToken(EndTagToken, a.Label, a.Label.String())
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(EndTagToken, a.Form, a.Form.String())
 		case a.Textarea:
 			p.addElement()
 			p.setOriginalIM()
@@ -1070,18 +1038,21 @@ func inBodyIM(p *parser) bool {
 			p.popUntil(buttonScope, a.P)
 			p.reconstructActiveFormattingElements()
 			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
+			p.parseGenericRawTextElement()
 		case a.Iframe:
 			p.framesetOK = false
+			p.parseGenericRawTextElement()
+		case a.Noembed:
+			p.parseGenericRawTextElement()
+		case a.Noscript:
+			if p.scripting {
+				p.parseGenericRawTextElement()
+				return true
+			}
+			p.reconstructActiveFormattingElements()
 			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Noembed, a.Noscript:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
+			// Don't let the tokenizer go into raw text mode when scripting is disabled.
+			p.tokenizer.NextIsNotRawText()
 		case a.Select:
 			p.reconstructActiveFormattingElements()
 			p.addElement()
@@ -1137,7 +1108,7 @@ func inBodyIM(p *parser) bool {
 				return false
 			}
 			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
+		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dialog, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Main, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
 			p.popUntil(defaultScope, p.tok.DataAtom)
 		case a.Form:
 			if p.oe.contains(a.Template) {
@@ -1198,14 +1169,13 @@ func inBodyIM(p *parser) bool {
 		if len(p.templateStack) > 0 {
 			p.im = inTemplateIM
 			return false
-		} else {
-			for _, e := range p.oe {
-				switch e.DataAtom {
-				case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc, a.Tbody, a.Td, a.Tfoot, a.Th,
-					a.Thead, a.Tr, a.Body, a.Html:
-				default:
-					return true
-				}
+		}
+		for _, e := range p.oe {
+			switch e.DataAtom {
+			case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc, a.Tbody, a.Td, a.Tfoot, a.Th,
+				a.Thead, a.Tr, a.Body, a.Html:
+			default:
+				return true
 			}
 		}
 	}
@@ -1221,9 +1191,15 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) {
 	// Once the code successfully parses the comprehensive test suite, we should
 	// refactor this code to be more idiomatic.
 
-	// Steps 1-4. The outer loop.
+	// Steps 1-2
+	if current := p.oe.top(); current.Data == tagName && p.afe.index(current) == -1 {
+		p.oe.pop()
+		return
+	}
+
+	// Steps 3-5. The outer loop.
 	for i := 0; i < 8; i++ {
-		// Step 5. Find the formatting element.
+		// Step 6. Find the formatting element.
 		var formattingElement *Node
 		for j := len(p.afe) - 1; j >= 0; j-- {
 			if p.afe[j].Type == scopeMarkerNode {
@@ -1238,17 +1214,22 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) {
 			p.inBodyEndTagOther(tagAtom, tagName)
 			return
 		}
+
+		// Step 7. Ignore the tag if formatting element is not in the stack of open elements.
 		feIndex := p.oe.index(formattingElement)
 		if feIndex == -1 {
 			p.afe.remove(formattingElement)
 			return
 		}
+		// Step 8. Ignore the tag if formatting element is not in the scope.
 		if !p.elementInScope(defaultScope, tagAtom) {
 			// Ignore the tag.
 			return
 		}
 
-		// Steps 9-10. Find the furthest block.
+		// Step 9. This step is omitted because it's just a parse error but no need to return.
+
+		// Steps 10-11. Find the furthest block.
 		var furthestBlock *Node
 		for _, e := range p.oe[feIndex:] {
 			if isSpecialElement(e) {
@@ -1265,47 +1246,65 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) {
 			return
 		}
 
-		// Steps 11-12. Find the common ancestor and bookmark node.
+		// Steps 12-13. Find the common ancestor and bookmark node.
 		commonAncestor := p.oe[feIndex-1]
 		bookmark := p.afe.index(formattingElement)
 
-		// Step 13. The inner loop. Find the lastNode to reparent.
+		// Step 14. The inner loop. Find the lastNode to reparent.
 		lastNode := furthestBlock
 		node := furthestBlock
 		x := p.oe.index(node)
-		// Steps 13.1-13.2
-		for j := 0; j < 3; j++ {
-			// Step 13.3.
+		// Step 14.1.
+		j := 0
+		for {
+			// Step 14.2.
+			j++
+			// Step. 14.3.
 			x--
 			node = p.oe[x]
-			// Step 13.4 - 13.5.
+			// Step 14.4. Go to the next step if node is formatting element.
+			if node == formattingElement {
+				break
+			}
+			// Step 14.5. Remove node from the list of active formatting elements if
+			// inner loop counter is greater than three and node is in the list of
+			// active formatting elements.
+			if ni := p.afe.index(node); j > 3 && ni > -1 {
+				p.afe.remove(node)
+				// If any element of the list of active formatting elements is removed,
+				// we need to take care whether bookmark should be decremented or not.
+				// This is because the value of bookmark may exceed the size of the
+				// list by removing elements from the list.
+				if ni <= bookmark {
+					bookmark--
+				}
+				continue
+			}
+			// Step 14.6. Continue the next inner loop if node is not in the list of
+			// active formatting elements.
 			if p.afe.index(node) == -1 {
 				p.oe.remove(node)
 				continue
 			}
-			// Step 13.6.
-			if node == formattingElement {
-				break
-			}
-			// Step 13.7.
+			// Step 14.7.
 			clone := node.clone()
 			p.afe[p.afe.index(node)] = clone
 			p.oe[p.oe.index(node)] = clone
 			node = clone
-			// Step 13.8.
+			// Step 14.8.
 			if lastNode == furthestBlock {
 				bookmark = p.afe.index(node) + 1
 			}
-			// Step 13.9.
+			// Step 14.9.
 			if lastNode.Parent != nil {
 				lastNode.Parent.RemoveChild(lastNode)
 			}
 			node.AppendChild(lastNode)
-			// Step 13.10.
+			// Step 14.10.
 			lastNode = node
 		}
 
-		// Step 14. Reparent lastNode to the common ancestor,
+		// Step 15. Reparent lastNode to the common ancestor,
 		// or for misnested table nodes, to the foster parent.
 		if lastNode.Parent != nil {
 			lastNode.Parent.RemoveChild(lastNode)
@@ -1317,13 +1316,13 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) {
 			commonAncestor.AppendChild(lastNode)
 		}
 
-		// Steps 15-17. Reparent nodes from the furthest block's children
+		// Steps 16-18. Reparent nodes from the furthest block's children
 		// to a clone of the formatting element.
 		clone := formattingElement.clone()
 		reparentChildren(clone, furthestBlock)
 		furthestBlock.AppendChild(clone)
 
-		// Step 18. Fix up the list of active formatting elements.
+		// Step 19. Fix up the list of active formatting elements.
 		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
 			// Move the bookmark with the rest of the list.
 			bookmark--
@@ -1331,7 +1330,7 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) {
 		p.afe.remove(formattingElement)
 		p.afe.insert(bookmark, clone)
 
-		// Step 19. Fix up the stack of open elements.
+		// Step 20. Fix up the stack of open elements.
 		p.oe.remove(formattingElement)
 		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
 	}
@@ -1502,14 +1501,13 @@ func inCaptionIM(p *parser) bool {
 	case StartTagToken:
 		switch p.tok.DataAtom {
 		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-				return false
-			} else {
+			if !p.popUntil(tableScope, a.Caption) {
 				// Ignore the token.
 				return true
 			}
+			p.clearActiveFormattingElements()
+			p.im = inTableIM
+			return false
 		case a.Select:
 			p.reconstructActiveFormattingElements()
 			p.addElement()
@@ -1526,14 +1524,13 @@ func inCaptionIM(p *parser) bool {
 			}
 			return true
 		case a.Table:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-				return false
-			} else {
+			if !p.popUntil(tableScope, a.Caption) {
 				// Ignore the token.
 				return true
 			}
+			p.clearActiveFormattingElements()
+			p.im = inTableIM
+			return false
 		case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
 			// Ignore the token.
 			return true
@@ -1777,12 +1774,11 @@ func inSelectIM(p *parser) bool {
 			}
 			p.addElement()
 		case a.Select:
-			if p.popUntil(selectScope, a.Select) {
-				p.resetInsertionMode()
-			} else {
+			if !p.popUntil(selectScope, a.Select) {
 				// Ignore the token.
 				return true
 			}
+			p.resetInsertionMode()
 		case a.Input, a.Keygen, a.Textarea:
 			if p.elementInScope(selectScope, a.Select) {
 				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
@@ -1810,12 +1806,11 @@ func inSelectIM(p *parser) bool {
 				p.oe = p.oe[:i]
 			}
 		case a.Select:
-			if p.popUntil(selectScope, a.Select) {
-				p.resetInsertionMode()
-			} else {
+			if !p.popUntil(selectScope, a.Select) {
 				// Ignore the token.
 				return true
 			}
+			p.resetInsertionMode()
 		case a.Template:
 			return inHeadIM(p)
 		}
@@ -2136,28 +2131,31 @@ func parseForeignContent(p *parser) bool {
 			Data: p.tok.Data,
 		})
 	case StartTagToken:
-		b := breakout[p.tok.Data]
-		if p.tok.DataAtom == a.Font {
-		loop:
-			for _, attr := range p.tok.Attr {
-				switch attr.Key {
-				case "color", "face", "size":
-					b = true
-					break loop
+		if !p.fragment {
+			b := breakout[p.tok.Data]
+			if p.tok.DataAtom == a.Font {
+			loop:
+				for _, attr := range p.tok.Attr {
+					switch attr.Key {
+					case "color", "face", "size":
+						b = true
+						break loop
+					}
 				}
 			}
-		}
-		if b {
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				n := p.oe[i]
-				if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) {
-					p.oe = p.oe[:i+1]
-					break
+			if b {
+				for i := len(p.oe) - 1; i >= 0; i-- {
+					n := p.oe[i]
+					if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) {
+						p.oe = p.oe[:i+1]
+						break
+					}
 				}
+				return false
 			}
-			return false
 		}
-		switch p.top().Namespace {
+		current := p.adjustedCurrentNode()
+		switch current.Namespace {
 		case "math":
 			adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
 		case "svg":
@@ -2172,7 +2170,7 @@ func parseForeignContent(p *parser) bool {
 			panic("html: bad parser state: unexpected namespace")
 		}
 		adjustForeignAttributes(p.tok.Attr)
-		namespace := p.top().Namespace
+		namespace := current.Namespace
 		p.addElement()
 		p.top().Namespace = namespace
 		if namespace != "" {
@@ -2201,12 +2199,20 @@ func parseForeignContent(p *parser) bool {
 	return true
 }
 
+// Section 12.2.4.2.
+func (p *parser) adjustedCurrentNode() *Node {
+	if len(p.oe) == 1 && p.fragment && p.context != nil {
+		return p.context
+	}
+	return p.oe.top()
+}
+
 // Section 12.2.6.
 func (p *parser) inForeignContent() bool {
 	if len(p.oe) == 0 {
 		return false
 	}
-	n := p.oe[len(p.oe)-1]
+	n := p.adjustedCurrentNode()
 	if n.Namespace == "" {
 		return false
 	}
@@ -2341,8 +2347,7 @@ func ParseWithOptions(r io.Reader, opts ...ParseOption) (*Node, error) {
 		f(p)
 	}
 
-	err := p.parse()
-	if err != nil {
+	if err := p.parse(); err != nil {
 		return nil, err
 	}
 	return p.doc, nil
@@ -2364,7 +2369,6 @@ func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) (
 		contextTag = context.DataAtom.String()
 	}
 	p := &parser{
-		tokenizer: NewTokenizerFragment(r, contextTag),
 		doc: &Node{
 			Type: DocumentNode,
 		},
@@ -2372,6 +2376,11 @@ func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) (
 		fragment:  true,
 		context:   context,
 	}
+	if context != nil && context.Namespace != "" {
+		p.tokenizer = NewTokenizer(r)
+	} else {
+		p.tokenizer = NewTokenizerFragment(r, contextTag)
+	}
 
 	for _, f := range opts {
 		f(p)
@@ -2396,8 +2405,7 @@ func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) (
 		}
 	}
 
-	err := p.parse()
-	if err != nil {
+	if err := p.parse(); err != nil {
 		return nil, err
 	}
 
diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go
index d34564f49dd..8bf47ede797 100644
--- a/vendor/golang.org/x/net/html/render.go
+++ b/vendor/golang.org/x/net/html/render.go
@@ -252,20 +252,19 @@ func writeQuoted(w writer, s string) error {
 // Section 12.1.2, "Elements", gives this list of void elements. Void elements
 // are those that can't have any contents.
 var voidElements = map[string]bool{
-	"area":    true,
-	"base":    true,
-	"br":      true,
-	"col":     true,
-	"command": true,
-	"embed":   true,
-	"hr":      true,
-	"img":     true,
-	"input":   true,
-	"keygen":  true,
-	"link":    true,
-	"meta":    true,
-	"param":   true,
-	"source":  true,
-	"track":   true,
-	"wbr":     true,
+	"area":   true,
+	"base":   true,
+	"br":     true,
+	"col":    true,
+	"embed":  true,
+	"hr":     true,
+	"img":    true,
+	"input":  true,
+	"keygen": true,
+	"link":   true,
+	"meta":   true,
+	"param":  true,
+	"source": true,
+	"track":  true,
+	"wbr":    true,
 }
diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go
index ae0d1b05cd3..877709f991b 100644
--- a/vendor/golang.org/x/net/html/token.go
+++ b/vendor/golang.org/x/net/html/token.go
@@ -296,8 +296,7 @@ func (z *Tokenizer) Buffered() []byte {
 // too many times in succession.
 func readAtLeastOneByte(r io.Reader, b []byte) (int, error) {
 	for i := 0; i < 100; i++ {
-		n, err := r.Read(b)
-		if n != 0 || err != nil {
+		if n, err := r.Read(b); n != 0 || err != nil {
 			return n, err
 		}
 	}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index f21fb744abd..daf4e7dc0ed 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -486,7 +486,7 @@ golang.org/x/crypto/scrypt
 golang.org/x/crypto/ssh
 golang.org/x/crypto/ssh/agent
 golang.org/x/crypto/ssh/knownhosts
-# golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9
+# golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa
 golang.org/x/net/context
 golang.org/x/net/context/ctxhttp
 golang.org/x/net/html
diff --git a/web_src/js/index.js b/web_src/js/index.js
index c84a2c89914..5d195774ddc 100644
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -18,8 +18,13 @@ function htmlEncode(text) {
   return jQuery('<div />').text(text).html();
 }
 
+function svg(name, size) {
+  return `<svg class="svg ${name}" width="${size}" height="${size}" aria-hidden="true"><use xlink:href="${staticPrefix}/img/svg/icons.svg#${name}"/></svg>`;
+}
+
 let csrf;
 let suburl;
+let staticPrefix;
 let previewFileModes;
 let simpleMDEditor;
 const commentMDEditors = {};
@@ -377,10 +382,10 @@ function initCommentForm() {
         // adding/removing labels
         if ($(this).hasClass('checked')) {
           $(this).removeClass('checked');
-          $(this).find('.octicon').removeClass('octicon-check');
+          $(this).find('.octicon-check').addClass('invisible');
         } else {
           $(this).addClass('checked');
-          $(this).find('.octicon').addClass('octicon-check');
+          $(this).find('.octicon-check').removeClass('invisible');
         }
 
         updateIssuesMeta(
@@ -395,7 +400,7 @@ function initCommentForm() {
 
       if ($(this).hasClass('checked')) {
         $(this).removeClass('checked');
-        $(this).find('.octicon').removeClass('octicon-check');
+        $(this).find('.octicon-check').addClass('invisible');
         if (hasLabelUpdateAction) {
           if (!($(this).data('id') in labels)) {
             labels[$(this).data('id')] = {
@@ -409,7 +414,7 @@ function initCommentForm() {
         }
       } else {
         $(this).addClass('checked');
-        $(this).find('.octicon').addClass('octicon-check');
+        $(this).find('.octicon-check').removeClass('invisible');
         if (hasLabelUpdateAction) {
           if (!($(this).data('id') in labels)) {
             labels[$(this).data('id')] = {
@@ -452,7 +457,7 @@ function initCommentForm() {
 
       $(this).parent().find('.item').each(function () {
         $(this).removeClass('checked');
-        $(this).find('.octicon').removeClass('octicon-check');
+        $(this).find('.octicon').addClass('invisible');
       });
 
       $list.find('.item').each(function () {
@@ -2361,6 +2366,7 @@ function initTemplateSearch() {
 $(document).ready(async () => {
   csrf = $('meta[name=_csrf]').attr('content');
   suburl = $('meta[name=_suburl]').attr('content');
+  staticPrefix = $('meta[name=_staticprefix]').attr('content');
 
   // Show exact time
   $('.time-since').each(function () {
@@ -2497,7 +2503,7 @@ $(document).ready(async () => {
     $(this).find('h1, h2, h3, h4, h5, h6').each(function () {
       let node = $(this);
       node = node.wrap('<div class="anchor-wrap"></div>');
-      node.append(`<a class="anchor" href="#${encodeURIComponent(node.attr('id'))}"><span class="octicon octicon-link"></span></a>`);
+      node.append(`<a class="anchor" href="#${encodeURIComponent(node.attr('id'))}">${svg('octicon-link', 16)}</a>`);
     });
   });
 
@@ -2779,6 +2785,7 @@ function initVueComponents() {
         reposFilter: 'all',
         searchQuery: '',
         isLoading: false,
+        staticPrefix,
         repoTypes: {
           all: {
             count: 0,
@@ -2881,13 +2888,13 @@ function initVueComponents() {
 
       repoClass(repo) {
         if (repo.fork) {
-          return 'octicon octicon-repo-forked';
+          return 'octicon-repo-forked';
         } if (repo.mirror) {
-          return 'octicon octicon-repo-clone';
+          return 'octicon-repo-clone';
         } if (repo.private) {
-          return 'octicon octicon-lock';
+          return 'octicon-lock';
         }
-        return 'octicon octicon-repo';
+        return 'octicon-repo';
       }
     }
   });
diff --git a/web_src/less/_base.less b/web_src/less/_base.less
index d1851d5d88c..9627ba79142 100644
--- a/web_src/less/_base.less
+++ b/web_src/less/_base.less
@@ -261,11 +261,11 @@ code,
         z-index: 900;
     }
 
-    .octicon {
-        &.fitted {
-            margin-right: 0;
-        }
+    .fitted .svg {
+        margin-right: 0;
+    }
 
+    .svg {
         margin-right: 0.75em;
     }
 
@@ -277,7 +277,7 @@ code,
         }
     }
 
-    .text .octicon {
+    .text .svg {
         width: 16px;
         text-align: center;
     }
@@ -597,7 +597,7 @@ code,
     }
 
     &.status.buttons {
-        .octicon {
+        .svg {
             margin-right: 4px;
         }
     }
@@ -1136,7 +1136,7 @@ i.icon.centerlock {
         overflow-y: visible;
     }
 
-    *:not(.fa):not(.octicon):not(.icon) {
+    *:not(.fa):not(.svg):not(.icon) {
         font-size: 12px;
         font-family: @monospaced-fonts, monospace;
         line-height: 20px;
@@ -1167,7 +1167,7 @@ i.icon.centerlock {
     height: 2.1666em !important;
 }
 
-.octicon {
+.svg {
     &.green {
         color: #21ba45;
     }
@@ -1192,3 +1192,7 @@ i.icon.centerlock {
     border: 1px solid #ccc;
     border-radius: 500em;
 }
+
+.invisible {
+    visibility: hidden;
+}
diff --git a/web_src/less/_dashboard.less b/web_src/less/_dashboard.less
index 71239ffc3ed..ab0d3b61b98 100644
--- a/web_src/less/_dashboard.less
+++ b/web_src/less/_dashboard.less
@@ -155,7 +155,7 @@
                     padding: 6px 1.2em;
                     display: block;
 
-                    .octicon {
+                    .svg {
                         color: #888888;
 
                         &.rear {
diff --git a/web_src/less/_explore.less b/web_src/less/_explore.less
index ad9adc70e07..e9a25468961 100644
--- a/web_src/less/_explore.less
+++ b/web_src/less/_explore.less
@@ -9,7 +9,7 @@
         background-color: #fafafa !important;
         border-width: 1px !important;
 
-        .octicon {
+        .svg {
             width: 16px;
             text-align: center;
             margin-right: 5px;
@@ -95,7 +95,7 @@
         .description {
             margin-top: 5px;
 
-            .octicon:not(:first-child) {
+            .svg:not(:first-child) {
                 margin-left: 5px;
             }
 
diff --git a/web_src/less/_home.less b/web_src/less/_home.less
index 53fd76f0983..90390239a15 100644
--- a/web_src/less/_home.less
+++ b/web_src/less/_home.less
@@ -24,10 +24,11 @@
             }
         }
 
-        .octicon {
+        .svg {
             color: #5aa509;
-            font-size: 40px;
+            height: 40px;
             width: 50px;
+            vertical-align: bottom;
         }
 
         &.header {
diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less
index 7a84c7d636f..bd2449ba1e6 100644
--- a/web_src/less/_repository.less
+++ b/web_src/less/_repository.less
@@ -1,5 +1,4 @@
 .repository {
-    @mega-octicon-width: 30px;
 
     padding-top: 15px;
 
@@ -12,34 +11,29 @@
             margin-top: 0;
         }
 
-        .mega-octicon {
-            width: @mega-octicon-width;
-            font-size: 30px;
-        }
-
         .ui.huge.breadcrumb {
             font-weight: 400;
             font-size: 1.5rem;
 
-            i.mega-octicon {
+            svg {
                 position: relative;
                 top: 5px;
             }
 
-            i.octicon-lock {
+            svg.octicon-lock {
                 margin-left: 5px;
             }
         }
 
         .fork-flag {
-            margin-left: @mega-octicon-width + 6px;
+            margin-left: 36px;
             margin-top: 3px;
             display: block;
             font-size: 12px;
             white-space: nowrap;
         }
 
-        .octicon.octicon-repo-forked {
+        .svg.octicon-repo-forked {
             margin-top: -1px;
             font-size: 15px;
         }
@@ -135,7 +129,7 @@
             border-bottom: 0;
         }
 
-        .ui.tabular .octicon {
+        .ui.tabular .svg {
             margin-right: 5px;
         }
     }
@@ -147,13 +141,13 @@
             padding: 0 8px;
         }
 
-        .octicon {
+        .svg {
             float: left;
             margin: 0 -7px 0 -5px;
             width: 16px;
         }
 
-        &.labels .octicon {
+        &.labels .svg {
             margin: -2px -7px 0 -5px;
         }
 
@@ -325,7 +319,7 @@
             }
 
             tbody {
-                .octicon {
+                .svg {
                     margin-left: 3px;
                     margin-right: 5px;
                     color: #777777;
@@ -456,7 +450,7 @@
         .sidebar {
             padding-left: 0;
 
-            .octicon {
+            .svg {
                 width: 16px;
             }
         }
@@ -476,7 +470,7 @@
         }
 
         .tabular.menu {
-            .octicon {
+            .svg {
                 margin-right: 5px;
             }
         }
@@ -637,7 +631,7 @@
             &.tabular.menu {
                 margin-bottom: 10px;
 
-                .octicon {
+                .svg {
                     margin-right: 5px;
                 }
             }
@@ -675,7 +669,7 @@
                     text-align: center;
                     vertical-align: middle;
 
-                    .octicon {
+                    .svg {
                         width: 23px;
                         font-size: 23px;
                         margin-top: 0.45em;
@@ -896,11 +890,11 @@
                 margin: 15px 0 15px 79px;
                 padding-left: 25px;
 
-                & > .octicon:not(.issue-symbol) {
+                & > .svg:not(.issue-symbol) {
                     text-shadow: -2px 0 #fff, 0 2px #fff, 2px 0 #fff, 0 -2px #fff;
                 }
 
-                & > .octicon.issue-symbol {
+                & > .svg.issue-symbol {
                     font-size: 20px;
                     margin-left: -35px;
                     margin-right: -1px;
@@ -935,7 +929,7 @@
                     }
                 }
 
-                .octicon {
+                .svg {
                     width: 30px;
                     float: left;
                     text-align: center;
@@ -980,7 +974,7 @@
                     margin-top: 5px;
                     margin-left: 35px;
 
-                    .octicon {
+                    .svg {
                         &.octicon-git-commit {
                             margin-top: 2px;
                         }
@@ -1104,7 +1098,7 @@
                 color: #999999;
                 padding-top: 5px;
 
-                .issue-stats .octicon {
+                .issue-stats .svg {
                     padding-left: 5px;
                 }
 
@@ -1150,7 +1144,7 @@
         }
 
         .choose.branch {
-            .octicon {
+            .svg {
                 padding-right: 10px;
             }
         }
@@ -1617,7 +1611,7 @@
                         margin-top: 20px;
 
                         > a {
-                            .octicon {
+                            .svg {
                                 margin-left: 5px;
                                 margin-right: 5px;
                             }
@@ -1730,7 +1724,7 @@
                 padding-top: 70px;
                 padding-bottom: 100px;
 
-                .mega-octicon {
+                .svg {
                     font-size: 48px;
                 }
             }
@@ -2232,11 +2226,11 @@
                 margin: 15px -1rem -1rem -1rem;
             }
 
-            > .mega-octicon {
+            > .svg {
                 display: table-cell;
             }
 
-            > .mega-octicon + .content {
+            > .svg + .content {
                 display: table-cell;
                 padding: 0 0 0 0.5em;
                 vertical-align: top;
diff --git a/web_src/less/_svg.less b/web_src/less/_svg.less
new file mode 100644
index 00000000000..b17b9a8b329
--- /dev/null
+++ b/web_src/less/_svg.less
@@ -0,0 +1,9 @@
+.svg {
+    display: inline-block;
+    vertical-align: text-top;
+    fill: currentColor;
+
+    .middle & {
+        vertical-align: middle;
+    }
+}
diff --git a/web_src/less/_user.less b/web_src/less/_user.less
index 52c59464d82..2bec3489e7e 100644
--- a/web_src/less/_user.less
+++ b/web_src/less/_user.less
@@ -24,7 +24,7 @@
                             border-bottom: 1px solid #eaeaea;
                         }
 
-                        .octicon,
+                        .svg,
                         .fa {
                             margin-left: 1px;
                             margin-right: 5px;
@@ -80,7 +80,7 @@
     }
 
     &.notification {
-        .octicon {
+        .svg {
             float: left;
             font-size: 2em;
 
diff --git a/web_src/less/index.less b/web_src/less/index.less
index 1b93024329f..12eb8cf8e5e 100644
--- a/web_src/less/index.less
+++ b/web_src/less/index.less
@@ -1,6 +1,7 @@
 @import "~highlight.js/styles/github.css";
 @import "./vendor/gitGraph.css";
 
+@import "_svg";
 @import "_tribute";
 @import "_emojify";
 @import "_base";
diff --git a/web_src/less/themes/theme-arc-green.less b/web_src/less/themes/theme-arc-green.less
index bd8033e302b..0d2a1a4e98f 100644
--- a/web_src/less/themes/theme-arc-green.less
+++ b/web_src/less/themes/theme-arc-green.less
@@ -654,11 +654,11 @@ a.ui.basic.green.label:hover {
     border-top: 1px solid #353944;
 }
 
-.repository.view.issue .comment-list .event > .octicon.issue-symbol {
+.repository.view.issue .comment-list .event > .svg.issue-symbol {
     background: #3b4954;
 }
 
-.repository.view.issue .comment-list .event > .octicon:not(.issue-symbol) {
+.repository.view.issue .comment-list .event > .svg:not(.issue-symbol) {
     text-shadow: -2px 0 #383c4a, 0 2px #383c4a, 2px 0 #383c4a, 0 -2px #383c4a;
 }
 
@@ -1065,8 +1065,8 @@ input {
     color: #668cb1;
 }
 
-.repository.file.list #repo-files-table tbody .octicon.octicon-file-directory,
-.repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule {
+.repository.file.list #repo-files-table tbody .svg.octicon-file-directory,
+.repository.file.list #repo-files-table tbody .svg.octicon-file-submodule {
     color: #7c9b5e;
 }
 
diff --git a/webpack.config.js b/webpack.config.js
index 08926bf58a1..c3d3ad88e0d 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -5,14 +5,17 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
 const PostCSSPresetEnv = require('postcss-preset-env');
 const PostCSSSafeParser = require('postcss-safe-parser');
+const SpriteLoaderPlugin = require('svg-sprite-loader/plugin');
 const TerserPlugin = require('terser-webpack-plugin');
 const VueLoaderPlugin = require('vue-loader/lib/plugin');
 const { statSync } = require('fs');
 const { resolve, parse } = require('path');
 const { SourceMapDevToolPlugin } = require('webpack');
 
+const glob = (pattern) => fastGlob.sync(pattern, { cwd: __dirname, absolute: true });
+
 const themes = {};
-for (const path of fastGlob.sync(resolve(__dirname, 'web_src/less/themes/*.less'))) {
+for (const path of glob('web_src/less/themes/*.less')) {
   themes[parse(path).name] = [path];
 }
 
@@ -29,6 +32,7 @@ module.exports = {
     jquery: [
       resolve(__dirname, 'web_src/js/jquery.js'),
     ],
+    icons: glob('node_modules/@primer/octicons/build/svg/**/*.svg'),
     ...themes,
   },
   devtool: false,
@@ -140,12 +144,35 @@ module.exports = {
           },
         ],
       },
+      {
+        test: /\.svg$/,
+        use: [
+          {
+            loader: 'svg-sprite-loader',
+            options: {
+              extract: true,
+              spriteFilename: 'img/svg/icons.svg',
+              symbolId: (path) => {
+                const { name } = parse(path);
+                if (/@primer[/\\]octicons/.test(path)) {
+                  return `octicon-${name}`;
+                }
+                return name;
+              },
+            },
+          },
+          {
+            loader: 'svgo-loader',
+          },
+        ],
+      },
     ],
   },
   plugins: [
     new VueLoaderPlugin(),
-    // needed so themes don't generate useless js files
+    // avoid generating useless js output files for css- and svg-only chunks
     new FixStyleOnlyEntriesPlugin({
+      extensions: ['less', 'scss', 'css', 'svg'],
       silent: true,
     }),
     new MiniCssExtractPlugin({
@@ -158,6 +185,9 @@ module.exports = {
         'js/index.js',
       ],
     }),
+    new SpriteLoaderPlugin({
+      plainSprite: true,
+    }),
   ],
   performance: {
     maxEntrypointSize: 512000,