setSidebarOpen(false)} />
- >
- )}
+ )}
+ {(!canDisposeMenu || sidebarOpen) && shouldRenderLargeMenuPushorAbsolute && helpLinks}
+
+
setSidebarOpen(false)}
+ />
);
}
diff --git a/ui/scss/component/_main.scss b/ui/scss/component/_main.scss
index d21543f64..1b7d56102 100644
--- a/ui/scss/component/_main.scss
+++ b/ui/scss/component/_main.scss
@@ -47,19 +47,43 @@
padding: 0;
}
+.sidebar--pusher {
+ animation-timing-function: var(--resizing-animation-function);
+ transition: transform var(--resizing-animation-timing);
+ transform-origin: left;
+ position: absolute;
+
+ @media (max-width: $breakpoint-small) {
+ transform: translateX(0);
+ width: calc(100% - var(--spacing-m));
+ }
+
+ @media (min-width: $breakpoint-small) {
+ transform: translateX(var(--side-nav-width--micro));
+ width: calc(100% - ((var(--side-nav-width--micro))));
+ }
+}
+
+.sidebar--pusher--filepage {
+ width: 100%;
+}
+
+.sidebar--pusher--open {
+ @media (min-width: $breakpoint-medium) {
+ transform: translateX(var(--side-nav-width));
+ width: calc(100% - var(--side-nav-width));
+ }
+}
+
.main {
position: relative;
- width: calc(100% - var(--side-nav-width) - var(--spacing-l));
+ width: calc(100% - 2 * var(--spacing-l));
max-width: var(--page-max-width);
z-index: 0;
margin-right: auto;
margin-left: auto;
- @media (max-width: $breakpoint-medium) and (min-width: $breakpoint-small) {
- margin: 0 var(--spacing-l);
- }
-
- @media (max-width: $breakpoint-medium) {
+ @media (max-width: $breakpoint-small) {
width: 100%;
}
}
@@ -254,12 +278,7 @@
.main--full-width {
@extend .main;
-
- @media (min-width: $breakpoint-large) {
- max-width: none;
- width: 100%;
- margin: 0 var(--spacing-l);
- }
+ max-width: none;
}
.main--auth-page {
diff --git a/ui/scss/component/_navigation.scss b/ui/scss/component/_navigation.scss
index 367a63869..ce095390e 100644
--- a/ui/scss/component/_navigation.scss
+++ b/ui/scss/component/_navigation.scss
@@ -21,6 +21,7 @@
position: fixed;
left: 0;
overflow-y: auto;
+ overflow-x: hidden;
top: var(--header-height);
width: var(--side-nav-width);
height: calc(100vh - var(--header-height));
@@ -30,6 +31,13 @@
display: flex;
flex-direction: column;
+ animation-timing-function: var(--resizing-animation-function);
+ transition: transform var(--resizing-animation-timing);
+ z-index: 4;
+ background-color: var(--color-card-background);
+ transform: translateX(0);
+ transform-origin: left;
+
@media (min-width: $breakpoint-small) {
overflow-y: hidden;
justify-content: space-between;
@@ -45,25 +53,25 @@
}
}
+.navigation--push-back {
+ transform: translateX(calc(-1 * (var(--side-nav-width) - var(--side-nav-width--micro))));
+}
+
+.navigation--push {
+ transform: translateX(0);
+}
+
.navigation--mac {
top: calc(var(--header-height) + var(--mac-titlebar-height));
}
-.navigation--absolute {
- @extend .navigation;
- z-index: 4;
- width: var(--side-nav-width);
- background-color: var(--color-card-background);
- box-shadow: var(--card-box-shadow);
-
- .navigation-link {
- padding-left: var(--spacing-m);
- }
+.navigation-file-page-and-mobile {
+ transform: translateX(calc(-1 * var(--side-nav-width)));
}
.navigation--micro {
@extend .navigation;
- width: var(--side-nav-width--micro);
+ transform: translateX(calc(-1 * (var(--side-nav-width) - var(--side-nav-width--micro))));
@media (max-width: $breakpoint-small) {
display: none;
@@ -101,6 +109,7 @@
}
.button__content {
+ margin-left: auto;
padding: var(--spacing-s);
justify-content: flex-start;
flex-direction: column;
@@ -188,6 +197,10 @@
list-style: none;
}
+.navigation-inner-container {
+ width: var(--side-nav-width);
+}
+
.navigation-links--micro {
.icon {
height: 1.5rem;
@@ -271,12 +284,22 @@
z-index: 3;
left: 0;
top: var(--header-height);
+ visibility: hidden;
+ opacity: 0;
+ animation-timing-function: var(--resizing-animation-function);
+ transition: visibility var(--resizing-animation-timing), opacity var(--resizing-animation-timing);
&.navigation__overlay--mac {
top: calc(var(--header-height) + var(--mac-titlebar-height));
}
}
+.navigation__overlay--active {
+ opacity: 1;
+ visibility: visible;
+ animation: fadeIn var(--resizing-animation-timing) var(--resizing-animation-function);
+}
+
.navigation__auth-nudge {
@extend .card;
margin: var(--spacing-s);
diff --git a/ui/scss/init/_vars.scss b/ui/scss/init/_vars.scss
index 260b66944..9ab014fef 100644
--- a/ui/scss/init/_vars.scss
+++ b/ui/scss/init/_vars.scss
@@ -100,6 +100,10 @@ $breakpoint-large: 1600px;
--tag-height: 1.5rem;
--livestream-comments-width: 30rem;
+
+ // Animations
+ --resizing-animation-function: ease-in;
+ --resizing-animation-timing: 180ms;
}
@media (max-width: $breakpoint-small) {