Back to gallery

Alidade

Alidade is a measurement workspace for review queues, drawn as a nomogram atlas.

Download DESIGN.md

Tokens and rules, ready for an agent to follow.

Preview

Open full page

Typography

Each face set in this language's own words.

headline lgB612, 33px, 700

Alidade

headline mdB612, 27px, 600

Alidade

body mdB612, 17px, 400

Alidade is a measurement workspace for review queues, drawn as a nomogram atlas.

label mdB612 (tabular figures), 12px, 600

Alidade is a measurement workspace for review queues, drawn as a nomogram atlas.

Specification

Philosophy

summary

Alidade is a measurement workspace for review queues, drawn as a nomogram atlas. Each sheet carries three parallel log scales in violet ink on white, and one straight magenta edge laid across them: the line is the readout and the page is the chart. Drag either end of the edge, or the ring on the middle scale to solve the right-hand one, and the sentence under the chart rewrites itself. It is the descendant of Graticule that keeps the measurement-workspace idea, the 24px ruling and the four registration ticks, and swaps the graphite table for white sheets and a single violet ink and magenta pair.

It values

  • The straight edge is the interface: every claim is read off one line across real log scales.
  • One ink and one line: scales in violet #4A22C8, the edge in magenta #D2008B, nothing else competes.
  • A sentence for every reading: the headline of each sheet is a question and the answer is rewritten live.
  • Cockpit legibility: B612 is set large, open and tabular so a number is read at a glance.
  • Flat and square: sheets, wells and buttons are radius 0; only the dots on the edge are round.

It refuses

  • Stat bands with invented totals, and tables standing in for a chart.
  • Top bars, footers, eyebrows and card indexes around the sheets.
  • Gradients, glass and photographic backdrops under copy.
  • A second accent colour, or magenta on the pale surface at body size.
  • Borders and hairline card frames.

visual character

  • White sheets with a faint 24px violet ruling and four corner registration ticks.
  • Three vertical log scales per sheet: major ticks 2.5px, minor ticks 1px, tabular labels in violet.
  • One magenta straight edge with round dots on the outer scales and a ring on the middle one.
  • B612 only, 700 for headlines and readouts, 400 for prose.
  • A drafting-table plate in violet ink on white for the hero, with the alidade as the one magenta part.
  • Flat square wells in #F0ECFF, a violet underline for focus.

lineage

Descendant of Graticule (en-019efa7c-5133-7f82-a6af-bce556fd39fd). It keeps the measurement-workspace concept, the 24px ruling, the registration ticks and the single lifted datum, and replaces the graphite ground and blue datum with white sheets, violet scales and a magenta edge, the stat band and card grid with a three-sheet nomogram, and the Space Grotesk and IBM Plex pair with B612.

