back to gallery
design language·regler

Regler

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
A restrained, functional-minimalist interface language in the Dieter Rams / Braun tradition: a warm bone ground, graphite controls, hairline keyline separation, knurled-dial hardware, and tabular readouts. The signature mechanic is the regulator track — every control reads as engineered instrumentation, and exactly one burnt-orange line marks what is live. Importance is registered to a slot, never flooded with colour.
values
usefulness before noveltyclarity through reduction and keyline separationcontrols that communicate their function and statehonest hierarchy from spacing and alignment, not loud display
anti-values
×decorative flourish without an idea×gloss, glass, gradients, or pastel washes×accent colour used as a background fill×ambiguous controls or unstyled browser defaults
tokens
colors13 items
bg
#ECE7DE
surface
#F7F3EC
text
#17191A
muted
#7C766B
border
#CFC7B8
accent
#D96A32
on_accent
#FFFFFF
graphite
#2E3133
recess
#E3DDD1
success
#4E6B50
warning
#B9832F
error
#B7442A
info
#5C7688
typography8 items
base size
17px
body font
Archivo
heading font
Archivo
mono font
IBM Plex Mono
heading weight
600
heading transform
none
letter spacing
-0.01em
google fonts url
https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
radii3 items
plate
0
card
16px
pill
9999px
shadows4 items
sm
0 1px 0 rgba(23,25,26,.06)
md
0 10px 24px rgba(23,25,26,.07)
lg
0 22px 44px rgba(23,25,26,.10)
inset
inset 0 0 0 1px #CFC7B8
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
treatment
matte powder-coat plate
card style
Warm paper plates separated by hairline keylines and an inset edge; edge defines a component before shadow does. No gloss.
bg pattern
faint keyline registration grid
borders4 items
default width
1px
accent width
2px
style
solid
character
Quiet engineering keylines — thin, crisp, evenly applied; separation by surface and rule, never heavy boxing or a single accent edge.
motion3 items
duration
180ms
easing
cubic-bezier(0.2,0,0.2,1)
philosophy
deliberate
rules
composition
Compose every screen as a calm instrument panel: a summary zone of meter-plates, clearly segmented modules each opening with a mono overline and a hairline rule, and controls that sit in defined slots on a shared baseline.
hierarchy

Hierarchy comes from spacing, alignment, keyline separators, and label/value pairing — not oversized display. Scale is used sparingly.

density

Medium density with disciplined breathing room; panels hold many controls, but every control has a defined slot and measured padding.

signature
The regulator track: knurled rotary dials with one burnt-orange pointer, inset level-meters, segmented pills, physical switches, and tabular mono readouts — selected/live states marked only by a restrained burnt-orange line, dot, or fill, never by flooding the panel.
layout
grid

A 12-column desktop grid collapses to 8 on tablet and a single measured column on mobile; modules span whole columns rather than arbitrary card widths.

whitespace

Deliberate and even — consistent gutters and module padding over dramatic voids; every gap should feel engineered.

density

medium

responsive
Renders from ~390px to 2560px+; minmax(0,1fr) columns and min-width:0 children keep grids contained; only the full-bleed hero spans 100vw, contained content capped and centred on ultra-wide.
breakpoints
mobile
375
tablet
768
desktop
1440
guidance
do
  • Separate content with keylines, surface, and measured space before reaching for colour.
  • Make every control self-explanatory with a label, a value, and a visible mechanical state.
  • Reserve burnt-orange for the one thing that is live, active, focused, or filling a meter.
avoid
  • Do not flood a surface with accent colour or add a second bright hue.
  • Do not add gloss, glass, gradients, or decorative blobs.
  • Do not lean on an oversized hero headline when alignment and labelling do the work, or box the nav into a floating pill bar.
  • Do not leave any form control as a browser default.
imagery
pairs with

werkbild

summary
Subjects rendered in the Werkbild product-plate technique — one precisely engineered Braun-style object, matte powder-coated panels, a knurled monochrome control, raking upper-left light, a faint keyline grid behind, and exactly one burnt-orange signal element on a warm bone-and-graphite monochrome field.
subjects
control regulators and dialsinstrument panels and consolespowder-coated product casingsengineered modules and recessed slots
usage
One full-bleed hero per landing (--hero-image); feature imagery sits behind a graphite overlay panel for legibility. Never use illustrated/generated art for the thumbnail.
katagami spec
# Regler

