Skip to content

Commit

Permalink
Collapse sidebar navigation list on smaller screens
Browse files Browse the repository at this point in the history
- CSS only solution using "check-box hack"
- Add new UI text label `menu_label` in _data/ui-text.yml
- Close mmistakes#607
  • Loading branch information
mmistakes committed Nov 17, 2016
1 parent fb7cae7 commit 45e0b93
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 15 deletions.
9 changes: 9 additions & 0 deletions _data/ui-text.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ en: &DEFAULT_EN
pagination_next : "Next"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
menu_label : "Toggle Menu"
toc_label : "On This Page"
ext_link_label : "Direct Link"
less_than : "less than"
Expand Down Expand Up @@ -56,6 +57,7 @@ es: &DEFAULT_ES
pagination_next : "Siguiente"
breadcrumb_home_label : "Inicio"
breadcrumb_separator : "/"
menu_label :
toc_label : "Contenidos"
ext_link_label : "Enlace"
less_than : "menos de"
Expand Down Expand Up @@ -100,6 +102,7 @@ fr: &DEFAULT_FR
pagination_next : "Suivant"
breadcrumb_home_label : "Accueil"
breadcrumb_separator : "/"
menu_label :
toc_label : "Sur cette page"
ext_link_label : "Lien direct"
less_than : "plus petit que"
Expand Down Expand Up @@ -147,6 +150,7 @@ tr: &DEFAULT_TR
pagination_next : "Sonraki"
breadcrumb_home_label : "Ana Sayfa"
breadcrumb_separator : "/"
menu_label :
toc_label : "İçindekiler"
ext_link_label : "Doğrudan Bağlantı"
less_than : "Şu süreden az: "
Expand Down Expand Up @@ -189,6 +193,7 @@ pt: &DEFAULT_PT
pagination_next : "Seguinte"
breadcrumb_home_label : "Início"
breadcrumb_separator : "/"
menu_label :
toc_label : "Nesta Página"
ext_link_label : "Link Direto"
less_than : "menos de"
Expand Down Expand Up @@ -227,6 +232,7 @@ pt-BR:
pagination_next : "Próxima"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
menu_label :
toc_label : "Nesta página"
ext_link_label : "Link direto"
less_than : "meno que"
Expand Down Expand Up @@ -269,6 +275,7 @@ it: &DEFAULT_IT
pagination_next : "Prossima"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
menu_label :
toc_label : "Indice della pagina"
ext_link_label : "Link"
less_than : "meno di"
Expand Down Expand Up @@ -311,6 +318,7 @@ zh: &DEFAULT_ZH
pagination_next : "向后"
breadcrumb_home_label : "首页"
breadcrumb_separator : "/"
menu_label :
toc_label : "在本页上"
ext_link_label : "直接链接"
less_than : "少于"
Expand Down Expand Up @@ -359,6 +367,7 @@ de: &DEFAULT_DE
pagination_next : "Nächste"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
menu_label :
toc_label : "Auf dieser Seite"
ext_link_label : "Direkter Link"
less_than : "weniger als"
Expand Down
6 changes: 4 additions & 2 deletions _includes/nav_list
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
{% assign navigation = site.data.navigation[include.nav] %}

<nav class="nav__list">
{% if page.sidebar.title %}<header><h4 class="nav__title" style="padding: 0;">{{ page.sidebar.title }}</h4></header>{% endif %}
<ul>
{% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
<input id="ac-toc" name="accordion-toc" type="checkbox" />
<label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
<ul class="nav__items">
{% for nav in navigation %}
<li>
{% if nav.url %}
Expand Down
2 changes: 2 additions & 0 deletions _sass/_base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,8 @@ nav {
}

a {
display: block;
padding-bottom: 0.25em;
text-decoration: none;
}

Expand Down
81 changes: 72 additions & 9 deletions _sass/_navigation.scss
Original file line number Diff line number Diff line change
Expand Up @@ -314,19 +314,51 @@
========================================================================== */

.nav__list {
font-size: 1.25rem;
margin: 2em 0 1.5em 0;

ul {
margin-bottom: 1em;
input[type="checkbox"],
label {
display: none;
}

a {
display: block;
padding: 0.125em 0;
color: inherit;
@include breakpoint(max-width $large) {

&:hover {
text-decoration: underline;
label {
position: relative;
display: inline-block;
padding: 0.5em 1em;
font-size: $type-size-6;
border: 1px solid $light-gray;
border-radius: $border-radius;
z-index: 20;
-webkit-transition: 0.2s ease-out;
transition: 0.2s ease-out;
cursor: pointer;

&:hover {
color: #fff;
border-color: $gray;
background-color: mix(white, #000, 20%);
}
}

/* selected*/
input:checked + label {
color: white;
background-color: mix(white, #000, 20%);
}

ul {
margin-bottom: 1em;
}

a {
display: block;
padding: 0.125em 0;

&:hover {
text-decoration: underline;
}
}
}

Expand All @@ -345,6 +377,37 @@
}
}

.nav__list .nav__items {
margin: 0;
font-size: 1.25rem;

@include breakpoint(max-width $large) {
position: relative;
max-height: 0;
opacity: 0;
overflow: hidden;
z-index: 10;
-webkit-transition: 0.3s ease-in-out;
transition: 0.3s ease-in-out;
-webkit-transform: translate(0, 10%);
-ms-transform: translate(0, 10%);
transform: translate(0, 10%);
}
}

@include breakpoint(max-width $large) {
.nav__list input:checked ~ .nav__items {
-webkit-transition: 0.5s ease-in-out;
transition: 0.5s ease-in-out;
max-height: 100vh;
opacity: 1;
margin-top: 1em;
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
transform: translate(0, 0);
}
}

.nav__title {
margin: 0;
padding: 0.5rem 1rem;
Expand Down
4 changes: 0 additions & 4 deletions _sass/_sidebar.scss
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,6 @@
font-family: $sans-serif-narrow;
}

h3, h4 {
font-size: $type-size-5;
}

p, li {
font-family: $sans-serif;
font-size: $type-size-6;
Expand Down

0 comments on commit 45e0b93

Please sign in to comment.