Skip to content

Commit 7cc4f64

Browse files
committed
style: 优化明暗切换过渡效果
1 parent 17f0af6 commit 7cc4f64

File tree

8 files changed

+22
-16
lines changed

8 files changed

+22
-16
lines changed

src/assets/styles/globals.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
scrollbar-width: thin;
6060
}
6161

62+
.disable-color-scheme-transition-duration *,
63+
.disable-color-scheme-transition-duration *::before,
64+
.disable-color-scheme-transition-duration *::after {
65+
transition-duration: 0ms !important;
66+
}
67+
6268
html,
6369
body {
6470
height: 100%;

src/layouts/components/Header/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const { switchTo } = useMenu()
2929
}"
3030
>
3131
<div
32-
v-if="item.children && item.children.length !== 0" class="group menu-item-container relative h-full w-full flex cursor-pointer items-center justify-between gap-1 rounded-lg px-3 text-[var(--g-header-menu-color)] transition-all hover-(bg-[var(--g-header-menu-hover-bg)] text-[var(--g-header-menu-hover-color)])" :class="{
32+
v-if="item.children && item.children.length !== 0" class="group menu-item-container relative h-full w-full flex cursor-pointer items-center justify-between gap-1 rounded-lg px-3 text-[var(--g-header-menu-color)] transition-colors hover-(bg-[var(--g-header-menu-hover-bg)] text-[var(--g-header-menu-hover-color)])" :class="{
3333
'text-[var(--g-header-menu-active-color)]! bg-[var(--g-header-menu-active-bg)]!': index === menuStore.actived,
3434
}" :title="typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title" @click="switchTo(index)"
3535
>

src/layouts/components/MainSidebar/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ onUnmounted(() => {
4848
}"
4949
>
5050
<div
51-
v-if="item.children && item.children.length !== 0" class="group menu-item-container relative h-full w-full flex cursor-pointer items-center justify-between gap-1 rounded-lg py-4 text-[var(--g-main-sidebar-menu-color)] transition-all hover-(bg-[var(--g-main-sidebar-menu-hover-bg)] text-[var(--g-main-sidebar-menu-hover-color)]) px-2!" :class="{
51+
v-if="item.children && item.children.length !== 0" class="group menu-item-container relative h-full w-full flex cursor-pointer items-center justify-between gap-1 rounded-lg py-4 text-[var(--g-main-sidebar-menu-color)] transition-colors hover-(bg-[var(--g-main-sidebar-menu-hover-bg)] text-[var(--g-main-sidebar-menu-hover-color)]) px-2!" :class="{
5252
'text-[var(--g-main-sidebar-menu-active-color)]! bg-[var(--g-main-sidebar-menu-active-bg)]!': index === menuStore.actived,
5353
}" :title="typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title" @click="switchTo(index)"
5454
>

