Live preview
Use this system
Three ways to drop Slab into your workflow.
Save the file for your tool — your agent then generates UI in Slab, automatically.
CLAUDE.mdRepo root — Claude Code reads it automatically.
.cursor/rules/slab.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
Slab is loud on purpose. Thick black borders, hard offset shadows, and a screaming industrial yellow. Nothing eases — states snap. It looks stamped onto the page, structural and unbothered.
Layout & Grid
Exposed grid lines, heavy rules, and zero rounding. Components read like printed labels. Hierarchy comes from weight and size, not subtlety.
Components
Buttons
Yellow color.brand.primary blocks with dark onBrand text and a hard
shadow.sm that collapses on press. Borders are color.border.default black.
Cards
Bordered boxes with offset shadow.md. Tags use the red color.brand.secondary
as a flat fill.
Accessibility
Maximal contrast by design — primary and muted text pass WCAG AA on every surface. The yellow only ever carries dark text, and focus is an unmissable black outline.
Tokens
Color (14)
Tokens
Export
One source of truth, five formats — copy or download any of them.
---$schema: https://designmd.in/schema/v1.jsonid: slabname: Slabtitle: Slab — Raw Brutalistversion: 1.0.0category: brutalisttags: [brutalist, raw, yellow, mono, high-contrast]author: designmdlicense: CC-BY-4.0updatedAt: 2026-06-22colorMode: [light]tokens: color: brand: primary: { value: "oklch(0.86 0.18 95)", type: color } secondary: { value: "oklch(0.55 0.22 25)", type: color } onBrand: { value: "oklch(0.16 0 0)", type: color } text: primary: { value: "oklch(0.14 0 0)", type: color } muted: { value: "oklch(0.4 0 0)", type: color } link: { value: "{color.brand.secondary}", type: color } surface: base: { value: "oklch(1 0 0)", type: color } raised: { value: "oklch(0.975 0 0)", type: color } sunken: { value: "oklch(0.93 0 0)", type: color } border: default: { value: "oklch(0.17 0 0)", type: color } state: success: { value: "oklch(0.52 0.16 150)", type: color } danger: { value: "oklch(0.52 0.22 25)", type: color } warning: { value: "oklch(0.7 0.16 85)", type: color } info: { value: "oklch(0.5 0.15 250)", 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: "4px 4px 0 oklch(0.16 0 0)", type: shadow } md: { value: "8px 8px 0 oklch(0.16 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, square joins", type: descriptor } zIndex: dropdown: { value: 1000, type: number } modal: { value: 1300, type: number }---# Slab Design System## Brand & VoiceSlab is loud on purpose. Thick black borders, hard offset shadows, and ascreaming industrial yellow. Nothing eases — states snap. It looks stamped ontothe page, structural and unbothered.## Layout & GridExposed grid lines, heavy rules, and zero rounding. Components read like printedlabels. Hierarchy comes from weight and size, not subtlety.## Components### ButtonsYellow `color.brand.primary` blocks with dark `onBrand` text and a hard`shadow.sm` that collapses on press. Borders are `color.border.default` black.### CardsBordered boxes with offset `shadow.md`. Tags use the red `color.brand.secondary`as a flat fill.## AccessibilityMaximal contrast by design — primary and muted text pass WCAG AA on everysurface. The yellow only ever carries dark text, and focus is an unmissableblack outline.