fix(design): claim audit part 1b — whole-row switches, the field-family edge, state-layer hovers, icon links, reason-disabled controls, 24/44 targets (E28)
- F12 (owner: A): SwitchRow, the whole settings row toggles; a Config boolean toggles from its title and hint (a label pointed at the switch). - F14 (owner: B): the form dropdown trigger wears the field frame (see-through, the >= 3:1 edge); labelled pills keep the faint edge and the accent-edge hover. DESIGN says so, with log rows. - F6: ~15 bg-card / bg-border / opacity hovers onto the B3 state layer; a lint rule (HOVER_SWAP) refuses the swap, contract-tested. - F10: bare 14px icon links onto IconLink / LinkButton; a local lint rule refuses a glyph-only <a>. - F13: reason-disabled controls are aria-disabled (Users, Channels backfill, Discovery, Scheduler runs, Config tests); FocusSafeButton now swallows the click of a caller's aria-disabled; the Config tests say why while dirty (testDirty, HU/EN). - F5/F11: every control measured live at 24 (mouse) and 44 (coarse) across every page; touch-target is a utility that wins over a caller's min-h-6; link variants carry it too; SegmentedToggle, Tabs, NavRail, menu rows, PriorityStepper, sliders, CheckRow, InnerInput, card links and the rest. - F9: DismissibleChip's label reaches the chip's 24; the Combobox chips are DismissibleChips. - F15: the "+N" / "More..." open state worded as it renders.
This commit is contained in:
@@ -7,7 +7,10 @@ import { FocusSafeButton } from "./FocusSafeButton";
|
||||
// The dropdown trigger (docs/DESIGN.md A5, E28 S3c): the one button that opens a list of choices —
|
||||
// `SortControl`, `FilterSelect`, the view switcher, the date filter. By context: a pill at the toolbar's
|
||||
// 28 (in a toolbar the pill means "a filter or a choice"), or r8 at the form's 32, full width, lining up
|
||||
// with the inputs around it. Open is the accent edge and the chevron turned over. The popover wiring
|
||||
// with the inputs around it. The form trigger is one of the field family, so it wears the field's frame
|
||||
// (see-through, the ≥ 3:1 `edge-strong`) and does not stand out among the inputs; the toolbar pill keeps
|
||||
// the pills' faint edge, its label naming it (owner decision F14). Both hover by the accent edge. Open is
|
||||
// the accent edge and the chevron turned over. The popover wiring
|
||||
// (ref, `getReferenceProps`, the accessible name carrying the value) is the caller's.
|
||||
export const SelectTrigger = forwardRef<
|
||||
HTMLButtonElement,
|
||||
@@ -30,9 +33,11 @@ export const SelectTrigger = forwardRef<
|
||||
ref={ref}
|
||||
type="button"
|
||||
className={clsx(
|
||||
"glass-card glass-hover inline-flex shrink-0 items-center gap-1.5 border text-left text-sm transition touch-target",
|
||||
context === "toolbar" ? "h-7 rounded-full px-3" : "h-8 w-full rounded-lg px-2.5",
|
||||
open ? "border-accent" : "border-border",
|
||||
"glass-hover inline-flex shrink-0 items-center gap-1.5 border text-left text-sm transition touch-target",
|
||||
context === "toolbar"
|
||||
? "glass-card h-7 rounded-full px-3"
|
||||
: "h-8 w-full rounded-lg bg-transparent px-2.5",
|
||||
open ? "border-accent" : context === "toolbar" ? "border-border" : "edge-strong",
|
||||
className,
|
||||
)}
|
||||
{...rest}
|
||||
|
||||
Reference in New Issue
Block a user