back to gallery
design language·terrace

Terrace

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
Terrace is a design language for stewardship and field observation: interfaces for people who watch a living place over seasons. It keeps the slower, cultivated, nature-rooted soul of its lineage and gives it one ownable idea — read every surface the way a field scientist reads a soil core. A card is a core sample, a table is a depth log, the sidebar is a measured depth spine, and faint contour hairlines drift across the whole page like an elevation map.
values
Cultivated calm over sterile speedMaterial, measured surfaces over glossy abstractionOne clay signal spent like a highlighterBright, clean bone paper over muddy washesInterfaces that imply stewardship, care, and the long view
anti-values
×Chrome-heavy futurism and glassmorphism×Grey borders and boxed chrome×Muddy pastel background washes×Bouncy, gamified motion×Decoration without an idea
tokens
colors14 items
bg
#F6F3EC
surface
#FFFFFF
surface_solid
#FBF9F3
text
#1F2B24
muted
#5E6A60
border
#E4DFD3
accent
#C15A2B
accent_2
#2F5D4A
accent_soft
#E8C9A6
on_accent
#FFFFFF
success
#3F7A55
warning
#C0871F
error
#A8412F
info
#3A6B78
typography10 items
base size
17px
body font
Inter
heading font
Fraunces
mono font
IBM Plex Mono
heading weight
600
heading transform
none
letter spacing
-0.02em
line height
1.55
scale ratio
1.28
google fonts url
https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap
radii4 items
none
0px
md
16px
lg
24px
full
9999px
shadows3 items
sm
0 1px 2px rgba(31,43,36,0.08)
md
0 10px 24px rgba(31,43,36,0.10)
lg
0 26px 60px rgba(31,43,36,0.14)
spacing2 items
base
8px
scale
4px, 8px, 12px, 16px, 24px, 32px, 48px, 72px
surfaces3 items
treatment
bone paper
card style
core-sample surfaces: a ticked depth gutter down the left edge and a clay/spruce/sand stratum cap across the top
bg pattern
drifting horizontal contour hairlines (isopleths)
borders4 items
default width
1px
accent width
6px
style
solid
character
hairline warm-bone borders only; the accent width is the stratum cap, never a grey stroke
motion3 items
duration
200ms
easing
cubic-bezier(0.22, 1, 0.36, 1)
philosophy
settled, never bouncing — motion settles like sediment
rules
composition
Compose surfaces as core samples: a measured depth gutter down the left edge, a clay/spruce/sand stratum cap across the top, content banded into readable layers. Read tables top-down as depth logs; give the dashboard a measured depth spine instead of a boxed sidebar.
hierarchy
Lead with Fraunces headings and mono labels; the primary action is a single clay capsule, the stewardship path is spruce, everything else stays quiet. Status lives in flat mono badges.
density
Airy at the macro level with deep panel padding and generous margins; cultivated (tight) inside clusters. Balance density across the canvas — never a crowded cluster beside a starved void.
signature patterns
Every core surface carries a ticked depth gutter and a clay/spruce/sand stratum capFaint contour hairlines drift horizontally across large surfaces as a page-wide background systemTables and lists anchor each row with a clay depth marker and a mono depth readingThe dashboard navigation is a measured depth spine with a dotted railButtons settle with a pressed depth-shadow that collapses on active, like a stamp
layout
grid
Contained max-width (~1200px) with generous outer margin and deep panel padding on desktop. The dashboard runs a measured depth-spine rail on the left instead of a boxed sidebar; cards read as staggered cores, not identical boxes.
breakpoints
At 1024 the KPI row goes two-up and the transect/log split stacks while the spine keeps its dotted rail. The tablet band (768-1024) is its own considered layout, never a stretched mobile column. At 720 and below, stack to a single column, turn the depth spine into a horizontal scroll rail, scroll tables inside their core, and shrink the hero headline with clamp() so it wraps and never clips the 390px edge.
whitespace
Large outer margins and deep core padding; tight plant-like clustering inside cards. Whitespace reads like air pockets between stones — irregular at the macro level, disciplined at the micro level.
guidance
do
  • Read every surface as a core: gutter, stratum cap, banded content.
  • Keep bone paper the field, spruce the ink, and clay the single raised signal.
  • Let the contour hairlines recur page-wide as one system.
  • Keep body copy at 17px and put depths, counts, and labels in mono.
avoid
  • Do not box the navigation into a floating card or pill bar.
  • Do not give a card a single accent edge in place of the full stratum cap.
  • Do not introduce grey borders, glassmorphism, neon, or metallic chrome.
  • Do not let the strata cap or gutter become wallpaper on tiny chrome.
imagery
pairs with

corebed

