mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 07:43:39 +08:00
4c25266cf7
Since https://github.com/discourse/discourse/pull/25501 this behavior was broken. This PR attempts to fix it by being more fine grain. Also note that this PR is moving `footer-nav-ipad` and `footer-nav-visible` to the `html` element and not the `body`. It makes more sense as we are already adding most of other global state class like `keyboard-visible` to the `html` element. Tested on: - chrome desktop - safari ios - iphone - PWA ios - iphone - PWA ios - ipad - DiscourseHub iphone
98 lines
2.1 KiB
SCSS
98 lines
2.1 KiB
SCSS
// --------------------------------------------------
|
|
// Footer nav bar (displayed in DiscourseHub app and PWAs)
|
|
// --------------------------------------------------
|
|
|
|
$footer-nav-height: 49px;
|
|
|
|
:root {
|
|
--footer-nav-height: #{$footer-nav-height};
|
|
}
|
|
|
|
html.footer-nav-visible {
|
|
#main-outlet {
|
|
padding-bottom: calc(var(--footer-nav-height) + 15px);
|
|
}
|
|
|
|
#reply-control.draft {
|
|
bottom: var(--footer-nav-height);
|
|
margin-bottom: env(safe-area-inset-bottom);
|
|
padding-bottom: 0px;
|
|
}
|
|
|
|
#topic-progress-wrapper:not(.docked) {
|
|
margin-bottom: calc(var(--footer-nav-height) + env(safe-area-inset-bottom));
|
|
}
|
|
.posts-filtered-notice {
|
|
transition: all linear 0.1s;
|
|
bottom: calc(var(--footer-nav-height) + env(safe-area-inset-bottom));
|
|
}
|
|
}
|
|
|
|
.footer-nav {
|
|
background-color: rgba(var(--header_background-rgb), 0.9);
|
|
box-shadow: var(--shadow-footer-nav);
|
|
height: var(--footer-nav-height);
|
|
position: fixed;
|
|
bottom: calc(var(--footer-nav-height) * -1);
|
|
left: 0;
|
|
width: 100%;
|
|
z-index: z("footer-nav");
|
|
transition: all linear 0.1s;
|
|
|
|
.d-icon {
|
|
color: var(--header_primary-medium);
|
|
}
|
|
|
|
&.visible {
|
|
bottom: 0px;
|
|
}
|
|
|
|
.footer-nav-widget {
|
|
display: flex;
|
|
justify-content: "space-evenly";
|
|
@include unselectable;
|
|
button {
|
|
flex: 1;
|
|
margin: 4px;
|
|
border-radius: 2px;
|
|
padding: 14px 18px;
|
|
&:disabled {
|
|
opacity: 0.6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@supports (padding: max(0px)) {
|
|
.footer-nav.visible {
|
|
padding-bottom: unquote("max(5px, env(safe-area-inset-bottom))");
|
|
}
|
|
}
|
|
|
|
@supports (-webkit-backdrop-filter: blur(10px)) {
|
|
html:not(.footer-nav-ipad) .footer-nav {
|
|
background-color: rgba(var(--header_background-rgb), 0.7);
|
|
-webkit-backdrop-filter: blur(20px);
|
|
}
|
|
}
|
|
|
|
html.footer-nav-ipad {
|
|
padding-top: var(--footer-nav-height);
|
|
.footer-nav {
|
|
bottom: auto;
|
|
top: 0px;
|
|
background-color: var(--header_background);
|
|
z-index: z("ipad-header-nav");
|
|
padding-bottom: 0; // resets safe-area-inset-bottom
|
|
}
|
|
|
|
#reply-control,
|
|
#reply-control.fullscreen {
|
|
z-index: z("ipad-header-nav") + 1;
|
|
}
|
|
|
|
&.docked .d-header-wrap {
|
|
top: var(--footer-nav-height);
|
|
}
|
|
}
|