back to gallery

Vernier

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md — tokens plus the paired art style. Agents must generate real images.

the spec

specification

philosophy
summary
Vernier is an observatory decision bench: every reading is plotted on one engraved calibration axis on a deep obsidian plate, where a single phosphor-green trace shows what is live and a single sodium-amber pin marks the threshold a human still has to lock.
values
evidence on one axisrationed signal colourinstrument-grade precisiondark observatory grounda human signs the decision
anti-values
×white premium analytics default×rainbow charting×coloured side rails or card stripes×glass-rounded aperture cards×blank pre-animation states
tokens
colors15 items
bg
#0B0F14
surface
#121821
surface_2
#0E141C
text
#E8EEF2
muted
#8A97A6
border
#222E3A
accent
#5BE6A8
accent_soft
#15281F
accent_2
#F2A23C
accent_2_soft
#2A1E0E
on_accent
#07120C
success
#5BE6A8
warning
#F2A23C
error
#E8607A
info
#6FB7FF
typography9 items
base size
17px
body font
IBM Plex Sans
heading font
Spectral
mono font
IBM Plex Mono
heading weight
700
heading transform
none
letter spacing
-0.02em
line height
1.55
google fonts url
https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
radii5 items
none
0
sm
0
md
16px
lg
16px
full
9999px
shadows3 items
sm
0 1px 2px rgba(0,0,0,0.4)
md
0 14px 34px rgba(0,0,0,0.45)
lg
0 30px 70px rgba(0,0,0,0.55)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
none; obsidian ground with raised slate plates and recessed channels, no texture
card style
square-cut etched slate plates (radius 0; 16 only on a few feature plates), 1px slate hairline borders, ambient shadow on the dark ground, never a coloured edge
treatment
deep ink observatory plate; structure carried by slate hairlines and the calibrated Reticle Rail
borders4 items
default width
1px
accent width
2px
style
solid
character
low-contrast slate hairlines and etched calibration ticks; accents appear only as the rail pin, focus rings, chart traces, or threshold markers, never as side rails or card stripes
motion3 items
duration
180ms
easing
cubic-bezier(0.2, 0.8, 0.2, 1)
philosophy
settled state is the default and renders with no JavaScript; motion adds micro-lift and opacity clarification on scroll, gated behind an html.js class; respects prefers-reduced-motion; no bounce or colour sweep
rules
composition
Plot a run on one calibrated axis (the Reticle Rail): a spacious live-bench area, a left measurement gutter or evidence rail, and analytical plates aligned to content columns rather than a visible grid.
hierarchy
Spectral for engraved headings, IBM Plex Sans for explanation, IBM Plex Mono for all values; hierarchy comes from size, whitespace, and tabular alignment before colour.
density

Medium-low on a dark ground with generous gutters; tables stay information-rich but keep 14-18px vertical padding and calm hairline row separation.

signature
Reticle Rail: a 1px slate axis with etched calibration ticks running edge to edge, dividing sections; data sits on it as nodes; it turns vertical to become the dashboard gutter.Two indicator lamps: a single phosphor-green trace marks what is live; a single sodium-amber pin marks thresholds and the records a human must lock; everything else stays slate.Monospace evidence capsules: square-cut plates with IBM Plex Mono tabular numerals, tiny uppercase labels, and one semantic dot (green or amber) only when meaningful.Non-rainbow chart grammar: slate opacity bars carry structure with exactly one green trace and one amber threshold ring in any visible chart.Square-cut etched plates: radius 0 modules (16 only on a few feature plates), no glass-rounded aperture cards, no coloured side rails.
layout
grid
Invisible 12-column content grid at desktop; a left measurement gutter beside a wide plotting plate on the bench; collapses to 6 then 1 column with no visible grid lines.
whitespace

Outer dark space is treated as material: 28-64px margins on large screens, never filled with decoration.

density

medium-low

responsive
Single-column stack on mobile with the gutter collapsed and non-essential nav/table columns hidden; only the full-bleed hero spans 100vw; contained content capped and centred on ultra-wide.
breakpoints
mobile
390px
tablet
768px
desktop
1200px
wide
1440px
guidance
do
  • Plot evidence on the Reticle Rail and let mono tabular numerals line up to the digit.
  • Keep colour rationed to two lamps: green for live, amber for thresholds and human locks.
  • Let slate opacity carry every chart, table, and structural surface.
  • Treat the obsidian ground and outer space as a premium material; render the settled state with no JavaScript.
avoid
  • Do not add a third accent, a rainbow chart, multicolor KPI tiles, or coloured side rails / card stripes.
  • Do not round modules into glass aperture cards or use in-between radii.
  • Do not box the nav into a floating pill or rounded card; let it sit open across the header.
  • Do not default to a white analytics surface or ship a blank pre-animation state.
