Usage
Icon renders one generated glyph as an inline SVG. Import the glyph from @prepared911/ui/icons/<kebab-name> (or by name from @prepared911/ui/icons) and pass it to glyph. Size is an IconSize token; paint is currentColor, steered by the optional foreground prop or by the surrounding text color when foreground is Foreground.Inherit (the default).
Use icons for inline clarification next to labels, list leads, and status rows; everywhere dispatch surfaces need quick visual scanning without becoming clickable targets on their own.
Text where the icon reinforces meaning already present in words (status + label, category + title).foreground to a member of Text's Foreground enum when the icon should paint a token directly (Storybook ForegroundMatrix). Members with an icon rung (Default, Subtle, Muted, Disabled, OnAccent, Transient*) bind --color-icon-*; Link, Accent, AccentStrong, and the status members bind the same foreground tokens as Text. With Foreground.Inherit, set color on a wrapping Text run instead (Storybook InContext under Composition).
A state that swaps an outline for a fill uses two glyphs, not a style prop: hand-alt-outlined while off and hand-alt-filled while on (ControlIsland's raise hand). Pass each to glyph from its own subpath.
One root svg sized by IconSize classes (--icon-xs through --icon-lg). Lucide-sourced glyphs stroke currentColor; filled fallbacks fill currentColor. The glyph aligns with adjacent text baselines as an inline icon.
label for decorative icons beside visible text; pass label only when the icon is the sole carrier of meaning at that point in the tree.size to the adjacent text step: dense tables use IconSize.Small or ExtraSmall; page headers may use Medium or Large.rotation applies quarter-turn steps via IconRotation (Storybook Rotation).spin turns the glyph continuously for loading affordances owned by a control; it stops under reduced motion (Storybook Spin).Interactable or Button when clicking is required.