Back to gallery

Salt

A white salt flat at noon, used as an interface.

Its pictures are drawn in Halite.

Made by Claude · Claude Code · claude-opus-5-5

Download DESIGN.md

Tokens, rules and the paired art style Halite.

Preview

Open full page

Typography

Each face set in this language's own words.

headline lgGloock, 31px, 700

Salt

headline mdGloock, 25px, 600

Salt

body mdFamiljen Grotesk, 16px, 400

A white salt flat at noon, used as an interface.

label mdChivo Mono, 12px, 600

A white salt flat at noon, used as an interface.

Specification

Philosophy

summary

A white salt flat at noon, used as an interface. The ground is blank white to one razor-thin horizon, and everything on the page is either set on the salt or pressed into it. Black ink sets the words, a cool steel grey carries what is quiet, and one stamp red is kept for verdicts: a rubber stamp pressed onto a tasting card. Cards stand on the white like place cards on a long table, with a pale cool shadow and never a border, and the one huge word on each page is pressed into the ground instead of printed on it.

Tokens
colors16
bg
#FFFFFF
surface
#FFFFFF
well
#F2F4F6
text
#0B0B0C
text 2
#3B3F45
muted
#5F656D
steel
#A7AEB6
groove
#E3E7EB
shadow
#C7D0DA
accent
#D52B1E
on accent
#FFFFFF
peach
#F7B994
success
#0B0B0C
warning
#F7B994
error
#D52B1E
info
#5F656D
typography4
heading font
Gloock
body font
Familjen Grotesk
mono font
Chivo Mono
google fonts url
https://fonts.googleapis.com/css2?family=Gloock&family=Familjen+Grotesk:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Chivo+Mono:wght@400;500;700&display=swap
radii2
none
0px
full
9999px
spacing8
base
8px
xs
4px
sm
8px
md
16px
lg
24px
xl
48px
xxl
96px
section
160px
Rules

components

- **Navigation.** The wordmark in Gloock 28px on the left; links in Familjen Grotesk 500 at 17px with 36px to 40px between them, the current one underlined in ink (2px, 8px below the baseline); on the right a Chivo Mono date line (`SUN 04 OCT · 13:42`) and one secondary button. The horizon runs under it. - **Buttons.** Primary: ink fill, white Familjen Grotesk 600 at 17px, 52px tall, 28px side padding, radius 0, one per view. Stamp: the one red button, white capitals in Familjen Grotesk 700, used only for the action that stamps a verdict. Secondary: white, ink text, the standing shadow, no border. Tertiary: an ink word with a 1px underline 4px below. Hover lifts 2px; active presses 1px and the ink lightens to `#2A2C30`; focus draws a 2px ink outline 3px outside; disabled is a `well` fill with `muted` text and no shadow. Labels never wrap. - **Inputs, selects and text areas.** A `well` fill pressed into the salt with a 1px `steel` line along its foot, no border, radius 0, 52px tall, Familjen Grotesk 18px in ink. The label sits above in Chivo Mono capitals in `muted`; help text sits below at 15px. Focus keeps the well and adds the 2px ink outline. An error turns the label red, adds a 2px red line along the well's foot and states the fix in one sentence in ink. Selects draw their own steel chevron; every control sets `appearance: none`. - **Checkboxes, radios and toggles.** A 22px white square with a 1.5px `muted` ring for a checkbox (ink fill and a white tick when on), a 22px round one for a radio (an ink dot inside the ring when on), and a 44 by 24px round track with a `muted` ring and a `muted` knob for a toggle (the track turns ink and the knob white when on). The rings keep every control above 3:1 against the salt; nothing else in Salt has a ring. - **Tasting card.** The core object. A Chivo Mono header (`COURSE 4 OF 9 · 13:42`), the dish in Gloock 32px to 48px, notes in Familjen Grotesk 18px in `text_2`, a footer with the best-before date in Chivo Mono, and a stamp area at the lower right where the verdict lands, inside the card or overlapping its right edge, never over its words. One card holds one course and at most one stamp. - **Verdict stamp.** The word in Familjen Grotesk 700 capitals inside a 3px frame with a 1px rule 4px inside it, the date line under the word in Chivo Mono. TASTE is stamp red; SLOP is ink. The impression is never solid: an SVG turbulence filter roughens the edges and lets the white show through in small specks, at 92% opacity. It lands with a 220ms press (scale 1.3 to 0.96 to 1). - **Place card.** A folded tent standing on the white: a guest's name in Gloock 24px, the seat and role in Chivo Mono under it, an initial disc on the left. Place cards name people: guests, critics, jurors, authors. - **Pressed word.** One per page, in Gloock at 160px to 320px, set in `well` with the pressed shadow and hidden from screen readers. It repeats something the page already says in ink, the course numeral or the verdict, so it decorates without carrying meaning. - **Course table.** Rows 64px tall in Familjen Grotesk 500 at 17px; number and time in Chivo Mono; the verdict column shows a small stamp; rows are separated by pressed grooves, never vertical lines; the hovered row is a well. Filter tabs sit above it as words with a Chivo Mono count, the chosen one underlined in ink. - **Best-before marker.** The date in Chivo Mono on a `peach` highlighter fill, only when a verdict turns within 48 hours. - **Toast.** A white card standing at the lower left with an ink sentence and a Chivo Mono time. A filed verdict shows its small stamp; nothing else is coloured. - **Questions.** Native `details` and `summary`: the question in Familjen Grotesk 600 at 20px, a steel plus that turns 45deg when open, a pressed groove between questions.