src/layouts/components/Menu/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ provide(rootMenuInjectionKey, reactive({
170170

171171
<template>
172172
<div
173-
:class="cn('h-full w-full flex flex-col of-hidden transition-all-300', {
173+
:class="cn('h-full w-full flex flex-col of-hidden', {
174174
'flex-row w-auto': isMenuPopup && props.mode === 'horizontal',
175175
'py-1': props.mode === 'vertical',
176176
})"

src/layouts/components/Menu/item.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ defineExpose({
3737

3838
<template>
3939
<div
40-
ref="itemRef" :class="cn('menu-item relative transition-all', {
40+
ref="itemRef" :class="cn('menu-item relative', {
4141
'active': isItemActive,
4242
'py-1 px-2': (rootMenu.isMenuPopup && rootMenu.props.mode === 'vertical') || (rootMenu.isMenuPopup && level !== 0 && rootMenu.props.mode === 'horizontal') || !rootMenu.isMenuPopup,
4343
'px-1 py-2': rootMenu.isMenuPopup && level === 0 && rootMenu.props.mode === 'horizontal',
@@ -52,7 +52,7 @@ defineExpose({
5252
target: item.meta?.link ? '_blank' : '_self',
5353
class: 'no-underline',
5454
}),
55-
}" :class="cn('group menu-item-container relative h-full w-full flex cursor-pointer items-center justify-between gap-1 rounded-lg px-4 py-3 text-[var(--g-sub-sidebar-menu-color)] transition-all hover-(bg-[var(--g-sub-sidebar-menu-hover-bg)] text-[var(--g-sub-sidebar-menu-hover-color)])', {
55+
}" :class="cn('group menu-item-container relative h-full w-full flex cursor-pointer items-center justify-between gap-1 rounded-lg px-4 py-3 text-[var(--g-sub-sidebar-menu-color)] transition-colors hover-(bg-[var(--g-sub-sidebar-menu-hover-bg)] text-[var(--g-sub-sidebar-menu-hover-color)])', {
5656
'text-[var(--g-sub-sidebar-menu-active-color)]! bg-[var(--g-sub-sidebar-menu-active-bg)]!': isItemActive,
5757
'px-3': rootMenu.isMenuPopup && level === 0,
5858
})" :title="typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title" v-on="{

src/layouts/components/Topbar/Toolbar/index.vue

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ defineOptions({
88
</script>
99

1010
<template>
11-
<div class="toolbar-container flex items-center justify-between">
11+
<div class="toolbar-container h-[var(--g-toolbar-height)] flex items-center justify-between bg-[var(--g-toolbar-bg)]">
1212
<div class="left-side h-full flex items-center of-hidden pe-16 ps-2">
1313
<LeftSide />
1414
</div>
@@ -19,13 +19,7 @@ defineOptions({
1919
</template>
2020

2121
<style scoped>
22-
.toolbar-container {
23-
height: var(--g-toolbar-height);
24-
background-color: var(--g-toolbar-bg);
25-
transition: background-color 0.3s;
26-
27-
.left-side {
28-
mask-image: linear-gradient(to right, #000 0%, #000 calc(100% - 50px), transparent);
29-
}
22+
.left-side {
23+
mask-image: linear-gradient(to right, #000 0%, #000 calc(100% - 50px), transparent);
3024
}
3125
</style>

src/store/modules/settings.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ export const useSettingsStore = defineStore(
1212

1313
const prefersColorScheme = window.matchMedia('(prefers-color-scheme: dark)')
1414
watch(() => settings.value.app.colorScheme, (val) => {
15+
document.documentElement.classList.add('disable-color-scheme-transition-duration')
16+
requestAnimationFrame(() => {
17+
requestAnimationFrame(() => {
18+
document.documentElement.classList.remove('disable-color-scheme-transition-duration')
19+
})
20+
})
1521
if (val === '') {
1622
prefersColorScheme.addEventListener('change', updateTheme)
1723
}

src/ui/components/FaCopyright/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ const settingsStore = useSettingsStore()
1212
<FaIcon name="i-ri:copyright-line" class="size-5" />
1313
<span v-if="settingsStore.settings.copyright.dates" class="px-1">{{ settingsStore.settings.copyright.dates }}</span>
1414
<template v-if="settingsStore.settings.copyright.company">
15-
<a v-if="settingsStore.settings.copyright.website" :href="settingsStore.settings.copyright.website" target="_blank" rel="noopener" class="px-1 text-center no-underline transition hover-text-secondary-foreground">{{ settingsStore.settings.copyright.company }}</a>
15+
<a v-if="settingsStore.settings.copyright.website" :href="settingsStore.settings.copyright.website" target="_blank" rel="noopener" class="px-1 text-center no-underline transition-colors hover-text-secondary-foreground">{{ settingsStore.settings.copyright.company }}</a>
1616
<span v-else class="px-1">{{ settingsStore.settings.copyright.company }}</span>
1717
</template>
18-
<a v-if="settingsStore.settings.copyright.beian" href="https://beian.miit.gov.cn/" target="_blank" rel="noopener" class="px-1 text-center no-underline transition hover-text-secondary-foreground">{{ settingsStore.settings.copyright.beian }}</a>
18+
<a v-if="settingsStore.settings.copyright.beian" href="https://beian.miit.gov.cn/" target="_blank" rel="noopener" class="px-1 text-center no-underline transition-colors hover-text-secondary-foreground">{{ settingsStore.settings.copyright.beian }}</a>
1919
</footer>
2020
</template>

0 commit comments

Comments
 (0)