PR #373 (issue #367) moved role tokens (background, foreground, muted-foreground, ring, border) from .edition-view-scoped to global :root, and introduced a paper-* token family as a stopgap for light/white admin and shared shadcn chrome. Branch claude/implement-367-zrn4kp has the latest work (rebased onto current main after #373 merged), including a fix already pushed there for the Textarea focus ring and Tabs active state.
Remaining items surfaced during PR #373 review:
Needs a real fix (architectural)
MarkdownText renders white-on-white in admin. src/pages/admin/ArtistsManagement/BulkEditor/TextareaCell.tsx renders populated artist descriptions through src/components/ui/markdown-text.tsx, whose prose-headings:text-foreground/prose-p:text-foreground/prose-code:text-foreground classes now resolve to white (the global --foreground). On the white admin card this text is unreadable. Can't just swap to paper-* globally — MarkdownText is also used on dark edition-view surfaces (SetInfoCard, IndividualArtistCard, SetDescription, InfoText, etc.) where text-foreground (white) is correct. Needs a variant/prop so the component can pick paper-* vs. default tokens by context.
Needs a small fix (missing border-paper-border)
Same root cause as the fixed items below — these paper-surfaced components still use an unqualified border, which resolves to the global translucent purple --border instead of the intended paper border:
src/components/ui/alert-dialog.tsx:37 — AlertDialogContent's border needs border-paper-border alongside it.
src/components/ui/alert.tsx:11 — the default Alert variant needs border-paper-border added.
src/components/ui/toast.tsx:30 — the default Radix toast variant needs border-paper-border added.
Already fixed (no action needed, listed for completeness)
- Toast
ToastClose white-on-white — fixed via paper-foreground.
- Textarea focus ring (
ring-ring → ring-paper-ring) and Tabs active state (bg-background/text-foreground → paper-*) — fixed on branch claude/implement-367-zrn4kp (commit def1d36).
Branch
All follow-up work should build on claude/implement-367-zrn4kp, which is rebased onto current main.
PR #373 (issue #367) moved role tokens (
background,foreground,muted-foreground,ring,border) from.edition-view-scoped to global:root, and introduced apaper-*token family as a stopgap for light/white admin and shared shadcn chrome. Branchclaude/implement-367-zrn4kphas the latest work (rebased onto currentmainafter #373 merged), including a fix already pushed there for the Textarea focus ring and Tabs active state.Remaining items surfaced during PR #373 review:
Needs a real fix (architectural)
MarkdownTextrenders white-on-white in admin.src/pages/admin/ArtistsManagement/BulkEditor/TextareaCell.tsxrenders populated artist descriptions throughsrc/components/ui/markdown-text.tsx, whoseprose-headings:text-foreground/prose-p:text-foreground/prose-code:text-foregroundclasses now resolve to white (the global--foreground). On the white admin card this text is unreadable. Can't just swap topaper-*globally —MarkdownTextis also used on dark edition-view surfaces (SetInfoCard,IndividualArtistCard,SetDescription,InfoText, etc.) wheretext-foreground(white) is correct. Needs a variant/prop so the component can pickpaper-*vs. default tokens by context.Needs a small fix (missing
border-paper-border)Same root cause as the fixed items below — these paper-surfaced components still use an unqualified
border, which resolves to the global translucent purple--borderinstead of the intended paper border:src/components/ui/alert-dialog.tsx:37—AlertDialogContent'sborderneedsborder-paper-borderalongside it.src/components/ui/alert.tsx:11— the defaultAlertvariant needsborder-paper-borderadded.src/components/ui/toast.tsx:30— the default Radix toast variant needsborder-paper-borderadded.Already fixed (no action needed, listed for completeness)
ToastClosewhite-on-white — fixed viapaper-foreground.ring-ring→ring-paper-ring) and Tabs active state (bg-background/text-foreground→paper-*) — fixed on branchclaude/implement-367-zrn4kp(commitdef1d36).Branch
All follow-up work should build on
claude/implement-367-zrn4kp, which is rebased onto currentmain.