Design System

The ArgoPlane design system lives in design-system/ at the repo root. All CSS custom properties use the --ap- prefix. All CSS classes use the ap- prefix.

Colors

Orange accent

TokenValueUsage
orange-50#FFF7EDLight backgrounds
orange-100#FFEDD5Hover backgrounds
orange-200#FDDCB0Borders
orange-300#F5C28BDecorative
orange-400#F0A868Dark mode accent
orange-500#E8935APrimary interactive
orange-600#D47A42Hover states

Status colors

StatusLightSolidText
Success#D1FAE5#6EE7B7#16A34A
Error#FFE4E6#FDA4AF#B91C1C
Warning#FEF9C3#FDE68A#A16207
Info#DBEAFE#93C5FD#1D4ED8

Warm grays

10 shades from gray-50 (#FAFAF9) to gray-900 (#1C1917). Used for text, borders, backgrounds.

Typography

TokenSizeUsage
text-xs11pxLabels, meta text
text-sm13pxSecondary text, table data
text-base14pxBody text
text-lg16pxHeadings
text-xl20pxMetric values (maximum size)

Fonts:

  • Heebo: body text, headings, UI labels
  • JetBrains Mono: all data values, timestamps, resource names, code

Spacing

4px grid. All spacing must be multiples of 4px.

ScaleValue
14px
28px
312px
416px
520px
624px
832px
1040px

Rules

These are non-negotiable:

  1. 4px grid: all spacing must be multiples of 4px
  2. 1px borders: always 1px solid, never 2px (except table header bottom)
  3. Max border-radius 4px: rounded-sm (2px) or rounded-md (4px). No pills, no circles
  4. No shadows: no box-shadow anywhere
  5. No gradients: flat colors only
  6. No animations > 150ms: keep transitions snappy
  7. Max font size 20px: text-xl is the ceiling
  8. Monospace for data: all data values use JetBrains Mono
  9. Status = colored squares: 8x8px with rounded-sm, not circles
  10. No hardcoded colors: always use tokens

Dark mode

Add data-theme="dark" or class dark to a parent element. Semantic tokens switch automatically:

LightDark
White backgroundgray-900
gray-50 surfacegray-800
gray-800 textgray-100
gray-500 secondarygray-400
gray-200 bordersgray-700
orange-500 accentorange-400

Component library

CSS classes (design-system/components.css)

Data display: ap-badge, ap-tag, ap-metric, ap-kv, ap-table, ap-progress

Containers: ap-card, ap-modal, ap-alert

Navigation: ap-tabs, ap-breadcrumb, ap-sidenav

Form elements: ap-btn, ap-input, ap-select, ap-toggle

Feedback: ap-loading, ap-empty, ap-skeleton, ap-tooltip

React components (@argoplane/shared)

StatusBadge, SectionHeader, MetricCard, Card, Button, DataTable, Cell, MetaRow, EmptyState, Loading, Tag, ProgressBar, Input, PixelDots

Visual reference

The complete visual reference with interactive examples is at docs/styleguide/index.html in the repository.