feat: shader bookmarks + accessibility improvements#3
Open
jrkim-kr wants to merge 4 commits intopbakaus:mainfrom
Open
feat: shader bookmarks + accessibility improvements#3jrkim-kr wants to merge 4 commits intopbakaus:mainfrom
jrkim-kr wants to merge 4 commits intopbakaus:mainfrom
Conversation
- New localStorage-backed reactive store (saved-shaders.svelte.ts) - Toast notification system (toast.svelte.ts) - /gallery/saved page to view bookmarked shaders - Bookmark button on ShaderCard (hover to reveal, filled when saved) - Saved count badge in Nav header (GitHub 오른쪽) - My Collection link in GallerySidebar - initSavedShaders() called from root layout onMount for SSR hydration fix Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Accessibility: - Add global :focus-visible outline via CSS custom properties - Fix sidebar overlay div -> button for keyboard access - Add aria-label/aria-pressed to Hero scheme dots, Live toggle, layout buttons - Add aria-hidden to decorative SVGs and ShaderPreview mock UI - Add aria-label to SourceViewer close button Performance: - Add visibilitychange guard to Hero RAF loop to pause when tab hidden - Add prefers-reduced-motion support to AmbientGlow animation Touch targets & text: - Increase save button from 28px to 36px - Expand Hero scheme-dot hit area with ::after pseudo-element - Floor all sub-12px text to 0.75rem across 5 components Design: - Replace Unicode emoji layout icons (⬜▣◧◨) with inline SVGs - Add CSS design tokens (--color-accent, --color-bg, --color-text, etc.) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Author
|
Btw about the second commit I used your /audit skill and it only gave me 10/20 scores lol |
adapter-static requires all routes to be prerenderable. Since /gallery/saved uses localStorage (prerender=false, ssr=false), adding fallback:'404.html' enables SPA-style handling for non-prerendered routes. Refs ERR-001 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
adapter-static outputs to 'build/' but Vercel defaults to 'public/'. Add vercel.json to explicitly point Vercel at the correct directory. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
localStorage, no login requiredChanges
Shader Bookmark Feature
src/lib/saved-shaders.svelte.ts— reactive store backed bylocalStorage; initialized in root layoutonMountto handle prerendered page hydration correctlysrc/lib/toast.svelte.ts— lightweight toast notification systemsrc/routes/gallery/saved/— new/gallery/savedpage listing bookmarked shadersShaderCard.svelte— bookmark button (hover to reveal; filled amber when saved)Nav.svelte— saved count badge appears next to GitHub link when collection is non-emptyGallerySidebar.svelte— "My Collection" link with live countAccessibility & Quality
:focus-visibleoutline via new CSS custom properties (--color-accent,--color-bg,--color-text, etc.)<div>replaced with<button>aria-label/aria-pressedon Hero scheme dots, Live toggle, layout buttons;aria-hiddenon decorative SVGs and mock UI::afterhit area expansion0.75remacross 5 components⬜▣◧◨) replaced with inline SVGsvisibilitychangeguard pauses loop when tab is hiddenprefers-reduced-motionsupport addedTest plan
/gallery/all— icon fills amber, toast appears, Nav badge incrementslocalStorage/gallery/saved— only bookmarked shaders shownprefers-reduced-motion— AmbientGlow animation stops🤖 Generated with Claude Code