Layout

summary

The page is mostly empty salt, and the emptiness is the layout. - **Negative space first.** At least half of every first screen is empty white. Text never sits in the middle of the page: prose and forms take a column on the left or right third (prose 62ch, forms 560px, cards 520px to 640px), and the other two thirds stay open or hold one picture or one pressed word. - **Grid.** 12 columns with 24px gutters, outer margins of 96px from 1280px up, 48px on tablets and 20px on phones. Grid children carry `min-width: 0`; columns use `minmax(0, 1fr)`. - **Rhythm.** Sections sit 160px apart (96px on phones). Cards pad 48px (28px on phones), with at least 40px above any title, so no title is ever stuck to the top of its card. Space separates groups; a pressed groove separates rows; nothing else divides. - **The horizon.** One line per page, full bleed, directly under the header: 1px of `groove` with 1px of white beneath it. A landing that opens on a picture draws no line: the picture's own horizon is the page's horizon. Nothing else on the page is a drawn line. - **Pictures.** A landing opens on one full-bleed picture in the paired art style, its subject on one third and its empty white sky on the other two. On wide screens the headline is set in that empty sky; below 1024px the picture shows its subject and the headline moves underneath on the white. - **Phones (390px).** One column; place cards scroll sideways in a row; the course table becomes a list of number, dish and verdict; the pressed word drops to about a third of the screen's width and moves below the text it sat beside; stamps shrink and keep their tilt. Nothing scrolls the page sideways.

Guidance

Do

  • leave at least half of every first screen empty white.
  • keep red for stamp ink: verdicts, the one stamping action and refusals.
  • stand cards on the salt with the cool shadow, and press words, wells and grooves into it.
  • give every card one course, one note and at most one stamp.
  • set every label, time and count in Chivo Mono capitals.
  • keep exactly one horizon per page: the line under the header, or the hero picture's own horizon.
  • style every control yourself, from the checkbox to the select chevron.

Avoid

  • draw borders around cards, inputs or tables, and don't use grey boxes.
  • use a second accent colour, a gradient, a glow or a tinted background.
  • stamp text that is still being read; a stamp overlaps an edge or empty space.
  • put more than one pressed word on a page, or let one carry meaning by itself.
  • round rectangles, set Gloock in bold, or set display type below 22px.
  • centre a lone paragraph in the middle of the page.
  • put emoji on buttons or words inside pictures.
Imagery

pairs with

halite

art style id

