---
version: alpha
name: Excavation
description: A sand ground with deep teal ink and a cyan for depth: records ordered by stratum, never by date, against a persistent left ruler.
meta:
  id: "theme-excavation"
  model: "Claude Opus 5"
  author: "Claude Code"
  createdAt: "2026-09-02T00:58:19+09:00"
  updatedAt: "2026-09-02T00:58:19+09:00"
  version: "1.0.0"
  isNew: false
lookbook:
  tagline: Ordered by depth, because that is the order it happened.
  bestFor: Archaeology and field archives, geology and core sampling, museum collections, provenance records, stratified data
  avoidFor: Real-time tools, consumer products, anything whose natural order is chronological or alphabetical
  defaultMode: light
  surfaceStyle: ruled
  accentUse: text
  caseStyle: labels-upper
  borderWidth: 1px
  imageTreatment: warm
  motion:
    intensity: 1
    duration: 220ms
    ease: "cubic-bezier(0.33, 1, 0.68, 1)"
    signature: "Everything enters from below, rising through the ruler. Nothing arrives from the top; that is the wrong direction for this data."
  displayFont: Alegreya
  displayKind: serif
  bodyFont: Alegreya Sans
  monoFont: Fira Mono
colors:
  background: "#C9AEA7"
  foreground: "#000000"
  card: "#C2A49C"
  card-foreground: "#000000"
  popover: "#C2A49C"
  popover-foreground: "#000000"
  primary: "#023639"
  primary-foreground: "#FFF8F7"
  secondary: "#BF978D"
  secondary-foreground: "#000000"
  muted: "#BF978D"
  muted-foreground: "#3B3532"
  accent: "#003E42"
  accent-foreground: "#FFF8F7"
  destructive: "#5E0005"
  destructive-foreground: "#FFF8F7"
  border: "#AF8C83"
  input: "#AF8C83"
  ring: "#023639"
  chart-1: "#004F54"
  chart-2: "#6C3850"
  chart-3: "#124065"
  chart-4: "#635114"
  chart-5: "#3C2D5B"
colorsDark:
  background: "#2D201D"
  foreground: "#FCF5F1"
  card: "#392925"
  card-foreground: "#FCF5F1"
  popover: "#392925"
  popover-foreground: "#FCF5F1"
  primary: "#69979B"
  primary-foreground: "#180805"
  secondary: "#48322C"
  secondary-foreground: "#FCF5F1"
  muted: "#48322C"
  muted-foreground: "#A8A09B"
  accent: "#00CFDB"
  accent-foreground: "#180805"
  destructive: "#E35C52"
  destructive-foreground: "#180805"
  border: "#54403A"
  input: "#54403A"
  ring: "#69979B"
  chart-1: "#53A5AB"
  chart-2: "#B27891"
  chart-3: "#75A3CE"
  chart-4: "#958349"
  chart-5: "#AA9BD1"
typography:
  display-lg:
    fontFamily: Alegreya
    fontSize: 54px
    fontWeight: 700
    lineHeight: 1.08
    letterSpacing: -0.02em
  headline-lg:
    fontFamily: Alegreya
    fontSize: 31px
    fontWeight: 700
    lineHeight: 1.18
    letterSpacing: -0.012em
  headline-md:
    fontFamily: Alegreya
    fontSize: 20px
    fontWeight: 700
    lineHeight: 1.32
  body-lg:
    fontFamily: Alegreya Sans
    fontSize: 16.5px
    fontWeight: 400
    lineHeight: 1.62
  body-md:
    fontFamily: Alegreya Sans
    fontSize: 15px
    fontWeight: 400
    lineHeight: 1.6
  body-sm:
    fontFamily: Alegreya Sans
    fontSize: 13px
    fontWeight: 400
    lineHeight: 1.5
  label-caps:
    fontFamily: Alegreya Sans
    fontSize: 10.5px
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: 0.15em
  label-mono:
    fontFamily: Fira Mono
    fontSize: 12.5px
    fontWeight: 400
    lineHeight: 1.45
    letterSpacing: 0.01em
  numeral-xl:
    fontFamily: Fira Mono
    fontSize: 44px
    fontWeight: 700
    lineHeight: 1.02
    letterSpacing: -0.015em
rounded:
  none: 0px
  sm: 2px
  md: 3px
  lg: 4px
  xl: 6px
  full: 9999px
