back to gallery
design language·kerf-works

Kerf Works

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
Kerf Works treats pixel art as a luxury registration system: one quiet forest ink on warm uncoated paper, tone built from a 4px dither dot-matrix, and every surface laid out as a die-cut carton, label, or sample sheet. Pixels appear only as small verification marks — seals, registration crosshairs, stepped corner ticks — so the bitmap reads as a premium packaging proof, never a retro game skin.
values
One-ink confidence with tonal paper depthTiny bitmap marks used as registration, not decorationGenerous calm paper that makes a small pixel feel valuablePackaging-grade hierarchy: labels, seals, batch codes, dielines
anti-values
×Neon arcade nostalgia or noisy full-screen sprites×Generic SaaS dashboards with pixel icons pasted on top×Overfilled dithering that destroys the premium paper calm×Gradients, glow, or rounded friendly app bubbles
tokens
colors16 items
bg
#F4EEDF
surface
#FCFAF1
surface_2
#ECE4D2
text
#1C2620
muted
#847C6C
border
#D8CFBC
accent
#233A2E
on_accent
#F7F2E6
accent_2
#A6611F
accent_3
#3C5E6C
primary
#233A2E
secondary
#ECE4D2
success
#2F5C3E
warning
#946322
error
#8B3A32
info
#3C5E6C
typography10 items
base size
17px
body font
Literata
heading font
Fraunces
mono font
IBM Plex Mono
heading weight
500
heading transform
none
letter spacing
-0.02em
line height
1.55
scale ratio
1.22
google fonts url
https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Literata:opsz,wght@7..72,400;7..72,500;7..72,600&family=IBM+Plex+Mono:wght@400;500;600&display=swap
radii4 items
none
0
sm
2px
lg
16px
full
9999px
shadows3 items
sm
0 1px 0 rgba(28,38,32,.10)
md
0 14px 38px rgba(35,58,46,.07)
lg
0 30px 80px rgba(35,58,46,.10)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
bg pattern
bare warm-paper field with faint single-ink fibre speckle and occasional registration marks
card style
flat carton panels: hairline ink rule, 2px radius, clipped label tabs, die-cut stepped corner ticks, sparse pixel seals, oversized gutters
treatment
premium warm uncoated paper with subtle fibre speckle made from tiny single-ink radial gradients
borders4 items
default width
1px
accent width
2px
style
solid
character
hairline carton rules interrupted by 4px stepped pixel ticks at selected corners (ink top-left, copper bottom-right)
motion3 items
duration
160ms
easing
steps(2, end)
philosophy
interactions snap in two bitmap increments like print registration aligning — never bounce or float; landing reveal is gated on top of a fully settled no-JS state
rules
composition

Compose like a premium sample box: one dominant carton panel, small label islands, barcode-like data strips, and more empty paper than content.

hierarchy
Dramatic scale: a large quiet Fraunces headline, tiny mono batch metadata, compact controls grouped as printed label blocks. One button is clearly primary (forest + pixel seal); the rest are quieter.
density

Low density overall, with dense 4px bitmap clusters only at seals, corners, and status strips.

signature
The pixel seal: a 4px-square box-shadow constellation (forest ink + one copper square) that stamps the focal action as verified, recolouring on palette swap and reappearing as registration crosshairs, stepped die-cut corner ticks, dither tone fields, and a registration meter.
layout
grid
A 12-column packaging sheet; the landing leads with a full-bleed hero carton, the dashboard uses an open batch-code rail plus a content sheet. Mobile stacks to single-column sealed slips.
whitespace

Whitespace is the signature material: 64-96px paper fields between content, while label internals compress to 4px and 8px increments.

density

calm

responsive
Renders from ~390px mobile to 2560px+ ultra-wide: single-column stack with nav links and table columns dropped on mobile; contained content capped and centred on ultra-wide while only the hero spans 100vw; minmax(0,1fr) columns so grids never blow out.
breakpoints
mobile
390px
tablet
768px
desktop
1200px
wide
2560px
guidance
do
  • Use one forest ink plus paper tints before introducing any extra accent; reserve copper for seals/ticks and blue for liners/info.
  • Keep pixel marks physically small and aligned to a 4px bitmap grid.
  • Make every screen a plausible label, carton, insert, seal, or premium sample sheet.
  • Use empty paper to make controls and marks feel deliberately printed; build tone from dither, never gradients.