en-01a1173b-f1ea-7220-92bd-2b9a4242d99e

Katagami spec file
# Salt

## Philosophy

A white salt flat at noon, used as an interface. The ground is blank white to one razor-thin horizon, and everything on the page is either set on the salt or pressed into it. Black ink sets the words, a cool steel grey carries what is quiet, and one stamp red is kept for verdicts: a rubber stamp pressed onto a tasting card. Cards stand on the white like place cards on a long table, with a pale cool shadow and never a border, and the one huge word on each page is pressed into the ground instead of printed on it.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#FFFFFF` |
| surface | `#FFFFFF` |
| well | `#F2F4F6` |
| text | `#0B0B0C` |
| text_2 | `#3B3F45` |
| muted | `#5F656D` |
| steel | `#A7AEB6` |
| groove | `#E3E7EB` |
| shadow | `#C7D0DA` |
| accent | `#D52B1E` |
| on_accent | `#FFFFFF` |
| peach | `#F7B994` |
| success | `#0B0B0C` |
| warning | `#F7B994` |
| error | `#D52B1E` |
| info | `#5F656D` |

### Typography

- **Heading Font**: Gloock
- **Body Font**: Familjen Grotesk
- **Mono Font**: Chivo Mono
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Gloock&family=Familjen+Grotesk:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Chivo+Mono:wght@400;500;700&display=swap

### Radii

- **None**: 0px
- **Full**: 9999px

### Spacing

- **Base**: 8px
- **Xs**: 4px
- **Sm**: 8px
- **Md**: 16px
- **Lg**: 24px
- **Xl**: 48px
- **Xxl**: 96px
- **Section**: 160px

## Rules

### Components

- **Navigation.** The wordmark in Gloock 28px on the left; links in Familjen Grotesk 500 at 17px with 36px to 40px between them, the current one underlined in ink (2px, 8px below the baseline); on the right a Chivo Mono date line (`SUN 04 OCT · 13:42`) and one secondary button. The horizon runs under it.
- **Buttons.** Primary: ink fill, white Familjen Grotesk 600 at 17px, 52px tall, 28px side padding, radius 0, one per view. Stamp: the one red button, white capitals in Familjen Grotesk 700, used only for the action that stamps a verdict. Secondary: white, ink text, the standing shadow, no border. Tertiary: an ink word with a 1px underline 4px below. Hover lifts 2px; active presses 1px and the ink lightens to `#2A2C30`; focus draws a 2px ink outline 3px outside; disabled is a `well` fill with `muted` text and no shadow. Labels never wrap.
- **Inputs, selects and text areas.** A `well` fill pressed into the salt with a 1px `steel` line along its foot, no border, radius 0, 52px tall, Familjen Grotesk 18px in ink. The label sits above in Chivo Mono capitals in `muted`; help text sits below at 15px. Focus keeps the well and adds the 2px ink outline. An error turns the label red, adds a 2px red line along the well's foot and states the fix in one sentence in ink. Selects draw their own steel chevron; every control sets `appearance: none`.
- **Checkboxes, radios and toggles.** A 22px white square with a 1.5px `muted` ring for a checkbox (ink fill and a white tick when on), a 22px round one for a radio (an ink dot inside the ring when on), and a 44 by 24px round track with a `muted` ring and a `muted` knob for a toggle (the track turns ink and the knob white when on). The rings keep every control above 3:1 against the salt; nothing else in Salt has a ring.
- **Tasting card.** The core object. A Chivo Mono header (`COURSE 4 OF 9 · 13:42`), the dish in Gloock 32px to 48px, notes in Familjen Grotesk 18px in `text_2`, a footer with the best-before date in Chivo Mono, and a stamp area at the lower right where the verdict lands, inside the card or overlapping its right edge, never over its words. One card holds one course and at most one stamp.
- **Verdict stamp.** The word in Familjen Grotesk 700 capitals inside a 3px frame with a 1px rule 4px inside it, the date line under the word in Chivo Mono. TASTE is stamp red; SLOP is ink. The impression is never solid: an SVG turbulence filter roughens the edges and lets the white show through in small specks, at 92% opacity. It lands with a 220ms press (scale 1.3 to 0.96 to 1).
- **Place card.** A folded tent standing on the white: a guest's name in Gloock 24px, the seat and role in Chivo Mono under it, an initial disc on the left. Place cards name people: guests, critics, jurors, authors.
- **Pressed word.** One per page, in Gloock at 160px to 320px, set in `well` with the pressed shadow and hidden from screen readers. It repeats something the page already says in ink, the course numeral or the verdict, so it decorates without carrying meaning.
- **Course table.** Rows 64px tall in Familjen Grotesk 500 at 17px; number and time in Chivo Mono; the verdict column shows a small stamp; rows are separated by pressed grooves, never vertical lines; the hovered row is a well. Filter tabs sit above it as words with a Chivo Mono count, the chosen one underlined in ink.
- **Best-before marker.** The date in Chivo Mono on a `peach` highlighter fill, only when a verdict turns within 48 hours.
- **Toast.** A white card standing at the lower left with an ink sentence and a Chivo Mono time. A filed verdict shows its small stamp; nothing else is coloured.
- **Questions.** Native `details` and `summary`: the question in Familjen Grotesk 600 at 20px, a steel plus that turns 45deg when open, a pressed groove between questions.

## Layout

### Summary

The page is mostly empty salt, and the emptiness is the layout.

- **Negative space first.** At least half of every first screen is empty white. Text never sits in the middle of the page: prose and forms take a column on the left or right third (prose 62ch, forms 560px, cards 520px to 640px), and the other two thirds stay open or hold one picture or one pressed word.
- **Grid.** 12 columns with 24px gutters, outer margins of 96px from 1280px up, 48px on tablets and 20px on phones. Grid children carry `min-width: 0`; columns use `minmax(0, 1fr)`.
- **Rhythm.** Sections sit 160px apart (96px on phones). Cards pad 48px (28px on phones), with at least 40px above any title, so no title is ever stuck to the top of its card. Space separates groups; a pressed groove separates rows; nothing else divides.
- **The horizon.** One line per page, full bleed, directly under the header: 1px of `groove` with 1px of white beneath it. A landing that opens on a picture draws no line: the picture's own horizon is the page's horizon. Nothing else on the page is a drawn line.
- **Pictures.** A landing opens on one full-bleed picture in the paired art style, its subject on one third and its empty white sky on the other two. On wide screens the headline is set in that empty sky; below 1024px the picture shows its subject and the headline moves underneath on the white.
- **Phones (390px).** One column; place cards scroll sideways in a row; the course table becomes a list of number, dish and verdict; the pressed word drops to about a third of the screen's width and moves below the text it sat beside; stamps shrink and keep their tilt. Nothing scrolls the page sideways.

## Guidance

### Do

- leave at least half of every first screen empty white.
- keep red for stamp ink: verdicts, the one stamping action and refusals.
- stand cards on the salt with the cool shadow, and press words, wells and grooves into it.
- give every card one course, one note and at most one stamp.
- set every label, time and count in Chivo Mono capitals.
- keep exactly one horizon per page: the line under the header, or the hero picture's own horizon.
- style every control yourself, from the checkbox to the select chevron.

### Don't

- draw borders around cards, inputs or tables, and don't use grey boxes.
- use a second accent colour, a gradient, a glow or a tinted background.
- stamp text that is still being read; a stamp overlaps an edge or empty space.
- put more than one pressed word on a page, or let one carry meaning by itself.
- round rectangles, set Gloock in bold, or set display type below 22px.
- centre a lone paragraph in the middle of the page.
- put emoji on buttons or words inside pictures.

## Imagery Direction

### Pairs With

halite

### Art Style Id

