Panel proof sheet

The readout and the dial float over map tiles that move. Every other surface in this system contrasts against a colour we chose; this one has to contrast against a colour we will never see. The scrim carries all of the contrast — backdrop-filter carries none of it, because blur preserves local average luminance and a blurred white sky is still white.

Over the palette's own map fills

What you are looking at: the same panel over eight known backdrops, including the two the arithmetic says are hardest — a blown white sky (worst for the TEXT, because it lightens the composite most) and mid-grey #5F5F5F (worst for the EDGE, because it is far from both black and sage at once).

Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
--moss — land
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
--silt — built-up
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
--water — water
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
--sage — high ground
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
--loam — the page under the map
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
white sky — the worst case, by arithmetic
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
mid-grey — worst case for the EDGE
Bearing from north
298.97°
2026-05-29 · 20:11:04 EDT
Flatiron District
--sun — a marker directly behind the panel

Over a real photograph

The brightest fixture Darkroom ships, edge luminance 144/255. A photograph is not a flat colour: the scrim has to hold against every pixel under it at once.

Shadow ratio
76.4×
Golden · long warm shadows
557603cb-4a08-4e22-b3f7-7fcde0fadb80-1-105-c
Alignment
−0.4°
.panel--tight
tight density

Measured live — composited colour and contrast

Read from getComputedStyle and the known backdrop, per panel. The pixel-level check — screenshotting and reading the ACTUAL composited RGB, to confirm the browser composites in sRGB the way the arithmetic assumes — is npm run panel.

measuring…