facett-tabbar — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: The generic themed 2-row nav toolbar — a control strip (pickers/toggles/buttons) + a two-row strip of tab headers with the active tab carrying the palette accent.
- Does: Two surfaces.
TabBar<'a>— a borrowed, zero-alloc widget (&[TabItem]+ anactiveid);show()/show_anim()return the id of the newly-clicked tab (UnderlineTweenanimates the accent);state_json()reports tabs/active/split/controls; supportssplit_atandBarControls (picker/toggle/button).TabBarView— an owning canonical Facet (local()/remote()/state_json()/caps()) that tracks its own active, re-keys on click, and counts switches.TabItemkeepsid(click/state_json) separate fromlabel(painted). Verbatim port of nornir'sfacett_ui.rsbar. - Key deps:
facett-core(Facet, theme),egui,serde/serde_json. - Shape: lib, single module (~585 lines). Key types:
TabItem,BarControl,TabBar<'a>,UnderlineTween,TabBarView. - Observed role in the workspace: The re-home of nornir's top-bar; nornir re-points to it once its viz clears the egui-snarl 0.33→0.34 pin.
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: