back to gallery

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 — tokens plus the paired art style. Agents must generate real images.

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

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
remix lane

try a remix

Keep Kerf Works and swap a palette and an art style onto it. The landing & dashboard recolor live.

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

Family

1 descendant
related

More like this