/// Andromeda Design System

Component Showcase

Designed for designers, developers, and teams who want a system, not a stylesheet. Tokens, components, templates, and a documented brain that keeps everyone aligned.

30 components · 4 templates · one-command install
/// Foundation · Colors

Color Palette

Three brand hue palettes lead — accent (turquoise), orange (warning), red (fault) — each a 5-stop scale (100 lightest → 500 darkest) with a matching alpha. The foundational greys follow: surface, border, text. Every alpha sits in a single row at the seam between the two halves.

Accent · Turquoise
accent.100
Highlighted text · pastel
#BAF8EC
accent.200
Light emphasis
#56F0D6
accent.300
Active · selected · base
#0FCFB2
accent.400
Focus borders · dim
#109380
accent.500
Glow halos · tinted fills
#126059
Orange · Warning
orange.100
Pastel · highlight
#FFE5B5
orange.200
Light · emphasis
#FFC466
orange.300
Solid · icon · base
#FFA000
orange.400
Border · ring
#B57009
orange.500
Subtle fill
#4D3712
Red · Fault
red.100
Pastel · highlight
#FFCFCF
red.200
Light · emphasis
#FF8B8B
red.300
Solid · icon · base
#FF3939
red.400
Border · ring
#B82424
red.500
Subtle fill
#5A1818
Alpha · Layered Tints
accent.alpha
Turquoise selection · highlight
rgba(15, 207, 178, 0.25)
orange.alpha
Warning overlay · caution tint
rgba(255, 160, 0, 0.25)
red.alpha
Fault overlay · error tint
rgba(255, 57, 57, 0.25)
surface.alpha
Modal scrim · backdrop
rgba(0, 0, 0, 0.65)
border.alpha
Glassy edge · sheen
rgba(255, 255, 255, 0.18)
Surfaces
surface.base
Page void · root
#0E0E0F
surface.raised
Cards · panels
#141415
surface.overlay
Dropdowns · tips
#19191A
surface.hover
Hover state
#1C1C1D
surface.active
Pressed state
#232325
Borders
border.subtle
Dividers
#212122
border.base
Default edges
#3E3E3F
border.bright
Focus · hover
#5B5B5C
border.strong
High emphasis
#939393
Text
Aa 01
text.primary
Headings · values
#F5F5F5
Aa 01
text.secondary
Body · descriptions
#A3A3A3
Aa 01
text.muted
Kickers · metadata
#9A9A9A
Aa 01
text.faint
Labels · hints
#6E6E6E
Usage Reference
Page headings
text.primary
Body · descriptions
text.secondary
Kickers · metadata
text.muted
Decorative labels
text.faint
Page background
surface.base
Card backgrounds
surface.raised
Hover → pressed
surface.hover → surface.active
Dividers
border.subtle
Default borders
border.base
Focus borders
border.bright
Active · selected
accent.300
Accent glow
accent.500
Warning indicator
orange.300 + orange.500
Fault indicator
red.300 + red.500
Modal scrim
surface.alpha
Glassy edge
border.alpha
Selection sheen
color.alpha
/// Foundation · Type

Typography

JetBrains Mono is the only typeface. Both fontSans and fontMono resolve to it — the distinction exists only for backward compatibility. Hierarchy comes from size, weight, and letter-spacing, not from switching families.

Type Scale
xs10pxANDROMEDAData labels · kickers · row headers
sm12pxANDROMEDADescriptions · captions · error text
md14pxANDROMEDAUI body · card descriptions
lg15pxANDROMEDACard titles · nav labels
xl18pxANDROMEDASection headings
2xl22pxANDROMEDASub-page headings
3xl28pxANDROMEDAShowcase page title
4xl36pxANDROMEDADashboard hero readout
5xl48pxANDROMEDAStat primary value
Weight Scale
NOVA
weight.thin
200
NOVA
weight.regular
400
NOVA
weight.medium
500
NOVA
weight.semibold
600
NOVA
weight.bold
700
Letter Spacing · Tracking
TRACKING
tracking.tight
0
Dense data tables
TRACKING
tracking.normal
0.02em
Inline body text
TRACKING
tracking.wide
0.08em
Values · readouts
TRACKING
tracking.wider
0.14em
Nav labels
TRACKING
tracking.widest
0.22em
Kickers · row heads
/// Foundation · Spacing