## Philosophy

A restrained, functional-minimalist interface language in the Dieter Rams / Braun tradition: a warm bone ground, graphite controls, hairline keyline separation, knurled-dial hardware, and tabular readouts. The signature mechanic is the regulator track — every control reads as engineered instrumentation, and exactly one burnt-orange line marks what is live. Importance is registered to a slot, never flooded with colour.

### Values

- usefulness before novelty
- clarity through reduction and keyline separation
- controls that communicate their function and state
- honest hierarchy from spacing and alignment, not loud display

### Anti-Values

- decorative flourish without an idea
- gloss, glass, gradients, or pastel washes
- accent colour used as a background fill
- ambiguous controls or unstyled browser defaults

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#ECE7DE` |
| surface | `#F7F3EC` |
| text | `#17191A` |
| muted | `#7C766B` |
| border | `#CFC7B8` |
| accent | `#D96A32` |
| on_accent | `#FFFFFF` |
| graphite | `#2E3133` |
| recess | `#E3DDD1` |
| success | `#4E6B50` |
| warning | `#B9832F` |
| error | `#B7442A` |
| info | `#5C7688` |

### Typography

- **Base Size**: 17px
- **Body Font**: Archivo
- **Heading Font**: Archivo
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.01em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap

### Radii

- **Plate**: 0
- **Card**: 16px
- **Pill**: 9999px

### Shadows

- **Sm**: 0 1px 0 rgba(23,25,26,.06)
- **Md**: 0 10px 24px rgba(23,25,26,.07)
- **Lg**: 0 22px 44px rgba(23,25,26,.10)
- **Inset**: inset 0 0 0 1px #CFC7B8

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64]

### Surfaces

- **Treatment**: matte powder-coat plate
- **Card Style**: Warm paper plates separated by hairline keylines and an inset edge; edge defines a component before shadow does. No gloss.
- **Bg Pattern**: faint keyline registration grid

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Quiet engineering keylines — thin, crisp, evenly applied; separation by surface and rule, never heavy boxing or a single accent edge.

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2,0,0.2,1)
- **Philosophy**: deliberate

## Rules

### Composition

Compose every screen as a calm instrument panel: a summary zone of meter-plates, clearly segmented modules each opening with a mono overline and a hairline rule, and controls that sit in defined slots on a shared baseline.

### Hierarchy

Hierarchy comes from spacing, alignment, keyline separators, and label/value pairing — not oversized display. Scale is used sparingly.

### Density

Medium density with disciplined breathing room; panels hold many controls, but every control has a defined slot and measured padding.

### Signature

The regulator track: knurled rotary dials with one burnt-orange pointer, inset level-meters, segmented pills, physical switches, and tabular mono readouts — selected/live states marked only by a restrained burnt-orange line, dot, or fill, never by flooding the panel.

## Layout

### Grid

A 12-column desktop grid collapses to 8 on tablet and a single measured column on mobile; modules span whole columns rather than arbitrary card widths.

### Whitespace

Deliberate and even — consistent gutters and module padding over dramatic voids; every gap should feel engineered.

### Density

medium

### Responsive

Renders from ~390px to 2560px+; minmax(0,1fr) columns and min-width:0 children keep grids contained; only the full-bleed hero spans 100vw, contained content capped and centred on ultra-wide.

### Breakpoints

- **Mobile**: 375
- **Tablet**: 768
- **Desktop**: 1440

## Guidance

### Do

- Separate content with keylines, surface, and measured space before reaching for colour.
- Make every control self-explanatory with a label, a value, and a visible mechanical state.
- Reserve burnt-orange for the one thing that is live, active, focused, or filling a meter.

### Don't

- Do not flood a surface with accent colour or add a second bright hue.
- Do not add gloss, glass, gradients, or decorative blobs.
- Do not lean on an oversized hero headline when alignment and labelling do the work, or box the nav into a floating pill bar.
- Do not leave any form control as a browser default.

