Skip to content

fix(design): replace the tape's independent scroll with an ambient auto-ticker - #62

Merged
5uper0 merged 1 commit into
mainfrom
flip/tape-ticker-a11y
Aug 22, 2026
Merged

fix(design): replace the tape's independent scroll with an ambient auto-ticker#62
5uper0 merged 1 commit into
mainfrom
flip/tape-ticker-a11y

Conversation

@5uper0

@5uper0 5uper0 commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • The transcript sidebar had overflow-y:auto over ~3835px of content (124 lines, ~3x the viewport) — an independent nested scroll region alongside the main page scroll. Most visitors would never discover ~2/3 of that content existed. Replaced with a self-playing marquee (duplicate content, translateY loop, 150s/pass, pauses on hover) — no manual scroll surface at all, and better matches the "— live" label than a static scrollable list did.
  • Independent touch-target audit (44×44 minimum) surfaced 2 more real bugs: the new Header.astro nav links (added in feat(design): shared Header component with real nav across every page #61) had ~20px tap height; separately, examples/demo/index.html's footer links and Arena CTA never got the same 44px treatment landing's Footer.astro already had.

Test plan

  • 107 tests green
  • Fade-mask isolated to the scrolling viewport only (a first pass partially faded the static header label — caught and fixed)
  • Respects the project's existing global prefers-reduced-motion rule
  • All header/footer/CTA interactive elements re-measured ≥44×44px on both pages
  • scripts/flip-audit.sh passed

🤖 Generated with Claude Code

https://claude.ai/code/session_016hYVVizgvJ4wZBug9XTjVG

…to-ticker

The operator flagged "2 columns with their own scrollbars?" — real: the
transcript sidebar had overflow-y:auto over ~3835px of content (124 lines,
~3x the viewport), an independent nested scroll region the ui-ux-pro-max
skill's own checklist calls out as an anti-pattern ("avoid nested scroll
regions that interfere with the main scroll experience"). Most visitors
would never discover ~2/3 of that content existed.

Replaced with a self-playing marquee (duplicate content, translateY loop,
150s per pass, pauses on hover) — no manual scroll surface at all. This
also better matches the "— live" label than a static scrollable list did.
Respects the project's existing global prefers-reduced-motion rule (no
per-component override needed). Fade-mask isolated to the scrolling
viewport only, not the static header label, after a first pass partially
faded the header itself.

Independent-run touch-target audit (ui-ux-pro-max §2, 44x44 minimum)
against the live site surfaced 2 more real bugs: the new Header.astro nav
links (this session's own work) had ~20px tap height; separately,
examples/demo/index.html's footer links and Arena CTA never got the same
44px treatment landing's Footer.astro already had — a pre-existing gap.
Fixed all three.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016hYVVizgvJ4wZBug9XTjVG
(cherry picked from commit b93a96827c2743bb2e4899f69b5ba09106da68bd)
@5uper0
5uper0 merged commit b8230a1 into main Aug 22, 2026
6 checks passed
@5uper0
5uper0 deleted the flip/tape-ticker-a11y branch August 22, 2026 00:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant