feat: strip display Vue primitives — DisplayLayout + profile slots #69

Closed
opened 2026-07-10 17:44:33 -07:00 by pyr0ball · 0 comments
Owner

Summary

Add a Vue component library to cf-core for 1920x480 (landscape) / 480x1920 (portrait) strip display hardware. These primitives are needed by at least Turnstone (turnstone#25) and referenced in the strip display spec at circuitforge-plans/circuitforge-core/superpowers/specs/2026-05-17-strip-display-spec.md.

Scope

  • DisplayLayout.vue root layout component; accepts ?profile= and ?orientation= (landscape default)
  • CSS orientation reflow: landscape = 1920x480 horizontal strip; portrait = 480x1920 vertical stack
  • Profile slot system: products register named panels (metrics, alert-feed, macro-buttons)
  • Dark theme default
  • Exported as a separate cf-core package entrypoint so products that do not use it do not pull in Vue as a dep

Consuming products

  • Turnstone sysadmin profile: CPU/RAM/disk/network metrics strip, live alert feed, service macro buttons (turnstone#25)
  • Robin proactive assistant overlay (concept)
  • Potentially: kiwi, osprey (TBD)

Notes

  • cf-core is currently Python-only; this would be the first Vue module. Consider whether it ships as a separate npm package (@circuitforge/display) or as files consumers copy from the repo.
  • Turnstone#25 is blocked on this ticket.
  • The 2026-05-17 strip display spec has the full layout contract; review it before designing the component API.
## Summary Add a Vue component library to cf-core for 1920x480 (landscape) / 480x1920 (portrait) strip display hardware. These primitives are needed by at least Turnstone (turnstone#25) and referenced in the strip display spec at `circuitforge-plans/circuitforge-core/superpowers/specs/2026-05-17-strip-display-spec.md`. ## Scope - `DisplayLayout.vue` root layout component; accepts `?profile=` and `?orientation=` (landscape default) - CSS orientation reflow: landscape = 1920x480 horizontal strip; portrait = 480x1920 vertical stack - Profile slot system: products register named panels (metrics, alert-feed, macro-buttons) - Dark theme default - Exported as a separate cf-core package entrypoint so products that do not use it do not pull in Vue as a dep ## Consuming products - **Turnstone** sysadmin profile: CPU/RAM/disk/network metrics strip, live alert feed, service macro buttons (turnstone#25) - **Robin** proactive assistant overlay (concept) - Potentially: kiwi, osprey (TBD) ## Notes - cf-core is currently Python-only; this would be the first Vue module. Consider whether it ships as a separate npm package (@circuitforge/display) or as files consumers copy from the repo. - Turnstone#25 is blocked on this ticket. - The 2026-05-17 strip display spec has the full layout contract; review it before designing the component API.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/circuitforge-core#69
No description provided.