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
Typography
Each face set in this language's own words.
Alidade
Alidade
Alidade is a measurement workspace for review queues, drawn as a nomogram atlas.
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
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"
]
}
}
}
```