imagery
pairs with

calibration-plate-optical-slate-technique

summary
Subjects reconstructed from fine hairline contour lines on a near-dark field, with faint concentric optical guide rings, scattered registration cross-ticks, one luminous phosphor-green data trace, and one sodium-amber threshold pin.
subjects
meridian transit telescopes and observatory instrumentsstar fields and constellation arcs as measured platesoptical mechanisms: gears, mounts, reticleslight curves and orbital paths rendered as engraved traces
usage
One full-bleed hero per landing applying the calibration-plate technique to an observatory subject, composed with calm negative space (upper-left) so the overlay stays legible; the studio swaps the hero via --hero-image.
katagami spec
# Vernier

## Philosophy

Vernier is an observatory decision bench: every reading is plotted on one engraved calibration axis on a deep obsidian plate, where a single phosphor-green trace shows what is live and a single sodium-amber pin marks the threshold a human still has to lock.

### Values

- evidence on one axis
- rationed signal colour
- instrument-grade precision
- dark observatory ground
- a human signs the decision

### Anti-Values

- white premium analytics default
- rainbow charting
- coloured side rails or card stripes
- glass-rounded aperture cards
- blank pre-animation states

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#0B0F14` |
| surface | `#121821` |
| surface_2 | `#0E141C` |
| text | `#E8EEF2` |
| muted | `#8A97A6` |
| border | `#222E3A` |
| accent | `#5BE6A8` |
| accent_soft | `#15281F` |
| accent_2 | `#F2A23C` |
| accent_2_soft | `#2A1E0E` |
| on_accent | `#07120C` |
| success | `#5BE6A8` |
| warning | `#F2A23C` |
| error | `#E8607A` |
| info | `#6FB7FF` |

### Typography

- **Base Size**: 17px
- **Body Font**: IBM Plex Sans
- **Heading Font**: Spectral
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap

### Radii

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

### Shadows

- **Sm**: 0 1px 2px rgba(0,0,0,0.4)
- **Md**: 0 14px 34px rgba(0,0,0,0.45)
- **Lg**: 0 30px 70px rgba(0,0,0,0.55)

### Spacing

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

### Surfaces

- **Bg Pattern**: none; obsidian ground with raised slate plates and recessed channels, no texture
- **Card Style**: square-cut etched slate plates (radius 0; 16 only on a few feature plates), 1px slate hairline borders, ambient shadow on the dark ground, never a coloured edge
- **Treatment**: deep ink observatory plate; structure carried by slate hairlines and the calibrated Reticle Rail

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: low-contrast slate hairlines and etched calibration ticks; accents appear only as the rail pin, focus rings, chart traces, or threshold markers, never as side rails or card stripes

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1)
- **Philosophy**: settled state is the default and renders with no JavaScript; motion adds micro-lift and opacity clarification on scroll, gated behind an html.js class; respects prefers-reduced-motion; no bounce or colour sweep

## Rules

### Composition

Plot a run on one calibrated axis (the Reticle Rail): a spacious live-bench area, a left measurement gutter or evidence rail, and analytical plates aligned to content columns rather than a visible grid.

### Hierarchy

Spectral for engraved headings, IBM Plex Sans for explanation, IBM Plex Mono for all values; hierarchy comes from size, whitespace, and tabular alignment before colour.

### Density

Medium-low on a dark ground with generous gutters; tables stay information-rich but keep 14-18px vertical padding and calm hairline row separation.

### Signature

- Reticle Rail: a 1px slate axis with etched calibration ticks running edge to edge, dividing sections; data sits on it as nodes; it turns vertical to become the dashboard gutter.
- Two indicator lamps: a single phosphor-green trace marks what is live; a single sodium-amber pin marks thresholds and the records a human must lock; everything else stays slate.
- Monospace evidence capsules: square-cut plates with IBM Plex Mono tabular numerals, tiny uppercase labels, and one semantic dot (green or amber) only when meaningful.
- Non-rainbow chart grammar: slate opacity bars carry structure with exactly one green trace and one amber threshold ring in any visible chart.
- Square-cut etched plates: radius 0 modules (16 only on a few feature plates), no glass-rounded aperture cards, no coloured side rails.

## Layout

### Grid

Invisible 12-column content grid at desktop; a left measurement gutter beside a wide plotting plate on the bench; collapses to 6 then 1 column with no visible grid lines.

### Whitespace

Outer dark space is treated as material: 28-64px margins on large screens, never filled with decoration.

### Density

medium-low

### Responsive

Single-column stack on mobile with the gutter collapsed and non-essential nav/table columns hidden; only the full-bleed hero spans 100vw; contained content capped and centred on ultra-wide.

### Breakpoints

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

## Guidance

