Skip to content

[v1.1.1] Improve navigation, accessibility, and non-JS behavior across the site#7

Merged
tatsuzo-arkstudios merged 111 commits into
mainfrom
develop
Mar 28, 2026
Merged

[v1.1.1] Improve navigation, accessibility, and non-JS behavior across the site#7
tatsuzo-arkstudios merged 111 commits into
mainfrom
develop

Conversation

@tatsuzo-arkstudios
Copy link
Copy Markdown
Member

Summary

This PR improves the site's baseline usability and resilience, especially on smaller screens and in non-JavaScript scenarios.

What changed

  • removed the motion dependency and simplified animated wrappers/components
  • replaced motion-based nav and CTA transitions with CSS-based behavior
  • reworked the mobile navigation and locale picker to use details/summary patterns
  • improved non-JS behavior for the nav and feature showcase with noscript fallbacks
  • updated the app showcase mobile experience to use a horizontal scroll/card layout
  • refined desktop feature showcase sizing and spacing for short and small screens
  • added a back/forward navigation reload script in the root layout
  • added skip links and main-content anchors for keyboard users
  • improved accessibility with better touch targets, aria-labels, tooltip semantics, and focus-visible behavior
  • adapted the 404 page to the shared light-mode design tokens
  • slightly increased muted text contrast in dark mode

tatsuz0u and others added 30 commits March 22, 2026 23:02
Research, validation strategy, and 3 plans (2 waves) for design token
system, font/color migration, and ASCII removal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…gn tokens

- Add complete semantic token set: surface hierarchy, text, accent, radius, shadow, layout, font, glass
- Add dark theme overrides in single @media (prefers-color-scheme: dark) block with #0a0a0a near-black
- Update base styles to use new --color-* variable names (html, body, a, :focus-visible, ::selection)
- Preserve backward compat aliases (--bg, --fg, --blue, --blue-strong, etc.) pointing to new tokens
…d token mappings

- Add semantic color tokens: bg, surface, surface-alt, border, text-primary, text-secondary, text-muted, accent (DEFAULT/hover/subtle)
- Add borderRadius tokens: sm, md, lg, xl mapped to CSS variables
- Add boxShadow tokens: card and raise mapped to CSS variables
- Preserve backward compat color aliases (fg, blue, blue-strong, blue-line, blue-soft, ink-soft)
- Keep fontFamily.mono alias pointing to --font-ui (backward compat, removed in Plan 02)
- Create 01-01-SUMMARY.md with task details and verification results
- Advance STATE.md to plan 2, add decisions, update metrics
- Update ROADMAP.md phase 01 progress (1/3 plans complete)
- Mark DSGN-01, DSGN-02, DSGN-03, DSGN-04 complete in REQUIREMENTS.md
- Replace font-mono with font-sans in all 5 component files
- Replace text-blue-strong/bg-blue-strong with text-accent/bg-accent
- Replace border-blue-line with border-border
- Replace text-ink-soft with text-text-secondary
- Replace text-fg with text-text-primary
- Remove tracking-[0.08em] (use default tracking-normal)
- Delete src/components/TextSeparator.tsx (DSGN-06)
- Delete src/components/TextFrame.tsx (DSGN-06)
- Delete entire src/ascii-panel/ directory (DSGN-06)
- Replace all TextFrame usages with <section aria-label={...}>
- Replace all TextSeparator usages with <hr className="border-t border-border my-12" />
- Remove AsciiPanel from home page, simplify hero grid to single column
- Build passes with zero errors
- Replace font-mono with font-sans in layout, pages, not-found
- Replace text-blue-strong/bg-blue-strong with text-accent/bg-accent
- Replace border-blue-line with border-border in footer
- Replace text-ink-soft with text-text-secondary throughout
- Also fix privacy, terms, support pages (text-ink-soft occurrences)
- BitRemoteWordmark: update fill from var(--blue) to var(--color-accent)
- Build and lint pass with zero errors and zero warnings
… aliases

- Remove backward compat CSS variable block from globals.css (:root and dark)
- Remove entire @layer utilities block (br-num-*, br-frame-sheet-*, no-scrollbar)
- Remove all @Keyframes for deleted animation classes
- Remove @media prefers-reduced-motion block for deleted animation classes
- Remove backward compat color aliases from tailwind.config.ts (fg, blue, blue-strong, blue-line, blue-soft, ink-soft)
- Remove fontFamily.mono from tailwind.config.ts
- Build and lint pass with zero warnings
- Create 01-02-SUMMARY.md
- Advance plan counter to 3 of 3
- Update STATE.md with decisions and session info
- Update ROADMAP.md plan progress (2 of 3 summaries)
- Mark DSGN-05 requirement complete
- Add 01-03-SUMMARY.md documenting plan completion
- Update STATE.md: advance to plan 3/3 (ready_for_verification), record metrics and decisions
- Update ROADMAP.md: phase 01 all 3 plans complete
- Mark DSGN-06 requirement complete
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Animation tokens, component API contracts, and hydration safety
contract for LenisProvider, MotionProvider, and FadeInSection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- install motion 12.x and lenis 1.3.x from npm
- create LenisProvider with hydration-safe skipLenis=true default
- create MotionProvider wrapping children in MotionConfig reducedMotion=user
- both components use 'use client' directive
- add sectionVariants (opacity 0->1, y 24->0, 550ms easeOutQuart)
- add staggerContainerVariants with staggerChildren: 0.1, delayChildren: 0.05
- add staggerItemVariants (opacity 0->1, y 20->0, 500ms easeOutQuart)
- FadeInSection uses useReducedMotion to start at visible state when reduced motion active
- viewport triggers once at 0.08 threshold
- only opacity and y (transform) animated - no layout properties
- add 02-01-SUMMARY.md with full execution documentation
- update STATE.md: advance plan to 2/2, record metrics, add decisions
- update ROADMAP.md: phase 2 progress (1/2 summaries)
- mark requirements VFX-01, VFX-02, VFX-04, VFX-05, TECH-04 complete
- Import LenisProvider, MotionProvider, and lenis/dist/lenis.css in layout.tsx
- Wrap body children with MotionProvider > LenisProvider nesting order
- Remove scroll-behavior: smooth from globals.css (Lenis now owns scroll behavior)
- Keep scroll-padding-top: 5.25rem for anchor navigation offset
- Task 2 human-verify checkpoint approved by user
- STATE.md updated with session info and decisions
- ROADMAP.md phase 2 marked Complete
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tatsuzo-arkstudios tatsuzo-arkstudios self-assigned this Mar 28, 2026
@tatsuzo-arkstudios tatsuzo-arkstudios added the enhancement New feature or request label Mar 28, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Mar 28, 2026

Deploying bitremote-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1f9b640
Status: ✅  Deploy successful!
Preview URL: https://a3d2a9d0.bitremote-website.pages.dev
Branch Preview URL: https://develop.bitremote-website.pages.dev

View logs

@tatsuzo-arkstudios tatsuzo-arkstudios merged commit 78098fc into main Mar 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants