aboutsummaryrefslogtreecommitdiff
path: root/src/routes/+layout.svelte
Commit message (Collapse)AuthorAgeFilesLines
* style(motion): introduce --duration-base for panel-class transitionsFuwn38 hours1-7/+7
| | | | | | | | | | | | | Adds 0.24s between --duration-fast (0.15s) and --duration-slow (0.4s) for animations that live in the touch-UI floor: panels, sheets, drawers, modals. 150ms reads as crisp on desktop but undershoots the 200-300ms range touch UI conventions prescribe (finger occludes the target during the tap, deliberation pace is slower, and high-DPI displays compress small translateY into less perceptible motion). Applies the new token to the mobile hamburger panel open/close transition and to the bar-morph that fires on the same tap, so the bars and the panel finish arriving together.
* feat(nav): restore scroll-hide and animate mobile hamburgerFuwn38 hours1-8/+24
| | | | | | | | | | | | | | | | | | | | Three changes to the mobile floating header: - Restore the desktop scroll-driven hide/show on the corner button by dropping the transform:none override. Override the translate distance under 800px so the toggle (44px tall at top:1.25rem) and its 5px outline ring fully clear the viewport: translateY(calc(-100% - 2rem)) instead of -150%, which had been leaving 3px of ring poking through. - Replace display:none / display:flex on the open panel (uneanimatable) with always-rendered panel that flips opacity, transform, visibility, and pointer-events. Uses --duration-fast / --ease-out-quart so the motion vocabulary matches the rest of the project. transform-origin is top right so the scale grows from the toggle position. - Move per-item styling out of the .menu-open qualifier so items keep their block layout even while the panel is faded out, avoiding a layout reflow at the moment menu-open flips.
* fix(nav): close dropdowns and hamburger on touch / outside clickFuwn38 hours1-1/+6
| | | | | | | | | | | | | | Two related touch fixes: - Dropdown :hover rule was sticky on touch devices after a tap, keeping the menu visible even when the click toggle set open to false. Gate the hover rule behind @media (hover: hover) so only true pointer devices use the hover path; touch uses the click-driven open class. - Hamburger menu had no outside-click close. Added a window click handler that closes isMenuOpen when the target is outside .header. Clicks on the toggle and on nav items stay inside .header, so opening and item navigation are unaffected.
* feat(nav): float header as a corner hamburger under 800pxFuwn38 hours1-2/+130
| | | | | | | | | | | | | | | Below 800px the inline header overflows the viewport. Strips card chrome from .header itself and floats it position:fixed at top:1.25rem/right :1.25rem so it does not consume a horizontal band. The 44x44 toggle button carries the desktop banner's exact card recipe (--base0011 glass, shadow-card-emphasized + 5px --base02 ring, blur, 8px radius), and the open panel mirrors it as a separately-positioned card below. Menu closes on route navigation and Escape. Header stays visible while the menu is open so a scroll-driven hide does not chop the open sheet mid-interaction. Profile-avatar anchor and the bullet separator are hidden in the mobile menu (avatar is redundant alongside the Profile dropdown; separator reads as line noise vertically).
* fix(a11y): scope focus-visible ring to header itemsFuwn4 days1-0/+10
| | | | | | | | Add explicit .header-item:focus { outline: none } and .header-item:focus-visible rules in +layout.svelte so the navbar matches the dropdown menu's teal rounded ring on keyboard focus and stops leaking the browser default blue square ring on mouse click. Same pattern as the Dropdown component's scoped focus-visible rule.
* style(card): move backdrop blur to an opt-in .card-glass modifierFuwn5 days1-1/+1
| | | | | | | | | | | Strip backdrop-filter: blur(4px) from the base .card so the ~50 in-flow surfaces (landing panels, schedule rows, tool cards, user profile cards, badge wall, etc.) stop paying for a blur they don't need. Introduce .card-glass for the surfaces that actually float over other content: the sticky page header, header nav dropdowns, command palette, title-attribute tooltips, LinkedTooltip, and HoverCover. Popup, MediaRoulette, and Notification keep their existing parent-overlay or solid-background treatments.
* feat(a11y): respect prefers-reduced-motionFuwn5 days1-2/+4
| | | | | | | 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.
* refactor(motion): introduce easing/duration tokensFuwn12 days1-4/+4
| | | | Add --ease-out-quart, --ease-in-out-quart, --duration-fast, --duration-slow in motion.css and migrate the global anchor, header, and theme-switch transitions to use them. Establishes a shared motion vocabulary for future polish.
* style(header): soften hide/show curve with ease-out-quartFuwn12 days1-1/+1
| | | | Replace transform 0.3s ease with 0.4s cubic-bezier(0.22, 1, 0.36, 1) so the header settles instead of snapping, pairing with Lenis-smoothed scroll.
* style(anchor): narrow global anchor transition to color/opacityFuwn12 days1-1/+4
| | | | Replace transition: all with explicit color, opacity, and text-decoration-color so unrelated property changes (transform, background) do not get incidentally tweened.
* fix(scroll): route LandingHero scroll-down through LenisFuwn12 days1-0/+5
| | | | Lenis disables native CSS smooth scroll, so window.scrollTo({behavior:"smooth"}) jumps instantly. Expose the Lenis instance via a store and scroll through it, falling back to native when unavailable.
* feat(scroll): add global smooth scrolling via LenisFuwn12 days1-0/+7
|
* feat(command-palette): add quick toggles, sync, and auth actionsFuwn2026-04-261-1/+12
| | | | | | | | Adds 13 reactive quick toggles (24h time, animations, blur adult, cover modes, hover cover, schedule list, reverse sort, data saver, notifications, language, title format cycle, outbound link target cycle), three sync actions (push/pull/disable), and login/logout entries gated on auth state. Names reflect current state so the palette doubles as a status surface.
* revert(ui): remove april fools executive modeFuwn2026-04-021-85/+12
|
* fix(ui): tune april fools notification copyFuwn2026-04-011-1/+1
|
* fix(ui): simplify april fools controlsFuwn2026-04-011-15/+52
|
* feat(ui): add april fools executive modeFuwn2026-04-011-12/+48
|
* fix(profile): restore owner controls for new accountsFuwn2026-03-271-7/+15
|
* chore(biome): drop formatter style overridesFuwn2026-03-011-131/+157
|
* chore(biome): re-enable noImplicitAnyLet ruleFuwn2026-03-011-1/+2
|
* chore(biome): enable svelte formattingFuwn2026-03-011-148/+147
|
* fix: Resolve all ESLint errors and warningsFuwn2026-01-291-1/+1
|
* feat(+layout.svelte): Add Web AnalyticsFuwn2026-01-261-0/+3
|
* refactor: Migrate event handlers to new Svelte 5 syntaxFuwn2026-01-231-1/+1
|
* refactor(layout): Replace empty p elements with reusable Spacer componentFuwn2026-01-231-1/+2
|
* fix(html): Replace self-closing non-void HTML elements with proper closing tagsFuwn2026-01-231-1/+1
|
* fix(notifications): Replace svelte-notifications with custom store for Svelte 5Fuwn2026-01-221-4/+3
|
* format: Apply Prettier formattingFuwn2026-01-221-7/+21
|
* format: Apply Prettier formattingFuwn2025-12-151-22/+8
|
* style(src): Remove self-closing p and div tagsFuwn2025-06-231-1/+1
|
* feat: Move remaining localStorage usages to localforageFuwn2025-06-121-14/+14
|
* fix: Migrate localStorage.removeItem to localforage for anime and manga storesFuwn2025-06-111-7/+24
|
* refactor(CommandPalette): Globally rename action typeFuwn2025-05-151-2/+2
|
* feat: Add command paletteFuwn2025-05-061-0/+5
|
* fix(layout): remove invalid local user entriesFuwn2025-01-281-2/+4
|
* chore(prettier): use spaces instead of tabsFuwn2024-10-091-318/+318
|
* refactor(Data): rename database referencesFuwn2024-08-241-1/+1
|
* refactor(Database): separate providersFuwn2024-07-251-3/+1
|
* feat: background notificationsFuwn2024-07-241-30/+11
|
* feat(layout): browser notificationsFuwn2024-07-241-27/+25
|
* feat(pwa): anilist notificationsFuwn2024-07-081-2/+40
|
* fix(layout): ensure navigation is loadedFuwn2024-06-141-1/+1
|
* fix(layout): wait for en localeFuwn2024-04-271-89/+102
|
* refactor(lib): move componenets to modulesFuwn2024-04-211-1/+1
|
* fix(layout): check if browserFuwn2024-04-181-1/+3
|
* feat(layout): semi-sticky headerFuwn2024-04-181-2/+24
|
* fix(layout): subtitle typesFuwn2024-04-071-1/+2
|
* feat(layout): announcement featureFuwn2024-04-011-0/+3
|
* refactor: ids to classesFuwn2024-02-191-6/+6
|
* feat(settingssync): last push pull timesFuwn2024-02-121-0/+5
|