Tokens
colors12
bg
#FFFFFF
surface
#F0ECFF
text
#1A1030
muted
#5A4F7A
border
#CFC6F0
accent
#D2008B
on accent
#FFFFFF
success
#0A7A55
warning
#8A5A00
error
#B0102A
info
#4A22C8
scale
#4A22C8
derived4
ruling
rgba(74,34,200,0.08) 1px lines every 24px on both axes, on sheet grounds only
lift
0 18px 36px -14px rgba(74,34,200,0.4), on an open menu or dialog only
row tint
#E4DDFF on hover over a surface row
pressed accent
#A30069
typography12
heading font
B612
body font
B612
mono font
B612 (tabular figures)
heading weight
700
body weight
400
button weight
700
heading transform
none
letter spacing
-0.02em on display, -0.01em on body
base size
17px
line height
1.55
scale
14.5px, 17px, 20px, 27px, 36px, 58px
google fonts url
https://fonts.googleapis.com/css2?family=B612:wght@400;700&display=swap
radii4
none
0px
md
0px
lg
0px
full
9999px
shadows2
lift
0 18px 36px -14px rgba(74,34,200,0.4), only on an open menu, dialog or toast
none
everything else is flat
spacing2
base
8px
scale
4px, 8px, 12px, 16px, 24px, 32px, 48px, 72px, 96px
surfaces4
treatment
white-sheet-on-ruling
material
Plain white sheets carrying a faint 24px ruling in violet ink and four corner registration ticks; surface #F0ECFF wells and bands where a sheet needs a second tone. No cards, no photographs under copy.
card style
No cards. Scales, readings and sentences sit on the sheet, parted by space and a surface band.
bg pattern
24px violet ruling at 8% opacity
borders3
default width
0
style
none
character
No borders on controls or panels. The ink lines that exist are the scales themselves, the magenta straight edge and the four corner registration ticks of each sheet. Focus is a 3px violet outline at 3px offset; a focused well draws a 3px violet line under itself.
motion3
duration
200ms
easing
cubic-bezier(0.2, 0, 0.1, 1)
philosophy
The edge moves because the reader moves it: dragging a dot updates the sentence and every readout at once. Nothing animates on its own, and the settled page renders with no JavaScript and under prefers-reduced-motion.
controls3
height
52px (40 small, 60 large)
radius
0px
well height
52px
Rules

composition

  • Build every sheet around one nomogram: three parallel log scales and one straight edge across them.
  • Give each sheet one question as its headline and one sentence that answers it, rewritten as the edge moves.
  • Sheets run in order and each is its own full-height plate; there is no top bar and no footer.
  • Keep sections free of cards: readings, scales and sentences sit on the sheet, parted by space and one surface band.

hierarchy

  • Display and sheet titles in B612 700 at -0.02em: 58px for the first headline on desktop, 36px for sheet titles.
  • Prose in B612 400 at 17px, in two tones: the claim in ink, the explanation in muted.
  • Readouts in B612 700 with tabular figures, magenta on white only.
  • Scale labels at 14.5 to 17px in violet, aligned to their ticks.

density

Calm sheet density: 48 to 96px of padding above and below each sheet, one button per sheet at most, prose held to about 46 characters.

signature patterns

  • The straight edge: one magenta line across three log scales; its ends are dots, its middle a ring, and moving any of them rewrites the readouts and the sentence.
  • The ruled sheet: a 24px violet ruling and four corner registration ticks on every sheet.
  • The datum: exactly one magenta element is lifted per view, the edge or the active row.
  • Log scales with major and minor ticks: every number sits on a real logarithmic ruler.

interaction

  • Drag an end of the edge, or press an arrow key on a focused dot (Shift for a larger step).
  • Drag the middle ring to solve the right-hand scale instead.
  • Links draw a 2px magenta line under the word from the left on hover.
Layout

grid

type
sheet atlas
max width
1240px content, centred above 1440px
gutter
clamp(20px, 5vw, 72px)
column behavior
Heads use minmax(0,7fr) minmax(0,5fr); element lists use minmax(0,1fr) columns; every grid child has min-width:0.

whitespace

section gap
clamp(48px, 7vw, 96px) of sheet padding
card gap
no cards; 16 to 48px between groups
content padding
content aligns to the grid edge, clear of the corner ticks
approach
White paper and space do the separating; the surface band is the only second tone.

density

default
comfortable
comfortable
button height 52pxinput height 52pxrow height 56px table rows

responsive

Phones (390px) stack heads to one column, keep the chart full width with scale labels at 14.5px and hide non-essential table columns. Tablets (601 to 1199px) keep two-column heads with their own spacing. Above 1440px the content caps and centres; only the hero sheet is full bleed.

breakpoints

mobile
390px
phone max
600px
tablet
601 to 1199px
desktop
1280px
ultrawide
2560px
Guidance

Do

  • Lay one straight edge across three real log scales and let the sentence answer it.
  • Keep scales in violet ink and the edge in magenta; lift one magenta element per view.
  • Write every headline as a question and rewrite the answer when the edge moves.
  • Use magenta text only on white and only large or bold; use ink on the surface tint.
  • Style every control explicitly, square, with a violet focus line.
  • Give each sheet the 24px ruling and four registration ticks.

