Content canvas · design systems

Design Component Systems

The source of truth for every component, in both rooms. Each is built from roles resolved per room — never a fixed hex — so the system crosses light↔dark as a palette resolution, not a redesign, and this page measures its own contrast at render time (below). Toggle the room and watch nothing reflow.

Reading this as a seat? Trust these renders over any number in the prose. When you build the applet, don't copy this file's :root or its @font-face — an applet consumes the §26 token bridge (--accent, --accent-action, --accent-ok…), inherits the pinned font from the room (§25.3), and keeps the board transparent (§25.1). This page self-hosts the font and paints a shell only because it is a standalone document, not an applet.

§3.1a roles §3.7 oklch ladder Roboto 500/700/800 Radius 8/12/16/20/999 self-measuring
SHAPE

Surfaces & buttons

the generator · ladder · reserved arcs

Two families, one base shape at 20px radius. A surface is fill only — it holds a term. A button carries a solid base edge it spends when pressed. Colour is generated from a hue angle, not listed, so the set never runs out.

1 · Telling them apart

A surface is flat; a button stands on a solid edge. Depth is the only difference — radius is 20px for both and carries no meaning.

Surface

2 · Colour is a recipe, not a list

A variant is one number — a hue angle. Five stops are generated from it in oklch(); the lightness/chroma constants are per room, so the ladder inverts on its own.

fill
fill2
base
edge
text
!
Two arcs are reserved. 15–40° means wrong, 130–170° means correct — never an anchor, never decoration.

3 · The default ladder

Eight angles pre-solved, taken in order, so the first term on any board is violet and nobody chooses. Each card shows the same three stops in its own hue.

Violet295
fill2
base
text
Orange55
fill2
base
text
Blue250
fill2
base
text
Teal190
fill2
base
text
Pink350
fill2
base
text
Grape320
fill2
base
text
Gold95
fill2
base
text
Azure220
fill2
base
text

4 · Surface — four states

Only fill, stroke and label change. The stroke appears in exactly one state — highlighted — which is what makes it mean something.

Default
Highlighted
Negative
Disabled

5 · Button — six states

Geometry frozen across states; the outcome icon lives in a reserved slot outside the button.

6 · Where the edge colour comes from

Each button's base edge is its own hue at a darker lightness — never a grey, never a shadow.

7 · The ten rules

  1. Depth is the family signal. A surface is flat; a button stands on a solid edge. Radius 20 for both.
  2. Pressing spends the depth. The face travels down by exactly the edge height and lands level with the page.
  3. The edge is flat and derived. A solid offset in the face's own hue — never blurred, gradient, or a lit top.
  4. A surface has no stroke. The stroke appears in one state — highlighted — inset so nothing reflows.
  5. Both fit their content. A shape is never stretched to fill a column.
  6. A variant is a hue angle. Lightness and chroma are fixed, so a ninth colour is generated, never invented.
  7. Two arcs are reserved. 15–40° means wrong, 130–170° means correct.
  8. Hues on one board sit 25° apart. Any closer and two terms stop being tellable apart. Four anchors max.
  9. A term keeps its angle module-wide. If Integers is 250° on board 3, it is 250° on board 17.
  10. Geometry is frozen across states. Only fill, stroke and label colour change.
§18

The slider system

five types · three states · any hue

Markers divide the bar rather than sit on it, the counter is tethered to the thumb, and the track carries the accent's own tint so the whole control reads as one object. Drag any of them.

1 · Anatomy

Five parts — a type is only which parts are switched on. Track 16px, thumb 40px, notch 2px, the hit target 44px whatever the thumb looks like.

3

2 · The five types

Two switches — scale (none / markers / markers+labels) and counter (off / on) — closed by value shown once: labels or a counter, never both.

Plain — continuous
Markers — discrete
5
4

3 · The three states

The slider itself never changes shape; disabled goes achromatic, highlighted sits on a plate.

Default
Disabled
Highlighted

