Lane 0, second PR: the design system's controls, content and overlays (#364) #740
Loading…
Reference in a new issue
No description provided.
Delete branch "build/lane0-components"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Lane 0's second PR: twenty-six components on
/designnow, 138 states, each with a test. Nothing in the app uses the library yet.Controls:
Field,Select,Textarea(a real label; hint and error joined byaria-describedby;aria-invalid);Toggle(role="switch"; a disabled switch says why);ChipandChipButton;Segmented(a radiogroup with a roving tabindex);TabsandTabPanel(arrows, Home and End);InlineError;AudiencePicker(#593's five audiences as one control, anything narrower than the table in the GM tint);DateTime(the structured picker of CA-214: a wall clock in the campaign's own time, quarter hours that never snap an odd minute, the time waits on the day and says so).Content:
CardandPanel;ListandListRow(a clickable title, never a clickable row);Label;Meter(role="meter");Fold;PersonDiscandPerson(a member's colour and initial, the GM mark, a person's pronouns and never a character's);Doc,Section,KV,StatRow;Table, with the roll-table look as arollvariant rather than every table's first column.Feedback and overlays:
SaveState(D40's four states, one live region so the change is announced);Menu,MenuGroup,MenuItem(role="menu"on an anchored popover: Escape and Tab close and return focus, arrows and Home/End move, outside click closes, a disabled item says why);useOnClickOutside.The modal's typed name now goes through
Field, andModal.cssdrops its temporary copy of the form rules.index.jsexports all of it.Two decisions for the record, from the delegates' reports: the kit keys the switch and the segmented control on
aria-pressed; here they carryaria-checked(the right attribute forrole="switch"androle="radio") and the CSS keys on that.Menuisrole="menu", so Tab closes it; the bell's panel, which has its own head and foot controls, will want arole="dialog"variant when lane 1 builds it.Lint clean under jsx-a11y at error and the React Compiler rules; 1,041 tests pass; render-checked at
/designin both themes.Next in the series: the shell components (app bar, Contents, account menu, bell, search, footer, live bar).
🤖 Generated with Claude Code