diff --git a/packages/frontend/src/style.scss b/packages/frontend/src/style.scss index 32f2b5ef3d..12879e63b3 100644 --- a/packages/frontend/src/style.scss +++ b/packages/frontend/src/style.scss @@ -92,7 +92,7 @@ html { html._themeChangingFallback_ { &, * { - transition: background 1s ease, border 1s ease !important; + transition: background 0.5s ease, border 0.5s ease !important; } } @@ -102,13 +102,13 @@ html._themeChanging_ { html::view-transition-new(theme-changing) { z-index: 4000001; - animation: themeChangingNew 1s ease; + animation: themeChangingNew 0.5s ease; animation-fill-mode: forwards; } html::view-transition-old(theme-changing) { z-index: 4000000; - animation: themeChangingOld 1s ease; + animation: themeChangingOld 0.5s ease; animation-fill-mode: forwards; } diff --git a/packages/frontend/src/theme.ts b/packages/frontend/src/theme.ts index 003fd8b6f0..9562f69cf3 100644 --- a/packages/frontend/src/theme.ts +++ b/packages/frontend/src/theme.ts @@ -141,18 +141,17 @@ export function applyTheme(theme: Theme, persist = true) { await nextTick(); }).finished.then(() => { window.document.documentElement.classList.remove('_themeChanging_'); + // 色計算など再度行えるようにクライアント全体に通知 globalEvents.emit('themeChanged'); }); } else { // TODO: ViewTransition API が主要ブラウザで対応したら消す - window.document.documentElement.classList.add('_themeChangingFallback_'); timeout = window.setTimeout(() => { window.document.documentElement.classList.remove('_themeChangingFallback_'); - // 色計算など再度行えるようにクライアント全体に通知 globalEvents.emit('themeChanged'); - }, 1000); + }, 500); applyThemeInternal(theme, persist); }