aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/styles/components/responsive-sidebar.scss
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web-shared/src/styles/components/responsive-sidebar.scss')
-rw-r--r--apps/web-shared/src/styles/components/responsive-sidebar.scss77
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