The whole design-system glyph set, named — the house tier and the curated library tier, one name table on both kits. Every one, not a sample: the question this answers is "is there one for X", and a sample cannot answer it. A host adds its own glyphs by name on a KitIconScope.
Spec of record: design-system/components/icons/Icons.d.ts
0
Knobs
Live
Real widgets, built from the real kit. Turn a knob and it rebuilds; the
theme bar above applies the design system's own tokens — including
anything you changed under Customize — and the device selector uses the
same sizes the golden baselines gate on, so what you see here is what CI
holds the widget to.
Press Focus on any preview to take it to the full window —
at a desktop width that renders most devices at 1:1, which is when the
widget's own controls become clickable. The bar always states the device
and the scale, so a shrunk preview says it is shrunk. Esc leaves.
family_icons
Knobs
Theme
Dart for these values
family_icons()
What it is made of
The widgets this screen assembles, with their full API below. They
used to live on a second entry of their own; one thing you choose
gets one page.
KitIcon widget
Renders one glyph, by name, from the design-system set — the kit's table (KitGlyph) or a host glyph registered on a KitIconScope. Sizes per the DS: 16 default · 20 in nav rails · 13 inside buttons · 10 on a pin head.
Full dartdoc
Renders one glyph, by name, from the design-system set — the kit's table (KitGlyph) or a host glyph registered on a KitIconScope. Sizes per the DS: 16 default · 20 in nav rails · 13 inside buttons · 10 on a pin head. Color follows `currentColor` semantics — it inherits the ambient IconTheme color, falling back to DesignTokens.ink; pass color to override. Stroke weight comes from DesignTokens.iconStroke and scales with size exactly as the source SVG's viewBox scaling does. AN UNKNOWN NAME IS AN ABSENT GLYPH, never an error: a glyph that resolves to nothing draws fallback when one is given (a pin or a legend key passes KitGlyph.dot) and otherwise nothing, in a box of size, so a row's layout does not jump. The icon itself is excluded from semantics — a kit icon marks identity or action and the wrapping control (button, nav item) carries the accessible name. ```dart KitIcon(KitGlyph.sync, size: 15) KitIcon(KitGlyph.syringe, size: 20) // nav rail KitIcon(KitIconRef.named('wellhead')) // a host glyph ```
KitIcondefault constructor
Knob
Type
Default
What it does
glyph *
KitIconRef
—
Which glyph to render.
color
Color?
null
Explicit paint color. Null inherits the ambient IconTheme color (`currentColor`), falling back to DesignTokens.ink.
fallback
KitIconRef?
null
The glyph drawn when glyph names nothing — the surface's own "no glyph" rule. Null draws nothing in a box of size.
size
double
16
Rendered edge length in logical px. DS sizes: 16 default · 20 nav · 13 in-button · 10 on a pin head.
KitIconScope widget
The host's own glyphs, by name, for every `KitIcon` below it — the rare domain mark no library has, without forking the kit. Install ONCE, in the app root's `MaterialApp.builder` beside `AppPointerPostureScope`, so every route (pushed ones included) sees it: Then `KitIconRef.named('wellhead')` draws…
Full dartdoc
The host's own glyphs, by name, for every `KitIcon` below it — the rare domain mark no library has, without forking the kit. Install ONCE, in the app root's `MaterialApp.builder` beside `AppPointerPostureScope`, so every route (pushed ones included) sees it: ```dart const hostGlyphs = { 'wellhead': KitGlyphDef([KitGlyphElement('M8 21V9h8v12M6 9h12M12 9V3')]), }; MaterialApp( builder: (context, child) => KitIconScope(glyphs: hostGlyphs, child: child!), ); ``` Then `KitIconRef.named('wellhead')` draws it anywhere a glyph goes, and `parseIconName(s, hostGlyphs: hostGlyphs)` resolves it from data. A name matches `^[a-z][A-Za-z0-9]*$` and may not fold onto a kit glyph or another host glyph; a violation throws an ArgumentError here.
KitIconScopedefault constructor
Knob
Type
Default
What it does
child *
dynamic
—
glyphs *
Map<String, KitGlyphDef>
—
The host's glyphs, by name (validated).
Types its knobs take
These are not things you choose — they are the shapes the knobs above
expect. They live under this entry rather than in the navigation for
exactly that reason.
KitGlyphDef support
One glyph's drawing: path data on the 24 grid plus its tier grammar. Every KitGlyph carries one, and it is also the shape a HOST GLYPH is written in — registered by name on a `KitIconScope` for the rare domain mark no library has (Icons.d.ts, A HOST REGISTERS ITS OWN GLYPHS BY NAME).
Field
Type
Default
What it does
elements *
List<KitGlyphElement>
—
The glyph's elements, painted in order.
cap
KitGlyphCap
KitGlyphCap.butt
Stroke caps.
flip
bool
false
Whether the glyph mirrors under an RTL `Directionality` (back/open, the library's left/right arrows, undo/redo, log-in/out).
join
KitGlyphJoin
KitGlyphJoin.miter
Stroke joins.
Field
Type
Default
What it does
elements *
List<KitGlyphElement>
—
The glyph's elements, painted in order.
flip
bool
false
Whether the glyph mirrors under an RTL `Directionality` (back/open, the library's left/right arrows, undo/redo, log-in/out).
KitIconRef support
A glyph, by NAME — what every glyph-bearing kit API takes (a pin, a legend key, a nav item, an action, an empty face, a category card). Two shapes implement it: - a KitGlyph — a glyph in the kit's own name table, checked by the compiler (`KitGlyph.syringe`); - KitIconRef.named — any name as a…