← Corpus / dididecks-ai / sitemap
DeckChrome — themable floating navigation capsule for Play-UI (and eventually Scroll-UI variant cycling)
Floating bottom-right capsule with paginator, ← / → slot nav, TOC link, optional ↑ ↓ variant cycling, and the full keyboard contract (← → Space PageUp/Down Home End F C T Esc). Replaces v0.1's heavy dark PlayChrome bar. Structure / behavior / styling are separated by discipline: structure is the Astro template, behavior is the inline keyboard script and `ddd:section-*` event dispatch, styling reads only `--ddd-chrome-*` CSS custom properties (neutral defaults inline; consumer overrides at any wrapping element). Lives inside `DeckOverlay--Play-UI` as the default `nav` slot today; will also serve as the variant-cycling element of `DeckOverlay--Scroll-UI` under Phase 2.
- Path
- sitemap/components/DeckChrome.md
- Authors
- Michael Staton
DeckChrome
Keyboard contract (preserved verbatim from v0.1 PlayChrome)
| Key | Action |
|---|---|
| ← / PageUp / Shift+Space | prev slot |
| → / PageDown / Space | next slot |
| Home | first slot |
| End | last slot |
| F | toggle fullscreen |
| C | toggle chrome visibility (sets data-chrome-hidden on closest [data-play-root]) |
| T | jump to TOC |
| Esc | exit fullscreen + restore chrome |
Event contract
Listens for ddd:section-changed ({index, isFirst, isLast, sectionId?}) and updates data-at-first / data-at-last on its root — the boundary state that hides the irrelevant arrow at the first/last slot. Dispatched by Phase 2’s PageAsDeckWrapper (not yet built).
Reserved dispatch names for when Scroll-UI variant cycling is wired through DeckChrome buttons: ddd:section-prev / ddd:section-next. Not emitted today (variant nav uses real hrefs).
Theming namespace
Reads only --ddd-chrome-* custom properties. Neutral defaults inline; richer defaults at apps/deck-shell/src/styles/themes/neutral.css; per-client overrides go in client-sites/<client>/src/styles/dididecks-chrome.css (scoped via data-deck-skin="<client>").
Status
- ✅ Shipped at 470 LOC.
- ✅
PlayChromeis now a deprecated shim around it. - ⚠️ Per-client override stylesheet for chroma (Restore plan Step 7) not yet authored.
- ⚠️ Sibling primitives from the same plan still missing:
DeckHeader,ModeToggleScrollPlay,ContentFit.
Composition
Default-composed by DeckOverlay--Play-UI as the nav slot.
The /play/[slot].astro route currently mounts DeckChrome directly; migration to DeckOverlay--Play-UI is the integration that closes A++.2 and adopts this composition.
Related
- [[DeckOverlay—Play-UI]] — primary host.
- [[DeckOverlay—Scroll-UI]] — future host (Phase 2 variant cycling).
- [[../routes/play-slot]] — current direct consumer.
- [[../../plans/Restore-Calmstorm-Nav-Elegance-as-Themable-Shell-Primitives]] — origin plan, full theming-token catalog.