From 390d55960578430eb964cff8da35f033f5d4e088 Mon Sep 17 00:00:00 2001 From: zombieFox Date: Fri, 4 Jan 2019 19:40:49 +0000 Subject: [PATCH] [design] improve menu layout --- css/base.css | 2 +- css/menu.css | 79 ++++++++++++++++++++++++++++++---------------------- index.html | 50 ++++++++++++++------------------- js/menu.js | 8 +++--- 4 files changed, 72 insertions(+), 67 deletions(-) diff --git a/css/base.css b/css/base.css index 73a4bff6..54b3a02c 100644 --- a/css/base.css +++ b/css/base.css @@ -22,7 +22,7 @@ --gray-19: #edeff2; --gray-20: #fafafa; --root-font-size: 14px; - --radius: 2px; + --radius: 3px; --accent: 0, 255, 0; --line-width: 3px; --background: var(--gray-01); diff --git a/css/menu.css b/css/menu.css index 4bbd4bba..84c1d989 100644 --- a/css/menu.css +++ b/css/menu.css @@ -2,33 +2,51 @@ background-color: var(--gray-02); border-radius: var(--radius); position: fixed; - bottom: 1em; - left: 1em; - width: calc(100% - 2em); - height: calc(70vh - 2em); + top: 1em; + right: 1em; + width: calc(100vw - 2em); + max-height: calc(80vh - 2em); overflow-y: scroll; z-index: 3000; - transform: translateY(calc(100% + 2em)); + transform: translateY(calc(-100% - 2em)); transition: transform var(--animation-speed-fast) ease-in-out; - /* display: grid; - grid-template-columns: repeat(auto-fit, minmax(20em, 1fr)); - grid-gap: var(--line-width); */ } .is-menu-open .menu { transform: translateY(0); } +.menu-area { + display: flex; + flex-direction: column; +} + +.menu-nav { + display: flex; + flex-direction: column; +} + .menu-nav:not(:last-child) { margin: 0; } -.menu-area { - display: none; +.menu-nav-item:not(:last-child) { + margin: 0; } -.menu-area.active { - display: block; +.menu-content { + padding: 2em; +} + +.menu-content-area { + display: grid; + grid-template-columns: repeat(auto-fill, 1fr); + grid-gap: 2em; +} + +.menu-header { + padding-top: 1em; + border-top: var(--line-width) solid var(--gray-04); } .menu-nav-button { @@ -42,38 +60,33 @@ color: var(--white); } -.menu-content { - padding: 2em; -} - -.menu-sub-area { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(14em, 1fr)); - grid-gap: 2em; -} - -.menu-header { - border-top: var(--line-width) solid var(--gray-04); - padding-top: 1em; -} - @media (min-width: 550px) { .menu { - height: calc(70vh - 2em); + max-height: calc(90vh - 2em); + } + + .menu-header { + padding-top: 0; + padding-bottom: 1em; + border-top: 0; + border-bottom: var(--line-width) solid var(--gray-04); } .menu-nav { - display: flex; + flex-direction: row; + } + + .menu-content-area { + grid-template-columns: repeat(auto-fill, minmax(12em, 1fr)); } } @media (min-width: 900px) { - .menu-nav { - display: flex; + .menu { + width: calc(50vw - 2em); } - .menu-sub-area { - display: grid; + .menu-content-area { grid-template-columns: repeat(auto-fill, minmax(20em, 1fr)); } } diff --git a/index.html b/index.html index 819f166b..4c082515 100644 --- a/index.html +++ b/index.html @@ -81,20 +81,21 @@ diff --git a/js/menu.js b/js/menu.js index 471c20aa..627f3037 100644 --- a/js/menu.js +++ b/js/menu.js @@ -11,16 +11,16 @@ var menu = (function() { var _tab = function(button) { var allMenuNavButton = helper.eA(".menu-nav-button"); - var allMenuArea = helper.eA(".menu-area"); + var allMenuContentArea = helper.eA(".menu-content-area"); var target = helper.e(button.dataset.target); allMenuNavButton.forEach(function(arrayItem, index) { helper.removeClass(arrayItem, "active"); }); - allMenuArea.forEach(function(arrayItem, index) { - helper.removeClass(arrayItem, "active"); + allMenuContentArea.forEach(function(arrayItem, index) { + helper.addClass(arrayItem, "is-hidden"); }); helper.addClass(button, "active"); - helper.addClass(target, "active"); + helper.removeClass(target, "is-hidden"); }; var close = function() {