Skip to content

Commit 533563b

Browse files
committed
fix(navbar): adjust css transition and fix absolute routing
1 parent 0617a95 commit 533563b

File tree

5 files changed

+26
-18
lines changed

5 files changed

+26
-18
lines changed

src/components/AppComponent.vue

+1-12
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ const onBack = () => {
8383
:is="Component"
8484
:parent-element="parentElement"
8585
:reverse="reverse"
86+
:panel-open="panelOpen"
8687
/>
8788
</KeepAlive>
8889
</Transition>
@@ -148,7 +149,6 @@ const onBack = () => {
148149
</template>
149150

150151
<style lang="scss" scoped>
151-
@use '~/styles/mixin' as mixin;
152152
@use '~/styles/layout' as layout;
153153
@use '~/styles/z-index' as layers;
154154
@use '~/styles/transition' as transition;
@@ -173,17 +173,6 @@ const onBack = () => {
173173
top 0.5s var(--n-bezier),
174174
left 0.5s var(--n-bezier),
175175
width 0.5s var(--n-bezier);
176-
177-
> :first-child {
178-
@include mixin.hover-background;
179-
}
180-
181-
&.open > :first-child {
182-
background: var(--bg-gradient-60-90);
183-
// stylelint-disable-next-line property-no-vendor-prefix -- necessary for safari
184-
-webkit-backdrop-filter: blur(var(--bg-blur-20));
185-
backdrop-filter: blur(var(--bg-blur-20));
186-
}
187176
}
188177
189178
main {

src/components/common/navbar/NavbarComponent.vue

+22-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ const props = defineProps({
3434
required: false,
3535
default: false,
3636
},
37+
panelOpen: {
38+
type: Boolean,
39+
required: false,
40+
default: false,
41+
},
3742
});
3843
3944
const { disabled, reverse } = toRefs(props);
@@ -181,7 +186,7 @@ const onTouchEnd = (e: TouchEvent) => {
181186
<template>
182187
<nav
183188
ref="navElement"
184-
:class="{ reverse, floating }"
189+
:class="{ reverse, floating, panel: panelOpen, drawer: showDrawer }"
185190
@mouseenter="isHover = true"
186191
@mouseleave="isHover = false"
187192
@focusin="isFocus = true"
@@ -257,6 +262,7 @@ const onTouchEnd = (e: TouchEvent) => {
257262
</template>
258263

259264
<style lang="scss" scoped>
265+
@use '~/styles/mixin' as mixin;
260266
@use '~/styles/layout' as layout;
261267
262268
nav {
@@ -265,16 +271,31 @@ nav {
265271
--navbar-text-color-hover-active: var(--white);
266272
--navbar-text-color-active: var(--white);
267273
274+
@include mixin.hover-background;
275+
268276
display: flex;
269277
flex-direction: column;
270278
padding: env(safe-area-inset-top) 0.25rem 0;
271279
overflow-x: unset;
272280
font-size: 12px;
273281
text-align: center;
274282
transition:
283+
backdrop-filter layout.$navbar-transition layout.$navbar-transition-delay,
284+
background layout.$navbar-transition layout.$navbar-transition-delay,
275285
border-radius 0.25s var(--n-bezier),
276286
padding 0.25s var(--n-bezier);
277287
288+
&.drawer {
289+
transition-delay: layout.$navbar-transition-delay-visible;
290+
}
291+
292+
&.panel {
293+
background: var(--bg-gradient-60-90);
294+
// stylelint-disable-next-line property-no-vendor-prefix -- necessary for safari
295+
-webkit-backdrop-filter: blur(var(--bg-blur-20));
296+
backdrop-filter: blur(var(--bg-blur-20));
297+
}
298+
278299
&.reverse {
279300
flex-direction: column-reverse;
280301
padding: 0 0.25rem;

src/components/common/navbar/NavbarSettingsDopdown.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ const onSelect: DropdownProps['onSelect'] = async (key: string, { label }) => {
145145
case 'logout':
146146
return logout();
147147
default:
148-
if (Object.values(Route).includes(key as Route)) return router.push(key);
148+
if (Object.values(Route).includes(key as Route)) return router.push(`/${key}`);
149149
if (typeof label === 'string' && key.startsWith('user-')) {
150150
return loadUser(label);
151151
}

src/styles/layout.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ $top-safe-watching-height: calc(#{$watching-height} + #{$safe-area-inset-top});
3333
$top-safe-watching-open-height: calc(#{$watching-open-height} + #{$safe-area-inset-top});
3434

3535
// Navbar transition
36-
$navbar-transition: 0.5s var(--n-bezier);
37-
$navbar-transition-visible: 0.25s var(--n-bezier);
36+
$navbar-transition: 0.75s var(--n-bezier);
37+
$navbar-transition-visible: 0.5s var(--n-bezier);
3838
$navbar-transition-delay: 0.5s;
3939
$navbar-transition-delay-visible: 0s;
4040

src/styles/mixin.scss

-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
-webkit-backdrop-filter: blur($blur);
1212
backdrop-filter: blur($blur);
1313
transition: $transition-prop $transition;
14-
will-change: color, background, background-color, backdrop-filter, box-shadow,
15-
border-color, scale, opacity, backdrop-filter;
1614

1715
&:active,
1816
&:hover {

0 commit comments

Comments
 (0)