You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2020/07/28 01:01:07 UTC

[freemarker-docgen] branch master updated: Added hamburger menu for very narrow (mobile) screens

This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/freemarker-docgen.git


The following commit(s) were added to refs/heads/master by this push:
     new fe11c91  Added hamburger menu for very narrow (mobile) screens
fe11c91 is described below

commit fe11c9187c95101113de565c1d0cf7f5fd5a8ee9
Author: ddekany <dd...@apache.org>
AuthorDate: Sun Jul 26 16:32:42 2020 +0200

    Added hamburger menu for very narrow (mobile) screens
---
 .../org/freemarker/docgen/core/js/page-menu.js     |   13 +-
 .../core/less/lib/components/hamburger-menu.less   |   36 +
 .../less/lib/components/table-of-contents.less     |   75 +-
 .../org/freemarker/docgen/core/less/lib/icons.less |   25 +-
 .../docgen/core/less/lib/layout/content.less       |   38 +-
 .../freemarker/docgen/core/less/lib/variables.less |    3 +
 .../org/freemarker/docgen/core/less/styles.less    |    1 +
 .../docgen/core/statics/fonts/icomoon.eot          |  Bin 4220 -> 4376 bytes
 .../docgen/core/statics/fonts/icomoon.svg          |   40 +-
 .../docgen/core/statics/fonts/icomoon.ttf          |  Bin 4056 -> 4212 bytes
 .../docgen/core/statics/fonts/icomoon.woff         |  Bin 4132 -> 4288 bytes
 .../docgen/core/statics/fonts/selection.json       | 1031 ++++++++++----------
 .../freemarker/docgen/core/templates/header.ftlh   |    3 +-
 13 files changed, 718 insertions(+), 547 deletions(-)

diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/js/page-menu.js b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/js/page-menu.js
index c9d6914..8f8e2b7 100644
--- a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/js/page-menu.js
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/js/page-menu.js
@@ -49,11 +49,20 @@
     }, 1);
   }
 
-  function onPageMenuClick(e) {
+  function onPageMenuRelatedClick(e) {
     var node = e.target;
 
+    var toc = document.getElementById('table-of-contents-wrapper');
     if (node.classList.contains('page-menu-link')) {
       highlightNode(node.getAttribute('data-menu-target'));
+    } else if (node.id == 'hamburger-menu') {
+      if (toc.style.display === "block") {
+        toc.style.display = "none";
+      } else {
+        toc.style.display = "block";
+      }
+    } else if (toc.style.display === "block" && !toc.contains(event.target)) {
+      toc.style.display = "none";
     }
   }
 
@@ -74,7 +83,7 @@
   }
 
   function init() {
-    document.addEventListener('click', onPageMenuClick);
+    document.addEventListener('click', onPageMenuRelatedClick);
     document.addEventListener('DOMContentLoaded', onDocReady);
   }
 
diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/hamburger-menu.less b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/hamburger-menu.less
new file mode 100644
index 0000000..27e1d2a
--- /dev/null
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/hamburger-menu.less
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#hamburger-menu {
+  position: absolute;
+  left: 2px;
+  top: @hamburger-icon-top;
+  cursor: pointer;
+
+  &::before {
+    .icon();
+    .icon-menu();
+    color: #fff;
+    font-size: @hamburger-icon-height;
+    display: inline-block;
+
+    @media (min-width: @screen-xs-min) {
+      display: none;
+    }
+  }
+}
diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/table-of-contents.less b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/table-of-contents.less
index 25b8dc1..159ed8d 100644
--- a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/table-of-contents.less
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/components/table-of-contents.less
@@ -16,15 +16,27 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
+@toc-hamburger-menu-font-size: 18px;
+@toc-xs-menu-font-size: 12px;
+@toc-sm-menu-font-size: 13px;
+
 .table-of-contents {
   list-style-type: none;
   padding: 0;
-  margin: 6px 0 0;
-  font-size: 12px;
+
+  // This is for small screen, where the ToC is popped up by the hamburger menu, so it can be take the whole screen.
+  margin: 0;
+  font-size: @toc-hamburger-menu-font-size;
+
+  @media (min-width: @screen-xs-min) {
+    margin: 6px 0 0;
+    font-size: @toc-xs-menu-font-size;
+  }
 
   @media (min-width: @screen-sm-min) {
     margin-top: 12px;
-    font-size: 13px;
+    font-size: @toc-sm-menu-font-size;
   }
 
   .current {
@@ -90,40 +102,69 @@
   padding: 0;
 
   li {
-    padding-left: 14px;
+    padding-left: @toc-hamburger-menu-font-size + 1;
+    @media (min-width: @screen-xs-min) {
+      padding-left: @toc-xs-menu-font-size + 1;
+    }
+    @media (min-width: @screen-sm-min) {
+      padding-left: @toc-sm-menu-font-size + 1;
+    }
+
     position: relative;
 
     &::before {
       .icon();
       .icon-dot-single();
-      width: 14px;
-      height: 14px;
       display: block;
       position: absolute;
-      left: -3px;
-      top: 2px;
-      font-size: 14px;
       line-height: 1;
+
+      font-size: @toc-hamburger-menu-font-size;
+      top: @toc-hamburger-menu-font-size / 5;
+      left: -@toc-hamburger-menu-font-size / 4;
+      width: @toc-hamburger-menu-font-size;
+      height: @toc-hamburger-menu-font-size;
+      @media (min-width: @screen-xs-min) {
+        font-size: @toc-xs-menu-font-size;
+        top: @toc-xs-menu-font-size / 4;
+        left: -@toc-xs-menu-font-size / 4;
+        width: @toc-xs-menu-font-size;
+        height: @toc-xs-menu-font-size;
+      }
+      @media (min-width: @screen-sm-min) {
+        font-size: @toc-sm-menu-font-size;
+        top: @toc-sm-menu-font-size / 4;
+        left: -@toc-sm-menu-font-size / 4;
+        width: @toc-sm-menu-font-size;
+        height: @toc-sm-menu-font-size;
+      }
     }
 
     &.has-children {
       &::before {
         .icon-add();
-        font-size: 13px;
+
         cursor: pointer;
+        font-size: @toc-hamburger-menu-font-size;
+        @media (min-width: @screen-xs-min) {
+          font-size: @toc-xs-menu-font-size;
+        }
+        @media (min-width: @screen-sm-min) {
+          font-size: @toc-sm-menu-font-size;
+        }
       }
 
       &.open {
         &::before {
           .icon-remove();
-          font-size: 13px;
-        }
-      }
 
-      .last {
-        &::before {
-          .icon-dot-single();
-          top: 3px;
+          font-size: @toc-hamburger-menu-font-size;
+          @media (min-width: @screen-xs-min) {
+            font-size: @toc-xs-menu-font-size;
+          }
+          @media (min-width: @screen-sm-min) {
+            font-size: @toc-sm-menu-font-size;
+          }
         }
       }
     }
diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/icons.less b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/icons.less
index d76c84d..7d273b0 100644
--- a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/icons.less
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/icons.less
@@ -18,22 +18,31 @@
  */
 @font-face {
   font-family: 'icomoon';
-  src:url('fonts/icomoon.eot?-fbty7i');
-  src:url('fonts/icomoon.eot?#iefix-fbty7i') format('embedded-opentype'),
-    url('fonts/icomoon.woff?-fbty7i') format('woff'),
-    url('fonts/icomoon.ttf?-fbty7i') format('truetype'),
-    url('fonts/icomoon.svg?-fbty7i#icomoon') format('svg');
+  src:  url('fonts/icomoon.eot?2ctla8');
+  src:  url('fonts/icomoon.eot?2ctla8#iefix') format('embedded-opentype'),
+    url('fonts/icomoon.ttf?2ctla8') format('truetype'),
+    url('fonts/icomoon.woff?2ctla8') format('woff'),
+    url('fonts/icomoon.svg?2ctla8#icomoon') format('svg');
   font-weight: normal;
   font-style: normal;
+  font-display: block;
 }
 
 .icon() {
-  font-family: 'icomoon';
+  // use !important to prevent issues with browser extensions that change fonts
+  font-family: 'icomoon' !important;
+  speak: never;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
 
   // Better Font Rendering
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
+
 .icon-add() {
 	content: "\e600";
 }
@@ -74,6 +83,10 @@
 	content: "\e608";
 }
 
+.icon-menu() {
+  content: "\e900";
+}
+
 .icon-search() {
 	content: "\f002";
 }
diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/layout/content.less b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/layout/content.less
index 06bce9b..2678558 100644
--- a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/layout/content.less
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/layout/content.less
@@ -38,19 +38,41 @@
     display: block;
   }
 
-  .col-left {
-    flex: 0 0 160px;
-    max-width: 160px; // set max-width to prevent flicker
-    overflow: hidden;
-
-    margin-right: @gutter-width / 4 * 3; // 18px
-
-    // hide for really small screens
+  #table-of-contents-wrapper {
+    // Hide for typical mobile screens:
     display: none;
 
     @media (min-width: @screen-xs-min) {
       display: block;
     }
+  }
+
+  .col-left {
+    // This is for when it's inside the hamburger-menu:
+    padding: 12px;
+    position: absolute;
+    left: 0px;
+    top: @hamburger-icon-top + @hamburger-icon-height;
+    z-index: 100;
+    background: #fff; // TODO variable?
+    border: 1px solid #000; // TODO variable?
+    box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.33);
+
+    @media (min-width: @screen-xs-min) {
+      // For all widths where we show the left column:
+      padding: 0;
+      position: static;
+      top: 0;
+      left: 0;
+      border: none;
+      box-shadow: none;
+      overflow: hidden;
+
+      // For xs width:
+      flex: 0 0 160px;
+      max-width: 160px; // set max-width to prevent flicker
+      margin-right: @gutter-width / 4 * 3;
+    }
 
     @media (min-width: @screen-sm-min) {
       flex-basis: 210px;
diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/variables.less b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/variables.less
index 81725fa..ee15507 100644
--- a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/variables.less
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/lib/variables.less
@@ -59,3 +59,6 @@
 @container-sm:  @screen-sm-min - (@gutter-width * 2) - 20px; // subtract for scrollbar
 @container-md:  @screen-md-min - (@gutter-width * 2) - 20px; // subtract for scrollbar
 @container-lg:  @screen-lg-min - (@gutter-width * 2) - 20px; // subtract for scrollbar
+
+@hamburger-icon-height: 30px;
+@hamburger-icon-top: 2px;
\ No newline at end of file
diff --git a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/styles.less b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/styles.less
index bf0a603..613ad1b 100644
--- a/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/styles.less
+++ b/freemarker-docgen-core/src/main/resources-gulp/org/freemarker/docgen/core/less/styles.less
@@ -45,6 +45,7 @@
 @import "lib/components/code-block.less";
 @import "lib/components/table.less";
 @import "lib/components/social-icons.less";
+@import "lib/components/hamburger-menu.less";
 
 // generic utilities
 @import "lib/utilities.less";
diff --git a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.eot b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.eot
index 6d5cc05..4bcb54b 100644
Binary files a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.eot and b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.eot differ
diff --git a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.svg b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.svg
index 0c1e073..8a91463 100644
--- a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.svg
+++ b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.svg
@@ -1,5 +1,4 @@
 <?xml version="1.0" standalone="no"?>
-<!-- See NOTICE file for copyright information! -->
 <!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">
 <metadata>Generated by IcoMoon</metadata>
@@ -7,23 +6,24 @@
 <font id="icomoon" horiz-adv-x="1024">
 <font-face units-per-em="1024" ascent="960" descent="-64" />
 <missing-glyph horiz-adv-x="1024" />
-<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
-<glyph unicode="&#xe600;" d="M810.667 384h-256v-256h-85.333v256h-256v85.333h256v256h85.333v-256h256v-85.333z" />
-<glyph unicode="&#xe601;" d="M810.667 384h-597.333v85.333h597.333v-85.333z" />
-<glyph unicode="&#xe602;" d="M399.36 460.8c0-62.208 50.483-112.64 112.691-112.64s112.589 50.483 112.589 112.64c0 62.208-50.381 112.589-112.589 112.589s-112.691-50.381-112.691-112.589z" />
-<glyph unicode="&#xe604;" d="M998.963 52.224l-456.038 851.558c-6.349 11.008-18.125 17.818-30.925 17.818-12.851 0-24.627-6.81-30.925-17.818l-455.987-851.558c-6.195-10.803-6.093-24.115 0.256-34.816 6.4-10.803 18.022-17.408 30.618-17.408h912.077c12.544 0 24.269 6.605 30.618 17.408 6.349 10.701 6.451 24.013 0.307 34.816zM563.2 102.4h-102.4v102.4h102.4v-102.4zM563.2 281.6h-102.4v332.8h102.4v-332.8z" />
-<glyph unicode="&#xe605;" d="M636.518 972.8c68.608 0 102.912-46.694 102.912-100.198 0-66.816-59.597-128.614-137.165-128.614-64.973 0-102.861 38.4-101.069 101.888 0 53.402 45.107 126.925 135.322 126.925zM425.421-51.2c-54.17 0-93.85 33.382-55.962 180.429l62.157 260.71c10.803 41.677 12.595 58.419 0 58.419-16.23 0-86.477-28.774-128.102-57.19l-27.034 45.056c131.686 111.923 283.187 177.51 348.211 177.51 54.118 0 63.13-65.178 36.096-165.376l-71.219-274.022c-12.595-48.384-7.219-65.075 5.427-65.0 [...]
-<glyph unicode="&#xe606;" d="M768 614.4h-153.6v307.2h-204.8v-307.2h-153.6l256-256 256 256zM990.106 279.962c-10.752 11.469-82.483 88.218-102.963 108.237-13.568 13.261-32.973 21.402-53.35 21.402h-89.958l156.877-153.293h-181.453c-5.222 0-9.933-2.662-12.288-6.81l-41.779-95.898h-306.381l-41.779 95.898c-2.355 4.147-7.117 6.81-12.288 6.81h-181.453l156.826 153.293h-89.907c-20.326 0-39.731-8.141-53.35-21.402-20.48-20.070-92.211-96.819-102.963-108.237-25.037-26.675-38.81-47.923-32.256-74.189l28.72 [...]
-<glyph unicode="&#xe607;" d="M768 972.8h-204.8c-28.314 0-51.2-22.886-51.2-51.2l1.178-11.366c56.422 0 102.4-45.926 102.4-102.4v-581.581l50.022 60.467 153.6-184.32v819.2c0 28.314-22.886 51.2-51.2 51.2zM461.978 819.2h-205.978c-28.314 0-51.2-22.886-51.2-51.2v-819.2l153.6 184.32 153.6-184.32v819.2c0 28.314-21.709 51.2-50.022 51.2z" />
-<glyph unicode="&#xe608;" d="M512 906.24l122.266-344.166h328.294l-267.878-202.138 95.795-354.714-278.477 212.685-278.426-212.685 95.744 354.714-267.93 202.138h328.294l122.317 344.166z" />
-<glyph unicode="&#xe609;" d="M880.128 760.013c-85.606 78.592-224.41 78.592-310.016 0l-58.112-53.299-58.163 53.299c-85.606 78.592-224.358 78.592-309.965 0-96.307-88.371-96.307-231.373 0-319.744l368.128-337.869 368.128 337.869c96.256 88.371 96.256 231.424 0 319.744zM825.549 492.8l-313.549-292.608-313.6 292.608c-31.59 29.030-43.827 66.918-43.827 107.213s7.066 73.37 38.707 102.349c27.904 25.651 65.434 39.782 105.626 39.782 40.141 0 77.67-24.371 105.574-50.074l107.52-93.44 107.469 93.491c27.9 [...]
-<glyph unicode="&#xe60a;" d="M737.28 512h-296.96c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h296.96c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM839.68 256h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM440.32 665.6h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2zM276.48 512h-92.16c-28.262 0-30.72-22.886-30 [...]
-<glyph unicode="&#xf002;" d="M658.286 475.428q0 105.714-75.143 180.857t-180.857 75.143-180.857-75.143-75.143-180.857 75.143-180.857 180.857-75.143 180.857 75.143 75.143 180.857zM950.857 0q0-29.714-21.714-51.429t-51.429-21.714q-30.857 0-51.429 21.714l-196 195.429q-102.286-70.857-228-70.857-81.714 0-156.286 31.714t-128.571 85.714-85.714 128.571-31.714 156.286 31.714 156.286 85.714 128.571 128.571 85.714 156.286 31.714 156.286-31.714 128.571-85.714 85.714-128.571 31.714-156.286q0-125.714-70 [...]
-<glyph unicode="&#xf099;" d="M925.714 717.714q-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857 20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69.143-85.143 168.286-136.286t212.286-56. [...]
-<glyph unicode="&#xf09b;" d="M877.714 438.857q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.714 0-48.571 11.714-85 [...]
-<glyph unicode="&#xf16c;" d="M530.286 150.286v-86.286l-404-0.571v86.286zM668 348v-400.571l-0.571-20v-0.571l-667.429 0.571v420.571h69.143v-353.143h530.286v353.143h68.571zM137.714 297.714l402.286-37.143-7.429-85.714-402.857 37.143zM176.571 478.286l390.286-104.571-22.286-83.429-390.286 104.571zM269.714 677.714l348-205.714-44-74.286-348 205.714zM475.429 866.857l227.429-334.286-70.857-48.571-228 333.714zM734.286 950.857l69.143-398.286-85.143-14.857-69.143 398.286z" horiz-adv-x="805" />
-<glyph unicode="&#xf188;" d="M932.571 402.286q0-14.857-10.857-25.714t-25.714-10.857h-128q0-97.714-38.286-165.714l118.857-119.429q10.857-10.857 10.857-25.714t-10.857-25.714q-10.286-10.857-25.714-10.857t-25.714 10.857l-113.143 112.571q-2.857-2.857-8.571-7.429t-24-16.286-37.143-20.857-46.857-16.571-55.429-7.429v512h-73.143v-512q-29.143 0-58 7.714t-49.714 18.857-37.714 22.286-24.857 18.571l-8.571 8-104.571-118.286q-11.429-12-27.429-12-13.714 0-24.571 9.143-10.857 10.286-11.714 25.429t8.857 2 [...]
-<glyph unicode="&#xf18e;" d="M658.286 438.857q0-8-5.143-13.143l-182.857-182.857q-5.143-5.143-13.143-5.143-7.429 0-12.857 5.429t-5.429 12.857v109.714h-201.143q-7.429 0-12.857 5.429t-5.429 12.857v109.714q0 7.429 5.429 12.857t12.857 5.429h201.143v109.714q0 8 5.143 13.143t13.143 5.143q6.857 0 13.714-5.714l182.286-182.286q5.143-5.143 5.143-13.143zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 113.143-113.143 156-41.714 156 41. [...]
-<glyph unicode="&#xf190;" d="M658.286 493.714v-109.714q0-7.429-5.429-12.857t-12.857-5.429h-201.143v-109.714q0-8-5.143-13.143t-13.143-5.143q-6.857 0-13.714 5.714l-182.286 182.286q-5.143 5.143-5.143 13.143t5.143 13.143l182.857 182.857q5.143 5.143 13.143 5.143 7.429 0 12.857-5.429t5.429-12.857v-109.714h201.143q7.429 0 12.857-5.429t5.429-12.857zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 113.143-113.143 156-41.714 156 41.7 [...]
-<glyph unicode="&#xf1dd;" d="M730.286 842.857v-41.714q0-16.571-10.571-34.857t-24.286-18.286q-28.571 0-30.857-0.571-14.857-3.429-18.286-17.714-1.714-6.286-1.714-36.571v-658.286q0-14.286-10.286-24.571t-24.571-10.286h-61.714q-14.286 0-24.571 10.286t-10.286 24.571v696h-81.714v-696q0-14.286-10-24.571t-24.857-10.286h-61.714q-14.857 0-24.857 10.286t-10 24.571v283.429q-84 6.857-140 33.714-72 33.143-109.714 102.286-36.571 66.857-36.571 148 0 94.857 50.286 163.429 50.286 67.429 119.429 90.857 63.4 [...]
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe600;" glyph-name="add" d="M810.667 384h-256v-256h-85.333v256h-256v85.333h256v256h85.333v-256h256v-85.333z" />
+<glyph unicode="&#xe601;" glyph-name="remove" d="M810.667 384h-597.333v85.333h597.333v-85.333z" />
+<glyph unicode="&#xe602;" glyph-name="dot-single" d="M399.36 460.8c0-62.208 50.483-112.64 112.691-112.64s112.589 50.483 112.589 112.64c0 62.208-50.381 112.589-112.589 112.589s-112.691-50.381-112.691-112.589z" />
+<glyph unicode="&#xe604;" glyph-name="warning" d="M998.963 52.224l-456.038 851.558c-6.349 11.008-18.125 17.818-30.925 17.818-12.851 0-24.627-6.81-30.925-17.818l-455.987-851.558c-6.195-10.803-6.093-24.115 0.256-34.816 6.4-10.803 18.022-17.408 30.618-17.408h912.077c12.544 0 24.269 6.605 30.618 17.408 6.349 10.701 6.451 24.013 0.307 34.816zM563.2 102.4h-102.4v102.4h102.4v-102.4zM563.2 281.6h-102.4v332.8h102.4v-332.8z" />
+<glyph unicode="&#xe605;" glyph-name="info" d="M636.518 972.8c68.608 0 102.912-46.694 102.912-100.198 0-66.816-59.597-128.614-137.165-128.614-64.973 0-102.861 38.4-101.069 101.888 0 53.402 45.107 126.925 135.322 126.925zM425.421-51.2c-54.17 0-93.85 33.382-55.962 180.429l62.157 260.71c10.803 41.677 12.595 58.419 0 58.419-16.23 0-86.477-28.774-128.102-57.19l-27.034 45.056c131.686 111.923 283.187 177.51 348.211 177.51 54.118 0 63.13-65.178 36.096-165.376l-71.219-274.022c-12.595-48.384-7.219 [...]
+<glyph unicode="&#xe606;" glyph-name="download" d="M768 614.4h-153.6v307.2h-204.8v-307.2h-153.6l256-256 256 256zM990.106 279.962c-10.752 11.469-82.483 88.218-102.963 108.237-13.568 13.261-32.973 21.402-53.35 21.402h-89.958l156.877-153.293h-181.453c-5.222 0-9.933-2.662-12.288-6.81l-41.779-95.898h-306.381l-41.779 95.898c-2.355 4.147-7.117 6.81-12.288 6.81h-181.453l156.826 153.293h-89.907c-20.326 0-39.731-8.141-53.35-21.402-20.48-20.070-92.211-96.819-102.963-108.237-25.037-26.675-38.81-47.9 [...]
+<glyph unicode="&#xe607;" glyph-name="bookmarks" d="M768 972.8h-204.8c-28.314 0-51.2-22.886-51.2-51.2l1.178-11.366c56.422 0 102.4-45.926 102.4-102.4v-581.581l50.022 60.467 153.6-184.32v819.2c0 28.314-22.886 51.2-51.2 51.2zM461.978 819.2h-205.978c-28.314 0-51.2-22.886-51.2-51.2v-819.2l153.6 184.32 153.6-184.32v819.2c0 28.314-21.709 51.2-50.022 51.2z" />
+<glyph unicode="&#xe608;" glyph-name="star" d="M512 906.24l122.266-344.166h328.294l-267.878-202.138 95.795-354.714-278.477 212.685-278.426-212.685 95.744 354.714-267.93 202.138h328.294l122.317 344.166z" />
+<glyph unicode="&#xe609;" glyph-name="heart-outlined" d="M880.128 760.013c-85.606 78.592-224.41 78.592-310.016 0l-58.112-53.299-58.163 53.299c-85.606 78.592-224.358 78.592-309.965 0-96.307-88.371-96.307-231.373 0-319.744l368.128-337.869 368.128 337.869c96.256 88.371 96.256 231.424 0 319.744zM825.549 492.8l-313.549-292.608-313.6 292.608c-31.59 29.030-43.827 66.918-43.827 107.213s7.066 73.37 38.707 102.349c27.904 25.651 65.434 39.782 105.626 39.782 40.141 0 77.67-24.371 105.574-50.074l107. [...]
+<glyph unicode="&#xe60a;" glyph-name="list" d="M737.28 512h-296.96c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h296.96c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM839.68 256h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM440.32 665.6h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2zM276.48 512h-92.16c-28.262 [...]
+<glyph unicode="&#xe900;" glyph-name="menu" d="M839.68 512h-655.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h655.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM839.68 307.2h-655.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h655.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM184.32 614.4h655.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2h-655.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2z" />
+<glyph unicode="&#xf002;" glyph-name="search" horiz-adv-x="951" d="M658.286 475.428q0 105.714-75.143 180.857t-180.857 75.143-180.857-75.143-75.143-180.857 75.143-180.857 180.857-75.143 180.857 75.143 75.143 180.857zM950.857 0q0-29.714-21.714-51.429t-51.429-21.714q-30.857 0-51.429 21.714l-196 195.429q-102.286-70.857-228-70.857-81.714 0-156.286 31.714t-128.571 85.714-85.714 128.571-31.714 156.286 31.714 156.286 85.714 128.571 128.571 85.714 156.286 31.714 156.286-31.714 128.571-85.714 85.7 [...]
+<glyph unicode="&#xf099;" glyph-name="twitter" horiz-adv-x="951" d="M925.714 717.714q-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857 20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69 [...]
+<glyph unicode="&#xf09b;" glyph-name="github" d="M877.714 438.857q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.71 [...]
+<glyph unicode="&#xf16c;" glyph-name="stack-overflow" horiz-adv-x="805" d="M530.286 150.286v-86.286l-404-0.571v86.286zM668 348v-400.571l-0.571-20v-0.571l-667.429 0.571v420.571h69.143v-353.143h530.286v353.143h68.571zM137.714 297.714l402.286-37.143-7.429-85.714-402.857 37.143zM176.571 478.286l390.286-104.571-22.286-83.429-390.286 104.571zM269.714 677.714l348-205.714-44-74.286-348 205.714zM475.429 866.857l227.429-334.286-70.857-48.571-228 333.714zM734.286 950.857l69.143-398.286-85.143-14.85 [...]
+<glyph unicode="&#xf188;" glyph-name="bug" horiz-adv-x="951" d="M932.571 402.286q0-14.857-10.857-25.714t-25.714-10.857h-128q0-97.714-38.286-165.714l118.857-119.429q10.857-10.857 10.857-25.714t-10.857-25.714q-10.286-10.857-25.714-10.857t-25.714 10.857l-113.143 112.571q-2.857-2.857-8.571-7.429t-24-16.286-37.143-20.857-46.857-16.571-55.429-7.429v512h-73.143v-512q-29.143 0-58 7.714t-49.714 18.857-37.714 22.286-24.857 18.571l-8.571 8-104.571-118.286q-11.429-12-27.429-12-13.714 0-24.571 9.143- [...]
+<glyph unicode="&#xf18e;" glyph-name="arrow-circle-o-right" d="M658.286 438.857q0-8-5.143-13.143l-182.857-182.857q-5.143-5.143-13.143-5.143-7.429 0-12.857 5.429t-5.429 12.857v109.714h-201.143q-7.429 0-12.857 5.429t-5.429 12.857v109.714q0 7.429 5.429 12.857t12.857 5.429h201.143v109.714q0 8 5.143 13.143t13.143 5.143q6.857 0 13.714-5.714l182.286-182.286q5.143-5.143 5.143-13.143zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156  [...]
+<glyph unicode="&#xf190;" glyph-name="arrow-circle-o-left" d="M658.286 493.714v-109.714q0-7.429-5.429-12.857t-12.857-5.429h-201.143v-109.714q0-8-5.143-13.143t-13.143-5.143q-6.857 0-13.714 5.714l-182.286 182.286q-5.143 5.143-5.143 13.143t5.143 13.143l182.857 182.857q5.143 5.143 13.143 5.143 7.429 0 12.857-5.429t5.429-12.857v-109.714h201.143q7.429 0 12.857-5.429t5.429-12.857zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 11 [...]
+<glyph unicode="&#xf1dd;" glyph-name="paragraph" horiz-adv-x="731" d="M730.286 842.857v-41.714q0-16.571-10.571-34.857t-24.286-18.286q-28.571 0-30.857-0.571-14.857-3.429-18.286-17.714-1.714-6.286-1.714-36.571v-658.286q0-14.286-10.286-24.571t-24.571-10.286h-61.714q-14.286 0-24.571 10.286t-10.286 24.571v696h-81.714v-696q0-14.286-10-24.571t-24.857-10.286h-61.714q-14.857 0-24.857 10.286t-10 24.571v283.429q-84 6.857-140 33.714-72 33.143-109.714 102.286-36.571 66.857-36.571 148 0 94.857 50.286  [...]
 </font></defs></svg>
\ No newline at end of file
diff --git a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.ttf b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.ttf
index f643244..c81818a 100644
Binary files a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.ttf and b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.ttf differ
diff --git a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.woff b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.woff
index 7f40846..fb3e07d 100644
Binary files a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.woff and b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/icomoon.woff differ
diff --git a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/selection.json b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/selection.json
index 97393d6..73e0ef9 100644
--- a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/selection.json
+++ b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/statics/fonts/selection.json
@@ -1,494 +1,539 @@
 {
-	"IcoMoonType": "selection",
-	"icons": [
-		{
-			"icon": {
-				"paths": [
-					"M810.667 554.667h-256v256h-85.333v-256h-256v-85.333h256v-256h85.333v256h256v85.333z"
-				],
-				"attrs": [
-					{}
-				],
-				"isMulticolor": false,
-				"tags": [
-					"add"
-				],
-				"grid": 24
-			},
-			"attrs": [
-				{}
-			],
-			"properties": {
-				"order": 1,
-				"id": 2,
-				"prevSize": 24,
-				"name": "add",
-				"code": 58880
-			},
-			"setIdx": 0,
-			"setId": 10,
-			"iconIdx": 1
-		},
-		{
-			"icon": {
-				"paths": [
-					"M810.667 554.667h-597.333v-85.333h597.333v85.333z"
-				],
-				"attrs": [
-					{}
-				],
-				"isMulticolor": false,
-				"tags": [
-					"remove"
-				],
-				"grid": 24
-			},
-			"attrs": [
-				{}
-			],
-			"properties": {
-				"order": 2,
-				"id": 1,
-				"prevSize": 24,
-				"name": "remove",
-				"code": 58881
-			},
-			"setIdx": 0,
-			"setId": 10,
-			"iconIdx": 2
-		},
-		{
-			"icon": {
-				"paths": [
-					"M998.963 920.576l-456.038-851.558c-6.349-11.008-18.125-17.818-30.925-17.818-12.851 0-24.627 6.81-30.925 17.818l-455.987 851.558c-6.195 10.803-6.093 24.115 0.256 34.816 6.4 10.803 18.022 17.408 30.618 17.408h912.077c12.544 0 24.269-6.605 30.618-17.408 6.349-10.701 6.451-24.013 0.307-34.816zM563.2 870.4h-102.4v-102.4h102.4v102.4zM563.2 691.2h-102.4v-332.8h102.4v332.8z"
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"warning"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 14,
-				"order": 14,
-				"prevSize": 20,
-				"code": 58884,
-				"name": "warning"
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 14
-		},
-		{
-			"icon": {
-				"paths": [
-					"M768 0h-204.8c-28.314 0-51.2 22.886-51.2 51.2l1.178 11.366c56.422 0 102.4 45.926 102.4 102.4v581.581l50.022-60.467 153.6 184.32v-819.2c0-28.314-22.886-51.2-51.2-51.2zM461.978 153.6h-205.978c-28.314 0-51.2 22.886-51.2 51.2v819.2l153.6-184.32 153.6 184.32v-819.2c0-28.314-21.709-51.2-50.022-51.2z"
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"bookmarks"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 32,
-				"order": 10,
-				"prevSize": 20,
-				"name": "bookmarks",
-				"code": 58887
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 32
-		},
-		{
-			"icon": {
-				"paths": [
-					"M399.36 512c0 62.208 50.483 112.64 112.691 112.64s112.589-50.483 112.589-112.64c0-62.208-50.381-112.589-112.589-112.589s-112.691 50.381-112.691 112.589z"
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"dot-single"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 58,
-				"order": 9,
-				"prevSize": 20,
-				"code": 58882,
-				"name": "dot-single"
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 58
-		},
-		{
-			"icon": {
-				"paths": [
-					"M768 358.4h-153.6v-307.2h-204.8v307.2h-153.6l256 256 256-256zM990.106 692.838c-10.752-11.469-82.483-88.218-102.963-108.237-13.568-13.261-32.973-21.402-53.35-21.402h-89.958l156.877 153.293h-181.453c-5.222 0-9.933 2.662-12.288 6.81l-41.779 95.898h-306.381l-41.779-95.898c-2.355-4.147-7.117-6.81-12.288-6.81h-181.453l156.826-153.293h-89.907c-20.326 0-39.731 8.141-53.35 21.402-20.48 20.070-92.211 96.819-102.963 108.237-25.037 26.675-38.81 47.923-32.256 74.189l28.723 157.389c6.554 26.317  [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"download"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 63,
-				"order": 27,
-				"prevSize": 20,
-				"code": 58886,
-				"name": "download"
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 63
-		},
-		{
-			"icon": {
-				"paths": [
-					"M880.128 212.787c-85.606-78.592-224.41-78.592-310.016 0l-58.112 53.299-58.163-53.299c-85.606-78.592-224.358-78.592-309.965 0-96.307 88.371-96.307 231.373 0 319.744l368.128 337.869 368.128-337.869c96.256-88.371 96.256-231.424 0-319.744zM825.549 480l-313.549 292.608-313.6-292.608c-31.59-29.030-43.827-66.918-43.827-107.213s7.066-73.37 38.707-102.349c27.904-25.651 65.434-39.782 105.626-39.782 40.141 0 77.67 24.371 105.574 50.074l107.52 93.44 107.469-93.491c27.955-25.702 65.434-50.074 1 [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"heart-outlined"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 180,
-				"order": 11,
-				"prevSize": 20,
-				"name": "heart-outlined",
-				"code": 58889
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 180
-		},
-		{
-			"icon": {
-				"paths": [
-					"M636.518 0c68.608 0 102.912 46.694 102.912 100.198 0 66.816-59.597 128.614-137.165 128.614-64.973 0-102.861-38.4-101.069-101.888 0-53.402 45.107-126.925 135.322-126.925zM425.421 1024c-54.17 0-93.85-33.382-55.962-180.429l62.157-260.71c10.803-41.677 12.595-58.419 0-58.419-16.23 0-86.477 28.774-128.102 57.19l-27.034-45.056c131.686-111.923 283.187-177.51 348.211-177.51 54.118 0 63.13 65.178 36.096 165.376l-71.219 274.022c-12.595 48.384-7.219 65.075 5.427 65.075 16.23 0 69.478-20.070 12 [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"info"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 192,
-				"order": 23,
-				"prevSize": 20,
-				"code": 58885,
-				"name": "info"
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 192
-		},
-		{
-			"icon": {
-				"paths": [
-					"M737.28 460.8h-296.96c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h296.96c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM839.68 716.8h-399.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h399.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM440.32 307.2h399.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2h-399.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2zM276.48 460.8h-92.16c-28.262 0-30.72 22.886-30.72 51.2s2.458 51 [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"list"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 208,
-				"order": 13,
-				"prevSize": 20,
-				"code": 58890,
-				"name": "list"
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 208
-		},
-		{
-			"icon": {
-				"paths": [
-					"M512 66.56l122.266 344.166h328.294l-267.878 202.138 95.795 354.714-278.477-212.685-278.426 212.685 95.744-354.714-267.93-202.138h328.294l122.317-344.166z"
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"star"
-				],
-				"grid": 20
-			},
-			"attrs": [],
-			"properties": {
-				"id": 285,
-				"order": 28,
-				"prevSize": 20,
-				"code": 58888,
-				"name": "star"
-			},
-			"setIdx": 1,
-			"setId": 1,
-			"iconIdx": 281
-		},
-		{
-			"icon": {
-				"paths": [
-					"M658.286 475.429q0-105.714-75.143-180.857t-180.857-75.143-180.857 75.143-75.143 180.857 75.143 180.857 180.857 75.143 180.857-75.143 75.143-180.857zM950.857 950.857q0 29.714-21.714 51.429t-51.429 21.714q-30.857 0-51.429-21.714l-196-195.429q-102.286 70.857-228 70.857-81.714 0-156.286-31.714t-128.571-85.714-85.714-128.571-31.714-156.286 31.714-156.286 85.714-128.571 128.571-85.714 156.286-31.714 156.286 31.714 128.571 85.714 85.714 128.571 31.714 156.286q0 125.714-70.857 228l196 196q [...]
-				],
-				"width": 951,
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"search"
-				],
-				"defaultCode": 61442,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "search",
-				"order": 8,
-				"id": 3,
-				"prevSize": 28,
-				"code": 61442
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 2
-		},
-		{
-			"icon": {
-				"paths": [
-					"M925.714 233.143q-38.286 56-92.571 95.429 0.571 8 0.571 24 0 74.286-21.714 148.286t-66 142-105.429 120.286-147.429 83.429-184.571 31.143q-154.857 0-283.429-82.857 20 2.286 44.571 2.286 128.571 0 229.143-78.857-60-1.143-107.429-36.857t-65.143-91.143q18.857 2.857 34.857 2.857 24.571 0 48.571-6.286-64-13.143-106-63.714t-42-117.429v-2.286q38.857 21.714 83.429 23.429-37.714-25.143-60-65.714t-22.286-88q0-50.286 25.143-93.143 69.143 85.143 168.286 136.286t212.286 56.857q-4.571-21.714-4.57 [...]
-				],
-				"width": 951,
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"twitter"
-				],
-				"defaultCode": 61593,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "twitter",
-				"order": 5,
-				"id": 145,
-				"prevSize": 28,
-				"code": 61593
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 144
-		},
-		{
-			"icon": {
-				"paths": [
-					"M877.714 512q0 143.429-83.714 258t-216.286 158.571q-15.429 2.857-22.571-4t-7.143-17.143v-120.571q0-55.429-29.714-81.143 32.571-3.429 58.571-10.286t53.714-22.286 46.286-38 30.286-60 11.714-86q0-69.143-45.143-117.714 21.143-52-4.571-116.571-16-5.143-46.286 6.286t-52.571 25.143l-21.714 13.714q-53.143-14.857-109.714-14.857t-109.714 14.857q-9.143-6.286-24.286-15.429t-47.714-22-49.143-7.714q-25.143 64.571-4 116.571-45.143 48.571-45.143 117.714 0 48.571 11.714 85.714t30 60 46 38.286 53.71 [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"github"
-				],
-				"defaultCode": 61595,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "github",
-				"order": 4,
-				"id": 147,
-				"prevSize": 28,
-				"code": 61595
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 146
-		},
-		{
-			"icon": {
-				"paths": [
-					"M530.286 800.571v86.286l-404 0.571v-86.286zM668 602.857v400.571l-0.571 20v0.571l-667.429-0.571v-420.571h69.143v353.143h530.286v-353.143h68.571zM137.714 653.143l402.286 37.143-7.429 85.714-402.857-37.143zM176.571 472.571l390.286 104.571-22.286 83.429-390.286-104.571zM269.714 273.143l348 205.714-44 74.286-348-205.714zM475.429 84l227.429 334.286-70.857 48.571-228-333.714zM734.286 0l69.143 398.286-85.143 14.857-69.143-398.286z"
-				],
-				"width": 805,
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"stack-overflow"
-				],
-				"defaultCode": 61804,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "stack-overflow",
-				"order": 3,
-				"id": 329,
-				"prevSize": 28,
-				"code": 61804
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 328
-		},
-		{
-			"icon": {
-				"paths": [
-					"M932.571 548.571q0 14.857-10.857 25.714t-25.714 10.857h-128q0 97.714-38.286 165.714l118.857 119.429q10.857 10.857 10.857 25.714t-10.857 25.714q-10.286 10.857-25.714 10.857t-25.714-10.857l-113.143-112.571q-2.857 2.857-8.571 7.429t-24 16.286-37.143 20.857-46.857 16.571-55.429 7.429v-512h-73.143v512q-29.143 0-58-7.714t-49.714-18.857-37.714-22.286-24.857-18.571l-8.571-8-104.571 118.286q-11.429 12-27.429 12-13.714 0-24.571-9.143-10.857-10.286-11.714-25.429t8.857-26.571l115.429-129.714q- [...]
-				],
-				"width": 951,
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"bug"
-				],
-				"defaultCode": 61832,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "bug",
-				"order": 24,
-				"id": 355,
-				"prevSize": 28,
-				"code": 61832
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 354
-		},
-		{
-			"icon": {
-				"paths": [
-					"M658.286 512q0 8-5.143 13.143l-182.857 182.857q-5.143 5.143-13.143 5.143-7.429 0-12.857-5.429t-5.429-12.857v-109.714h-201.143q-7.429 0-12.857-5.429t-5.429-12.857v-109.714q0-7.429 5.429-12.857t12.857-5.429h201.143v-109.714q0-8 5.143-13.143t13.143-5.143q6.857 0 13.714 5.714l182.286 182.286q5.143 5.143 5.143 13.143zM749.714 512q0-84.571-41.714-156t-113.143-113.143-156-41.714-156 41.714-113.143 113.143-41.714 156 41.714 156 113.143 113.143 156 41.714 156-41.714 113.143-113.143 41.714-1 [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"arrow-circle-o-right"
-				],
-				"defaultCode": 61838,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "arrow-circle-o-right",
-				"order": 6,
-				"id": 361,
-				"prevSize": 28,
-				"code": 61838
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 360
-		},
-		{
-			"icon": {
-				"paths": [
-					"M658.286 457.143v109.714q0 7.429-5.429 12.857t-12.857 5.429h-201.143v109.714q0 8-5.143 13.143t-13.143 5.143q-6.857 0-13.714-5.714l-182.286-182.286q-5.143-5.143-5.143-13.143t5.143-13.143l182.857-182.857q5.143-5.143 13.143-5.143 7.429 0 12.857 5.429t5.429 12.857v109.714h201.143q7.429 0 12.857 5.429t5.429 12.857zM749.714 512q0-84.571-41.714-156t-113.143-113.143-156-41.714-156 41.714-113.143 113.143-41.714 156 41.714 156 113.143 113.143 156 41.714 156-41.714 113.143-113.143 41.714-156z [...]
-				],
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"arrow-circle-o-left"
-				],
-				"defaultCode": 61840,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "arrow-circle-o-left",
-				"order": 7,
-				"id": 362,
-				"prevSize": 28,
-				"code": 61840
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 361
-		},
-		{
-			"icon": {
-				"paths": [
-					"M730.286 108v41.714q0 16.571-10.571 34.857t-24.286 18.286q-28.571 0-30.857 0.571-14.857 3.429-18.286 17.714-1.714 6.286-1.714 36.571v658.286q0 14.286-10.286 24.571t-24.571 10.286h-61.714q-14.286 0-24.571-10.286t-10.286-24.571v-696h-81.714v696q0 14.286-10 24.571t-24.857 10.286h-61.714q-14.857 0-24.857-10.286t-10-24.571v-283.429q-84-6.857-140-33.714-72-33.143-109.714-102.286-36.571-66.857-36.571-148 0-94.857 50.286-163.429 50.286-67.429 119.429-90.857 63.429-21.143 238.286-21.143h273 [...]
-				],
-				"width": 731,
-				"attrs": [],
-				"isMulticolor": false,
-				"tags": [
-					"paragraph"
-				],
-				"defaultCode": 61917,
-				"grid": 14
-			},
-			"attrs": [],
-			"properties": {
-				"name": "paragraph",
-				"order": 30,
-				"id": 435,
-				"prevSize": 28,
-				"code": 61917
-			},
-			"setIdx": 2,
-			"setId": 0,
-			"iconIdx": 434
-		}
-	],
-	"height": 1024,
-	"metadata": {
-		"name": "icomoon"
-	},
-	"preferences": {
-		"showGlyphs": true,
-		"showQuickUse": true,
-		"showQuickUse2": true,
-		"showSVGs": true,
-		"fontPref": {
-			"prefix": "icon-",
-			"metadata": {
-				"fontFamily": "icomoon"
-			},
-			"metrics": {
-				"emSize": 1024,
-				"baseline": 6.25,
-				"whitespace": 50
-			},
-			"autoHost": false
-		},
-		"imagePref": {
-			"prefix": "icon-",
-			"png": true,
-			"useClassSelector": true,
-			"color": 4473924,
-			"bgColor": 16777215,
-			"classSelector": ".icon"
-		},
-		"historySize": 100,
-		"gridSize": 16,
-		"quickUsageToken": {
-			"fmicons": "NjkxMzJmNzA5NmRhZTA5N2FiNmQ0OWM4NjljOThkMjEjMSMxNDMwNDYyODU4IyMj"
-		},
-		"fontHostingName": false
-	}
-}
+  "IcoMoonType": "selection",
+  "icons": [
+    {
+      "icon": {
+        "paths": [
+          "M810.667 554.667h-256v256h-85.333v-256h-256v-85.333h256v-256h85.333v256h256v85.333z"
+        ],
+        "attrs": [
+          {}
+        ],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "add"
+        ],
+        "grid": 24
+      },
+      "attrs": [
+        {}
+      ],
+      "properties": {
+        "order": 15,
+        "id": 0,
+        "prevSize": 24,
+        "name": "add",
+        "code": 58880
+      },
+      "setIdx": 0,
+      "setId": 8,
+      "iconIdx": 0
+    },
+    {
+      "icon": {
+        "paths": [
+          "M810.667 554.667h-597.333v-85.333h597.333v85.333z"
+        ],
+        "attrs": [
+          {}
+        ],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "remove"
+        ],
+        "grid": 24
+      },
+      "attrs": [
+        {}
+      ],
+      "properties": {
+        "order": 16,
+        "id": 1,
+        "prevSize": 24,
+        "name": "remove",
+        "code": 58881
+      },
+      "setIdx": 0,
+      "setId": 8,
+      "iconIdx": 1
+    },
+    {
+      "icon": {
+        "paths": [
+          "M998.963 920.576l-456.038-851.558c-6.349-11.008-18.125-17.818-30.925-17.818-12.851 0-24.627 6.81-30.925 17.818l-455.987 851.558c-6.195 10.803-6.093 24.115 0.256 34.816 6.4 10.803 18.022 17.408 30.618 17.408h912.077c12.544 0 24.269-6.605 30.618-17.408 6.349-10.701 6.451-24.013 0.307-34.816zM563.2 870.4h-102.4v-102.4h102.4v102.4zM563.2 691.2h-102.4v-332.8h102.4v332.8z"
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "warning"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 0,
+        "order": 17,
+        "prevSize": 20,
+        "code": 58884,
+        "name": "warning"
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 0
+    },
+    {
+      "icon": {
+        "paths": [
+          "M768 0h-204.8c-28.314 0-51.2 22.886-51.2 51.2l1.178 11.366c56.422 0 102.4 45.926 102.4 102.4v581.581l50.022-60.467 153.6 184.32v-819.2c0-28.314-22.886-51.2-51.2-51.2zM461.978 153.6h-205.978c-28.314 0-51.2 22.886-51.2 51.2v819.2l153.6-184.32 153.6 184.32v-819.2c0-28.314-21.709-51.2-50.022-51.2z"
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "bookmarks"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 1,
+        "order": 18,
+        "prevSize": 20,
+        "name": "bookmarks",
+        "code": 58887
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 1
+    },
+    {
+      "icon": {
+        "paths": [
+          "M399.36 512c0 62.208 50.483 112.64 112.691 112.64s112.589-50.483 112.589-112.64c0-62.208-50.381-112.589-112.589-112.589s-112.691 50.381-112.691 112.589z"
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "dot-single"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 2,
+        "order": 19,
+        "prevSize": 20,
+        "code": 58882,
+        "name": "dot-single"
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 2
+    },
+    {
+      "icon": {
+        "paths": [
+          "M768 358.4h-153.6v-307.2h-204.8v307.2h-153.6l256 256 256-256zM990.106 692.838c-10.752-11.469-82.483-88.218-102.963-108.237-13.568-13.261-32.973-21.402-53.35-21.402h-89.958l156.877 153.293h-181.453c-5.222 0-9.933 2.662-12.288 6.81l-41.779 95.898h-306.381l-41.779-95.898c-2.355-4.147-7.117-6.81-12.288-6.81h-181.453l156.826-153.293h-89.907c-20.326 0-39.731 8.141-53.35 21.402-20.48 20.070-92.211 96.819-102.963 108.237-25.037 26.675-38.81 47.923-32.256 74.189l28.723 157.389c6.554 26 [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "download"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 3,
+        "order": 20,
+        "prevSize": 20,
+        "code": 58886,
+        "name": "download"
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 3
+    },
+    {
+      "icon": {
+        "paths": [
+          "M880.128 212.787c-85.606-78.592-224.41-78.592-310.016 0l-58.112 53.299-58.163-53.299c-85.606-78.592-224.358-78.592-309.965 0-96.307 88.371-96.307 231.373 0 319.744l368.128 337.869 368.128-337.869c96.256-88.371 96.256-231.424 0-319.744zM825.549 480l-313.549 292.608-313.6-292.608c-31.59-29.030-43.827-66.918-43.827-107.213s7.066-73.37 38.707-102.349c27.904-25.651 65.434-39.782 105.626-39.782 40.141 0 77.67 24.371 105.574 50.074l107.52 93.44 107.469-93.491c27.955-25.702 65.434-50. [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "heart-outlined"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 4,
+        "order": 21,
+        "prevSize": 20,
+        "name": "heart-outlined",
+        "code": 58889
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 4
+    },
+    {
+      "icon": {
+        "paths": [
+          "M636.518 0c68.608 0 102.912 46.694 102.912 100.198 0 66.816-59.597 128.614-137.165 128.614-64.973 0-102.861-38.4-101.069-101.888 0-53.402 45.107-126.925 135.322-126.925zM425.421 1024c-54.17 0-93.85-33.382-55.962-180.429l62.157-260.71c10.803-41.677 12.595-58.419 0-58.419-16.23 0-86.477 28.774-128.102 57.19l-27.034-45.056c131.686-111.923 283.187-177.51 348.211-177.51 54.118 0 63.13 65.178 36.096 165.376l-71.219 274.022c-12.595 48.384-7.219 65.075 5.427 65.075 16.23 0 69.478-20.0 [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "info"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 5,
+        "order": 22,
+        "prevSize": 20,
+        "code": 58885,
+        "name": "info"
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 5
+    },
+    {
+      "icon": {
+        "paths": [
+          "M737.28 460.8h-296.96c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h296.96c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM839.68 716.8h-399.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h399.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM440.32 307.2h399.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2h-399.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2zM276.48 460.8h-92.16c-28.262 0-30.72 22.886-30.72 51.2s2.4 [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "list"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 6,
+        "order": 23,
+        "prevSize": 20,
+        "code": 58890,
+        "name": "list"
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 6
+    },
+    {
+      "icon": {
+        "paths": [
+          "M512 66.56l122.266 344.166h328.294l-267.878 202.138 95.795 354.714-278.477-212.685-278.426 212.685 95.744-354.714-267.93-202.138h328.294l122.317-344.166z"
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "star"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 7,
+        "order": 24,
+        "prevSize": 20,
+        "code": 58888,
+        "name": "star"
+      },
+      "setIdx": 1,
+      "setId": 7,
+      "iconIdx": 7
+    },
+    {
+      "icon": {
+        "paths": [
+          "M839.68 460.8h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM839.68 665.6h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM184.32 358.4h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2z"
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "menu"
+        ],
+        "grid": 20
+      },
+      "attrs": [],
+      "properties": {
+        "id": 0,
+        "order": 14,
+        "prevSize": 20,
+        "code": 59648,
+        "name": "menu"
+      },
+      "setIdx": 3,
+      "setId": 10,
+      "iconIdx": 0
+    },
+    {
+      "icon": {
+        "paths": [
+          "M658.286 475.429q0-105.714-75.143-180.857t-180.857-75.143-180.857 75.143-75.143 180.857 75.143 180.857 180.857 75.143 180.857-75.143 75.143-180.857zM950.857 950.857q0 29.714-21.714 51.429t-51.429 21.714q-30.857 0-51.429-21.714l-196-195.429q-102.286 70.857-228 70.857-81.714 0-156.286-31.714t-128.571-85.714-85.714-128.571-31.714-156.286 31.714-156.286 85.714-128.571 128.571-85.714 156.286-31.714 156.286 31.714 128.571 85.714 85.714 128.571 31.714 156.286q0 125.714-70.857 228l196 [...]
+        ],
+        "width": 951,
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "search"
+        ],
+        "defaultCode": 61442,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "search",
+        "order": 25,
+        "id": 0,
+        "prevSize": 28,
+        "code": 61442
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 0
+    },
+    {
+      "icon": {
+        "paths": [
+          "M925.714 233.143q-38.286 56-92.571 95.429 0.571 8 0.571 24 0 74.286-21.714 148.286t-66 142-105.429 120.286-147.429 83.429-184.571 31.143q-154.857 0-283.429-82.857 20 2.286 44.571 2.286 128.571 0 229.143-78.857-60-1.143-107.429-36.857t-65.143-91.143q18.857 2.857 34.857 2.857 24.571 0 48.571-6.286-64-13.143-106-63.714t-42-117.429v-2.286q38.857 21.714 83.429 23.429-37.714-25.143-60-65.714t-22.286-88q0-50.286 25.143-93.143 69.143 85.143 168.286 136.286t212.286 56.857q-4.571-21.714 [...]
+        ],
+        "width": 951,
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "twitter"
+        ],
+        "defaultCode": 61593,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "twitter",
+        "order": 26,
+        "id": 1,
+        "prevSize": 28,
+        "code": 61593
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 1
+    },
+    {
+      "icon": {
+        "paths": [
+          "M877.714 512q0 143.429-83.714 258t-216.286 158.571q-15.429 2.857-22.571-4t-7.143-17.143v-120.571q0-55.429-29.714-81.143 32.571-3.429 58.571-10.286t53.714-22.286 46.286-38 30.286-60 11.714-86q0-69.143-45.143-117.714 21.143-52-4.571-116.571-16-5.143-46.286 6.286t-52.571 25.143l-21.714 13.714q-53.143-14.857-109.714-14.857t-109.714 14.857q-9.143-6.286-24.286-15.429t-47.714-22-49.143-7.714q-25.143 64.571-4 116.571-45.143 48.571-45.143 117.714 0 48.571 11.714 85.714t30 60 46 38.286  [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "github"
+        ],
+        "defaultCode": 61595,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "github",
+        "order": 27,
+        "id": 2,
+        "prevSize": 28,
+        "code": 61595
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 2
+    },
+    {
+      "icon": {
+        "paths": [
+          "M530.286 800.571v86.286l-404 0.571v-86.286zM668 602.857v400.571l-0.571 20v0.571l-667.429-0.571v-420.571h69.143v353.143h530.286v-353.143h68.571zM137.714 653.143l402.286 37.143-7.429 85.714-402.857-37.143zM176.571 472.571l390.286 104.571-22.286 83.429-390.286-104.571zM269.714 273.143l348 205.714-44 74.286-348-205.714zM475.429 84l227.429 334.286-70.857 48.571-228-333.714zM734.286 0l69.143 398.286-85.143 14.857-69.143-398.286z"
+        ],
+        "width": 805,
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "stack-overflow"
+        ],
+        "defaultCode": 61804,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "stack-overflow",
+        "order": 28,
+        "id": 3,
+        "prevSize": 28,
+        "code": 61804
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 3
+    },
+    {
+      "icon": {
+        "paths": [
+          "M932.571 548.571q0 14.857-10.857 25.714t-25.714 10.857h-128q0 97.714-38.286 165.714l118.857 119.429q10.857 10.857 10.857 25.714t-10.857 25.714q-10.286 10.857-25.714 10.857t-25.714-10.857l-113.143-112.571q-2.857 2.857-8.571 7.429t-24 16.286-37.143 20.857-46.857 16.571-55.429 7.429v-512h-73.143v512q-29.143 0-58-7.714t-49.714-18.857-37.714-22.286-24.857-18.571l-8.571-8-104.571 118.286q-11.429 12-27.429 12-13.714 0-24.571-9.143-10.857-10.286-11.714-25.429t8.857-26.571l115.429-129. [...]
+        ],
+        "width": 951,
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "bug"
+        ],
+        "defaultCode": 61832,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "bug",
+        "order": 29,
+        "id": 4,
+        "prevSize": 28,
+        "code": 61832
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 4
+    },
+    {
+      "icon": {
+        "paths": [
+          "M658.286 512q0 8-5.143 13.143l-182.857 182.857q-5.143 5.143-13.143 5.143-7.429 0-12.857-5.429t-5.429-12.857v-109.714h-201.143q-7.429 0-12.857-5.429t-5.429-12.857v-109.714q0-7.429 5.429-12.857t12.857-5.429h201.143v-109.714q0-8 5.143-13.143t13.143-5.143q6.857 0 13.714 5.714l182.286 182.286q5.143 5.143 5.143 13.143zM749.714 512q0-84.571-41.714-156t-113.143-113.143-156-41.714-156 41.714-113.143 113.143-41.714 156 41.714 156 113.143 113.143 156 41.714 156-41.714 113.143-113.143 41. [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "arrow-circle-o-right"
+        ],
+        "defaultCode": 61838,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "arrow-circle-o-right",
+        "order": 30,
+        "id": 5,
+        "prevSize": 28,
+        "code": 61838
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 5
+    },
+    {
+      "icon": {
+        "paths": [
+          "M658.286 457.143v109.714q0 7.429-5.429 12.857t-12.857 5.429h-201.143v109.714q0 8-5.143 13.143t-13.143 5.143q-6.857 0-13.714-5.714l-182.286-182.286q-5.143-5.143-5.143-13.143t5.143-13.143l182.857-182.857q5.143-5.143 13.143-5.143 7.429 0 12.857 5.429t5.429 12.857v109.714h201.143q7.429 0 12.857 5.429t5.429 12.857zM749.714 512q0-84.571-41.714-156t-113.143-113.143-156-41.714-156 41.714-113.143 113.143-41.714 156 41.714 156 113.143 113.143 156 41.714 156-41.714 113.143-113.143 41.714 [...]
+        ],
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "arrow-circle-o-left"
+        ],
+        "defaultCode": 61840,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "arrow-circle-o-left",
+        "order": 31,
+        "id": 6,
+        "prevSize": 28,
+        "code": 61840
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 6
+    },
+    {
+      "icon": {
+        "paths": [
+          "M730.286 108v41.714q0 16.571-10.571 34.857t-24.286 18.286q-28.571 0-30.857 0.571-14.857 3.429-18.286 17.714-1.714 6.286-1.714 36.571v658.286q0 14.286-10.286 24.571t-24.571 10.286h-61.714q-14.286 0-24.571-10.286t-10.286-24.571v-696h-81.714v696q0 14.286-10 24.571t-24.857 10.286h-61.714q-14.857 0-24.857-10.286t-10-24.571v-283.429q-84-6.857-140-33.714-72-33.143-109.714-102.286-36.571-66.857-36.571-148 0-94.857 50.286-163.429 50.286-67.429 119.429-90.857 63.429-21.143 238.286-21.14 [...]
+        ],
+        "width": 731,
+        "attrs": [],
+        "isMulticolor": false,
+        "isMulticolor2": false,
+        "tags": [
+          "paragraph"
+        ],
+        "defaultCode": 61917,
+        "grid": 14
+      },
+      "attrs": [],
+      "properties": {
+        "name": "paragraph",
+        "order": 32,
+        "id": 7,
+        "prevSize": 28,
+        "code": 61917
+      },
+      "setIdx": 2,
+      "setId": 6,
+      "iconIdx": 7
+    }
+  ],
+  "height": 1024,
+  "metadata": {
+    "name": "icomoon"
+  },
+  "preferences": {
+    "showGlyphs": true,
+    "showQuickUse": true,
+    "showQuickUse2": true,
+    "showSVGs": true,
+    "fontPref": {
+      "prefix": "icon-",
+      "metadata": {
+        "fontFamily": "icomoon"
+      },
+      "metrics": {
+        "emSize": 1024,
+        "baseline": 6.25,
+        "whitespace": 50
+      },
+      "autoHost": false,
+      "embed": false
+    },
+    "imagePref": {
+      "prefix": "icon-",
+      "png": true,
+      "useClassSelector": true,
+      "color": 4473924,
+      "bgColor": 16777215,
+      "classSelector": ".icon",
+      "name": "icomoon"
+    },
+    "historySize": 100,
+    "gridSize": 16,
+    "quickUsageToken": {
+      "fmicons": "NjkxMzJmNzA5NmRhZTA5N2FiNmQ0OWM4NjljOThkMjEjMSMxNDMwNDYyODU4IyMj"
+    },
+    "fontHostingName": false
+  }
+}
\ No newline at end of file
diff --git a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/templates/header.ftlh b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/templates/header.ftlh
index ef7aca7..6dde134 100644
--- a/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/templates/header.ftlh
+++ b/freemarker-docgen-core/src/main/resources/org/freemarker/docgen/core/templates/header.ftlh
@@ -25,9 +25,10 @@
   <#if logo?? || tabs?? || secondaryTabs??>
     <div class="header-top-bg"><#t>
       <div class="site-width header-top"><#t>
+        <div id="hamburger-menu" role="button"></div><#t>
         <#if logo??>
           <a class="logo" href="${logo.href}" role="banner"><#t>
-            <img itemprop="image" src="${logo.src}" alt="${logo.alt}">
+            <img itemprop="image" src="${logo.src}" alt="${logo.alt}"><#t>
           </a><#t>
         </#if>
         <@nav.tabs /><#t>