Site Components — Contract for Page Subagents
Imports
Rules
- Do NOT redefine
<Nav> or <Footer> in page files. They are wired in src/app/(frontend)/layout.tsx.
<StatusTerminal> reads NEXT_PUBLIC_BUILD_SHA and NEXT_PUBLIC_BUILD_REV at build time. Accept location and status props to override defaults.
<GridOverlay> is position: absolute — wrap parent in relative overflow-hidden.
Color Token Classes
| Token |
Tailwind class |
| Background |
bg-background |
| Primary accent |
text-primary, bg-primary |
| Secondary |
text-secondary |
| Tertiary (terminal green) |
text-tertiary |
| Surface base |
bg-surface-container |
| Surface low |
bg-surface-container-low |
| Surface high |
bg-surface-container-high |
| Surface highest |
bg-surface-container-highest |
| Surface lowest |
bg-surface-container-lowest |
| Underscore aliases |
bg-surface_container_high, text-on_surface, text-outline_variant |
| Text default |
text-on-surface |
| Text muted |
text-on-surface-variant |
| Border ghost |
border-outline-variant/15 |
Typography Utility Classes
| Class |
Usage |
.display-lg |
Hero headline (H1) |
.display-md |
Sub-hero or section hero |
.display-sm |
Large section titles |
.headline-lg |
Section headings (H2) |
.title-lg |
Card / module titles (H3) |
.body-lg |
Primary body copy |
.body-md |
Secondary / card body |
.label-md |
ALL CAPS metadata labels |
.label-sm |
Tiny ALL CAPS technical labels, chips |
Button Variants
Design Rules (from DESIGN.md)
- No
border-1 solid at 100% opacity. Use border-outline-variant/15 or tonal shifts.
- No
rounded-full on cards. Use rounded-md (0.375rem) or rounded-sm.
- No drop shadows on cards sitting on
bg-background. Use bg-surface-container-high lift.
- Glass surfaces: add class
glass (backdrop-blur-24px + semi-transparent surface_bright).