4 · Any hue on the ladder

The same control, generated in each of the eight angles — the track tint, fill and notches all derive from one number.

5 · The ten rules

  1. A slider invents nothing. The track is a surface, the thumb is a button with the same base edge, every colour from the hue angle.
  2. The value is shown once. As labels, or as a counter — never both.
  3. Markers cut through the bar. A 2px notch at every interior stop, never a dot resting on the track.
  4. The track wears the accent. A tint of the same hue as the fill, never a neutral grey.
  5. The counter is tethered. It fits its digits and never reserves width it is not using.
  6. Geometry is shared. Track 16px, thumb 40px, notch 2px, in every type, state and hue.
  7. The value is always reachable. The counter shows it, the labels name it, or the driven object makes it obvious.
  8. Discrete means notches. Above 12 stops drop them and use a counter instead.
  9. Highlighted is a surface state. A plate in the stronger tint; the slider itself never changes.
  10. Disabled keeps its geometry. Achromatic fill, no travel, never hidden.
§18a

The counter system

two types · three states · any hue

The value always leads — it is the number being taught, and the two buttons exist to change it. Press anything.

1 · Anatomy & the two types

Bare: the counter stands on the board, buttons take the accent's light tint. Held: a tinted shell groups the three, buttons go to the surface.

7
3

2 · The three states

A limit disables one button, never the whole counter — one flat button tells the student which way is still open.

5
5
5

3 · Any hue on the ladder

2
4
6

4 · The nine rules

  1. A counter invents nothing. Two buttons and one surface, all from the shape system.
  2. The value always leads. Larger, a step darker and lifted; it leads by hierarchy, never volume.
  3. One hue family, no grey. A button's face is one step lighter than what it sits on.
  4. The value is a surface. Read, not pressed — so it carries no base edge, only a soft lift.
  5. Glyphs are bars, not icons. 4px rounded bars, readable at classroom distance.
  6. A limit disables one button. Never the whole counter.
  7. The value never resizes. Sized for the largest value in range, tabular figures.
  8. Highlighted is a surface state. The shell becomes a plate in the stronger tint.
  9. Disabled keeps the value legible. Glyphs may dim; the number may not.
§17a

The number line system

point & region marks · three states

The graph sheet's axis on its own, grid removed: the same 2px ink, the same arrowhead construction, the same generated hue for anything marked. A mark never moves or resizes between states.

1 · The two sets — same unit width, so the comparison holds

Whole numbers — a square cap at zero; nothing exists left of it.

012 345 678 5

Integers — an arrowhead at each end; the line continues forever both ways. Region [−2, 3).

−3−2−1 0123 [−2 3)

2 · The three states — a mark never moves or resizes

Point · default

Point · disabled

Point · highlighted

Region · default

Region · disabled

Region · highlighted (deepens)

§17b

The Venn & set system

nested · overlapping · disjoint

A set diagram adds no new devices — regions are figures, and the two things that can be marked are a region and a member. Nested depth decreases inward, so the smallest region stays most legible; fills always repaint opaquely rather than alpha-stacking.

1 · The three relations — drawn, never captioned

Nested — ⊆

reals rationals

Overlapping — ∩

Even ×3

Disjoint

Primes ×4

2 · The three states — a region deepens; a member ripples

Region · default

Region · disabled

Region · highlighted (deepens)

Member · default

6

Member · disabled

Member · highlighted (ripple)

§16

The graph system

three tiers · five plottables · three states

The grid recedes, the axes hold, the plot leads — a graph that competes with its own data is a decorated page, not a diagram. Three tiers, deliberately far apart.

1 · The sheet — two views

Labelled — a value must be read off the plane

0 xy

Unlabelled — the shape is the lesson

2 · The five things you can plot

Point

Line — continues

Segment — stops

2D shape — 10% fill

3D — isometric, opaque

3 · The three states — change stroke, fill and marker, never position

Default

Disabled

Highlighted — halo, 18% fill

measuring…