# Decision log

The standing decisions of the Inline design system: what was settled, when,
and why it holds. Newest first, one dated paragraph per decision. The log is
append-only. A reversal is a new entry that names the entry it replaces;
existing entries are never rewritten. Check this log before building a
section, adopting a component, or proposing a token change.

## 2026-08-01 · The documentation favicon uses the paper app tile

The design-system website favicon now uses the same Butter Yellow marker and
square geometry as the app profile tile, with a paper field instead of
Midnight. This replaces the fixed-field documentation tile described in the
2026-07-27 favicon decision. The product and marketing browser tabs remain the
bare app and site markers, and the social profile exports remain full-bleed
square fields.

## 2026-07-27 · Favicons split by surface

The browser tab is the one place the product and the marketing site sit side
by side, often pinned, where no title disambiguates. Each surface now carries
its own tab mark: the bare 40-unit marker at (12, 12) on the 64 grid, Butter
Yellow for the app and Midnight for the site, with the site chip swapping to
paper under a dark browser theme inside the SVG. Yellow stays where students
work. The ink chip extends the one-color production glyph rather than adding
a colorway. Avatars, app icons, touch and PWA tiles keep the fixed-field mark
of 2026-07-08, and the documentation site keeps that mark as its own tab
tile. PNG fallbacks ship at 16 and 32; the Midnight fallback is accepted as
quiet on dark themes.

## 2026-07-27 · Chart series are four hues on one band

The categorical series become indigo `#3F529C`, ochre `#8E7000`, teal
`#008776`, and rust `#90382D`: the brand pair opened to chart chroma plus the
two hues at right angles to it, about ninety degrees apart. Series 1 and 4 sit
at OKLCH L 0.46, series 2 and 3 at L 0.56, all four between C 0.10 and C 0.12,
which is the one-lightness-and-chroma-band discipline the question taxonomy
already uses. This replaces "Charts speak Midnight and gold" of 2026-07-26 and
supersedes the palette named in "Four series, not six," whose four-series cap
and split-or-table rule still hold.

Two hue families could not do the job. Ink and gold gave only two hues, so the
four steps separated by lightness alone: series 1 and 3 were one navy at two
darknesses, series 2 and 4 one gold at two darknesses, spanning L 0.25 to 0.61
with a 4.13x contrast band while the rest of the system holds its families
inside 0.04. Worse, series 1 and 3 were literal aliases of ink-900 and ink-600
and series 4 sat ΔE 1.6 from feedback-evidence, which rule 1 forbids. The set
failed the lightness-band, chroma-floor, and normal-vision checks, its closest
pair reading ΔE 12.1 to full-color readers.

Hue now carries identity and a two-step lightness stagger carries
color-blind separation; both are load-bearing. Flat lightness collapses these
hues to ΔE near 1 under deuteranopia, so the stagger is not decoration. The
set clears every categorical check on white and on paper, on adjacent pairs
and on all pairs, with worst-case ΔE 15.2 normal, 11.2 protan, 10.5 deutan,
11.9 tritan. Series 4 sits ΔE 4.5 from danger-600, so rule 9 keeps it away
from status indicators and from standing alone against series 3. Series 5 and 6
remain deprecated, now aliased to the neutral role and to series 4.

## 2026-07-26 · Four series, not six

Two hue families cannot yield six distinguishable categorical steps without
producing twins of the butter emphasis and the neutral. The set caps at four:
ink-900, gold-700, ink-600, gold-800, every pair separated by lightness or
the blue-gold axis. Past four categories a chart splits or becomes a table.
Series 5 and 6 remain as deprecated aliases for one minor. This supersedes
the same-day duotone six.

## 2026-07-26 · Charts speak Midnight and gold

The categorical series drop every third hue. Series alternate ink and
brand-gold steps (ink-900, gold-600, ink-600, gold-700, ink-400, gold-400),
separated by lightness rather than hue, with Butter Yellow reserved for the
one emphasis. Lightness alternation is color-blind safe by construction, and
light steps make direct labels mandatory. This replaces the deep six-hue set,
which still read as a palette apart from the brand.

## 2026-07-26 · Icons are Phosphor Regular

The icon library is Phosphor at the Regular weight, replacing Lucide. It is
drawn natively at 16px, its filled-outline construction is visibly distinct
from the ubiquitous 2px-stroke genre, and its vocabulary covers the
product's nouns including highlighter. The token is icon.weight = regular;
icon.stroke is retired because the set has no stroke attribute.