summary
Layered risograph survey prints — flat overprinted spot-color layers with slight mis-registration, halftone grain, and thin contour hairlines. Subjects are terrain and stewardship: soil cross-sections, terraced hillsides, contour surveys, field instruments, wetland species.
usage

One full-bleed hero per landing via var(--hero-image). Copy and imagery never share the same ground — text sits on the bone panel, imagery fills its own bleed.

avoid

Photographic field-notes, glossy renders, more than four inks, text in the image.

katagami spec
# Terrace

## Philosophy

Terrace is a design language for stewardship and field observation: interfaces for people who watch a living place over seasons. It keeps the slower, cultivated, nature-rooted soul of its lineage and gives it one ownable idea — read every surface the way a field scientist reads a soil core. A card is a core sample, a table is a depth log, the sidebar is a measured depth spine, and faint contour hairlines drift across the whole page like an elevation map.

### Values

- Cultivated calm over sterile speed
- Material, measured surfaces over glossy abstraction
- One clay signal spent like a highlighter
- Bright, clean bone paper over muddy washes
- Interfaces that imply stewardship, care, and the long view

### Anti-Values

- Chrome-heavy futurism and glassmorphism
- Grey borders and boxed chrome
- Muddy pastel background washes
- Bouncy, gamified motion
- Decoration without an idea

### Visual Character

- Every core surface carries a ticked depth gutter and a clay/spruce/sand stratum cap
- Contour hairlines recur page-wide as one drifting background system
- Tables and lists anchor each row with a clay depth marker and a mono depth reading
- Navigation is a measured depth spine, never a boxed sidebar
- Controls settle with a pressed depth-shadow, like a stamp

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#F6F3EC` |
| surface | `#FFFFFF` |
| surface_solid | `#FBF9F3` |
| text | `#1F2B24` |
| muted | `#5E6A60` |
| border | `#E4DFD3` |
| accent | `#C15A2B` |
| accent_2 | `#2F5D4A` |
| accent_soft | `#E8C9A6` |
| on_accent | `#FFFFFF` |
| success | `#3F7A55` |
| warning | `#C0871F` |
| error | `#A8412F` |
| info | `#3A6B78` |

### Typography

- **Base Size**: 17px
- **Body Font**: Inter
- **Heading Font**: Fraunces
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Scale Ratio**: 1.28
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap

### Radii

- **None**: 0px
- **Md**: 16px
- **Lg**: 24px
- **Full**: 9999px

### Shadows

- **Sm**: 0 1px 2px rgba(31,43,36,0.08)
- **Md**: 0 10px 24px rgba(31,43,36,0.10)
- **Lg**: 0 26px 60px rgba(31,43,36,0.14)

### Spacing

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

### Surfaces

- **Treatment**: bone paper
- **Card Style**: core-sample surfaces: a ticked depth gutter down the left edge and a clay/spruce/sand stratum cap across the top
- **Bg Pattern**: drifting horizontal contour hairlines (isopleths)

### Borders

- **Default Width**: 1px
- **Accent Width**: 6px
- **Style**: solid
- **Character**: hairline warm-bone borders only; the accent width is the stratum cap, never a grey stroke

### Motion

- **Duration**: 200ms
- **Easing**: cubic-bezier(0.22, 1, 0.36, 1)
- **Philosophy**: settled, never bouncing — motion settles like sediment

## Rules

### Composition

Compose surfaces as core samples: a measured depth gutter down the left edge, a clay/spruce/sand stratum cap across the top, content banded into readable layers. Read tables top-down as depth logs; give the dashboard a measured depth spine instead of a boxed sidebar.

### Hierarchy

Lead with Fraunces headings and mono labels; the primary action is a single clay capsule, the stewardship path is spruce, everything else stays quiet. Status lives in flat mono badges.

### Density

Airy at the macro level with deep panel padding and generous margins; cultivated (tight) inside clusters. Balance density across the canvas — never a crowded cluster beside a starved void.

### Signature Patterns

- Every core surface carries a ticked depth gutter and a clay/spruce/sand stratum cap
- Faint contour hairlines drift horizontally across large surfaces as a page-wide background system
- Tables and lists anchor each row with a clay depth marker and a mono depth reading
- The dashboard navigation is a measured depth spine with a dotted rail
- Buttons settle with a pressed depth-shadow that collapses on active, like a stamp

## Layout

### Grid

Contained max-width (~1200px) with generous outer margin and deep panel padding on desktop. The dashboard runs a measured depth-spine rail on the left instead of a boxed sidebar; cards read as staggered cores, not identical boxes.

### Breakpoints

At 1024 the KPI row goes two-up and the transect/log split stacks while the spine keeps its dotted rail. The tablet band (768-1024) is its own considered layout, never a stretched mobile column. At 720 and below, stack to a single column, turn the depth spine into a horizontal scroll rail, scroll tables inside their core, and shrink the hero headline with clamp() so it wraps and never clips the 390px edge.

