Design System

Complete, open-source component library & token specification for the Narrabrain platform. Professional-grade dark mode infrastructure optimized for high-density creative environments.

System Philosophy

Core Principle: The user interface functions as an invisible utility framework. High-density prompt properties, vector queries, and timeline parameters remain dark, flat, and structured—prioritizing creative work over layout decoration.

The 90/10 Asset Ratio

Exactly 90% of screen space maps to desaturated neutral UI. Luminous focus accents occupy 10% or less, deployed explicitly to guide orientation.

Zero Halation Typography

Pure white text on dark backgrounds causes visual ghosting. We enforce calibrated off-white scales to protect long-term reading comfort.

Structural Contrast via Depth

Panels use layered shadow elevation instead of high-contrast borders. This minimizes visual noise while maintaining clear spatial relationships.

Spacing & Sizing

All spacing follows an 8px modular grid system for visual consistency and alignment efficiency.

--spacing-xs
4px
--spacing-sm
8px
--spacing-md
16px
--spacing-lg
24px
--spacing-xl
32px

Border Radius Scale

--radius-xs

2px

--radius-sm

4px

--radius-md

6px

--radius-lg

8px

--radius-xl

12px

--radius-full

9999px

Color System

Strategic color tokens mapped to functional definitions. Direct hardcoding is prohibited—all colors must reference design tokens.

#121214
Canvas Base
--nv-bg-canvas
#1E1F22
Surface Bed
--nv-bg-surface
#2B2D31
Element Surface
--nv-bg-element
#E3E5E8
Primary Text
--nv-text-primary
#949BA4
Muted Text
--nv-text-muted
#477BFF
Brand Accent
--nv-accent-brand
#24A19C
Success
--nv-accent-success
#D18E34
Warning
--nv-accent-warning

Chromatic Guardrails

Success Green (#24A19C)

Reserved strictly for telemetry confirmation loops. Highlights compiled prompts, successful vector passes, and connected assets. Never for decoration.

Warning Orange (#D18E34)

Signifies critical system exceptions and broken layouts. Functions as an interactive feedback hook for user dissatisfaction inputs on AI iterations.

Typography System

Dual font pairing: Playfair Display for editorial elements, Inter for operational data.

Display Layer (Playfair Display)

The Narrative Layer

Used for titles, headings, and editorial marketing content.

Interface Layer (Inter)

Token Size Line Height Letter Spacing Usage
--text-xs 10px 1.4 0.03em Captions, metadata
--text-sm 11px 1.5 0.05em Labels, timestamps
--text-base 12px 1.5 0.02em Body, form labels
--text-md 14px 1.6 0.01em Primary body text
--text-lg 16px 1.6 0em Subheadings
--text-2xl 20px 1.4 -0.01em Section headings

Component Library

Buttons

All states use subtle elevation adjustments and color shifts rather than loud background changes.

Button Sizing

Form Inputs

Input states communicate changes through border indicators rather than background color shifts.

Default State

Focused State

Filled State

Badges & Tags

Status Active
Alert
Info Badge
Outline Tag

Card Variants

Default Card

Standard content grouping with subtle elevation.

Elevated Card

Interactive/selectable with brand accent border.

Minimal Card

Subtle content sections with muted borders.

Tailwind CSS Configuration

Copy this configuration into your tailwind.config.js file. All design tokens map directly to CSS utilities.

/** @type {import('tailwindcss').Config} */ module.exports = { theme: { extend: { colors: { narrabrain: { canvas: '#121214', surface: '#1E1F22', element: '#2B2D31', primary: '#E3E5E8', brand: '#477BFF', success: '#24A19C', warning: '#D18E34', } }, spacing: { 'xs': '4px', 'sm': '8px', 'md': '16px', 'lg': '24px', 'xl': '32px', '2xl': '48px', }, borderRadius: { 'xs': '2px', 'sm': '4px', 'md': '6px', 'lg': '8px', 'xl': '12px', 'full': '9999px', }, fontSize: { 'xs': ['10px', { lineHeight: '1.4', letterSpacing: '0.03em' }], 'sm': ['11px', { lineHeight: '1.5', letterSpacing: '0.05em' }], 'base': ['12px', { lineHeight: '1.5', letterSpacing: '0.02em' }], 'md': ['14px', { lineHeight: '1.6', letterSpacing: '0.01em' }], 'lg': ['16px', { lineHeight: '1.6', letterSpacing: '0em' }], '2xl': ['20px', { lineHeight: '1.4', letterSpacing: '-0.01em' }], }, boxShadow: { 'elevation-1': '0 1px 3px rgba(0,0,0,0.3)', 'elevation-2': '0 4px 8px rgba(0,0,0,0.4)', 'elevation-3': '0 8px 16px rgba(0,0,0,0.5)', 'elevation-4': '0 12px 24px rgba(0,0,0,0.6)', }, fontFamily: { display: ['Playfair Display', 'serif'], ui: ['Inter', 'sans-serif'], }, }, }, plugins: [], }

Integration Notes

Color Mapping

Always use utility tokens like bg-narrabrain-canvas or text-narrabrain-primary. Never hardcode hex values.

Elevation & Depth

Block raw border declarations. Use shadow utilities like shadow-elevation-2 for structural separation.

Typography

Use font-display for headings (Playfair), font-ui for body (Inter).

Responsive Grid

Spacing tokens follow 8px modular grid. Use space-md, space-lg for consistent layouts.