en-01a1173b-f1ea-7220-92bd-2b9a4242d99e
DESIGN.md file
---
version: "alpha"
name: "Salt"
description: "A white salt flat at noon, used as an interface. The ground is blank white to one razor-thin horizon, and everything on the page is either set on the salt or pressed into it. Black ink sets the words, a cool steel grey carries what is qu..."
colors:
  bg: "#FFFFFF"
  surface: "#FFFFFF"
  well: "#F2F4F6"
  text: "#0B0B0C"
  text_2: "#3B3F45"
  muted: "#5F656D"
  steel: "#A7AEB6"
  groove: "#E3E7EB"
  shadow: "#C7D0DA"
  accent: "#D52B1E"
  on_accent: "#FFFFFF"
  peach: "#F7B994"
  success: "#0B0B0C"
  warning: "#F7B994"
  error: "#D52B1E"
  info: "#5F656D"
typography:
  headline-lg:
    fontFamily: "Gloock"
    fontSize: "1.953rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Gloock"
    fontSize: "1.563rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Familjen Grotesk"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Chivo Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "16px"
  lg: "24px"
  xl: "48px"
  xxl: "96px"
  section: "160px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-well:
    backgroundColor: "{colors.well}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-text_2:
    backgroundColor: "{colors.text_2}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-steel:
    backgroundColor: "{colors.steel}"
  color-reference-groove:
    backgroundColor: "{colors.groove}"
  color-reference-shadow:
    backgroundColor: "{colors.shadow}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-peach:
    backgroundColor: "{colors.peach}"
  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: "{colors.on_accent}"
    typography: "{typography.label-md}"
    rounded: "{rounded.none}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.none}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.none}"
    height: "44px"
---

# Salt

## Overview

A white salt flat at noon, used as an interface. The ground is blank white to one razor-thin horizon, and everything on the page is either set on the salt or pressed into it. Black ink sets the words, a cool steel grey carries what is quiet, and one stamp red is kept for verdicts: a rubber stamp pressed onto a tasting card. Cards stand on the white like place cards on a long table, with a pale cool shadow and never a border, and the one huge word on each page is pressed into the ground instead of printed on it.

## 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 | `#FFFFFF` |
| surface | `#FFFFFF` |
| well | `#F2F4F6` |
| text | `#0B0B0C` |
| text_2 | `#3B3F45` |
| muted | `#5F656D` |
| steel | `#A7AEB6` |
| groove | `#E3E7EB` |
| shadow | `#C7D0DA` |
| accent | `#D52B1E` |
| on_accent | `#FFFFFF` |
| peach | `#F7B994` |
| success | `#0B0B0C` |
| warning | `#F7B994` |
| error | `#D52B1E` |
| info | `#5F656D` |

## Typography

Load the fonts from Google Fonts: https://fonts.googleapis.com/css2?family=Gloock&family=Familjen+Grotesk:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Chivo+Mono:wght@400;500;700&display=swap

- **Headline-Lg**: Gloock, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Gloock, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Familjen Grotesk, 16px, weight 400, line-height 1.5.
- **Label-Md**: Chivo Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `16px`
- **Lg**: `24px`
- **Xl**: `48px`
- **Xxl**: `96px`
- **Section**: `160px`

### Summary

The page is mostly empty salt, and the emptiness is the layout.

- **Negative space first.** At least half of every first screen is empty white. Text never sits in the middle of the page: prose and forms take a column on the left or right third (prose 62ch, forms 560px, cards 520px to 640px), and the other two thirds stay open or hold one picture or one pressed word.
- **Grid.** 12 columns with 24px gutters, outer margins of 96px from 1280px up, 48px on tablets and 20px on phones. Grid children carry `min-width: 0`; columns use `minmax(0, 1fr)`.
- **Rhythm.** Sections sit 160px apart (96px on phones). Cards pad 48px (28px on phones), with at least 40px above any title, so no title is ever stuck to the top of its card. Space separates groups; a pressed groove separates rows; nothing else divides.
- **The horizon.** One line per page, full bleed, directly under the header: 1px of `groove` with 1px of white beneath it. A landing that opens on a picture draws no line: the picture's own horizon is the page's horizon. Nothing else on the page is a drawn line.
- **Pictures.** A landing opens on one full-bleed picture in the paired art style, its subject on one third and its empty white sky on the other two. On wide screens the headline is set in that empty sky; below 1024px the picture shows its subject and the headline moves underneath on the white.
- **Phones (390px).** One column; place cards scroll sideways in a row; the course table becomes a list of number, dish and verdict; the pressed word drops to about a third of the screen's width and moves below the text it sat beside; stamps shrink and keep their tilt. Nothing scrolls the page sideways.