Avoid

  • Don't add a stat band, a top bar, a footer or eyebrow labels.
  • Don't use gradients, glass or borders; the ruling is a hairline pattern.
  • Don't add a second accent beside the magenta edge.
  • Don't put magenta body text on the #F0ECFF surface (4.41:1).
  • Don't round a rectangle; the dots are the only round things.
  • Don't put emoji on buttons.
Imagery

pairs with

bluework

art style id

en-019efa6f-e618-7a52-9864-a51c9bfb51aa

summary

Bluework's orthographic engineering line drawing regraded to violet ink on white: a top-down drafting table with rule, dividers, slide rule and French curve, and the alidade as the one magenta part. The plate sits under a 40% white wash so the headline stays quiet and readable.

subjects

  • a top-down drafting table with rule, dividers and slide rule
  • a French curve and a pair of dividers on a ruled sheet
  • the alidade laid across the table as one magenta part

usage

One full-bleed hero per landing: the drafting-table plate painted with var(--hero-image) on the first sheet, background-position centre, under a flat 40% white wash. Later sheets carry no illustration; the scales are the picture.

avoid

Graphite-gray plates, blue accents, glow, gradients, photography, people, text in the plate and any second magenta element.

Katagami spec file
# Alidade

## Philosophy

Alidade is a measurement workspace for review queues, drawn as a nomogram atlas. Each sheet carries three parallel log scales in violet ink on white, and one straight magenta edge laid across them: the line is the readout and the page is the chart. Drag either end of the edge, or the ring on the middle scale to solve the right-hand one, and the sentence under the chart rewrites itself. It is the descendant of Graticule that keeps the measurement-workspace idea, the 24px ruling and the four registration ticks, and swaps the graphite table for white sheets and a single violet ink and magenta pair.

### Values

- The straight edge is the interface: every claim is read off one line across real log scales.
- One ink and one line: scales in violet #4A22C8, the edge in magenta #D2008B, nothing else competes.
- A sentence for every reading: the headline of each sheet is a question and the answer is rewritten live.
- Cockpit legibility: B612 is set large, open and tabular so a number is read at a glance.
- Flat and square: sheets, wells and buttons are radius 0; only the dots on the edge are round.

### Anti-Values

- Stat bands with invented totals, and tables standing in for a chart.
- Top bars, footers, eyebrows and card indexes around the sheets.
- Gradients, glass and photographic backdrops under copy.
- A second accent colour, or magenta on the pale surface at body size.
- Borders and hairline card frames.

### Visual Character

- White sheets with a faint 24px violet ruling and four corner registration ticks.
- Three vertical log scales per sheet: major ticks 2.5px, minor ticks 1px, tabular labels in violet.
- One magenta straight edge with round dots on the outer scales and a ring on the middle one.
- B612 only, 700 for headlines and readouts, 400 for prose.
- A drafting-table plate in violet ink on white for the hero, with the alidade as the one magenta part.
- Flat square wells in #F0ECFF, a violet underline for focus.

### Lineage

> Descendant of Graticule (en-019efa7c-5133-7f82-a6af-bce556fd39fd). It keeps the measurement-workspace concept, the 24px ruling, the registration ticks and the single lifted datum, and replaces the graphite ground and blue datum with white sheets, violet scales and a magenta edge, the stat band and card grid with a three-sheet nomogram, and the Space Grotesk and IBM Plex pair with B612.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#FFFFFF` |
| surface | `#F0ECFF` |
| text | `#1A1030` |
| muted | `#5A4F7A` |
| border | `#CFC6F0` |
| accent | `#D2008B` |
| on_accent | `#FFFFFF` |
| success | `#0A7A55` |
| warning | `#8A5A00` |
| error | `#B0102A` |
| info | `#4A22C8` |
| scale | `#4A22C8` |

