From d8e1f52ddd0aa7e83163f031920d4dcc2fe0de43 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sun, 27 Aug 2017 15:16:51 +0100 Subject: [PATCH] Made new sidebar layout responsive --- resources/assets/js/components/index.js | 1 + resources/assets/js/components/sidebar.js | 16 +++++ resources/assets/sass/_blocks.scss | 17 ----- resources/assets/sass/_grid.scss | 76 +++++++++++++++++++++++ resources/assets/sass/_header.scss | 2 +- resources/views/sidebar-layout.blade.php | 6 +- 6 files changed, 99 insertions(+), 19 deletions(-) create mode 100644 resources/assets/js/components/sidebar.js diff --git a/resources/assets/js/components/index.js b/resources/assets/js/components/index.js index a324ab0c9..f8025ac3d 100644 --- a/resources/assets/js/components/index.js +++ b/resources/assets/js/components/index.js @@ -8,6 +8,7 @@ let componentMapping = { 'expand-toggle': require('./expand-toggle'), 'entity-selector-popup': require('./entity-selector-popup'), 'entity-selector': require('./entity-selector'), + 'sidebar': require('./sidebar'), }; window.components = {}; diff --git a/resources/assets/js/components/sidebar.js b/resources/assets/js/components/sidebar.js new file mode 100644 index 000000000..fc801618e --- /dev/null +++ b/resources/assets/js/components/sidebar.js @@ -0,0 +1,16 @@ + +class Sidebar { + + constructor(elem) { + this.elem = elem; + this.toggleElem = elem.querySelector('.sidebar-toggle'); + this.toggleElem.addEventListener('click', this.toggle.bind(this)); + } + + toggle(show = true) { + this.elem.classList.toggle('open'); + } + +} + +module.exports = Sidebar; \ No newline at end of file diff --git a/resources/assets/sass/_blocks.scss b/resources/assets/sass/_blocks.scss index c804b9aa8..c5b850507 100644 --- a/resources/assets/sass/_blocks.scss +++ b/resources/assets/sass/_blocks.scss @@ -204,21 +204,4 @@ background-color: #F8F8F8; padding: $-m; border: 1px solid #DDD; -} - -#sidebar .scroll-body { - &.fixed { - z-index: 5; - position: fixed; - top: 0; - padding-right: $-m; - width: 30%; - left: 0; - height: 100%; - overflow-y: scroll; - -ms-overflow-style: none; - //background-color: $primary-faded; - border-left: 1px solid #DDD; - &::-webkit-scrollbar { width: 0 !important } - } } \ No newline at end of file diff --git a/resources/assets/sass/_grid.scss b/resources/assets/sass/_grid.scss index 6bff97cb3..d24ffcfaf 100644 --- a/resources/assets/sass/_grid.scss +++ b/resources/assets/sass/_grid.scss @@ -58,8 +58,84 @@ body.flexbox { .flex.sidebar + .flex.content { flex: 3; background-color: #FFFFFF; + padding: 0 $-l; border-left: 1px solid #DDD; + max-width: 100%; } +.flex.sidebar .sidebar-toggle { + display: none; +} + +@include smaller-than($xl) { + body.sidebar-layout { + padding-left: 30px; + } + .flex.sidebar { + position: fixed; + top: 0; + left: 0; + bottom: 0; + z-index: 100; + padding-right: 30px; + width: 360px; + box-shadow: none; + transform: translate3d(-330px, 0, 0); + transition: transform ease-in-out 120ms; + } + .flex.sidebar.open { + box-shadow: 1px 2px 2px 1px rgba(0,0,0,.10); + transform: translate3d(0, 0, 0); + .sidebar-toggle i { + transform: rotate(180deg); + } + } + .flex.sidebar .sidebar-toggle { + display: block; + position: absolute; + opacity: 0.9; + right: 0; + top: 0; + bottom: 0; + width: 30px; + color: #666; + font-size: 20px; + vertical-align: middle; + text-align: center; + border: 1px solid #DDD; + border-top: 1px solid #BBB; + padding-top: $-m; + cursor: pointer; + i { + opacity: 0.5; + transition: all ease-in-out 120ms; + padding: 0; + } + &:hover i { + opacity: 1; + } + } + #sidebar .scroll-body.fixed { + width: auto !important; + } +} + +@include larger-than($xl) { + #sidebar .scroll-body.fixed { + z-index: 5; + position: fixed; + top: 0; + padding-right: $-m; + width: 30%; + left: 0; + height: 100%; + overflow-y: scroll; + -ms-overflow-style: none; + //background-color: $primary-faded; + border-left: 1px solid #DDD; + &::-webkit-scrollbar { width: 0 !important } + } +} + /** Rules for all columns */ div[class^="col-"] img { diff --git a/resources/assets/sass/_header.scss b/resources/assets/sass/_header.scss index 3e92ce828..b9d9d68ef 100644 --- a/resources/assets/sass/_header.scss +++ b/resources/assets/sass/_header.scss @@ -85,7 +85,7 @@ header { } header .search-box { display: inline-block; - margin-top: $-s; + margin-top: 10px; input { background-color: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.3); diff --git a/resources/views/sidebar-layout.blade.php b/resources/views/sidebar-layout.blade.php index 0880f881d..592dbc463 100644 --- a/resources/views/sidebar-layout.blade.php +++ b/resources/views/sidebar-layout.blade.php @@ -1,5 +1,7 @@ @extends('base') +@section('body-class', 'sidebar-layout') + @section('content')
@@ -15,7 +17,9 @@
-