### Whitespace

Large outer margins and deep core padding; tight plant-like clustering inside cards. Whitespace reads like air pockets between stones — irregular at the macro level, disciplined at the micro level.

## Guidance

### Do

- Read every surface as a core: gutter, stratum cap, banded content.
- Keep bone paper the field, spruce the ink, and clay the single raised signal.
- Let the contour hairlines recur page-wide as one system.
- Keep body copy at 17px and put depths, counts, and labels in mono.

### Don't

- Do not box the navigation into a floating card or pill bar.
- Do not give a card a single accent edge in place of the full stratum cap.
- Do not introduce grey borders, glassmorphism, neon, or metallic chrome.
- Do not let the strata cap or gutter become wallpaper on tiny chrome.

## Imagery Direction

### Pairs With

corebed

### Summary

Layered risograph survey prints — flat overprinted spot-color layers with slight mis-registration, halftone grain, and thin contour hairlines. Subjects are terrain and stewardship: soil cross-sections, terraced hillsides, contour surveys, field instruments, wetland species.

### Usage

One full-bleed hero per landing via var(--hero-image). Copy and imagery never share the same ground — text sits on the bone panel, imagery fills its own bleed.

### Avoid

Photographic field-notes, glossy renders, more than four inks, text in the image.
DESIGN.md
---
version: "alpha"
name: "Terrace"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#F6F3EC"
  surface: "#FFFFFF"
  surface_solid: "#FBF9F3"
  text: "#1F2B24"
  muted: "#5E6A60"
  border: "#E4DFD3"
  accent: "#C15A2B"
  accent_2: "#2F5D4A"
  accent_soft: "#E8C9A6"
  on_accent: "#FFFFFF"
  success: "#3F7A55"
  warning: "#C0871F"
  error: "#A8412F"
  info: "#3A6B78"
typography:
  headline-lg:
    fontFamily: "Fraunces"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Fraunces"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Inter"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  md: "16px"
  lg: "24px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "72px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_solid:
    backgroundColor: "{colors.surface_solid}"
  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-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_soft:
    backgroundColor: "{colors.accent_soft}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  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: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Terrace

## Overview

Terrace is a design language for stewardship and field observation: interfaces for people who watch a living place over seasons. It keeps the slower, cultivated, nature-rooted soul of its lineage and gives it one ownable idea — read every surface the way a field scientist reads a soil core. A card is a core sample, a table is a depth log, the sidebar is a measured depth spine, and faint contour hairlines drift across the whole page like an elevation map.

### Values

- Cultivated calm over sterile speed
- Material, measured surfaces over glossy abstraction
- One clay signal spent like a highlighter
- Bright, clean bone paper over muddy washes
- Interfaces that imply stewardship, care, and the long view

### Anti-Values

- Chrome-heavy futurism and glassmorphism
- Grey borders and boxed chrome
- Muddy pastel background washes
- Bouncy, gamified motion
- Decoration without an idea

### Visual Character

- Every core surface carries a ticked depth gutter and a clay/spruce/sand stratum cap
- Contour hairlines recur page-wide as one drifting background system
- Tables and lists anchor each row with a clay depth marker and a mono depth reading
- Navigation is a measured depth spine, never a boxed sidebar
- Controls settle with a pressed depth-shadow, like a stamp

## 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 | `#F6F3EC` |
| surface | `#FFFFFF` |
| surface_solid | `#FBF9F3` |
| text | `#1F2B24` |
| muted | `#5E6A60` |
| border | `#E4DFD3` |
| accent | `#C15A2B` |
| accent_2 | `#2F5D4A` |
| accent_soft | `#E8C9A6` |
| on_accent | `#FFFFFF` |
| success | `#3F7A55` |
| warning | `#C0871F` |
| error | `#A8412F` |
| info | `#3A6B78` |

## Typography

- **Headline-Lg**: Fraunces, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 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**: `72px`

### Grid

Contained max-width (~1200px) with generous outer margin and deep panel padding on desktop. The dashboard runs a measured depth-spine rail on the left instead of a boxed sidebar; cards read as staggered cores, not identical boxes.

### Breakpoints

At 1024 the KPI row goes two-up and the transect/log split stacks while the spine keeps its dotted rail. The tablet band (768-1024) is its own considered layout, never a stretched mobile column. At 720 and below, stack to a single column, turn the depth spine into a horizontal scroll rail, scroll tables inside their core, and shrink the hero headline with clamp() so it wraps and never clips the 390px edge.

### Whitespace