### Derived

- **Ruling**: rgba(74,34,200,0.08) 1px lines every 24px on both axes, on sheet grounds only
- **Lift**: 0 18px 36px -14px rgba(74,34,200,0.4), on an open menu or dialog only
- **Row Tint**: #E4DDFF on hover over a surface row
- **Pressed Accent**: #A30069

### Typography

- **Heading Font**: B612
- **Body Font**: B612
- **Mono Font**: B612 (tabular figures)
- **Heading Weight**: 700
- **Body Weight**: 400
- **Button Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.02em on display, -0.01em on body
- **Base Size**: 17px
- **Line Height**: 1.55
- **Scale**: ["14.5px","17px","20px","27px","36px","58px"]
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=B612:wght@400;700&display=swap

### Radii

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

### Shadows

- **Lift**: 0 18px 36px -14px rgba(74,34,200,0.4), only on an open menu, dialog or toast
- **None**: everything else is flat

### Spacing

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

### Surfaces

- **Treatment**: white-sheet-on-ruling
- **Material**: Plain white sheets carrying a faint 24px ruling in violet ink and four corner registration ticks; surface #F0ECFF wells and bands where a sheet needs a second tone. No cards, no photographs under copy.
- **Card Style**: No cards. Scales, readings and sentences sit on the sheet, parted by space and a surface band.
- **Bg Pattern**: 24px violet ruling at 8% opacity

### Borders

- **Default Width**: 0
- **Style**: none
- **Character**: No borders on controls or panels. The ink lines that exist are the scales themselves, the magenta straight edge and the four corner registration ticks of each sheet. Focus is a 3px violet outline at 3px offset; a focused well draws a 3px violet line under itself.

### Motion

- **Duration**: 200ms
- **Easing**: cubic-bezier(0.2, 0, 0.1, 1)
- **Philosophy**: The edge moves because the reader moves it: dragging a dot updates the sentence and every readout at once. Nothing animates on its own, and the settled page renders with no JavaScript and under prefers-reduced-motion.

### Controls

- **Height**: 52px (40 small, 60 large)
- **Radius**: 0px
- **Well Height**: 52px

## Rules

### Composition

- Build every sheet around one nomogram: three parallel log scales and one straight edge across them.
- Give each sheet one question as its headline and one sentence that answers it, rewritten as the edge moves.
- Sheets run in order and each is its own full-height plate; there is no top bar and no footer.
- Keep sections free of cards: readings, scales and sentences sit on the sheet, parted by space and one surface band.

### Hierarchy

- Display and sheet titles in B612 700 at -0.02em: 58px for the first headline on desktop, 36px for sheet titles.
- Prose in B612 400 at 17px, in two tones: the claim in ink, the explanation in muted.
- Readouts in B612 700 with tabular figures, magenta on white only.
- Scale labels at 14.5 to 17px in violet, aligned to their ticks.

### Density

Calm sheet density: 48 to 96px of padding above and below each sheet, one button per sheet at most, prose held to about 46 characters.

### Signature Patterns

- The straight edge: one magenta line across three log scales; its ends are dots, its middle a ring, and moving any of them rewrites the readouts and the sentence.
- The ruled sheet: a 24px violet ruling and four corner registration ticks on every sheet.
- The datum: exactly one magenta element is lifted per view, the edge or the active row.
- Log scales with major and minor ticks: every number sits on a real logarithmic ruler.

### Interaction

- Drag an end of the edge, or press an arrow key on a focused dot (Shift for a larger step).
- Drag the middle ring to solve the right-hand scale instead.
- Links draw a 2px magenta line under the word from the left on hover.

## Layout

### Grid

- **Type**: sheet atlas
- **Max Width**: 1240px content, centred above 1440px
- **Gutter**: clamp(20px, 5vw, 72px)
- **Column Behavior**: Heads use minmax(0,7fr) minmax(0,5fr); element lists use minmax(0,1fr) columns; every grid child has min-width:0.

