mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 13:00:39 +03:00
M: Prevent animations for darkMode transitions
This commit is contained in:
parent
7bd5cd5d74
commit
d11ccb45c4
|
@ -100,14 +100,25 @@ export const OptionsState = ({ children }: React.PropsWithChildren) => {
|
||||||
);
|
);
|
||||||
|
|
||||||
const toggleDarkMode = useCallback(() => {
|
const toggleDarkMode = useCallback(() => {
|
||||||
if (!document.startViewTransition || window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
if (!document.startViewTransition) {
|
||||||
setDarkMode(prev => !prev);
|
setDarkMode(prev => !prev);
|
||||||
} else {
|
} else {
|
||||||
|
const style = document.createElement('style');
|
||||||
|
style.innerHTML = `
|
||||||
|
* {
|
||||||
|
animation: none !important;
|
||||||
|
transition: none !important;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
document.head.appendChild(style);
|
||||||
|
|
||||||
document.startViewTransition(() => {
|
document.startViewTransition(() => {
|
||||||
flushSync(() => {
|
flushSync(() => {
|
||||||
setDarkMode(prev => !prev);
|
setDarkMode(prev => !prev);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
setTimeout(() => document.head.removeChild(style), PARAMETER.moveDuration);
|
||||||
}
|
}
|
||||||
}, [setDarkMode]);
|
}, [setDarkMode]);
|
||||||
|
|
||||||
|
|
|
@ -223,6 +223,6 @@
|
||||||
.cc-animate-color {
|
.cc-animate-color {
|
||||||
transition-property: color, background-color;
|
transition-property: color, background-color;
|
||||||
transition-timing-function: var(--transition-bezier);
|
transition-timing-function: var(--transition-bezier);
|
||||||
transition-duration: var(--duration-fade);
|
transition-duration: var(--duration-select);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user