Repository navigation
fix(a11y): contrast, touch targets and terminal motion from design audit - #260
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying website with
|
| Latest commit: |
cd0c318
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4d5596be.website-70y.pages.dev |
| Branch Preview URL: | https://claude-impeccable-audit-1c0a.website-70y.pages.dev |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <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.
Fixes from an
/impeccable auditpass over the homepage, blog and legal pages. The audit scored the site 14/20; the weakest area was accessibility (2/4), mostly text contrast on the white sections and small mobile touch targets.What changed
Contrast (WCAG 1.4.3)
--whisper-deeptoken (green mixed 68% with black, ~6.5:1 on white) and a per-tone--whisper-text.Frame tone="paper"swaps it in, andhighlightBrandnow usestext-whisper-text, so the "deCDN" highlight stays AA on white. Today the brand name only appears on the black sections, so this guards future uses.a.hero-statusand the drawer's "home" hover now use the token instead of a literalcolor-mix..terminal .dim(which also shows the "stats unavailable" error). The post-list date goes from 55% to 75% to keep a step above the series number.<s>(it was ~3.4:1 at 11px).Touch targets (WCAG 2.5.8)
.mm-toggleis now a 44×44 hit area (was 22×22). The 18px glyph stays in the same spot, centred on the nav bar, and the focus ring is inset so it doesn't balloon.py-1(~25px tall) with the same visual rhythm as before.Footer affordance
hover:opacity-100did nothing because the parent carriedopacity-80. Opacity now sits on each item, and links underline on hover.Hero terminal motion
animationiterationinstead of a 4.5ssetInterval. Anything that stops the CSS cascade stops the cycle with it: reduced motion (the panel shows one static settlement), background tabs and scrolling out of view (an IntersectionObserver setsdata-offscreen, which pauses the animations).PanelFigureaccepts areffor that observer.Performance
will-changethat stayed on every[data-reveal]element at rest.width) and the fleet spark cells (height) now animate withtransform: scaleX/scaleY. This clears the design detector's only finding.Cleanup
--ease-soft/--ease-expo.transition-allon the blog arrows is narrowed totranslate,colorandopacity.Verification
pnpm typecheck,pnpm lint,pnpm test(516/516) andpnpm build(includingcheck:outandcheck:og-image) all pass. The design detector reports 0 findings.will-changecomputes toauto;--whisper-textto the deep green and ink sections to the raw accent (6.05:1).animationiterationon the first line; child-bubbled events are ignored. The offscreen pause could not be watched live because the preview pane was backgrounded. Worth a quick look on the preview deploy.Reviewer notes
aria-hiddenand decorative, and users who set reduced motion get a static panel.components/ui/Frame.test.tspins the--whisper-textclass/token contract across Frame,highlightBrandandglobals.css, andPanelFigure.test.tschecks thatrefreaches the<figure>.<main>on legal pages. That was a false positive (LegalDocalready renders one), so there is no change there.🤖 Generated with Claude Code