Skip to content

refactor(ui): migrate workspace buttons to the Button primitive (#71 Wave 1) - #102

Open
NickCrew wants to merge 9 commits into
mainfrom
71-button-migration-wave-1
Open

refactor(ui): migrate workspace buttons to the Button primitive (#71 Wave 1)#102
NickCrew wants to merge 9 commits into
mainfrom
71-button-migration-wave-1

Conversation

@NickCrew

Copy link
Copy Markdown
Collaborator

Summary

Migrates workspace buttons onto the Button/IconButton primitives (#68) — Wave 1 of the UI primitive consolidation (milestone M12) — and resolves a primary-button color inconsistency the migration surfaced.

Migrated here: Build, Match, LinkedIn, Recruiter, Debrief, Letters, Admin (~80 inline <button className="*-btn*"><Button>/<IconButton>). AccountPage already landed on main earlier under #71.

Why

The M12 audit found 49 forked .{ws}-btn* classes across ~8 workspaces — convention-only consistency had degraded into copy-and-diverge (a single button restyle meant editing ~49 class defs across 12+ files). This puts callers on one component.

Primary-color fix (the headline). The migration revealed Button.primary was white (mirroring the literal .btn-primary), but all 9 forked workspaces + the Workspace Shell convention + #31 use accent blue for the primary CTA. So primary is now accent blue, and a new solid variant carries the white emphasis treatment (Download PDF). Net visual change is zero — the 9 forks stay blue via primary; previously-white Build/Account buttons stay white via solid. The variants are simply named correctly now.

Alternatives rejected

  • Keep primary white, converge forks to white — would turn 9 workspaces' main CTAs white; contradicts the convention and Standardize AI-action button styling and labels site-wide #31.
  • Add an accent variant, keep primary white — preserves the look but enshrines two competing "primary" styles rather than resolving the inconsistency.

Scope notes

Verification

pnpm run typecheck  → exit 0
pnpm run test       → 210 files, 3443 passed, 0 failed
pnpm run build      → built in 18.4s, exit 0

New variants pass WCAG AA on solid fills in both themes (primary 5.81/7.23, solid 17.85/16.51).

⚠️ Visual review requested

Unit tests are blind to color (jsdom doesn't apply CSS). Please eyeball both light and dark themes: workspace primary CTAs (now blue), the white Download PDF (solid), and the migrated icon/danger buttons. The primary→blue recolor is the change most worth a human glance.

Closes #71

@vercel

vercel Bot commented Jun 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
facet-app Ignored Ignored Preview Jun 29, 2026 2:03am

@supabase

supabase Bot commented Jun 28, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project zxcptjtlcvbtvzxybqio because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@NickCrew
NickCrew force-pushed the 71-button-migration-wave-1 branch from bb9c95c to 0082f2e Compare June 29, 2026 02:02
@github-actions

Copy link
Copy Markdown

Bundle Size Report

Category Size
Total assets 37.72MB
JavaScript (91 chunks) 6.58MB
CSS 370.01KB
WASM 27.99MB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

Button migration Wave 1 — global-class + small forked workspaces

1 participant