Spacing

A 4px-based scale. Token names track the px value: spacing.1 → 4px, spacing.4 → 16px. The scale skips 7, 9, and 11 — only the values the system actually uses are emitted, so the keys you have are the keys you should be reaching for.

spacing.14px
Micro gaps · dot offsets · sub-line padding
spacing.28px
Icon ↔ text · inline rhythm
spacing.312px
Card padding · list rows · default form gap
spacing.416px
Row gap · panel content rhythm
spacing.520px
Toolbar gap · header rhythm
spacing.624px
Section padding · panel gutter
spacing.832px
Page gutter · hero margin
spacing.1040px
Page top padding · large breaks
spacing.1248px
Hero bottom · max scale break
/// Component

Button

Open Button

5 variants × 3 sizes. Supports asChild via Radix Slot, optional leading icon, full hover / focus / active / disabled state coverage.

Variants
Sizes
With icon
Disabled
/// Component

IconButton

Open IconButton

Square companion to Button. Same variant + size vocabulary so a Button and an IconButton sit on the same baseline in toolbars and headers.

Variants
Sizes
Disabled
/// Component

PanelHeader

Open PanelHeader

Title row for top-level dashboard panels. Sentence-case mono title on the left, optional actions slot on the right (PanelMenu, IconButton, Button). Bottom border separates the header from the panel body. Distinct from CardHeader, which uses uppercase-widest mono and tighter padding for nested compositions.

Title only
Capacity
Title + actions (PanelMenu)
Requests
/// Component

PanelMenu

Open PanelMenu

Kebab-trigger overflow menu for panel headers. The trigger (IconButton, ghost, sm) flips to a held-pressed look while the menu is open. Items support icons, separators, destructive styling, persistent selection, and a single level of right-flyout submenu. Closes on outside click or Escape.

Default · panel actions
With submenu
/// Component

Badge

Open Badge

6 variants for status, metric tags, and inline labels.

DefaultLiveCautionFaultSubtleOutline
/// Component

Avatar

Open Avatar

3 sizes. Initials derived from `name`. Optional status dot in 4 states.

Sizes
RQ
RQ
RQ
With status
RQ
MV
KO
JP
/// Component

Card

Open Card

Compound primitive: Card / CardHeader / CardContent / CardFooter / CardTitle / CardDescription. No continuous border by default — corner brackets do the framing.

/// Default

Default card

Idle

Sharp corners with bracket markers tucked into each corner. No perimeter stroke — the brackets are the frame.

/// Glow

Highlight card

Live

Tinted accent gradient surface. Use for the card you want to draw the user's eye to first.

/// Component

CornerMarkers

Open CornerMarkers

The defining motif. Renders 4 L-shaped brackets at the corners of the nearest position:relative ancestor. Geometry comes from tokens.marker.

Default
Larger
Inset 6px
Accent
/// Component

Input

Open Input

Optional uppercase mono label, optional left icon, default + error states. Border transitions on focus.

Field cannot be empty
/// Component

SearchField

Open SearchField

Command-bar-style search input with an optional ⌘-K shortcut chip. Five states — idle, hover, focus, text-inactive (placeholder), text-active (typed).

/// Component

NavItem

Open NavItem

Sidebar item with icon, active state, accent left bar. Mono label by default; pass mono={false} for sans.

/// Component

ProgressBar

Open ProgressBar

3 variants. 3px tall track with a gradient fill and soft glow halo. Smooth width transitions.

Storage Used72%
Bandwidth48%
Memory Critical91%
/// Component

StatTile

Open StatTile

Stat readout built on Card. Big numeric value, optional unit, optional ▲/▼ delta colored by sign.

ThroughputREQ-01
0rps
2.4vs prior period
LatencyLAT-02
0ms
1.2vs prior period
ErrorsERR-03
0%
/// Component

Tag

Open Tag

Compact uppercase mono label. 4 variants. Optional dismiss button when onClose is provided.

Variants
DefaultAccentWarningFault
Dismissible
RemovableActive filter
/// Component

Checkbox

Open Checkbox

Square boolean control. Controlled or uncontrolled. Inline label, accent fill on checked.

States
/// Component

Radio · Choicebox

Open Radio · Choicebox

Mutually-exclusive square radio. Use standalone or inside a RadioGroup that wires up `name` / `value` / `onValueChange`.

