Tray popover
LAW — locked, CI-gatedTray popover
Section titled “Tray popover”Status: law — the desktop chapter is normative in docs/chapters/desktop.md (ratified v1).
the surface. the popover is the tray icon unfolded: fused anchor, flush seam, one material across the join. it grows from its anchor at 180ms, and dismissal is triple-redundant: click away, escape, or toggle the anchor. escape closes the innermost layer first, always.
rule (law).
- 440px panel; the product’s primary noun gets the primary area (one organizer per surface).
- routine operation completes in the popover. opening the full window for a routine task is a design failure by definition.
- auto-scale first: the panel fits its work area down to a 960×540 quadrant; a density override exists only as a settings backup.
- travel is costed from the tray icon; panel height is the travel budget, not a default to fill.
- the full keyboard model comes from the behaviour layer — focus trap and restore, roving tabindex, typeahead — with number keys applying items by position while the popover is open.
- state strips (drift, messages, suggestions) appear only when their state exists, as slim strips — icon, one line, actions — never as permanent cards.
candidate — preview-commit. hover previews; click or tap commits. a preview is a read: it runs free, changes nothing, and reverses itself when the pointer leaves. a commit is a write: it needs the hand. no surface may apply a change on hover alone, and no preview may leave residue after it ends. (candidate, on the record in the audit fold-in patterns; not law until it graduates.)
named gaps in this chapter. the stack-height law (maximum, compression order, scroll behaviour) and the teaching retirement signal (what count or signal retires a hint) are undecided. the chapter names both rather than papering over them.
worked example. the constitution’s §15 works this surface end to end: the popover as the suite’s display utility, annotated against the rules.
demonstrated
Section titled “demonstrated”the surface’s own furniture, live: a scene card at rest, and one open. routine operation completes here — nothing above asks for the full window.
- displays
- main at 144 hz
- brightness
- stops at 80
- drift
- scene says 240
Canonical chapter: docs/chapters/desktop.md; map and spine in §13 of the design language document, worked example at §15.