aboutsummaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-05-15 09:02:42 +0000
committerFuwn <[email protected]>2026-05-15 09:02:42 +0000
commitb2fe8acbfeedbfff6b49019764e56570555be392 (patch)
tree8a459e4181ecf6942f50e5b5ea705b355e03fed6 /src/routes
parentfix(a11y): restore focus-visible ring (diff)
downloaddue.moe-b2fe8acbfeedbfff6b49019764e56570555be392.tar.xz
due.moe-b2fe8acbfeedbfff6b49019764e56570555be392.zip
feat(a11y): respect prefers-reduced-motion
Add a global reduced-motion media query that collapses animation and transition durations and disables smooth scroll. Skip Lenis init when the same preference is set so the JS-driven smooth scroll falls back to the browser default, which the spec already honours.
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/+layout.svelte6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index e1677b44..4aaf2159 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -98,9 +98,11 @@ const handleScroll = () => {
onMount(async () => {
if (browser) {
- lenis = new Lenis({ autoRaf: true });
+ if (!window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
+ lenis = new Lenis({ autoRaf: true });
- lenisStore.set(lenis);
+ lenisStore.set(lenis);
+ }
if (await localforage.getItem("redirect")) {
window.location.href = (await localforage.getItem("redirect")) ?? "/";