FAB
Round: pinned to the corner, floating above content
Extended: icon + label for the headline action
Sizes: small (40) · standard (56) · large (72)
Speed-dial: expands to mini actions (Enter/Space · Esc to close)
Lowered / disabled: sheds its lift, stays visible
Last action: none yet · fired 0 times. The island is live.
The speed-dial is a distinct idiom, not a surface variant. It deliberately does not fold
onto the Popover / Menu surface. A Popover or Menu is one overlay surface holding a list of
text rows; a speed-dial is a stack of individual floating mini-actions, each a real
NockerlIconButton with its own lifted label chip, radiating from the FAB. Collapsing it onto a
single menu surface would erase the pattern.
It still obeys the overlay surface grammar: every label chip is a lifted card, built from a
neutral drop shadow + a top catch-light + the card-surface fill + a hairline, on the control
radius. That is the chip-scale of the very same Popover recipe (no glow, no colored shadow), and
the open / close behavior is the shared NockerlOverlay (scrim, focus-trap, Esc). Same laws,
the right idiom.
Parameters
Section titled “Parameters”- Fill (resolved): the FAB fill is a solid accent cyan
circle. The tonal and outline treatments are retired. The shipped Android FAB (today a tonal
surfaceContainerHighestcircle with a cyan outline + icon) conforms to the solid accent. - No FAB wrapper: Android has no
NockerlFab, so call sites composeSurface(CircleShape)+nockerlShadow(Level3)by hand, or the M3 builders. A wrapper should be added so the lift + accent are not re-derived per screen. - Swift: Nockerl Voice ships no FAB. Its circular record affordance
(
RecordingHUD.swift) is the nearest relative..nockerlFab/.nockerlFabExtendedare the intended styles, not yet implemented. - Sizes: web exposes
size(small/standard/large); Compose uses distinct builders; Swift is fixed.