### Whitespace

- **Section Gap**: clamp(48px, 7vw, 96px) of sheet padding
- **Card Gap**: no cards; 16 to 48px between groups
- **Content Padding**: content aligns to the grid edge, clear of the corner ticks
- **Approach**: White paper and space do the separating; the surface band is the only second tone.

### Density

- **Default**: comfortable
- **Comfortable**: {"button_height":"52px","input_height":"52px","row_height":"56px table rows"}

### Responsive

Phones (390px) stack heads to one column, keep the chart full width with scale labels at 14.5px and hide non-essential table columns. Tablets (601 to 1199px) keep two-column heads with their own spacing. Above 1440px the content caps and centres; only the hero sheet is full bleed.

### Breakpoints

- **Mobile**: 390px
- **Phone Max**: 600px
- **Tablet**: 601 to 1199px
- **Desktop**: 1280px
- **Ultrawide**: 2560px

## Guidance

### Do

- Lay one straight edge across three real log scales and let the sentence answer it.
- Keep scales in violet ink and the edge in magenta; lift one magenta element per view.
- Write every headline as a question and rewrite the answer when the edge moves.
- Use magenta text only on white and only large or bold; use ink on the surface tint.
- Style every control explicitly, square, with a violet focus line.
- Give each sheet the 24px ruling and four registration ticks.

### Don't

- Don't add a stat band, a top bar, a footer or eyebrow labels.
- Don't use gradients, glass or borders; the ruling is a hairline pattern.
- Don't add a second accent beside the magenta edge.
- Don't put magenta body text on the #F0ECFF surface (4.41:1).
- Don't round a rectangle; the dots are the only round things.
- Don't put emoji on buttons.

### Accessibility

AA and better: ink #1A1030 is 18.1:1 on white; muted #5A4F7A is 7.4:1 on white and 6.4:1 on #F0ECFF; violet #4A22C8 is 8.9:1 on white; magenta #D2008B is 5.1:1 on white and the button label white on magenta is 5.1:1, but magenta on #F0ECFF is 4.41:1 so it only carries large bold readouts there. Focus is a 3px violet outline at 3px offset. The dots are role=slider buttons with aria-valuetext and arrow-key control.

### Usage Context

Operations and review consoles, planning and capacity tools, calculators, reports and explainers where one relation (A x B = C) is the point, and any product that should read as a measuring instrument.

## Imagery Direction

### Pairs With

bluework

### Art Style Id

en-019efa6f-e618-7a52-9864-a51c9bfb51aa

### Summary

Bluework's orthographic engineering line drawing regraded to violet ink on white: a top-down drafting table with rule, dividers, slide rule and French curve, and the alidade as the one magenta part. The plate sits under a 40% white wash so the headline stays quiet and readable.

### Subjects

- a top-down drafting table with rule, dividers and slide rule
- a French curve and a pair of dividers on a ruled sheet
- the alidade laid across the table as one magenta part

### Usage

One full-bleed hero per landing: the drafting-table plate painted with var(--hero-image) on the first sheet, background-position centre, under a flat 40% white wash. Later sheets carry no illustration; the scales are the picture.

### Avoid

Graphite-gray plates, blue accents, glow, gradients, photography, people, text in the plate and any second magenta element.
DESIGN.md file
---
version: "alpha"
name: "Alidade"
description: "Alidade is a measurement workspace for review queues, drawn as a nomogram atlas. Each sheet carries three parallel log scales in violet ink on white, and one straight magenta edge laid across them: the line is the readout and the page is..."
colors:
  bg: "#FFFFFF"
  surface: "#F0ECFF"
  text: "#1A1030"
  muted: "#5A4F7A"
  border: "#CFC6F0"
  accent: "#D2008B"
  on_accent: "#FFFFFF"
  success: "#0A7A55"
  warning: "#8A5A00"
  error: "#B0102A"
  info: "#4A22C8"
  scale: "#4A22C8"