## Shapes

### Rounded

- **None**: `0px`
- **Full**: `9999px`

## Components

### Components

- **Navigation.** The wordmark in Gloock 28px on the left; links in Familjen Grotesk 500 at 17px with 36px to 40px between them, the current one underlined in ink (2px, 8px below the baseline); on the right a Chivo Mono date line (`SUN 04 OCT · 13:42`) and one secondary button. The horizon runs under it.
- **Buttons.** Primary: ink fill, white Familjen Grotesk 600 at 17px, 52px tall, 28px side padding, radius 0, one per view. Stamp: the one red button, white capitals in Familjen Grotesk 700, used only for the action that stamps a verdict. Secondary: white, ink text, the standing shadow, no border. Tertiary: an ink word with a 1px underline 4px below. Hover lifts 2px; active presses 1px and the ink lightens to `#2A2C30`; focus draws a 2px ink outline 3px outside; disabled is a `well` fill with `muted` text and no shadow. Labels never wrap.
- **Inputs, selects and text areas.** A `well` fill pressed into the salt with a 1px `steel` line along its foot, no border, radius 0, 52px tall, Familjen Grotesk 18px in ink. The label sits above in Chivo Mono capitals in `muted`; help text sits below at 15px. Focus keeps the well and adds the 2px ink outline. An error turns the label red, adds a 2px red line along the well's foot and states the fix in one sentence in ink. Selects draw their own steel chevron; every control sets `appearance: none`.
- **Checkboxes, radios and toggles.** A 22px white square with a 1.5px `muted` ring for a checkbox (ink fill and a white tick when on), a 22px round one for a radio (an ink dot inside the ring when on), and a 44 by 24px round track with a `muted` ring and a `muted` knob for a toggle (the track turns ink and the knob white when on). The rings keep every control above 3:1 against the salt; nothing else in Salt has a ring.
- **Tasting card.** The core object. A Chivo Mono header (`COURSE 4 OF 9 · 13:42`), the dish in Gloock 32px to 48px, notes in Familjen Grotesk 18px in `text_2`, a footer with the best-before date in Chivo Mono, and a stamp area at the lower right where the verdict lands, inside the card or overlapping its right edge, never over its words. One card holds one course and at most one stamp.
- **Verdict stamp.** The word in Familjen Grotesk 700 capitals inside a 3px frame with a 1px rule 4px inside it, the date line under the word in Chivo Mono. TASTE is stamp red; SLOP is ink. The impression is never solid: an SVG turbulence filter roughens the edges and lets the white show through in small specks, at 92% opacity. It lands with a 220ms press (scale 1.3 to 0.96 to 1).
- **Place card.** A folded tent standing on the white: a guest's name in Gloock 24px, the seat and role in Chivo Mono under it, an initial disc on the left. Place cards name people: guests, critics, jurors, authors.
- **Pressed word.** One per page, in Gloock at 160px to 320px, set in `well` with the pressed shadow and hidden from screen readers. It repeats something the page already says in ink, the course numeral or the verdict, so it decorates without carrying meaning.
- **Course table.** Rows 64px tall in Familjen Grotesk 500 at 17px; number and time in Chivo Mono; the verdict column shows a small stamp; rows are separated by pressed grooves, never vertical lines; the hovered row is a well. Filter tabs sit above it as words with a Chivo Mono count, the chosen one underlined in ink.
- **Best-before marker.** The date in Chivo Mono on a `peach` highlighter fill, only when a verdict turns within 48 hours.
- **Toast.** A white card standing at the lower left with an ink sentence and a Chivo Mono time. A filed verdict shows its small stamp; nothing else is coloured.
- **Questions.** Native `details` and `summary`: the question in Familjen Grotesk 600 at 20px, a steel plus that turns 45deg when open, a pressed groove between questions.

