diff options
Diffstat (limited to 'apps/web-shared/src/styles/components/responsive-sidebar.scss')
| -rw-r--r-- | apps/web-shared/src/styles/components/responsive-sidebar.scss | 77 |
1 files changed, 53 insertions, 24 deletions
diff --git a/apps/web-shared/src/styles/components/responsive-sidebar.scss b/apps/web-shared/src/styles/components/responsive-sidebar.scss index 29a45f4..71c86da 100644 --- a/apps/web-shared/src/styles/components/responsive-sidebar.scss +++ b/apps/web-shared/src/styles/components/responsive-sidebar.scss @@ -1,15 +1,16 @@ @use '../base' as *; /* -------------------------------- + File#: _1_responsive-sidebar Title: Responsive Sidebar Descr: Responsive sidebar container Usage: codyhouse.co/license --------------------------------- */ -$maxwidth: 250px; +-------------------------------- */ -.sidebar { +/* mobile version only (--default) 👇 */ +.sidebar:not(.sidebar--static) { position: fixed; top: 0; left: 0; @@ -17,6 +18,7 @@ $maxwidth: 250px; width: 100%; height: 100%; visibility: hidden; + transition: visibility 0s 0.3s; &::after { /* overlay layer */ content: ''; @@ -26,36 +28,23 @@ $maxwidth: 250px; width: 100%; height: 100%; background-color: alpha(var(--color-black), 0); + transition: background-color .3s; z-index: 1; } - @include breakpoint(sm) { - visibility: visible; - position: relative; - z-index: 1; - width: 100%; - max-width: $maxwidth; - border-right: var(--border-width, 1px) var(--border-style, solid) hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), var(--border-o, 1)); - - .sidebar__header { - display: none; - } - - .sidebar__panel { - position: relative !important; - } - } - - .sidebar__panel { + .sidebar__panel { /* content */ position: absolute; top: 0; left: 0; z-index: 2; width: 100%; + max-width: 380px; height: 100%; overflow: auto; -webkit-overflow-scrolling: touch; background-color: var(--color-bg); + transform: translateX(-100%); + transition: box-shadow 0.3s,transform 0.3s; } &.sidebar--right-on-mobile { @@ -68,9 +57,10 @@ $maxwidth: 250px; &.sidebar--is-visible { visibility: visible; - + transition: none; + &::after { - background-color: alpha(var(--color-black), 0.55); + background-color: alpha(var(--color-black), 0.85); } .sidebar__panel { @@ -79,6 +69,7 @@ $maxwidth: 250px; } } } +/* end mobile version */ .sidebar__header { display: flex; @@ -96,8 +87,9 @@ $maxwidth: 250px; border-radius: 50%; background-color: var(--color-bg-light); box-shadow: var(--inner-glow), var(--shadow-sm); + transition: .2s; flex-shrink: 0; - + .icon { display: block; margin: auto; @@ -108,3 +100,40 @@ $maxwidth: 250px; box-shadow: var(--inner-glow), var(--shadow-md); } } + +/* desktop version only (--static) 👇 */ +.sidebar--static { + flex-shrink: 0; + flex-grow: 1; + + .sidebar__header { + display: none; + } +} + +.sidebar--sticky-on-desktop { + position: sticky; + top: var(--space-sm); + max-height: calc(100vh - var(--space-sm)); + overflow: auto; + -webkit-overflow-scrolling: touch; +} +/* end desktop version */ + +.sidebar--loaded { + opacity: 1; +} + + +.sidebar--static::before { + content: 'static'; +} + +@each $breakpoint, $value in $breakpoints { + .sidebar--static\@#{$breakpoint}::before { + content: 'mobile'; + @include breakpoint(#{$breakpoint}) { + content: 'static'; + } + } +}
\ No newline at end of file |