typography:
  headline-lg:
    fontFamily: "B612"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "B612"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "B612"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "B612 (tabular figures)"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  md: "0px"
  lg: "0px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "72px"
  step-8: "96px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-scale:
    backgroundColor: "{colors.scale}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "{colors.on_accent}"
    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"
---

# Alidade

## Overview

Alidade is a measurement workspace for review queues, drawn as a nomogram atlas. Each sheet carries three parallel log scales in violet ink on white, and one straight magenta edge laid across them: the line is the readout and the page is the chart. Drag either end of the edge, or the ring on the middle scale to solve the right-hand one, and the sentence under the chart rewrites itself. It is the descendant of Graticule that keeps the measurement-workspace idea, the 24px ruling and the four registration ticks, and swaps the graphite table for white sheets and a single violet ink and magenta pair.

### Values

- The straight edge is the interface: every claim is read off one line across real log scales.
- One ink and one line: scales in violet #4A22C8, the edge in magenta #D2008B, nothing else competes.
- A sentence for every reading: the headline of each sheet is a question and the answer is rewritten live.
- Cockpit legibility: B612 is set large, open and tabular so a number is read at a glance.
- Flat and square: sheets, wells and buttons are radius 0; only the dots on the edge are round.

### Anti-Values

- Stat bands with invented totals, and tables standing in for a chart.
- Top bars, footers, eyebrows and card indexes around the sheets.
- Gradients, glass and photographic backdrops under copy.
- A second accent colour, or magenta on the pale surface at body size.
- Borders and hairline card frames.

### Visual Character

- White sheets with a faint 24px violet ruling and four corner registration ticks.
- Three vertical log scales per sheet: major ticks 2.5px, minor ticks 1px, tabular labels in violet.
- One magenta straight edge with round dots on the outer scales and a ring on the middle one.
- B612 only, 700 for headlines and readouts, 400 for prose.
- A drafting-table plate in violet ink on white for the hero, with the alidade as the one magenta part.
- Flat square wells in #F0ECFF, a violet underline for focus.

### Lineage

> Descendant of Graticule (en-019efa7c-5133-7f82-a6af-bce556fd39fd). It keeps the measurement-workspace concept, the 24px ruling, the registration ticks and the single lifted datum, and replaces the graphite ground and blue datum with white sheets, violet scales and a magenta edge, the stat band and card grid with a three-sheet nomogram, and the Space Grotesk and IBM Plex pair with B612.

## 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 | `#F0ECFF` |
| text | `#1A1030` |
| muted | `#5A4F7A` |
| border | `#CFC6F0` |
| accent | `#D2008B` |
| on_accent | `#FFFFFF` |
| success | `#0A7A55` |
| warning | `#8A5A00` |
| error | `#B0102A` |
| info | `#4A22C8` |
| scale | `#4A22C8` |

## Typography

Load the fonts from Google Fonts: https://fonts.googleapis.com/css2?family=B612:wght@400;700&display=swap