Group
Standalone
/// Component

Toggle · Switch

Open Toggle · Switch

Sharp rectangular track + sliding rectangular thumb. Same vocabulary as Checkbox, but feels like a hardware switch.

States
/// Component

SegmentedControl

Open SegmentedControl

Row of icon-or-label buttons that share a single border. The active background slides between segments via a CSS transform, so the indicator transition is on the compositor. Sized sm/md/lg to align with the Button/IconButton baseline.

Icons · sm
Icons · lg
Labels
/// Component

DateRangePicker

Open DateRangePicker

Trigger chip + drop-down calendar panel. Anchor-then-confirm range selection with hover preview, Monday-first 6×7 grid, ESC and click-outside to close. Selected endpoints fill in accent; the in-between band is a 1px accent outline so the eye stays on the picked dates.

JUNE 2026
MTWTFSS
/// Component

Spinner

Open Spinner

SVG arc that rotates via a CSS keyframe — runs on the compositor, no React per-frame work. 4 color variants × 3 sizes.

Sizes
Variants
/// Component

Slider

Open Slider

Custom horizontal range. Pointer drag + full keyboard support (←/→/↑/↓, PageUp/PageDown, Home/End). ARIA-compliant.

Throttle64%
Thrust Vector30°
Locked50
/// Component

Textarea

Open Textarea

Multi-line counterpart to Input. Same border / focus / error behavior, vertical resize.

Brief must be at least 80 characters
/// Component · Error

Alert

Open Alert

Banner-style status component for inline messages. 4 variants — default, accent, warning, fault — each with its own icon color and title color.

/// Component

Empty State

Open Empty State

Centered icon + uppercase mono title + sans description + optional action. Built on Card so it inherits the bracket motif.

No activity

Awaiting signal from the deep-space array. The next pass is in approximately 14 minutes.

/// Component · Charts

Radar Chart

Open Radar Chart

Polygon spider chart for multi-axis system diagnostics. Supports single or multiple overlapping series. Built on recharts, fully styled with andromeda tokens.

/// SystemsShip Diagnostics
Nominal
Critical
/// PerformanceSystem PerformanceCurrent system readiness
Readiness
/// Component · Visualization

Planet

Open Planet

3D particle sphere — every point lit on a Lambert ramp from accent.500 (shadow) to accent.200 (lit), with 1% accent.100 sparkles on the day side. Self-contained Three.js, transparent canvas. Drop into a Card for status / next-destination widgets.

/// Body

Solo

/// Heading

Next Destination

LOCKED
Target
KEPLER-186F
Distance492.3 ly
ETA2027.04.18
Bearing042.7°
ClassM-Dwarf
/// Component

Table

Open Table

Compound primitive for dense data tables. Sortable column headers with caret indicators, row hover lift, and selected-row accent-300 left edge. TableStyles injects the hover class rules once per page.

Order IDPart IDSource LocationSource LevelService LevelTotal Volume
AB-00032734X60 BJGJ29839281US, Denver - 2407166%4/1010.9985
AB-00032736X61 BHH09027512US, San Francisco - 2738175%3/108.85221
AB-00039925X52 BB0372/2 X5AUS, Houston - 2402798%7/1010.29701
AB-00032002B12 BZ9025/2 X12EU, Sweden - 0008568%2/103.92871
/// Component

Tooltip

Open Tooltip

Hover label for icon-only controls. Wraps any child and floats a mono uppercase label above (or below) it. No portal — stays in the nearest stacking context.

Position · top (default)
Position · bottom
/// Component

Drawer

Open Drawer

Right-side slide-in panel with backdrop, ESC to close, body scroll lock, and the bracket motif. React Portal escapes any clipped ancestor.

Trigger
/// Component

UserMenu

Open UserMenu

Avatar-trigger popover with Profile, Preferences, Sign Out and friends. Designed for top-bar slots where space is tight. Opens downward and right-aligned by default; pairs with UserCard for sidebars that have room to spell out name and role.

Open up
Open down
/// Component

UserCard

Open UserCard

Wider user trigger that shows avatar, name, and role alongside the chevron — the canonical bottom-of-sidebar identity card. Same Profile / Preferences / Sign Out popover as UserMenu; opens upward by default and stretches to the card width.

Open up
Open down