4.1 KiB
4.1 KiB
Design tokens
The complete token table used across mockups and (eventually) production console.
Color palette
:root {
/* Backgrounds */
--bg: #000000;
--cell: #0A0E12;
--cell-2: #141a20;
--cell-3: #1d2630;
/* Primary navigation chrome */
--ink: #66CCFF; /* dominant cyan */
--ink-2: #99CCFF; /* secondary text/hint */
--bar: #66CCFF;
--bar-dim: #224466;
/* Domain colors (per VLAN / per AI type) */
--cam: #6699FF; /* cameras / VLAN-10 — royal blue */
--hai: #CC99CC; /* compute / VLAN-20 — mauve */
--iot: #99CC99; /* health / OK — green */
--mgmt: #CCCC99; /* management / VLAN-30 — olive */
--wan: #66CCCC; /* WAN / external — turquoise */
/* Semantic */
--warn: #99FFFF; /* warnings — bright cyan */
/* Brand (isolated from semantic UI) */
--brand: #9FCB3A; /* Blocao green — logo only */
/* Text on ink-colored backgrounds */
--hai-text: #000;
}
Typography
| Use | Font | Weight | Size range |
|---|---|---|---|
| Primary sans (titles, buttons, labels) | Antonio | 400, 500, 600, 700 | 9-26px |
| Mono (data, timestamps, code, IDs) | JetBrains Mono | 400, 500, 700 | 8-13px |
Both fonts loaded from Google Fonts. Antonio chosen for its compressed letterforms (LCARS-like), JetBrains Mono for its clarity at small sizes.
Spacing
LCARS-style asymmetric padding. Common values:
- Pill height: 36-40px.
- Card border-radius: 12-14px (asymmetric corners on chrome elements:
border-radius: 0 28px 28px 0etc). - Content padding: 12-18px inside cards.
- Section gap: 6-12px.
Border treatments
- Chrome elements (rail, topbar): solid color blocks with asymmetric rounded corners.
- Content cards: rounded corners (12-14px), border-left accent in domain color.
- Dotted dividers:
border-bottom: 1px dashed var(--cell-3)for sections within a card.
Animation patterns
- Pulse (status dots, "live" indicators): 2s ease-in-out, opacity 0.4 → 1.
- Flow lines (SCADA connections):
stroke-dasharray: 4 8; animation: 1.6s linearshiftingstroke-dashoffset. - Cursor blink (input fields): 1.1s.
- Panel transitions: avoid. View switches are instant.
Iconography
Symbols used as text glyphs (no icon font, no SVG sprite):
▸/◂— section chevrons, "open"/"close".◆— emphasis, brand moment, identified marker.●/◯— running / paused indicators.✓/✗— pass / fail.⊕— secure / encrypted.↑/↓— bridge direction (out / in).↑↑/↓↓— fast-forward / rewind in player.
Custom SVG only for: Blocao logo (the blockhouse mark), the SCADA component renderings in SYNOPSIS.
Domain color usage
| Color | Use cases |
|---|---|
--ink (cyan) |
Default text, active rail pill, chrome accents |
--cam (royal blue) |
CAMS view, VLAN-10 references, camera-related events |
--hai (mauve) |
FRIGATE view, Cell device, edge AI inference |
--iot (green) |
OK status, health passing, "good" states |
--mgmt (olive) |
GITOPS view, VLAN-30, system management, deferred topics |
--wan (turquoise) |
WAN view, external connections, hub references |
--warn (bright cyan) |
Warnings, alerts, attention-needed |
--brand (lime green) |
Logo, brand chip, brand moments only |
Pattern: when navigating to a view, the chrome of the topbar shifts to that domain's color. CAMS makes the topbar accent royal blue; FRIGATE makes it mauve. Reinforces "what mode am I in".
Accessibility considerations
- All foreground text against
--bgor--cellmeets WCAG AA at the size used. - Status is never communicated by color alone — always paired with shape (✓/✗) or text label.
- Animations respect
prefers-reduced-motion: reduce(currently CSS-only; full implementation in production).
Tooling
Tokens will be exported to:
tokens.css— CSS custom properties (current).tokens.json— for design tools and JS imports (planned).tokens.figma.json— for Figma library sync (planned).
These live in packages/design-tokens/ of the future code monorepo.