### Do

- Plot evidence on the Reticle Rail and let mono tabular numerals line up to the digit.
- Keep colour rationed to two lamps: green for live, amber for thresholds and human locks.
- Let slate opacity carry every chart, table, and structural surface.
- Treat the obsidian ground and outer space as a premium material; render the settled state with no JavaScript.

### Don't

- Do not add a third accent, a rainbow chart, multicolor KPI tiles, or coloured side rails / card stripes.
- Do not round modules into glass aperture cards or use in-between radii.
- Do not box the nav into a floating pill or rounded card; let it sit open across the header.
- Do not default to a white analytics surface or ship a blank pre-animation state.

### Accessibility

Body 17px on a high-contrast dark ground (text #E8EEF2 on #0B0F14); phosphor focus rings on every control; semantic colour never the sole signal (paired with label and shape); respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

calibration-plate-optical-slate-technique

### Summary

Subjects reconstructed from fine hairline contour lines on a near-dark field, with faint concentric optical guide rings, scattered registration cross-ticks, one luminous phosphor-green data trace, and one sodium-amber threshold pin.

### Subjects

- meridian transit telescopes and observatory instruments
- star fields and constellation arcs as measured plates
- optical mechanisms: gears, mounts, reticles
- light curves and orbital paths rendered as engraved traces

### Usage

One full-bleed hero per landing applying the calibration-plate technique to an observatory subject, composed with calm negative space (upper-left) so the overlay stays legible; the studio swaps the hero via --hero-image.
DESIGN.md
---
version: "alpha"
name: "Vernier"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#0B0F14"
  surface: "#121821"
  surface_2: "#0E141C"
  text: "#E8EEF2"
  muted: "#8A97A6"
  border: "#222E3A"
  accent: "#5BE6A8"
  accent_soft: "#15281F"
  accent_2: "#F2A23C"
  accent_2_soft: "#2A1E0E"
  on_accent: "#07120C"
  success: "#5BE6A8"
  warning: "#F2A23C"
  error: "#E8607A"
  info: "#6FB7FF"
typography:
  headline-lg:
    fontFamily: "Spectral"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Spectral"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "0px"
  md: "16px"
  lg: "16px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_2:
    backgroundColor: "{colors.surface_2}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_soft:
    backgroundColor: "{colors.accent_soft}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_2_soft:
    backgroundColor: "{colors.accent_2_soft}"
  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}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "#000000"
    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"
---

# Vernier

## Overview

Vernier is an observatory decision bench: every reading is plotted on one engraved calibration axis on a deep obsidian plate, where a single phosphor-green trace shows what is live and a single sodium-amber pin marks the threshold a human still has to lock.

### Values

- evidence on one axis
- rationed signal colour
- instrument-grade precision
- dark observatory ground
- a human signs the decision

### Anti-Values

- white premium analytics default
- rainbow charting
- coloured side rails or card stripes
- glass-rounded aperture cards
- blank pre-animation states

## 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 | `#0B0F14` |
| surface | `#121821` |
| surface_2 | `#0E141C` |
| text | `#E8EEF2` |
| muted | `#8A97A6` |
| border | `#222E3A` |
| accent | `#5BE6A8` |
| accent_soft | `#15281F` |
| accent_2 | `#F2A23C` |
| accent_2_soft | `#2A1E0E` |
| on_accent | `#07120C` |
| success | `#5BE6A8` |
| warning | `#F2A23C` |
| error | `#E8607A` |
| info | `#6FB7FF` |

## Typography

