Pin the shared frontend style as a repo asset: assets/aura.css (tokens + components), render.rs as first consumer #209
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Pin the shared frontend style as a single repo asset so every future HTML
surface — runtime-rendered (chart/graph viewer) or ad-hoc generated
(demo/report pages) — uses the same palette and component set instead of
re-deriving it by imitation.
Design (settled in-context, 2026-07-04, user-ratified)
Today the style lives in one-and-a-half places: the shared page shell carries
an inline
<style>block as a Rust string literal (SHELL_HEAD,crates/aura-cli/src/render.rs:17), and the viewer JS assets carry their ownhex values. The palette is de-facto Catppuccin-Mocha-derived but pinned
nowhere; an ad-hoc page author can only copy it by reading generated output.
crates/aura-cli/assets/aura.css— design tokens as CSScustom properties (
:root { --bg: #16161a; … }) plus the shared componentclasses (terminal window, cards, badges, stat tiles, callout, result table,
pipeline band, tooltip), distilled from the milestone demo page. A single
file cannot drift internally, and
assets/is already the repo's home forembedded frontend artifacts (six
include_str!consumers today).render.rsbecomes the first consumer: theSHELL_HEADinline style isreplaced by
include_str!("../assets/aura.css")(viaconcat!), so theruntime pages are the pin rather than a copy of it. Pages stay
self-contained (everything inlined, no external requests at view time —
the C9/web-from-disk contract is untouched; only the source of the inlined
bytes moves).
generated HTML against a pre-change baseline; (2) the additive pin — tokens,
var()migration of the existing rules (incl.CHART_CSS, which stays aseparate chart-only block by design), and the component library.
("HTML surfaces embed
crates/aura-cli/assets/aura.css; new componentsextend that file, never fork the palette") — without the rule the asset is
just a findable file, not a pin.
Out of scope: the JS renderers (page-specific logic), the vendored uPlot CSS,
and
graph-viewer.js's internal hex values (migrating JS to read CSS customproperties is a possible later refinement, not v1).
reverse-engineer the palette from a generated chart page.