avoid
  • Do not use rainbow pixel art, game characters, or neon CRT glow.
  • Do not fill backgrounds with dense dithering or decorative sprites.
  • Do not round components into friendly app bubbles or box the nav into a floating pill; keep packaging geometry crisp at 2px.
  • Do not give a card a single accent edge, or use generic dashboard widgets when product-package content can carry the scene.
imagery
pairs with

mill-proof

summary
Single-ink bitmap-reduction imagery on warm paper: a packaging subject (sample box, sealed carton) rendered in one forest ink with tone from an ordered 4px dither dot-matrix, registration crosshairs and stepped corner ticks in the margins. Calm, refined, packaging-proof — never retro arcade.
subjects
a premium cedar packaging sample boxa sealed carton with a verification sealfolded paper inserts and label slipsa dieline / proof sheet
usage
Heroes are full-bleed single-ink bitmap reductions composed with the subject dominant in frame, marks sparse in the calm paper margins. No second colour, no text. Drive the hero with background-image: var(--hero-image).
engine hints
generator
nano-banana-pro
model
gemini-3-pro-image-preview
provider
google
tool
nano-banana-pro MCP
fallback reason
openai-image is billing-capped; used nano-banana-pro directly per task instruction
recommended size
2K, 16:9 for full-bleed heroes
notes
Strictly single forest ink (#233A2E) on warm paper (#F4EEDF); tone from ordered dither, never gradients. End prompts with NO text, NO letters, NO logos.
katagami spec
# Kerf Works

## Philosophy

Kerf Works treats pixel art as a luxury registration system: one quiet forest ink on warm uncoated paper, tone built from a 4px dither dot-matrix, and every surface laid out as a die-cut carton, label, or sample sheet. Pixels appear only as small verification marks — seals, registration crosshairs, stepped corner ticks — so the bitmap reads as a premium packaging proof, never a retro game skin.

### Values

- One-ink confidence with tonal paper depth
- Tiny bitmap marks used as registration, not decoration
- Generous calm paper that makes a small pixel feel valuable
- Packaging-grade hierarchy: labels, seals, batch codes, dielines

### Anti-Values

- Neon arcade nostalgia or noisy full-screen sprites
- Generic SaaS dashboards with pixel icons pasted on top
- Overfilled dithering that destroys the premium paper calm
- Gradients, glow, or rounded friendly app bubbles

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#F4EEDF` |
| surface | `#FCFAF1` |
| surface_2 | `#ECE4D2` |
| text | `#1C2620` |
| muted | `#847C6C` |
| border | `#D8CFBC` |
| accent | `#233A2E` |
| on_accent | `#F7F2E6` |
| accent_2 | `#A6611F` |
| accent_3 | `#3C5E6C` |
| primary | `#233A2E` |
| secondary | `#ECE4D2` |
| success | `#2F5C3E` |
| warning | `#946322` |
| error | `#8B3A32` |
| info | `#3C5E6C` |

### Typography

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

### Radii

- **None**: 0
- **Sm**: 2px
- **Lg**: 16px
- **Full**: 9999px

### Shadows

- **Sm**: 0 1px 0 rgba(28,38,32,.10)
- **Md**: 0 14px 38px rgba(35,58,46,.07)
- **Lg**: 0 30px 80px rgba(35,58,46,.10)

### Spacing

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

### Surfaces

- **Bg Pattern**: bare warm-paper field with faint single-ink fibre speckle and occasional registration marks
- **Card Style**: flat carton panels: hairline ink rule, 2px radius, clipped label tabs, die-cut stepped corner ticks, sparse pixel seals, oversized gutters
- **Treatment**: premium warm uncoated paper with subtle fibre speckle made from tiny single-ink radial gradients

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: hairline carton rules interrupted by 4px stepped pixel ticks at selected corners (ink top-left, copper bottom-right)

### Motion

- **Duration**: 160ms
- **Easing**: steps(2, end)
- **Philosophy**: interactions snap in two bitmap increments like print registration aligning — never bounce or float; landing reveal is gated on top of a fully settled no-JS state

## Rules

### Composition

Compose like a premium sample box: one dominant carton panel, small label islands, barcode-like data strips, and more empty paper than content.

### Hierarchy

Dramatic scale: a large quiet Fraunces headline, tiny mono batch metadata, compact controls grouped as printed label blocks. One button is clearly primary (forest + pixel seal); the rest are quieter.

### Density

Low density overall, with dense 4px bitmap clusters only at seals, corners, and status strips.

### Signature

The pixel seal: a 4px-square box-shadow constellation (forest ink + one copper square) that stamps the focal action as verified, recolouring on palette swap and reappearing as registration crosshairs, stepped die-cut corner ticks, dither tone fields, and a registration meter.

## Layout

### Grid

A 12-column packaging sheet; the landing leads with a full-bleed hero carton, the dashboard uses an open batch-code rail plus a content sheet. Mobile stacks to single-column sealed slips.

### Whitespace

Whitespace is the signature material: 64-96px paper fields between content, while label internals compress to 4px and 8px increments.

### Density

calm

### Responsive

Renders from ~390px mobile to 2560px+ ultra-wide: single-column stack with nav links and table columns dropped on mobile; contained content capped and centred on ultra-wide while only the hero spans 100vw; minmax(0,1fr) columns so grids never blow out.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1200px
- **Wide**: 2560px

## Guidance

### Do

- Use one forest ink plus paper tints before introducing any extra accent; reserve copper for seals/ticks and blue for liners/info.
- Keep pixel marks physically small and aligned to a 4px bitmap grid.
- Make every screen a plausible label, carton, insert, seal, or premium sample sheet.
- Use empty paper to make controls and marks feel deliberately printed; build tone from dither, never gradients.

### Don't

- Do not use rainbow pixel art, game characters, or neon CRT glow.
- Do not fill backgrounds with dense dithering or decorative sprites.
- Do not round components into friendly app bubbles or box the nav into a floating pill; keep packaging geometry crisp at 2px.
- Do not give a card a single accent edge, or use generic dashboard widgets when product-package content can carry the scene.

### Accessibility

High contrast throughout: forest ink #233A2E and text #1C2620 on warm paper #F4EEDF clear AA for body and large text; on-accent paper #F7F2E6 on forest is high contrast. Focus is a visible 2px forest ring plus glow. Body 17px+, table rows 14.5px+. Marks carry text labels; motion respects prefers-reduced-motion and the settled state renders with no JS. No symbol glyphs in copy — pixel marks are decorative CSS with aria-hidden.

## Imagery Direction

### Pairs With

mill-proof

### Summary

Single-ink bitmap-reduction imagery on warm paper: a packaging subject (sample box, sealed carton) rendered in one forest ink with tone from an ordered 4px dither dot-matrix, registration crosshairs and stepped corner ticks in the margins. Calm, refined, packaging-proof — never retro arcade.

### Subjects

- a premium cedar packaging sample box
- a sealed carton with a verification seal
- folded paper inserts and label slips
- a dieline / proof sheet

### Usage

Heroes are full-bleed single-ink bitmap reductions composed with the subject dominant in frame, marks sparse in the calm paper margins. No second colour, no text. Drive the hero with background-image: var(--hero-image).

### Engine Hints

- **Generator**: nano-banana-pro
- **Model**: gemini-3-pro-image-preview
- **Provider**: google
- **Tool**: nano-banana-pro MCP
- **Fallback Reason**: openai-image is billing-capped; used nano-banana-pro directly per task instruction
- **Recommended Size**: 2K, 16:9 for full-bleed heroes
- **Notes**: Strictly single forest ink (#233A2E) on warm paper (#F4EEDF); tone from ordered dither, never gradients. End prompts with NO text, NO letters, NO logos.
DESIGN.md
---
version: "alpha"
name: "Kerf Works"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#F4EEDF"
  surface: "#FCFAF1"
  surface_2: "#ECE4D2"
  text: "#1C2620"
  muted: "#847C6C"
  border: "#D8CFBC"
  accent: "#233A2E"
  on_accent: "#F7F2E6"
  accent_2: "#A6611F"
  accent_3: "#3C5E6C"
  primary: "#233A2E"
  secondary: "#ECE4D2"
  success: "#2F5C3E"
  warning: "#946322"
  error: "#8B3A32"
  info: "#3C5E6C"
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: "Literata"
    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"
  sm: "2px"
  lg: "16px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_2:
    backgroundColor: "{colors.surface_2}"
  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-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_3:
    backgroundColor: "{colors.accent_3}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  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.primary}"
    textColor: "#ffffff"
    typography: "{typography.label-md}"
    rounded: "{rounded.lg}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.lg}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.lg}"
    height: "44px"
---

# Kerf Works

## Overview

Kerf Works treats pixel art as a luxury registration system: one quiet forest ink on warm uncoated paper, tone built from a 4px dither dot-matrix, and every surface laid out as a die-cut carton, label, or sample sheet. Pixels appear only as small verification marks — seals, registration crosshairs, stepped corner ticks — so the bitmap reads as a premium packaging proof, never a retro game skin.

### Values

- One-ink confidence with tonal paper depth
- Tiny bitmap marks used as registration, not decoration
- Generous calm paper that makes a small pixel feel valuable
- Packaging-grade hierarchy: labels, seals, batch codes, dielines

### Anti-Values

- Neon arcade nostalgia or noisy full-screen sprites
- Generic SaaS dashboards with pixel icons pasted on top
- Overfilled dithering that destroys the premium paper calm
- Gradients, glow, or rounded friendly app bubbles

## 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 | `#F4EEDF` |
| surface | `#FCFAF1` |
| surface_2 | `#ECE4D2` |
| text | `#1C2620` |
| muted | `#847C6C` |
| border | `#D8CFBC` |
| accent | `#233A2E` |
| on_accent | `#F7F2E6` |
| accent_2 | `#A6611F` |
| accent_3 | `#3C5E6C` |
| primary | `#233A2E` |
| secondary | `#ECE4D2` |
| success | `#2F5C3E` |
| warning | `#946322` |
| error | `#8B3A32` |
| info | `#3C5E6C` |

## 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**: Literata, 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`
- **Step-8**: `96px`

### Grid

A 12-column packaging sheet; the landing leads with a full-bleed hero carton, the dashboard uses an open batch-code rail plus a content sheet. Mobile stacks to single-column sealed slips.

### Whitespace

Whitespace is the signature material: 64-96px paper fields between content, while label internals compress to 4px and 8px increments.

### Density

calm

### Responsive

Renders from ~390px mobile to 2560px+ ultra-wide: single-column stack with nav links and table columns dropped on mobile; contained content capped and centred on ultra-wide while only the hero spans 100vw; minmax(0,1fr) columns so grids never blow out.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1200px
- **Wide**: 2560px

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(28,38,32,.10)
- **Md**: 0 14px 38px rgba(35,58,46,.07)
- **Lg**: 0 30px 80px rgba(35,58,46,.10)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `2px`
- **Lg**: `16px`
- **Full**: `9999px`

### Surfaces

- **Bg Pattern**: bare warm-paper field with faint single-ink fibre speckle and occasional registration marks
- **Card Style**: flat carton panels: hairline ink rule, 2px radius, clipped label tabs, die-cut stepped corner ticks, sparse pixel seals, oversized gutters
- **Treatment**: premium warm uncoated paper with subtle fibre speckle made from tiny single-ink radial gradients

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: hairline carton rules interrupted by 4px stepped pixel ticks at selected corners (ink top-left, copper bottom-right)

## Components

### Composition

Compose like a premium sample box: one dominant carton panel, small label islands, barcode-like data strips, and more empty paper than content.

### Hierarchy

Dramatic scale: a large quiet Fraunces headline, tiny mono batch metadata, compact controls grouped as printed label blocks. One button is clearly primary (forest + pixel seal); the rest are quieter.

### Density

Low density overall, with dense 4px bitmap clusters only at seals, corners, and status strips.

### Signature

The pixel seal: a 4px-square box-shadow constellation (forest ink + one copper square) that stamps the focal action as verified, recolouring on palette swap and reappearing as registration crosshairs, stepped die-cut corner ticks, dither tone fields, and a registration meter.

## 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-019ef96e-8451-7be0-8f86-3d8dee3f2478/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 Use one forest ink plus paper tints before introducing any extra accent; reserve copper for seals/ticks and blue for liners/info.
- Do Keep pixel marks physically small and aligned to a 4px bitmap grid.
- Do Make every screen a plausible label, carton, insert, seal, or premium sample sheet.
- Do Use empty paper to make controls and marks feel deliberately printed; build tone from dither, never gradients.
- Don't Do not use rainbow pixel art, game characters, or neon CRT glow.
- Don't Do not fill backgrounds with dense dithering or decorative sprites.
- Don't Do not round components into friendly app bubbles or box the nav into a floating pill; keep packaging geometry crisp at 2px.
- Don't Do not give a card a single accent edge, or use generic dashboard widgets when product-package content can carry the scene.

### Accessibility

High contrast throughout: forest ink #233A2E and text #1C2620 on warm paper #F4EEDF clear AA for body and large text; on-accent paper #F7F2E6 on forest is high contrast. Focus is a visible 2px forest ring plus glow. Body 17px+, table rows 14.5px+. Marks carry text labels; motion respects prefers-reduced-motion and the settled state renders with no JS. No symbol glyphs in copy — pixel marks are decorative CSS with aria-hidden.

## Imagery Direction

### Pairs With

mill-proof

### Summary

Single-ink bitmap-reduction imagery on warm paper: a packaging subject (sample box, sealed carton) rendered in one forest ink with tone from an ordered 4px dither dot-matrix, registration crosshairs and stepped corner ticks in the margins. Calm, refined, packaging-proof — never retro arcade.

### Subjects

- a premium cedar packaging sample box
- a sealed carton with a verification seal
- folded paper inserts and label slips
- a dieline / proof sheet

### Usage

Heroes are full-bleed single-ink bitmap reductions composed with the subject dominant in frame, marks sparse in the calm paper margins. No second colour, no text. Drive the hero with background-image: var(--hero-image).

### Engine Hints

- **Generator**: nano-banana-pro
- **Model**: gemini-3-pro-image-preview
- **Provider**: google
- **Tool**: nano-banana-pro MCP
- **Fallback Reason**: openai-image is billing-capped; used nano-banana-pro directly per task instruction
- **Recommended Size**: 2K, 16:9 for full-bleed heroes
- **Notes**: Strictly single forest ink (#233A2E) on warm paper (#F4EEDF); tone from ordered dither, never gradients. End prompts with NO text, NO letters, NO logos.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "kerf-works",
  "type": "registry:theme",
  "title": "Kerf Works shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F4EEDF",
      "foreground": "#1C2620",
      "card": "#FCFAF1",
      "card-foreground": "#1C2620",
      "popover": "#FCFAF1",
      "popover-foreground": "#1C2620",
      "primary": "#233A2E",
      "primary-foreground": "#ffffff",
      "secondary": "#ECE4D2",
      "secondary-foreground": "#111111",
      "muted": "#847C6C",
      "muted-foreground": "#1C2620",
      "accent": "#233A2E",
      "accent-foreground": "#ffffff",
      "destructive": "#8B3A32",
      "border": "#D8CFBC",
      "input": "#D8CFBC",
      "ring": "#233A2E",
      "chart-1": "#233A2E",
      "chart-2": "#ECE4D2",
      "chart-3": "#233A2E",
      "chart-4": "#2F5C3E",
      "chart-5": "#946322",
      "sidebar": "#FCFAF1",
      "sidebar-foreground": "#1C2620",
      "sidebar-primary": "#233A2E",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#3C5E6C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8CFBC",
      "sidebar-ring": "#233A2E",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#233A2E",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#233A2E",
      "accent-foreground": "#ffffff",
      "destructive": "#8B3A32",
      "border": "#303642",
      "input": "#303642",
      "ring": "#233A2E",
      "chart-1": "#233A2E",
      "chart-2": "#ECE4D2",
      "chart-3": "#233A2E",
      "chart-4": "#2F5C3E",
      "chart-5": "#946322",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#233A2E",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#233A2E",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#233A2E",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef96e-8451-7be0-8f86-3d8dee3f2478",
    "slug": "kerf-works",
    "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_3",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "primary",
        "secondary",
        "success",
        "surface",
        "surface_2",
        "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",
        "none",
        "sm"
      ],
      "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 · kerf-works
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-mdLiterata · 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 Kerf Worksand 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
Kerf Works
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

1 descendant
related

More like this