- **Headline-Lg**: B612, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: B612, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: B612, 17px, weight 400, line-height 1.5.
- **Label-Md**: B612 (tabular figures), 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`
- **Step-8**: `96px`

### Grid

- **Type**: sheet atlas
- **Max Width**: 1240px content, centred above 1440px
- **Gutter**: clamp(20px, 5vw, 72px)
- **Column Behavior**: Heads use minmax(0,7fr) minmax(0,5fr); element lists use minmax(0,1fr) columns; every grid child has min-width:0.

### Whitespace

- **Section Gap**: clamp(48px, 7vw, 96px) of sheet padding
- **Card Gap**: no cards; 16 to 48px between groups
- **Content Padding**: content aligns to the grid edge, clear of the corner ticks
- **Approach**: White paper and space do the separating; the surface band is the only second tone.

### Density

- **Default**: comfortable
- **Comfortable**: {"button_height":"52px","input_height":"52px","row_height":"56px table rows"}

### Responsive

Phones (390px) stack heads to one column, keep the chart full width with scale labels at 14.5px and hide non-essential table columns. Tablets (601 to 1199px) keep two-column heads with their own spacing. Above 1440px the content caps and centres; only the hero sheet is full bleed.

### Breakpoints

- **Mobile**: 390px
- **Phone Max**: 600px
- **Tablet**: 601 to 1199px
- **Desktop**: 1280px
- **Ultrawide**: 2560px

## Elevation & Depth

### Shadows

- **Lift**: 0 18px 36px -14px rgba(74,34,200,0.4), only on an open menu, dialog or toast
- **None**: everything else is flat

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: white-sheet-on-ruling
- **Material**: Plain white sheets carrying a faint 24px ruling in violet ink and four corner registration ticks; surface #F0ECFF wells and bands where a sheet needs a second tone. No cards, no photographs under copy.
- **Card Style**: No cards. Scales, readings and sentences sit on the sheet, parted by space and a surface band.
- **Bg Pattern**: 24px violet ruling at 8% opacity

### Borders

- **Default Width**: 0
- **Style**: none
- **Character**: No borders on controls or panels. The ink lines that exist are the scales themselves, the magenta straight edge and the four corner registration ticks of each sheet. Focus is a 3px violet outline at 3px offset; a focused well draws a 3px violet line under itself.

## Components

### Composition

- Build every sheet around one nomogram: three parallel log scales and one straight edge across them.
- Give each sheet one question as its headline and one sentence that answers it, rewritten as the edge moves.
- Sheets run in order and each is its own full-height plate; there is no top bar and no footer.
- Keep sections free of cards: readings, scales and sentences sit on the sheet, parted by space and one surface band.

### Hierarchy

- Display and sheet titles in B612 700 at -0.02em: 58px for the first headline on desktop, 36px for sheet titles.
- Prose in B612 400 at 17px, in two tones: the claim in ink, the explanation in muted.
- Readouts in B612 700 with tabular figures, magenta on white only.
- Scale labels at 14.5 to 17px in violet, aligned to their ticks.

### Density

Calm sheet density: 48 to 96px of padding above and below each sheet, one button per sheet at most, prose held to about 46 characters.

### Signature Patterns

- The straight edge: one magenta line across three log scales; its ends are dots, its middle a ring, and moving any of them rewrites the readouts and the sentence.
- The ruled sheet: a 24px violet ruling and four corner registration ticks on every sheet.
- The datum: exactly one magenta element is lifted per view, the edge or the active row.
- Log scales with major and minor ticks: every number sits on a real logarithmic ruler.

### Interaction

- Drag an end of the edge, or press an arrow key on a focused dot (Shift for a larger step).
- Drag the middle ring to solve the right-hand scale instead.
- Links draw a 2px magenta line under the word from the left on hover.

## 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-01a101b7-01eb-7ac0-a7de-0869886ace6b/DESIGN.with-shadcn.md`.

