Set up Tailwind CSS v4 with full design token system from Stitch project (obsidian surfaces, neon cyan/magenta/lime palette, Space Grotesk + Inter typography, 0px border-radius). Landing page includes hero section, side nav, module cards, system status panels, terminal log, and CRT overlay.
6.4 KiB
Design System Documentation: The Tactical Monolith
1. Overview & Creative North Star
Creative North Star: The Tactical Monolith
This design system is built to evoke the sensation of interacting with a high-clearance orbital research terminal. Inspired by the brutalist, data-heavy aesthetic of Marathon and the high-fidelity grit of neon-punk, this system rejects "soft" modernism in favor of Authoritative Utility.
We achieve a premium feel not through decoration, but through extreme precision. The design breaks the "template" look by utilizing a strict 0px border-radius across all elements, creating a sense of indestructible, industrial hardware. We leverage intentional asymmetry—placing heavy data blocks against expansive voids—and high-contrast typography scales to ensure the UI feels like a functional tool rather than a marketing site.
2. Colors & Surface Architecture
The palette is rooted in deep obsidian (surface) and punctuated by high-frequency neons.
The "No-Line" Rule
Standard 1px borders are strictly prohibited for sectioning. Structural boundaries must be defined solely through:
- Tonal Shifts: Placing a
surface_container_lowsection against asurfacebackground. - Color Blocking: Using a high-contrast
primaryorsecondaryblock to terminate a layout section.
Surface Hierarchy & Nesting
Treat the interface as a physical stack of hardware modules.
- Base Layer:
surface(#0b0f10) orsurface_container_lowest(#000000) for the deep background. - Module Layer: Use
surface_container(#151a1c) for primary content areas. - Active Layer: Use
surface_bright(#272d2f) for interactive or elevated data modules. Each inner container should be at least one tier higher or lower than its parent to define its importance without needing a stroke.
The "Glass & Gradient" Rule
To add "soul" to the utilitarian grid, use Glassmorphism for floating HUD elements. Apply surface_container_high at 60% opacity with a backdrop-filter: blur(20px).
Signature Textures: Incorporate subtle linear gradients (e.g., primary to primary_container) on hero CTAs to simulate the glow of a phosphor monitor.
3. Typography: The Industrial Voice
The typography is a dialogue between two distinct voices: the Command Voice (Space Grotesk) and the Data Stream (Inter).
- Display & Headlines (Space Grotesk): These should feel massive and structural. Use
display-lgfor hero statements, ensuring tight letter-spacing (-0.02em) to mimic industrial stamping. - Body & Titles (Inter): High-readability sans-serif for technical descriptions.
- Labels (Space Grotesk): All-caps monospaced-style accents used for metadata, status indicators, and micro-copy.
- Hierarchy as Identity: Use a dramatic scale jump between
display-lgandlabel-smto create a "technical blueprint" feel. Titles should often be accompanied by alabel-smprefix (e.g., "01 // ARCHIVE") to reinforce the lab aesthetic.
4. Elevation & Depth: Tonal Layering
In a world of 0px radius and dark mode, depth is created through light and atmosphere, not shadows.
- The Layering Principle: Avoid "drop shadows" on cards. Instead, stack
surface_container_higheston top ofsurface_container_low. The contrast in luminosity provides the "lift." - Ambient Shadows: If a floating element (like a modal) requires a shadow, use a large, 64px blur with 8% opacity using the
primarycolor (#aaffdc) to create a "neon glow" rather than a grey shadow. - The "Ghost Border" Fallback: For input fields or secondary containers, use a "Ghost Border": the
outline_varianttoken at 15% opacity. This provides just enough definition for accessibility without breaking the monolithic aesthetic. - Atmospheric Layers: Overlay a 2px scanline pattern (linear-gradient) at 3% opacity over the entire viewport to simulate a CRT terminal.
5. Components
Buttons
- Primary: Solid
primarybackground withon_primarytext. 0px radius. Hover state:primary_dimwith a 1px "glitch" offset (shift the button 2px right/down). - Secondary: Ghost style.
outlinecolor at 20% opacity for the border. On hover, fills withsecondary(#ff51fa) and shifts text toon_secondary. - Tertiary: Text only in
tertiary(#f3ffca), prefixed with a geometric icon (e.g.,[>]).
Chips (Data Tags)
- Used for status (e.g., "STABLE", "ERROR").
- Style: Solid
surface_container_highestbackground,label-smtypography. Status-specific accents useerror(#ff716c) orprimary.
Lists & Data Grids
- Forbid Divider Lines. Separate list items using the spacing scale (e.g.,
spacing.4gap) or alternating backgrounds (surface_container_lowvssurface_container_highest). - Include a
label-smtimestamp or hex-code for every list item to maintain the lab aesthetic.
Input Fields
- Text Inputs: Rectangular,
surface_container_lowbackground. - Indicator: A 2px vertical bar of
primaryon the left side of the input to indicate focus, rather than a full-box outline. - Helper Text: Use
label-sminon_surface_variant.
Tooltips
- High-contrast:
tertiary(#f3ffca) background withon_tertiarytext. - 0px radius. Appears instantly (no fade) to mimic terminal responsiveness.
6. Do's and Don'ts
Do:
- Do use the Spacing Scale strictly. Gaps should feel intentional and rhythmic.
- Do use "UI Glitches" (chromatic aberration or slight element offsets) sparingly on hover states or page transitions.
- Do use bold, geometric iconography (strokes of 2px+) that aligns with the 0px corner logic.
- Do leverage the
secondarymagenta andtertiarylime for critical alerts and "live" data streams.
Don't:
- Don't use a border-radius > 0px. Ever.
- Don't use standard "web safe" blue for links. Use
primary(cyan) orsecondary(magenta). - Don't use soft transitions. Prefer "hard" cuts or rapid 150ms linear eases to maintain a technical, high-performance feel.
- Don't center-align long-form text. Keep everything left-aligned to a rigid grid to maintain the "log file" aesthetic.
Accessibility Note:
While we utilize high-contrast neons, ensure that all on_surface text maintains at least a 4.5:1 contrast ratio against its respective surface_container. When using neons like tertiary for background elements, always use the dedicated on_tertiary (#516700) for text to ensure legibility.