* fix: meet WCAG AA contrast and name controls for screen readers Storybook's axe addon reported violations in 69 stories, mostly text below 4.5:1, and the story test ignored its reports. Every story now passes axe in both themes and the test fails on any violation. Contrast comes from the theme tokens. The dark accent fill takes the light theme's #2563eb so white text reads on it; accent-colored text moves to primary and solid focus rings to panel-focus, which keep the lighter blue. Dark component, slot, and error colors are lighter; light muted, primary, and issue-warning are darker. The follow bar picks black or white for the followed person's color through a new readableForeground, which canvas labels now share. Listbox names move to the element with role="listbox", the layer and page rename fields get labels, and disabled picker options and checkbox cards expose aria-disabled, which Reka's ListboxItem leaves out. Axe exemptions stay narrow and explained: vue-stream-markdown's code-block landmarks, Reka's toast focus guards, drag placeholders, reverted replies, Design Check's sample of the document's own failing colors, and the Behaviour demo that shows several sections at once. * chore(storybook): title stories by the folders that own them Design System stories follow the families under src/components/ui (Actions, Inputs, Selection, Feedback, Overlays, Layout, Lists, Navigation, Paint), app stories sit under App/<area>, and titles use Title Case. Editor navigation leaves Design System, and the sidebar order drops entries for stories that no longer exist. * fix: keep dimmed rows and reverted replies readable Fading a selected hidden layer's row faded its blue highlight with the white name, down to 2.76:1 on the light panel, so selected rows dim only their icon. A reverted reply dims its text to the muted color instead of fading to half opacity, so it reads at 4.5:1 and stays in the axe scan, including the tool-call disclosure inside it. The Markdown landmark exemption now covers only the stories that render code blocks.
9 lines
340 B
TypeScript
9 lines
340 B
TypeScript
import type { Color } from './primitives'
|
|
|
|
export const BLACK: Color = { r: 0, g: 0, b: 0, a: 1 }
|
|
export const WHITE: Color = { r: 1, g: 1, b: 1, a: 1 }
|
|
export const TRANSPARENT: Color = { r: 0, g: 0, b: 0, a: 0 }
|
|
export const DEFAULT_FONT_FAMILY = 'Inter'
|
|
export const DEFAULT_STROKE_MITER_LIMIT = 4
|
|
export const DEFAULT_STROKE_WEIGHT = 1
|