### Accessibility

High contrast graphite ink on warm bone; body 17px+; burnt-orange focus rings on every control; status conveyed by labelled pills and dots, not colour alone; respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

werkbild

### Summary

Subjects rendered in the Werkbild product-plate technique — one precisely engineered Braun-style object, matte powder-coated panels, a knurled monochrome control, raking upper-left light, a faint keyline grid behind, and exactly one burnt-orange signal element on a warm bone-and-graphite monochrome field.

### Subjects

- control regulators and dials
- instrument panels and consoles
- powder-coated product casings
- engineered modules and recessed slots

### Usage

One full-bleed hero per landing (--hero-image); feature imagery sits behind a graphite overlay panel for legibility. Never use illustrated/generated art for the thumbnail.
DESIGN.md
---
version: "alpha"
name: "Regler"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#ECE7DE"
  surface: "#F7F3EC"
  text: "#17191A"
  muted: "#7C766B"
  border: "#CFC7B8"
  accent: "#D96A32"
  on_accent: "#FFFFFF"
  graphite: "#2E3133"
  recess: "#E3DDD1"
  success: "#4E6B50"
  warning: "#B9832F"
  error: "#B7442A"
  info: "#5C7688"
typography:
  headline-lg:
    fontFamily: "Archivo"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Archivo"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Archivo"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  plate: "0px"
  card: "16px"
  pill: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-graphite:
    backgroundColor: "{colors.graphite}"
  color-reference-recess:
    backgroundColor: "{colors.recess}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "16px"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "16px"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "16px"
    height: "44px"
---

# Regler

## Overview

A restrained, functional-minimalist interface language in the Dieter Rams / Braun tradition: a warm bone ground, graphite controls, hairline keyline separation, knurled-dial hardware, and tabular readouts. The signature mechanic is the regulator track — every control reads as engineered instrumentation, and exactly one burnt-orange line marks what is live. Importance is registered to a slot, never flooded with colour.

### Values

- usefulness before novelty
- clarity through reduction and keyline separation
- controls that communicate their function and state
- honest hierarchy from spacing and alignment, not loud display

### Anti-Values

- decorative flourish without an idea
- gloss, glass, gradients, or pastel washes
- accent colour used as a background fill
- ambiguous controls or unstyled browser defaults

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| bg | `#ECE7DE` |
| surface | `#F7F3EC` |
| text | `#17191A` |
| muted | `#7C766B` |
| border | `#CFC7B8` |
| accent | `#D96A32` |
| on_accent | `#FFFFFF` |
| graphite | `#2E3133` |
| recess | `#E3DDD1` |
| success | `#4E6B50` |
| warning | `#B9832F` |
| error | `#B7442A` |
| info | `#5C7688` |

## Typography

- **Headline-Lg**: Archivo, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Archivo, 17px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`

### Grid

A 12-column desktop grid collapses to 8 on tablet and a single measured column on mobile; modules span whole columns rather than arbitrary card widths.

### Whitespace

Deliberate and even — consistent gutters and module padding over dramatic voids; every gap should feel engineered.

### Density

medium

### Responsive

Renders from ~390px to 2560px+; minmax(0,1fr) columns and min-width:0 children keep grids contained; only the full-bleed hero spans 100vw, contained content capped and centred on ultra-wide.

### Breakpoints

- **Mobile**: 375
- **Tablet**: 768
- **Desktop**: 1440

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(23,25,26,.06)
- **Md**: 0 10px 24px rgba(23,25,26,.07)
- **Lg**: 0 22px 44px rgba(23,25,26,.10)
- **Inset**: inset 0 0 0 1px #CFC7B8

## Shapes

### Rounded

- **Plate**: `0px`
- **Card**: `16px`
- **Pill**: `9999px`

### Surfaces

- **Treatment**: matte powder-coat plate
- **Card Style**: Warm paper plates separated by hairline keylines and an inset edge; edge defines a component before shadow does. No gloss.
- **Bg Pattern**: faint keyline registration grid

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Quiet engineering keylines — thin, crisp, evenly applied; separation by surface and rule, never heavy boxing or a single accent edge.

## Components

### Composition

Compose every screen as a calm instrument panel: a summary zone of meter-plates, clearly segmented modules each opening with a mono overline and a hairline rule, and controls that sit in defined slots on a shared baseline.

### Hierarchy

Hierarchy comes from spacing, alignment, keyline separators, and label/value pairing — not oversized display. Scale is used sparingly.

### Density

Medium density with disciplined breathing room; panels hold many controls, but every control has a defined slot and measured padding.

### Signature

The regulator track: knurled rotary dials with one burnt-orange pointer, inset level-meters, segmented pills, physical switches, and tabular mono readouts — selected/live states marked only by a restrained burnt-orange line, dot, or fill, never by flooding the panel.

## shadcn/ui Usage

When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.

DESIGN.md with shadcn: `/language/en-019ef8e6-6b2f-72b1-8d00-bfeedc4d9806/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Separate content with keylines, surface, and measured space before reaching for colour.
- Do Make every control self-explanatory with a label, a value, and a visible mechanical state.
- Do Reserve burnt-orange for the one thing that is live, active, focused, or filling a meter.
- Don't Do not flood a surface with accent colour or add a second bright hue.
- Don't Do not add gloss, glass, gradients, or decorative blobs.
- Don't Do not lean on an oversized hero headline when alignment and labelling do the work, or box the nav into a floating pill bar.
- Don't Do not leave any form control as a browser default.