Large outer margins and deep core padding; tight plant-like clustering inside cards. Whitespace reads like air pockets between stones — irregular at the macro level, disciplined at the micro level.

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 2px rgba(31,43,36,0.08)
- **Md**: 0 10px 24px rgba(31,43,36,0.10)
- **Lg**: 0 26px 60px rgba(31,43,36,0.14)

## Shapes

### Rounded

- **None**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: bone paper
- **Card Style**: core-sample surfaces: a ticked depth gutter down the left edge and a clay/spruce/sand stratum cap across the top
- **Bg Pattern**: drifting horizontal contour hairlines (isopleths)

### Borders

- **Default Width**: 1px
- **Accent Width**: 6px
- **Style**: solid
- **Character**: hairline warm-bone borders only; the accent width is the stratum cap, never a grey stroke

## Components

### Composition

Compose surfaces as core samples: a measured depth gutter down the left edge, a clay/spruce/sand stratum cap across the top, content banded into readable layers. Read tables top-down as depth logs; give the dashboard a measured depth spine instead of a boxed sidebar.

### Hierarchy

Lead with Fraunces headings and mono labels; the primary action is a single clay capsule, the stewardship path is spruce, everything else stays quiet. Status lives in flat mono badges.

### Density

Airy at the macro level with deep panel padding and generous margins; cultivated (tight) inside clusters. Balance density across the canvas — never a crowded cluster beside a starved void.

### Signature Patterns

- Every core surface carries a ticked depth gutter and a clay/spruce/sand stratum cap
- Faint contour hairlines drift horizontally across large surfaces as a page-wide background system
- Tables and lists anchor each row with a clay depth marker and a mono depth reading
- The dashboard navigation is a measured depth spine with a dotted rail
- Buttons settle with a pressed depth-shadow that collapses on active, like a stamp

## 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-019f7076-1520-70d2-b1f3-b62a45889db7/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 Read every surface as a core: gutter, stratum cap, banded content.
- Do Keep bone paper the field, spruce the ink, and clay the single raised signal.
- Do Let the contour hairlines recur page-wide as one system.
- Do Keep body copy at 17px and put depths, counts, and labels in mono.
- Don't Do not box the navigation into a floating card or pill bar.
- Don't Do not give a card a single accent edge in place of the full stratum cap.
- Don't Do not introduce grey borders, glassmorphism, neon, or metallic chrome.
- Don't Do not let the strata cap or gutter become wallpaper on tiny chrome.

## Imagery Direction

### Pairs With

corebed

### Summary

Layered risograph survey prints — flat overprinted spot-color layers with slight mis-registration, halftone grain, and thin contour hairlines. Subjects are terrain and stewardship: soil cross-sections, terraced hillsides, contour surveys, field instruments, wetland species.

### Usage

One full-bleed hero per landing via var(--hero-image). Copy and imagery never share the same ground — text sits on the bone panel, imagery fills its own bleed.

### Avoid

Photographic field-notes, glossy renders, more than four inks, text in the image.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "terrace",
  "type": "registry:theme",
  "title": "Terrace shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F3EC",
      "foreground": "#1F2B24",
      "card": "#FFFFFF",
      "card-foreground": "#1F2B24",
      "popover": "#FFFFFF",
      "popover-foreground": "#1F2B24",
      "primary": "#1F2B24",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#5E6A60",
      "muted-foreground": "#1F2B24",
      "accent": "#C15A2B",
      "accent-foreground": "#ffffff",
      "destructive": "#A8412F",
      "border": "#E4DFD3",
      "input": "#E4DFD3",
      "ring": "#C15A2B",
      "chart-1": "#1F2B24",
      "chart-2": "#f4f4f5",
      "chart-3": "#C15A2B",
      "chart-4": "#3F7A55",
      "chart-5": "#C0871F",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#1F2B24",
      "sidebar-primary": "#1F2B24",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#3A6B78",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#E4DFD3",
      "sidebar-ring": "#C15A2B",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1F2B24",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C15A2B",
      "accent-foreground": "#ffffff",
      "destructive": "#A8412F",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C15A2B",
      "chart-1": "#1F2B24",
      "chart-2": "#f4f4f5",
      "chart-3": "#C15A2B",
      "chart-4": "#3F7A55",
      "chart-5": "#C0871F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1F2B24",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#C15A2B",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C15A2B",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019f7076-1520-70d2-b1f3-b62a45889db7",
    "slug": "terrace",
    "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",
        "accent_2",
        "accent_soft",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_solid",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none"
      ],
      "shadows": [
        "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 · terrace
DESIGN.md

at a glance

Typography

headline-lgFraunces · 33px · 700

The quick brown fox jumps

headline-mdFraunces · 27px · 600

The quick brown fox jumps

body-mdInter · 17px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
Palette

Agent-generated

remix lane

try a remix

Keep Terraceand 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
Terrace
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this