- **Headline-Lg**: Spectral, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Spectral, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 17px, weight 400, line-height 1.55.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`

### Grid

Invisible 12-column content grid at desktop; a left measurement gutter beside a wide plotting plate on the bench; collapses to 6 then 1 column with no visible grid lines.

### Whitespace

Outer dark space is treated as material: 28-64px margins on large screens, never filled with decoration.

### Density

medium-low

### Responsive

Single-column stack on mobile with the gutter collapsed and non-essential nav/table columns hidden; only the full-bleed hero spans 100vw; contained content capped and centred on ultra-wide.

### Breakpoints

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

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 2px rgba(0,0,0,0.4)
- **Md**: 0 14px 34px rgba(0,0,0,0.45)
- **Lg**: 0 30px 70px rgba(0,0,0,0.55)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: none; obsidian ground with raised slate plates and recessed channels, no texture
- **Card Style**: square-cut etched slate plates (radius 0; 16 only on a few feature plates), 1px slate hairline borders, ambient shadow on the dark ground, never a coloured edge
- **Treatment**: deep ink observatory plate; structure carried by slate hairlines and the calibrated Reticle Rail

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: low-contrast slate hairlines and etched calibration ticks; accents appear only as the rail pin, focus rings, chart traces, or threshold markers, never as side rails or card stripes

## Components

### Composition

Plot a run on one calibrated axis (the Reticle Rail): a spacious live-bench area, a left measurement gutter or evidence rail, and analytical plates aligned to content columns rather than a visible grid.

### Hierarchy

Spectral for engraved headings, IBM Plex Sans for explanation, IBM Plex Mono for all values; hierarchy comes from size, whitespace, and tabular alignment before colour.

### Density

Medium-low on a dark ground with generous gutters; tables stay information-rich but keep 14-18px vertical padding and calm hairline row separation.

### Signature

- Reticle Rail: a 1px slate axis with etched calibration ticks running edge to edge, dividing sections; data sits on it as nodes; it turns vertical to become the dashboard gutter.
- Two indicator lamps: a single phosphor-green trace marks what is live; a single sodium-amber pin marks thresholds and the records a human must lock; everything else stays slate.
- Monospace evidence capsules: square-cut plates with IBM Plex Mono tabular numerals, tiny uppercase labels, and one semantic dot (green or amber) only when meaningful.
- Non-rainbow chart grammar: slate opacity bars carry structure with exactly one green trace and one amber threshold ring in any visible chart.
- Square-cut etched plates: radius 0 modules (16 only on a few feature plates), no glass-rounded aperture cards, no coloured side rails.

## 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-019ef99a-18a8-7433-adff-4cbb74fa82f2/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Plot evidence on the Reticle Rail and let mono tabular numerals line up to the digit.
- Do Keep colour rationed to two lamps: green for live, amber for thresholds and human locks.
- Do Let slate opacity carry every chart, table, and structural surface.
- Do Treat the obsidian ground and outer space as a premium material; render the settled state with no JavaScript.
- Don't Do not add a third accent, a rainbow chart, multicolor KPI tiles, or coloured side rails / card stripes.
- Don't Do not round modules into glass aperture cards or use in-between radii.
- Don't Do not box the nav into a floating pill or rounded card; let it sit open across the header.
- Don't Do not default to a white analytics surface or ship a blank pre-animation state.

### Accessibility

Body 17px on a high-contrast dark ground (text #E8EEF2 on #0B0F14); phosphor focus rings on every control; semantic colour never the sole signal (paired with label and shape); respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

calibration-plate-optical-slate-technique

### Summary

Subjects reconstructed from fine hairline contour lines on a near-dark field, with faint concentric optical guide rings, scattered registration cross-ticks, one luminous phosphor-green data trace, and one sodium-amber threshold pin.

### Subjects

- meridian transit telescopes and observatory instruments
- star fields and constellation arcs as measured plates
- optical mechanisms: gears, mounts, reticles
- light curves and orbital paths rendered as engraved traces

### Usage

One full-bleed hero per landing applying the calibration-plate technique to an observatory subject, composed with calm negative space (upper-left) so the overlay stays legible; the studio swaps the hero via --hero-image.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "vernier",
  "type": "registry:theme",
  "title": "Vernier shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0B0F14",
      "foreground": "#E8EEF2",
      "card": "#121821",
      "card-foreground": "#E8EEF2",
      "popover": "#121821",
      "popover-foreground": "#E8EEF2",
      "primary": "#E8EEF2",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#8A97A6",
      "muted-foreground": "#E8EEF2",
      "accent": "#5BE6A8",
      "accent-foreground": "#111111",
      "destructive": "#E8607A",
      "border": "#222E3A",
      "input": "#222E3A",
      "ring": "#5BE6A8",
      "chart-1": "#E8EEF2",
      "chart-2": "#f4f4f5",
      "chart-3": "#5BE6A8",
      "chart-4": "#5BE6A8",
      "chart-5": "#F2A23C",
      "sidebar": "#121821",
      "sidebar-foreground": "#E8EEF2",
      "sidebar-primary": "#E8EEF2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#6FB7FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#222E3A",
      "sidebar-ring": "#5BE6A8",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E8EEF2",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#5BE6A8",
      "accent-foreground": "#111111",
      "destructive": "#E8607A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#5BE6A8",
      "chart-1": "#E8EEF2",
      "chart-2": "#f4f4f5",
      "chart-3": "#5BE6A8",
      "chart-4": "#5BE6A8",
      "chart-5": "#F2A23C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E8EEF2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5BE6A8",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#5BE6A8",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef99a-18a8-7433-adff-4cbb74fa82f2",
    "slug": "vernier",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "accent_2",
        "accent_2_soft",
        "accent_soft",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

DESIGN.md

at a glance

Typography

headline-lgSpectral · 33px · 700

The quick brown fox jumps

headline-mdSpectral · 27px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 17px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
remix lane

try a remix

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

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

Family

related

More like this