Skip to content

fix(ui): apply UI audit batch 1-4#3

Merged
DCCA merged 1 commit into
mainfrom
fix/ui-audit-batch
Jun 20, 2026
Merged

fix(ui): apply UI audit batch 1-4#3
DCCA merged 1 commit into
mainfrom
fix/ui-audit-batch

Conversation

@DCCA

@DCCA DCCA commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Summary

Applies fixes 1–4 from the taste-skill UI audit of the popup/editor/viewer surfaces. These are correctness and accessibility fixes, not cosmetic changes.

  1. Manrope now actually loads. font-family referenced "Manrope" but the font was never bundled, so every surface silently fell back to Segoe UI. Added @fontsource-variable/manrope as a local dependency (no CDN — preserves the extension's no-network policy) and wired it into globals.css. woff2 files now ship in dist/assets/.
  2. Success vs. error status colors. The editor's single status string rendered everything in error-red, so "link copied" confirmations looked like failures. status is now { kind: "success" | "error"; message } and renders emerald for success.
  3. No more window.alert. The popup's "No active tab" path now shows an inline aria-live error instead of a native alert.
  4. Accessibility. Fixed inverted heading order (card subsections h2h4 under the h3 card title), wrapped editor status/progress in aria-live="polite", and made the editor root a <main> landmark.

Also adds CLAUDE.md for future Claude Code sessions.

Verification

  • npm run check (typecheck + lint + 26 tests + build) — all green
  • Built and loaded in Chrome; font, status colors, and popup error confirmed manually

Out of scope

Remaining polish items from the audit (pressed states, tabular-nums, destructive-button placement, 100dvh) are intentionally deferred.

🤖 Generated with Claude Code

Address findings from the taste-skill UI audit:

1. Load Manrope locally via @fontsource-variable/manrope. The font-family
   referenced "Manrope" but it was never bundled, so every surface silently
   fell back to Segoe UI. Bundled (no CDN) to preserve the no-network policy.
2. Split editor status into success/error kinds so confirmations render in
   emerald, not the error red that previously made successes look like failures.
3. Replace popup window.alert() with an inline aria-live error message.
4. Accessibility: fix inverted heading order (h3 -> h4 for card subsections),
   wrap editor status/progress in aria-live, and make the editor root a <main>.

Also adds CLAUDE.md guidance for future Claude Code sessions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DCCA DCCA merged commit 38728dd into main Jun 20, 2026
0 of 2 checks passed
@DCCA DCCA deleted the fix/ui-audit-batch branch June 20, 2026 21:34
DCCA pushed a commit that referenced this pull request Jun 22, 2026
PRs #3-#5 (UI refactor) and a new CLAUDE.md landed on main without
Prettier formatting, so the format:check gate added in the hardening
sweep failed on main. Format the 4 offending files (CLAUDE.md,
badge.tsx, editor/main.tsx, viewer/main.tsx). No logic changes.

All gates pass locally: typecheck, lint, format:check, test (34), build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJ5c2e5VcKVhugy7TAzi4W
DCCA added a commit that referenced this pull request Jun 22, 2026
Apply Prettier to CLAUDE.md and the UI files (badge, editor, viewer) that landed unformatted via PRs #3-#5, restoring the format:check gate on main. No logic changes.
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