mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-26 18:31:34 +01:00
Two defects from the the design review design review of the recessed recovery
treatment (the accessibility follow-up).
Contrast: the "Details" / "Hide details" hint used
`text-muted-foreground/70`, which measures 2.71:1 in light and 4.20:1 in
dark against the surfaces this line renders on — a serious axe
`color-contrast` violation at 12px. The hint now inherits the button's
undiluted `text-muted-foreground` (4.73:1 light, 7.63:1 dark, and 4.53:1
against the `hover:bg-muted/50` wash) and carries its subordinate rank by
weight instead of by contrast, so the quiet-vs-warning hierarchy is
unchanged.
Overflow: at 390px the row painted the recovery chip twice — once in the
`sm:hidden` leading cluster and again beside the identifier, where the
copy had no desktop gate. Because badges are `whitespace-nowrap
shrink-0` inside a cluster with no `min-w-0`, that duplicate is what
pushed the document from 390px to 403px and carried the chip past the row
boundary. The identifier-side copies are now gated `hidden
sm:inline-flex`, with a `max-w-(--sz-12rem)` ceiling and a truncating
label as backstops against a future longer label.
Verified in Chromium against the built storybook, with negative controls
that re-introduce each old treatment in-page to prove the harness is
sensitive to what it clears: 19/19 checks — 390px light/dark documents
stay at 390px (control reproduces the overflow), axe reports zero
contrast violations on the disclosure in both themes (control is flagged
serious at 2.71/4.17, matching the computed ratios), desktop labels and
Enter/Space disclosure behaviour unchanged.
Also pins each `InboxRowChips` story row to the state it demonstrates:
post-liveness the fixture's live `executionRunId` had collapsed several
rows into `observe_only`, leaving no `in_progress` row and hiding the
widest label ("Workspace recovery needed") the row must survive.
pnpm check:token-gates clean; 134 focused Vitest tests pass.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
@paperclipai/ui
Published static assets for the Paperclip board UI.
What gets published
The npm package contains the production build under dist/. It does not ship the UI source tree or workspace-only dependencies.
Storybook
Storybook config, stories, and fixtures live under ui/storybook/.
pnpm --filter @paperclipai/ui storybook
pnpm --filter @paperclipai/ui build-storybook
Typical use
Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.