Machine-readable companions for automation: `/language/en-01a101b7-01eb-7ac0-a7de-0869886ace6b/shadcn.json` (registry theme), `/language/en-01a101b7-01eb-7ac0-a7de-0869886ace6b/shadcn-components.md` (component recipes) and `/language/en-01a101b7-01eb-7ac0-a7de-0869886ace6b/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 Lay one straight edge across three real log scales and let the sentence answer it.
- Do Keep scales in violet ink and the edge in magenta; lift one magenta element per view.
- Do Write every headline as a question and rewrite the answer when the edge moves.
- Do Use magenta text only on white and only large or bold; use ink on the surface tint.
- Do Style every control explicitly, square, with a violet focus line.
- Do Give each sheet the 24px ruling and four registration ticks.
- Don't Don't add a stat band, a top bar, a footer or eyebrow labels.
- Don't Don't use gradients, glass or borders; the ruling is a hairline pattern.
- Don't Don't add a second accent beside the magenta edge.
- Don't Don't put magenta body text on the #F0ECFF surface (4.41:1).
- Don't Don't round a rectangle; the dots are the only round things.
- Don't Don't put emoji on buttons.

### Accessibility

AA and better: ink #1A1030 is 18.1:1 on white; muted #5A4F7A is 7.4:1 on white and 6.4:1 on #F0ECFF; violet #4A22C8 is 8.9:1 on white; magenta #D2008B is 5.1:1 on white and the button label white on magenta is 5.1:1, but magenta on #F0ECFF is 4.41:1 so it only carries large bold readouts there. Focus is a 3px violet outline at 3px offset. The dots are role=slider buttons with aria-valuetext and arrow-key control.

### Usage Context

Operations and review consoles, planning and capacity tools, calculators, reports and explainers where one relation (A x B = C) is the point, and any product that should read as a measuring instrument.

## Imagery Direction

### Pairs With

bluework

### Art Style Id

en-019efa6f-e618-7a52-9864-a51c9bfb51aa

### Summary

Bluework's orthographic engineering line drawing regraded to violet ink on white: a top-down drafting table with rule, dividers, slide rule and French curve, and the alidade as the one magenta part. The plate sits under a 40% white wash so the headline stays quiet and readable.

### Subjects

- a top-down drafting table with rule, dividers and slide rule
- a French curve and a pair of dividers on a ruled sheet
- the alidade laid across the table as one magenta part

### Usage

One full-bleed hero per landing: the drafting-table plate painted with var(--hero-image) on the first sheet, background-position centre, under a flat 40% white wash. Later sheets carry no illustration; the scales are the picture.

### Avoid

Graphite-gray plates, blue accents, glow, gradients, photography, people, text in the plate and any second magenta element.
shadcn/ui theme file
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "alidade",
  "type": "registry:theme",
  "title": "Alidade shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#1A1030",
      "card": "#F0ECFF",
      "card-foreground": "#1A1030",
      "popover": "#F0ECFF",
      "popover-foreground": "#1A1030",
      "primary": "#1A1030",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#5A4F7A",
      "muted-foreground": "#1A1030",
      "accent": "#D2008B",
      "accent-foreground": "#ffffff",
      "destructive": "#B0102A",
      "border": "#CFC6F0",
      "input": "#CFC6F0",
      "ring": "#D2008B",
      "chart-1": "#1A1030",
      "chart-2": "#f4f4f5",
      "chart-3": "#D2008B",
      "chart-4": "#0A7A55",
      "chart-5": "#8A5A00",
      "sidebar": "#F0ECFF",
      "sidebar-foreground": "#1A1030",
      "sidebar-primary": "#1A1030",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#4A22C8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#CFC6F0",
      "sidebar-ring": "#D2008B",
      "radius": "0px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1A1030",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D2008B",
      "accent-foreground": "#ffffff",
      "destructive": "#B0102A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D2008B",
      "chart-1": "#1A1030",
      "chart-2": "#f4f4f5",
      "chart-3": "#D2008B",
      "chart-4": "#0A7A55",
      "chart-5": "#8A5A00",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1A1030",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D2008B",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D2008B",
      "radius": "0px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-01a101b7-01eb-7ac0-a7de-0869886ace6b",
    "slug": "alidade",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "scale",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "derived": [
        "lift",
        "pressed_accent",
        "row_tint",
        "ruling"
      ],
      "typography": [
        "base_size",
        "body_font",
        "body_weight",
        "button_weight",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none"
      ],
      "shadows": [
        "lift",
        "none"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "material",
        "treatment"
      ],
      "borders": [
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "controls": [
        "height",
        "radius",
        "well_height"
      ]
    }
  }
}
```

shadcn/ui kit