Component · Overlays
Drawer
Edge-mounted secondary surface for inspectors, task rails, filters, details — left/right/top/bottom, modal/non-modal, resizable depth, focus trap, opener restore, nested overlays, compact handle, fullscreen promotion; preserves host selection/scroll.
- Kind
- widget
- Input
- interactive
- Canvas
- 120×40
Live preview
Static terminal poster. Choose Run live to start the Rust demo.
01 · Purpose
What it is for
Edge-mounted secondary surface for inspectors, task rails, filters, details — left/right/top/bottom, modal/non-modal, resizable depth, focus trap, opener restore, nested overlays, compact handle, fullscreen promotion; preserves host selection/scroll.
Best fit: Overlays · overlay · widget
02 · Behavior
What the mounted story proves
- 01
Drawer
Representative 120×40 terminal state.
- 02
Passive paint
No keyboard or pointer action is claimed by this representative story.
- 03
Evidence stays explicit
6 covered · 8 partial · 4 missing axes.
03 · Implement
Install, then start from exact code
Install
cargo add termrock --git https://github.com/tailrocks/termrock.git --rev 5283c2acf9154d0cfcd37b1ffe821c00faf90ea2Add TermRock once. Keep domain effects in the host application.
Minimal implementation
Exact Rust setup used by drawer/basic.
Open to load code.
04 · Adapt
Variants and composition
Variants
Use the preview Variant menu when alternate registered stories exist. Each selection mounts a fresh configuration.
Composition
Overlays · overlay · widget
05 · Reference
API, tokens, accessibility
API
DrawerOpen source ↗Tokens
DesignSystemInspect exact story code for roles and capability projection.Accessibility
Input contract mountedNo input claim in the representative story.Contract
Evidence in progress6/23 axes covered06 · Go deeper
Advanced guidance
Ownership boundary
TermRock owns reusable terminal rendering and interaction state. The host owns domain data, policy, persistence, authorization, and side effects.
Evidence status
6 covered, 8 partial, and 4 missing contract axes. Missing evidence is not a behavior claim.
Dismissable Layer
DismissableLayer is the exact public behavior owner for overlay terminal UI.
Fullscreen Viewer
Promotion chrome compact→detail→fullscreen with frozen SourceContext (selection, scroll anchor, focus, breadcrumbs). Host paints CodeBlock/Diff/logs/objects/tasks/media into body slot; nested Esc peels stack first.