Design systems

FluxOps

Component library: tokens for the decision intelligence platform. Cool neutral base, amber + violet accents for graph nodes and feasibility tiers.

Colours

Cool-neutral Zinc base for surfaces and structure; amber + violet for brand expression and feasibility tiers. Each swatch shows the light value (left) and dark value (right). Never use raw hex values in components.

FluxOps brand

Brand Primary--brand-primary#F59E0B / #FBBF24
Brand Accent--brand-accent#A78BFA / #C4B5FD
Brand Container--brand-container#FEF3C7 / #451A03

Zinc base palette

50
#fafafa
100
#f4f4f5
200
#e4e4e7
300
#d4d4d8
400
#a1a1aa
500
#71717a
600
#52525b
700
#3f3f46
800
#27272a
900
#18181b
950
#09090b

Surface

Background--background#FFF / #09090B
Card--card#FFF / #09090B
Muted--muted#F4F4F5 / #27272A
Accent--accent#F4F4F5 / #27272A

Text

Foreground--foreground#09090B / #FAFAFA
Muted FG--muted-foreground#71717A / #A1A1AA
Card FG--card-foreground#09090B / #FAFAFA

Interactive

Primary--primary#18181B / #FAFAFA
Primary FG--primary-foreground#FAFAFA / #18181B
Secondary--secondary#F4F4F5 / #27272A
Ring--ring#18181B / #D4D4D8

Structural

Border--border#E4E4E7 / #27272A
Input--input#E4E4E7 / #27272A
Destructive--destructive#EF4444 / #7F1D1D

Status

Successgreen-500#22C55E
Warningamber-500#F59E0B
Errorred-500#EF4444
Infoblue-500#3B82F6

Feasibility tier

Green--tier-green≥ 8.0 / 10
Amber--tier-amber5.0 – 7.9
Red--tier-red< 5.0

Colour tokens, semantic roles

CSS variableRoleLightDark
--brand-primarybrand.primary#F59E0B#FBBF24
--brand-accentbrand.accent#A78BFA#C4B5FD
--brand-containerbrand.container#FEF3C7#451A03
--backgroundsurface.background#FFFFFF#09090B
--cardsurface.card#FFFFFF#09090B
--mutedsurface.muted#F4F4F5#27272A
--accentsurface.accent#F4F4F5#27272A
--foregroundtext.foreground#09090B#FAFAFA
--muted-foregroundtext.muted#71717A#A1A1AA
--card-foregroundtext.card#09090B#FAFAFA
--primaryinteractive.primary#18181B#FAFAFA
--primary-foregroundinteractive.primary-fg#FAFAFA#18181B
--secondaryinteractive.secondary#F4F4F5#27272A
--ringinteractive.ring#18181B#D4D4D8
--borderstructural.border#E4E4E7#27272A
--inputstructural.input#E4E4E7#27272A
--destructivestructural.destructive#EF4444#7F1D1D
--tier-greenfeasibility ≥ 8.0#22C55E#22C55E
--tier-amberfeasibility 5.0–7.9#F59E0B#F59E0B
--tier-redfeasibility < 5.0#EF4444#EF4444

Typography

Inter for all UI text, chosen for clarity in data-dense decision interfaces. JetBrains Mono for code, tokens, and structured payloads where character distinction matters.

Font families

Inter
font-family: 'Inter', sans-serif
Weights used: 400 · 500 · 600 · 700
Role: All UI text (headings, body, labels, data)
JetBrains Mono
font-family: 'JetBrains Mono', monospace
Weights used: 400 · 500 · 600
Role: Code, tokens, JSON payloads, decision node IDs

Type scale

Display72px · 600 · −2px · lh 1.05
Aa
H148px · 600 · −1.5px · lh 1
Heading One
H232px · 600 · −1px · lh 1.15
Heading Two
H324px · 600 · −1px · lh 28.8px
Heading Three
Body16px · 400 · 0 · lh 24px
The quick brown fox jumps over the lazy dog.
Small14px · 400 · 0 · lh 20px
The quick brown fox jumps over the lazy dog.
XS / Label12px · 600 · 0.08em · lh 16px
Label Text

Font families

CSS variableStackWeightsRole
--font-sans'Inter', system-ui, sans-serif400 · 500 · 600 · 700All UI text
--font-mono'JetBrains Mono', monospace400 · 500 · 600Code, tokens, payloads

Type scale

CSS variableSizeWeightTrackingLine height
--text-display72px600−2px1.05
--text-h148px600−1.5px1
--text-h236px600−1px1.15
--text-h324px600−1px28.8px
--text-body16px400024px
--text-sm14px400020px
--text-xs12px6000.08em16px

Spacing

Tailwind-compatible 4px base scale. All padding, margin, and gap values must reference a token, with no magic numbers in component code.

Space scale

--space-2xs4px
--space-xs8px
--space-md16px
--space-xl24px
--space-2xl32px
--space-page48px
--space-5xl64px

Border radius

--radius-sm4px
--radius-lg8px
border-radius: 9999pxpill

Spacing tokens

CSS variableValueremUsage
--space-2xs4px0.25remIcon gaps, tight padding
--space-xs8px0.5remInner gaps, list rows
--space-md16px1remDefault component padding
--space-xl24px1.5remSection gaps, modal padding
--space-2xl32px2remBetween content blocks
--space-page48px3remPage horizontal gutter
--space-5xl64px4remSection vertical rhythm

Border radius

CSS variableValueUsage
--radius-sm4pxInputs, chips, small controls
--radius-lg8pxCards, swatches, containers
border-radius9999pxPills, avatars, toggles

States

All interactive components share a consistent state vocabulary. State is never communicated by colour alone. Shape, elevation, or label changes accompany every shift.

Button

Default
Hover
Active
Focus
Disabled

Input

Default
Focus
Filled
Error
Disabled

State treatments

StatePropertyTreatment
defaultbackground / border--primary / --border
hovertransform / box-shadowtranslateY(−1px) · 0 4px 10px
activetransformscale(0.97)
focusoutline2px solid --ring · offset 2px
errorborder / color--destructive (#EF4444)
disabledopacity / pointer-events0.4 · none
Next system Aligna

Design tokens and primitives for the bidirectional auditing workspace: colour, type, spacing, and states.