Bladeren bron

Mobile menu (#63)

* mobile menu functional

* mobile menu beta

* edits mobile-menu: home link out, rtl ok, menu pop over

* mobile menu - bugs correction

* add horizontal separator

* corrections done + add configuration of centered or rtl/ltr mobile menu

* edit config of example

* separator padding full
rdhox 7 jaren geleden
bovenliggende
commit
f597d91e55
4 gewijzigde bestanden met toevoegingen van 187 en 33 verwijderingen
  1. 78 0
      exampleSite/config.toml
  2. 32 22
      layouts/partials/header.html
  3. 0 0
      static/css/style.min.css
  4. 77 11
      static/less/style.less

+ 78 - 0
exampleSite/config.toml

@@ -29,9 +29,14 @@ disqusShortname = "yourdiscussshortname"
     # Custom CSS
     custom_css = []
 
+    # Alignment of Mobile Menu items
+    itemscentered = true
+
     # RTL support
     rtl = false
 
+    langseparator = "|"
+
 [[params.social]]
     name = "Github"
     weight = 1
@@ -53,3 +58,76 @@ disqusShortname = "yourdiscussshortname"
     name = "About"
     weight = 2
     url = "/about/"
+[[menu.main]]
+    name = "Projects"
+    weight = 3
+    url = "/projects/"
+[[menu.main]]
+    name = "Contact me"
+    weight = 5
+    url = "/contact/"
+
+[languages]
+    [languages.en]
+        languagename = "English" # The language name to be displayed in the selector.
+        title = "John Doe"
+
+        # You can configure the theme parameter for each language.
+        [languages.en.params]
+        author = "John Doe"
+        info = "Full Stack DevOps and Magician"
+        description = "John Doe's personal website"
+        keywords = "blog,developer,personal"
+
+        [languages.en.menu] # It is possible to change the menu too.
+
+        [[languages.en.menu.main]]
+        name = "About"
+        weight = 1.0
+        url = "/about/"
+
+        [[languages.en.menu.main]]
+        name = "Blog"
+        weight = 2.0
+        url = "/posts/"
+
+        [[languages.en.menu.main]]
+        name = "Projects"
+        weight = 3
+        url = "/projects/"
+        [[languages.en.menu.main]]
+        name = "Contact me"
+        weight = 5
+        url = "/contact/"
+
+
+    [languages.pl]
+        languagename = "Polski"
+        title = "John Doe po polsku"
+
+        [languages.pl.params]
+            author = "John Doe"
+            description = "Strona domowa John'a Doe"
+            keywords = "blog,developer,strona domowa"
+            info = "Full Stack DevOps i Magik"
+
+        [languages.pl.menu]
+
+            [[languages.pl.menu.main]]
+            name = "O mnie"
+            weight = 1.0
+            url = "/pl/about/"
+
+            [[languages.pl.menu.main]]
+            name = "Blog"
+            weight = 2.0
+            url = "/pl/posts/"
+
+            [[languages.pl.menu.main]]
+            name = "projektowanie"
+            weight = 3
+            url = "/projektowanie/"
+            [[languages.pl.menu.main]]
+            name = "kontakt"
+            weight = 5
+            url = "/kontakt/"

+ 32 - 22
layouts/partials/header.html

@@ -3,32 +3,42 @@
     <a class="navigation-title" href="{{ print "/" | absLangURL }}">
       {{ .Site.Title }}
     </a>
-    <ul class="navigation-list {{ if $.Site.Params.rtl }} float-left {{ else }} float-right {{ end }}">
-      {{ with .Site.Menus.main}}
-        {{ range sort . }}
-          <li class="navigation-item">
-            <a class="navigation-link" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
-          </li>
+    <input type="checkbox" id="menu-control"/>
+    <label class="menu-mobile {{ if $.Site.Params.rtl }} float-left {{ else }} float-right {{ end }}" for="menu-control">
+      <span class="btn-mobile {{ if $.Site.Params.rtl }} float-left {{ else }} float-right {{ end }}">&#9776;</span>
+      <ul class="navigation-list">
+        {{ with .Site.Menus.main}}
+          {{ range sort . }}
+            <li class="navigation-item {{ if $.Site.Params.itemscentered }} align-center {{ else }} {{ if $.Site.Params.rtl }} align-right {{ else }} align-left {{ end }} {{ end }}">
+              <a class="navigation-link" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
+            </li>
+          {{ end }}
         {{ end }}
-      {{ end }}
-      {{ if .Site.IsMultiLingual }}
-        {{ $node := . }}
-        {{ .Scratch.Set "separator" true }}
-    
-        {{ range .Site.Home.AllTranslations }}
-          {{ if ne $.Site.Language .Language }}
-            {{ if $node.Scratch.Get "separator" }}
-              <li>
-                <p>{{ .Site.Params.LangSeparator }}</p>
+        {{ if .Site.IsMultiLingual }}
+          {{ $node := . }}
+          {{ .Scratch.Set "separator" true }}
+          {{ with .Site.Params.LangSeparator }}
+            <li class= "{{ if $.Site.Params.itemscentered }} mobile-menu-lang-separator-centered {{ else }} mobile-menu-lang-separator-full {{ end }}">
+              <hr />
+            </li>
+          {{ end }}
+          {{ range .Site.Home.AllTranslations }}
+            {{ if ne $.Site.Language .Language }}
+              {{ if $node.Scratch.Get "separator" }}
+                {{ with .Site.Params.LangSeparator }}
+                  <li class="multilingual-separator">
+                    <p>{{ . }}</p>
+                  </li>
+                {{ end }}
+                {{ $node.Scratch.Set "separator" false }}
+              {{ end }}
+              <li class="navigation-item {{ if $.Site.Params.itemscentered }} align-center {{ else }} {{ if $.Site.Params.rtl }} align-right {{ else }} align-left {{ end }} {{ end }}">
+                <a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
               </li>
-              {{ $node.Scratch.Set "separator" false }}
             {{ end }}
-            <li>
-              <a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
-            </li>
           {{ end }}
         {{ end }}
-      {{ end }}
-    </ul>
+      </ul>
+    </label>
   </section>
 </nav>

File diff suppressed because it is too large
+ 0 - 0
static/css/style.min.css


+ 77 - 11
static/less/style.less

@@ -178,8 +178,8 @@ img {
     text-transform: uppercase;
     line-height: 6.0rem;
     letter-spacing: 0.1rem;
-    @media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
-      font-size: 1.4rem;
+    @media only screen and (min-device-width : 320px) and (max-device-width : 768px) {
+      font-size: 1.6rem;
     }
   }
   ul {
@@ -194,21 +194,86 @@ img {
         margin-left: 1.0rem;
         margin-right: 1.0rem;
       }
+      @media only screen and (min-device-width : 320px) and (max-device-width : 768px) {
+        float: none !important;
+      }
+    }
+    @media only screen and (min-device-width : 320px) and (max-device-width : 768px) {
+      visibility: hidden;
+      opacity: 0;
+      max-height: 0;
+      z-index: 5;
+      top: 5rem;
+      right: 0;
+      width: 100%;
+      position: absolute;
+      background-color: rgba(254,254,254 ,0.98);
+      padding: 0;
+      border-bottom: solid 2px #E2DFE1;
+      transition: opacity 0.25s, max-height 0.15s linear;
     }
   }
 }
 
-@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
-  a.navigation-title {
-    font-size: 0rem;
+#menu-control {
+  display: none;
+}
 
-    &::after {
-      content: '~';
-      font-size: 2.4rem;
-      text-align: center;
-      margin-left: -1.4rem;
-    }
+.btn-mobile {
+  display: none;
+}
+
+@media only screen and (min-device-width : 320px) and (max-device-width : 768px) {
+  .btn-mobile {
+    display: block;
+    font-size: 2.0rem;
+    color: black;
+    cursor: pointer;
+    margin-top: 1.5rem;
+  }
+
+  #menu-control:checked + label .btn-mobile {
+    color: #E2DFE1;
+  }
+
+  #menu-control:checked + label ul {
+    visibility: visible;
+    opacity: 1;
+    max-height: 100rem;
+  }
+
+  .navigation-item {
+    position: relative;
+  }
+
+  .mobile-menu-lang-separator-centered {
+    padding-left: 7rem;
+    padding-right: 7rem;
+  }
+
+  .mobile-menu-lang-separator-full {
+    padding-left: 1.5rem;
+    padding-right: 1.5rem;
+  }
+
+  .multilingual-separator {
+    display: none;
+  }
+
+  .align-left {
+    text-align: left;
+    padding-left: 1rem;
+  }
+
+  .align-right {
+    text-align: right;
+    padding-right: 1rem;
+  }
+
+  .align-center {
+    text-align: center;
   }
+
 }
 
 .content {
@@ -366,3 +431,4 @@ img {
 .float-left {
   float: left;
 }
+

Some files were not shown because too many files changed in this diff