Temporary
Transient surfaces that appear on top of the page in response to an action and dismiss again — sheets, action lists, a floating speed-dial, and a quick peek. Each is a thin composition over the <Surface> primitive and/or a DS overlay, so focus-trapping, Esc / backdrop dismissal, anchoring and theme all come from one place. Flip the theme in the top bar to confirm every surface tracks it.
- BottomSheet
- A sheet docked to the bottom edge with a grabber handle that snaps to its content height (caps at 85vh, then scrolls). Keeps the Drawer's Dialog for focus-trap / Esc / backdrop and composes the panel as a Surface (modal elevation, rounded top).
- ActionSheet
- An iOS-style bottom action list — a Surface card of choices (one can be prominent, one destructive) with a separated Cancel card below. Built on the same Dialog overlay; each action fires then auto-dismisses.
- FabMenu
- The @phauna/ds FAB that expands into a small stacked speed-dial of actions, each with a Surface label pill. A roving-tabindex menu (ArrowUp/Down, Home/End, Esc) that closes on outside press and returns focus to the FAB.
- DropdownMenu
- An anchored action list (the kebab / row-actions / context menu) — a real role=menu with roving-tabindex menuitems (↑/↓/Home/End/Enter/Space/Esc), focus trap + return-to-trigger, outside-click/Esc close — composed over the same Popover overlay as Flyout. Items are declarative ({label, icon?, onSelect? | href?, destructive?, disabled?, visible?}); on mobile it degrades to an ActionSheet from the same list. Ships with KebabButton + a RowActionsMenu preset.
- PeekPreview
- A quick preview card revealed by press-and-hold (touch) or hover (mouse) via the Popover overlay — anchoring, Esc / outside-press dismissal and keyboard toggle come from the Popover; PeekPreview drives open state from pointer intent and lays out the preview.
BottomSheet
A bottom-docked sheet for a secondary flow on small screens — a filter panel, a quick form, a set of details. The grabber signals draggable intent; the panel snaps to its content and scrolls once it hits 85vh.
ActionSheet
An iOS-style list of contextual actions docked to the bottom. The action card and the Cancel card are visually separate; destructive actions read in the bad ink and a primary action can be made prominent.
Last action: —
PeekPreview
A quick preview you reveal without navigating — hover the chip with a mouse, or press-and-hold on touch. Keyboard users focus it and toggle with Enter/Space; Esc closes.