Live preview
Use this system
Three ways to drop Stark into your workflow.
Save the file for your tool — your agent then generates UI in Stark, automatically.
CLAUDE.mdRepo root — Claude Code reads it automatically.
.cursor/rules/stark.mdcProject rule — applied to every generation.
.windsurfrulesRepo root — Cascade reads it automatically.
.github/copilot-instructions.mdRepo-wide custom instructions for Copilot.
The system
Brand & Voice
Stark flips brutalism into the dark. A near-black field, white borders that look chalk-drawn, and an acid lime that detonates against it. Loud, raw, and unmistakably digital.
Layout & Grid
White offset shadows on black, exposed grid lines, and zero rounding. States snap with no easing. Lime appears once per view, where it matters most.
Components
Buttons
Acid lime color.brand.primary blocks with dark onBrand text and a hard white
shadow.sm. Outlines use the white color.border.default.
Panels
Black boxes with white offset shadow.md; the white color.brand.secondary
provides flat fills and dividers.
Accessibility
Maximum contrast both ways: light and muted text pass WCAG AA on the dark surfaces, lime carries dark text only, and the focus outline is unmissable white.
Tokens
Color (14)
Tokens
Export
One source of truth, five formats — copy or download any of them.
---$schema: https://designmd.in/schema/v1.jsonid: starkname: Starktitle: Stark — Inverted Brutalistversion: 1.0.0category: brutalisttags: [brutalist, dark, lime, mono, inverted]author: designmdlicense: CC-BY-4.0updatedAt: 2026-06-22colorMode: [dark]tokens: color: brand: primary: { value: "oklch(0.85 0.2 125)", type: color } secondary: { value: "oklch(0.96 0 0)", type: color } onBrand: { value: "oklch(0.16 0.02 125)", type: color } text: primary: { value: "{color.brand.secondary}", type: color } muted: { value: "oklch(0.72 0.005 125)", type: color } link: { value: "{color.brand.primary}", type: color } surface: base: { value: "oklch(0.16 0 0)", type: color } raised: { value: "oklch(0.205 0 0)", type: color } sunken: { value: "oklch(0.11 0 0)", type: color } border: default: { value: "{color.brand.secondary}", type: color } state: success: { value: "oklch(0.78 0.17 145)", type: color } danger: { value: "oklch(0.68 0.2 25)", type: color } warning: { value: "oklch(0.82 0.16 90)", type: color } info: { value: "oklch(0.74 0.13 230)", type: color } typography: family: sans: { value: "Space Grotesk, system-ui, sans-serif", type: fontFamily } mono: { value: "Space Mono, ui-monospace, monospace", type: fontFamily } scale: sm: { value: "0.875rem", type: dimension } base: { value: "1rem", type: dimension } lg: { value: "1.25rem", type: dimension } xl: { value: "1.75rem", type: dimension } "2xl": { value: "2.5rem", type: dimension } "3xl": { value: "3.75rem", type: dimension } weight: regular: { value: 400, type: fontWeight } bold: { value: 700, type: fontWeight } leading: tight: { value: 1.05, type: number } normal: { value: 1.45, type: number } spacing: base: { value: "0.25rem", type: dimension } radius: sm: { value: "0rem", type: dimension } md: { value: "0rem", type: dimension } full: { value: "0rem", type: dimension } shadow: sm: { value: "3px 3px 0 oklch(0.96 0 0)", type: shadow } md: { value: "6px 6px 0 oklch(0.96 0 0)", type: shadow } motion: duration: base: { value: "0ms", type: duration } easing: standard: { value: "steps(1, end)", type: cubicBezier } breakpoint: md: { value: "768px", type: dimension } iconography: style: { value: "blocky 3px stroke, stark white", type: descriptor } zIndex: dropdown: { value: 1000, type: number } modal: { value: 1300, type: number }---# Stark Design System## Brand & VoiceStark flips brutalism into the dark. A near-black field, white borders that lookchalk-drawn, and an acid lime that detonates against it. Loud, raw, andunmistakably digital.## Layout & GridWhite offset shadows on black, exposed grid lines, and zero rounding. Statessnap with no easing. Lime appears once per view, where it matters most.## Components### ButtonsAcid lime `color.brand.primary` blocks with dark `onBrand` text and a hard white`shadow.sm`. Outlines use the white `color.border.default`.### PanelsBlack boxes with white offset `shadow.md`; the white `color.brand.secondary`provides flat fills and dividers.## AccessibilityMaximum contrast both ways: light and muted text pass WCAG AA on the darksurfaces, lime carries dark text only, and the focus outline is unmissable white.