## 2026-07-26 · Selects are custom

The select is a custom control: an input-shaped trigger opening a listbox on
the menu overlay surface with full keyboard support. This supersedes the
earlier native-first line; native selects remain only where a platform
demands them.

## 2026-07-26 · Plan limits are configuration

Word caps, run counts, and file-size caps are billing configuration owned by
the product database. Specs state behavior contracts only; interfaces render
limit numbers as data sized for the widest realistic value, and any number
in a design specimen is an example.

## 2026-07-26 · Question cards share the manuscript plane

Margin question cards are annotations on the document, so they share its
geometry: square corners, like the draft sheet and the marker. Detached
surfaces, menus, dialogs, and general cards, keep their 8 and 12px radii.
This replaces the earlier 8px question card and resolves the sharp-sheet,
round-card tension in the review workspace.

## 2026-07-26 · Chart series are deep, not pastel

The categorical chart palette moved from muted mid-tones to a deeper
editorial register: cobalt #185295, teal #007979, moss #39652F, ochre
#A1790C, sienna #9C4525, aubergine #6C3D76. Every series clears 4:1 on
white, neighbors alternate lightness for color-blind separation, and the
ochre step deliberately echoes the brand gold.

## 2026-07-26 · Question card borders step with interaction

A margin question card rests on the default hairline, moves to ink-300 on
hover, and marks the active question with ink-400. Tokens
`feedback.card-border-hover` and `feedback.card-border-active` carry the two
steps. No shadow and no fill change at any state; the paired passage mark
carries the rest of the signal.

## 2026-07-26 · Menus are compact pointer surfaces

Menu rows sit at roughly 36px from an 8px by 12px inset, below the 44px
effective target that controls promise. Menus are desktop pointer surfaces
and their rows are large in practice; a touch context raises rows to a 44px
target instead of shrinking the rule.

## 2026-07-26 · Light theme only

Inline ships one light theme until a full dark remap is designed as a whole.
Ink on paper is the product's reading contract, and a partial dark mode would
fork every contrast, mark, and status decision without a system behind it.
Nothing in the tokens may assume a second theme exists.

## 2026-07-24 · Hairline-first elevation

Boundaries are drawn with 1px hairlines, not depth. In-flow surfaces carry no
shadow, and exactly three shadow tiers exist: raised for real overlap, overlay
for transient tools, dialog for blocking surfaces. A fourth tier is a design
smell, not a token request.

## 2026-07-22 · Passage marks are always Butter Yellow

Every marked passage in a draft uses the yellow mark family, whatever the
question type. Dimension color lives only in written titles on neutral cards.
A second mark color would turn the margin into a legend and make the draft
read as graded.

## 2026-07-21 · Question and status palettes are harmonized and kept apart

Both palettes sit in one lightness and chroma band so no hue outranks
another, and their hues are kept apart from each other so a question title is
never mistaken for a verdict. Question colors identify type; status colors
report what the application did; neither may borrow from the other.

## 2026-07-18 · The large control is 44px, not 48

The control ladder tops out at 44px, matching the minimum effective target
instead of adding a taller 48px tier. Controls stay quieter than the writing
they sit beside, and the target math stays one number. 48px survives only as
the compact toolbar height, which is a region, not a control.

## 2026-07-15 · One ink scrim at 32 percent

The only surface that dims the page is the dialog backdrop, ink at 32 percent
alpha. Menus, popovers, autocomplete, and toasts never dim; overlays earn
attention through position and shadow, not by darkening the draft.

## 2026-07-13 · Toasts sit below dialogs

In the stacking order, toast (40) stays under backdrop (50) and dialog (60).
A toast is an aside and may never cover a decision the user is being asked to
make; if a message matters more than the open dialog, it belongs in the
dialog.

## 2026-07-10 · No diverging chart palette

Charts describe; they never render judgment. The chart namespace offers six
categorical series plus emphasis and neutral roles, and deliberately omits a
good-to-bad ramp. Student work is never plotted on a red-to-green axis.

## 2026-07-08 · The standalone mark is the lockup silhouette

The mark is the wordmark reduced to its silhouette, drawn on a 4-unit grid,
not a separate glyph. The identity has one shape at every size, and any
redraw starts from the lockup geometry rather than from taste.

## 2026-07-05 · The docs site is self-contained

The documentation site uses no CDN, no build step, and no external asset, and
content is never hidden behind script. JavaScript builds chrome only: the
sidebar, footer, table of contents, and copy buttons. A page must read
completely with script disabled.