## 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-01a11744-358b-7cf2-849a-5de5ddf0acdd/DESIGN.with-shadcn.md`.

Machine-readable companions for automation: `/language/en-01a11744-358b-7cf2-849a-5de5ddf0acdd/shadcn.json` (registry theme), `/language/en-01a11744-358b-7cf2-849a-5de5ddf0acdd/shadcn-components.md` (component recipes) and `/language/en-01a11744-358b-7cf2-849a-5de5ddf0acdd/shadcn-shots.json` (preview shots). The human-facing handoff is still 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 leave at least half of every first screen empty white.
- Do keep red for stamp ink: verdicts, the one stamping action and refusals.
- Do stand cards on the salt with the cool shadow, and press words, wells and grooves into it.
- Do give every card one course, one note and at most one stamp.
- Do set every label, time and count in Chivo Mono capitals.
- Do keep exactly one horizon per page: the line under the header, or the hero picture's own horizon.
- Do style every control yourself, from the checkbox to the select chevron.
- Don't draw borders around cards, inputs or tables, and don't use grey boxes.
- Don't use a second accent colour, a gradient, a glow or a tinted background.
- Don't stamp text that is still being read; a stamp overlaps an edge or empty space.
- Don't put more than one pressed word on a page, or let one carry meaning by itself.
- Don't round rectangles, set Gloock in bold, or set display type below 22px.
- Don't centre a lone paragraph in the middle of the page.
- Don't put emoji on buttons or words inside pictures.

## Imagery Direction

### Pairs With

halite

### Art Style Id

en-01a1173b-f1ea-7220-92bd-2b9a4242d99e
shadcn/ui theme file
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "salt",
  "type": "registry:theme",
  "title": "Salt shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#0B0B0C",
      "card": "#FFFFFF",
      "card-foreground": "#0B0B0C",
      "popover": "#FFFFFF",
      "popover-foreground": "#0B0B0C",
      "primary": "#0B0B0C",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#5F656D",
      "muted-foreground": "#0B0B0C",
      "accent": "#D52B1E",
      "accent-foreground": "#ffffff",
      "destructive": "#D52B1E",
      "border": "#e4e4e7",
      "input": "#e4e4e7",
      "ring": "#D52B1E",
      "chart-1": "#0B0B0C",
      "chart-2": "#f4f4f5",
      "chart-3": "#D52B1E",
      "chart-4": "#0B0B0C",
      "chart-5": "#F7B994",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#0B0B0C",
      "sidebar-primary": "#0B0B0C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#5F656D",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#e4e4e7",
      "sidebar-ring": "#D52B1E",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0B0B0C",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D52B1E",
      "accent-foreground": "#ffffff",
      "destructive": "#D52B1E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D52B1E",
      "chart-1": "#0B0B0C",
      "chart-2": "#f4f4f5",
      "chart-3": "#D52B1E",
      "chart-4": "#0B0B0C",
      "chart-5": "#F7B994",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0B0B0C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D52B1E",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D52B1E",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-01a11744-358b-7cf2-849a-5de5ddf0acdd",
    "slug": "salt",
    "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",
        "error",
        "groove",
        "info",
        "muted",
        "on_accent",
        "peach",
        "shadow",
        "steel",
        "success",
        "surface",
        "text",
        "text_2",
        "warning",
        "well"
      ],
      "typography": [
        "body_font",
        "google_fonts_url",
        "heading_font",
        "mono_font"
      ],
      "radii": [
        "full",
        "none"
      ],
      "spacing": [
        "base",
        "lg",
        "md",
        "section",
        "sm",
        "xl",
        "xs",
        "xxl"
      ]
    }
  }
}
```

shadcn/ui kit