### Accessibility

High contrast graphite ink on warm bone; body 17px+; burnt-orange focus rings on every control; status conveyed by labelled pills and dots, not colour alone; respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

werkbild

### Summary

Subjects rendered in the Werkbild product-plate technique — one precisely engineered Braun-style object, matte powder-coated panels, a knurled monochrome control, raking upper-left light, a faint keyline grid behind, and exactly one burnt-orange signal element on a warm bone-and-graphite monochrome field.

### Subjects

- control regulators and dials
- instrument panels and consoles
- powder-coated product casings
- engineered modules and recessed slots

### Usage

One full-bleed hero per landing (--hero-image); feature imagery sits behind a graphite overlay panel for legibility. Never use illustrated/generated art for the thumbnail.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "regler",
  "type": "registry:theme",
  "title": "Regler shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#ECE7DE",
      "foreground": "#17191A",
      "card": "#F7F3EC",
      "card-foreground": "#17191A",
      "popover": "#F7F3EC",
      "popover-foreground": "#17191A",
      "primary": "#17191A",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#7C766B",
      "muted-foreground": "#17191A",
      "accent": "#D96A32",
      "accent-foreground": "#ffffff",
      "destructive": "#B7442A",
      "border": "#CFC7B8",
      "input": "#CFC7B8",
      "ring": "#D96A32",
      "chart-1": "#17191A",
      "chart-2": "#f4f4f5",
      "chart-3": "#D96A32",
      "chart-4": "#4E6B50",
      "chart-5": "#B9832F",
      "sidebar": "#F7F3EC",
      "sidebar-foreground": "#17191A",
      "sidebar-primary": "#17191A",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#5C7688",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#CFC7B8",
      "sidebar-ring": "#D96A32",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#17191A",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D96A32",
      "accent-foreground": "#ffffff",
      "destructive": "#B7442A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D96A32",
      "chart-1": "#17191A",
      "chart-2": "#f4f4f5",
      "chart-3": "#D96A32",
      "chart-4": "#4E6B50",
      "chart-5": "#B9832F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#17191A",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D96A32",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D96A32",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef8e6-6b2f-72b1-8d00-bfeedc4d9806",
    "slug": "regler",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "bg",
        "border",
        "error",
        "graphite",
        "info",
        "muted",
        "on_accent",
        "recess",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "mono_font"
      ],
      "radii": [
        "card",
        "pill",
        "plate"
      ],
      "shadows": [
        "inset",
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

bespoke marketing landingopen full page ↗
landing · regler
DESIGN.md

at a glance

Typography

headline-lgArchivo · 33px · 700

The quick brown fox jumps

headline-mdArchivo · 27px · 600

The quick brown fox jumps

body-mdArchivo · 17px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

Keep Reglerand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.

UI language · fixed
Regler
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

1 descendant
related

More like this