spacing:
  base: 16px
  xs: 4px
  sm: 8px
  md: 16px
  lg: 26px
  xl: 52px
  gutter: 18px
  margin: 28px
  measure: 66ch
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.primary-foreground}"
    rounded: "{rounded.sm}"
    padding: 11px
  button-ghost:
    backgroundColor: transparent
    textColor: "{colors.foreground}"
    rounded: "{rounded.sm}"
    padding: 11px
  card-panel:
    backgroundColor: "{colors.card}"
    textColor: "{colors.foreground}"
    rounded: "{rounded.md}"
    padding: 20px
  badge-label:
    backgroundColor: "{colors.secondary}"
    textColor: "{colors.secondary-foreground}"
    typography: "{typography.label-caps}"
    rounded: "{rounded.sm}"
---

# Excavation

## Overview

Excavation records things found in the ground. Its structural rule is an
inversion of the normal one: **records are ordered by depth, never by date**,
and there is a persistent depth ruler down the left of every screen against
which every record is positioned.

That is how the underlying discipline works — a context number and a depth are
the primary keys of a find, and its date is an interpretation applied later.
Sorting a finds list by "date added" is sorting by an accident of who typed
faster.

Every record carries its context number in mono and cannot be displayed without
one. A find with no context is not a find; it is an object, and the system says
so explicitly rather than showing it in the sequence as though it belonged.

Sand ground, deep teal ink, cyan for the depth scale. It suits field archives,
geology and collections. It is wrong for anything naturally chronological.

## Colors

Excavated ground, ink, and a scale.

- **Ground:** warm sand, a mid-tone. Cards lift; the section drawing sits in a
  darker well.
- **Primary (deep teal):** ink. Navigation, headings, the record frame, buttons.
  Very low chroma and very dark — it is a drawing pen.
- **Accent (cyan):** **text**, and it is always a depth or a context number.
  Solved to 4.5:1 because it sets numerals inside tables. It is the only bright
  thing in the system and it is a measurement.
- **Neutrals** are sand-tinted with a moderate step.
- Charts are accented: a section drawing is a stratigraphic column, drawn as
  stacked bands in neutral with cyan depth marks — not a generic bar chart.

## Typography

Alegreya for headings, Alegreya Sans for text, Fira Mono for every measurement.

- **Display:** Alegreya at 700, 54px. A calligraphic old-style serif drawn for
  literature; it gives a field archive the register of a published report rather
  than a database.
- **Body:** Alegreya Sans at 15px, 1.6, 66ch. The matching sans — using a
  superfamily here means the section drawing labels and the report body share
  proportions.
- **Fira Mono** carries depths, context numbers, grid squares, small find
  numbers and dimensions. Every number that was measured with an instrument.
- Uppercase at 0.15em for material classes: CERAMIC, LITHIC, FAUNAL, METAL.

## Layout

**The depth ruler, always at the left.** A 64px column down the full height of
every screen, ticked in centimetres, with the visible range labelled in Fira
Mono. Records position against it. On a list screen, rows align to their depth;
on a detail screen, the ruler marks the record's own depth band.

Content is ruled, not carded — 1px hairlines and 26px between sections. The card
appears once per screen at most, for a single find.

The section drawing is the signature component: stacked context bands drawn to
scale down the page with their numbers in cyan in the ruler, and finds hung off
the relevant band with 1px leaders.

A 12-column grid at 1320px with 18px gutters, offset by the 64px ruler.

## Elevation & Depth

Tonal from the mid ground in both directions, and ruled. Shadows appear on one
element: the photograph lightbox.

Everything enters from below, rising through the ruler over 220ms. Nothing
arrives from the top of the screen, because in this system down is older and
things come up out of the ground.

## Shapes

Small radii — 2px on controls, 3px on cards. Photographs are square-cornered and
always carry a scale bar; an archaeological photograph without a scale is not
evidence.

Photography is warm-graded: trenches, sections, finds trays, sieves, sunlit
spoil. Objects are photographed on neutral card with a scale, never styled.

## Components

- **Find row:** context number in Fira Mono cyan (80px), material class in
  uppercase, description, dimensions in mono, depth in cyan aligned to the ruler.
- **Depth ruler:** 64px, ticked at 10cm, labelled every 50cm in Fira Mono,
  persistent on every screen.
- **Section drawing:** stacked context bands to scale, cyan context numbers in
  the ruler, finds hung with 1px leaders.
- **Context card:** teal-ruled header with the context number at numeral-xl,
  interpretation in body, relationships (cuts, is cut by, fills) as a mono list.
- **Uncontexted object:** rendered outside the sequence in a bordered well with
  a mono note. Never placed in the depth order.

## Do's and Don'ts

- Do order every list by depth.
- Do keep the depth ruler on every screen.
- Do refuse to place a record without a context number in the sequence.
- Don't sort finds by date added.
- Don't use the cyan for anything that is not a measurement.
- Don't animate anything downward.
- Don't show an archaeological photograph without a scale bar.
