Live preview
Use this system
Three ways to drop Rivet into your workflow.
Save the file for your tool — your agent then generates UI in Rivet, automatically.
CLAUDE.mdRepo root — Claude Code reads it automatically.
.cursor/rules/rivet.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
Rivet is the factory floor: safety-orange, steel-grey ink, and bolted-down borders. Hard offset shadows, stepped transitions, and zero rounding. It looks built, not designed — and that's the point.
Layout & Grid
Exposed structure, heavy rules, and stamped labels. Hierarchy comes from weight and the single orange. Components snap rather than glide.
Components
Buttons
Orange color.brand.primary blocks with dark onBrand text and a hard
shadow.sm that collapses on press. Borders are steel color.border.default.
Panels
Bordered boxes with offset shadow.md; tags are flat fills of the steel
color.brand.secondary.
Accessibility
Brutal contrast by design: primary and muted text pass WCAG AA on every surface. Orange always carries dark text, and focus is an unmissable steel 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: rivetname: Rivettitle: Rivet — Industrial Brutalistversion: 1.0.0category: brutalisttags: [brutalist, industrial, orange, mono, raw]author: designmdlicense: CC-BY-4.0updatedAt: 2026-06-22colorMode: [light]tokens: color: brand: primary: { value: "oklch(0.65 0.19 45)", type: color } secondary: { value: "oklch(0.2 0.006 250)", type: color } onBrand: { value: "oklch(0.16 0.01 45)", type: color } text: primary: { value: "oklch(0.16 0.006 250)", type: color } muted: { value: "oklch(0.42 0.01 250)", type: color } link: { value: "{color.brand.secondary}", type: color } surface: base: { value: "oklch(0.99 0.002 250)", type: color } raised: { value: "oklch(0.965 0.003 250)", type: color } sunken: { value: "oklch(0.93 0.004 250)", type: color } border: default: { value: "{color.brand.secondary}", type: color } state: success: { value: "oklch(0.52 0.16 150)", type: color } danger: { value: "oklch(0.54 0.22 25)", type: color } warning: { value: "oklch(0.68 0.16 80)", type: color } info: { value: "oklch(0.5 0.15 250)", type: color } typography: family: sans: { value: "Archivo, system-ui, sans-serif", type: fontFamily } mono: { value: "Archivo 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.7rem", type: dimension } "2xl": { value: "2.4rem", type: dimension } "3xl": { value: "3.6rem", type: dimension } weight: regular: { value: 400, type: fontWeight } bold: { value: 800, 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.2 0.006 250)", type: shadow } md: { value: "6px 6px 0 oklch(0.2 0.006 250)", type: shadow } motion: duration: base: { value: "60ms", type: duration } easing: standard: { value: "steps(2, end)", type: cubicBezier } breakpoint: md: { value: "768px", type: dimension } iconography: style: { value: "blocky 3px stroke, mechanical", type: descriptor } zIndex: dropdown: { value: 1000, type: number } modal: { value: 1300, type: number }---# Rivet Design System## Brand & VoiceRivet is the factory floor: safety-orange, steel-grey ink, and bolted-downborders. Hard offset shadows, stepped transitions, and zero rounding. It looksbuilt, not designed — and that's the point.## Layout & GridExposed structure, heavy rules, and stamped labels. Hierarchy comes from weightand the single orange. Components snap rather than glide.## Components### ButtonsOrange `color.brand.primary` blocks with dark `onBrand` text and a hard`shadow.sm` that collapses on press. Borders are steel `color.border.default`.### PanelsBordered boxes with offset `shadow.md`; tags are flat fills of the steel`color.brand.secondary`.## AccessibilityBrutal contrast by design: primary and muted text pass WCAG AA on every surface.Orange always carries dark text, and focus is an unmissable steel outline.