Skip to content

Record data.retina.fm, and the theme system three surfaces now share - #22

Merged
Babissimo merged 1 commit into
mainfrom
docs/brand-six-surfaces
Sep 15, 2026
Merged

Babissimo merged 1 commit into
mainfrom
docs/brand-six-surfaces

Conversation

@Babissimo

@Babissimo Babissimo commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

The guide described five surfaces and one themed one. Both are out of date.
data.retina.fm was never captured, and offworldlabs/retina-server#382 and
offworldlabs/retina-server#383 gave dash, admin and data a dark theme built on
the map's palette. Read cold today, the guide would have someone invent a sixth
palette for a surface that already has one.

What changes

  • data joins the tables. Where it and dash hold identical values they share
    a column, so the tables stay the width they were.
  • The pair of palettes is documented as a pair rather than as the map's
    private business — including the part that is easy to get wrong: the three
    themed surfaces do not answer the same question the same way. dash and data
    have three states and default to system, which stamps no attribute and
    lets a prefers-color-scheme block answer, so the OS preference keeps working
    when it changes mid-session. The map has two states and defaults to dark,
    never consulting the OS. What they share is the cascade rule — the half a
    surface must paint before JavaScript runs goes on the bare selector,
    data-theme buys the other — which is a separate claim from which half a
    viewer actually meets. §10 records the split rather than resolving it.
  • §3 gains --bg-sunk and --accent-ink, the two tokens the sharing
    introduced.
  • The component matrix keeps dash and data apart, since that is where they
    differ. data has the shared control rule, the focus treatment and the styled
    overlay §10 has been asking dash for, so those are recorded as the versions to
    copy.
  • tokens.css gains a .data class (one declaration with .dash) and a
    shared [data-theme="dark"] block, and says plainly that it cannot reproduce
    the system state the live surfaces default to.
  • preview.html stops presenting the pair as two surfaces. Its dash and map
    panels were tagged "the console in light" and "the console in dark", which
    reads as two different looks. They now carry a shared accent rail, a kicker
    naming which half they are, and a note in each saying which surfaces arrive
    there and how.

The top bar is recorded but not proposed for dash, which has two navigation
trees the bar cannot hold.

Corrections found while checking claims against the stylesheets

  • §2 said the console sets its micro-label in mono. dash never has: its stat
    labels, table headers and nav-section titles are all the system stack, and
    data copied that. Only the two marketing sites use mono here. (The marketing
    half of the claim I did verify — both set it from their --font-mono.)
  • tokens.css had the map at radius 6/3/10, against the 8/4/12 the surface
    uses and §5 already records. §1's row said 3–10px and is now 2–12px.
  • The two light themes disagree on the sunk tier. dash and data set
    --bg-sunk to the canvas value #f1f5f9; the map's light theme sets #f8fafc,
    lighter than its canvas. Everything else in the pair matches token for token.
    Recorded in §10 rather than resolved, per this file's policy.

Verification

Every value in tokens.css was read back out of a browser against the live
stylesheets rather than eyeballed: all six class/attribute combinations resolve
to exactly what dashboard/src/App.css, data-explorer/app.css and
frontend/src/map-surface.css hold, preview.html renders with the pair marked
on exactly two panels, and the map is confirmed to define no --accent-ink at
all. The theming defaults were read from ThemeContext.tsx, app.js and
useMapTheme.tsx rather than inferred from the CSS cascade, which is what
separates "light is on the bare selector" from "light is the default" — they are
not the same claim, and an earlier draft of this branch conflated them.

One dependency

The buttons table now shows dash and data sharing 8px/16px padding. That is true
once offworldlabs/retina-server#386 lands; on main today data is at 7/14. If
that PR changes shape, this row needs revisiting.

🤖 Generated with Claude Code

…es share

The guide described five surfaces and one themed one. Both are now out of
date: data.retina.fm has existed for a while and was never captured, and
retina-server #382 and #383 gave dash, admin and data a dark theme built on
the map's palette rather than on sets of their own. Read cold today, the guide
would have someone invent a sixth palette for a surface that already has one.

So: data joins the tables, and the pair of palettes is documented as a pair
rather than as the map's private business. §3 also gains the two tokens the
sharing introduced, `--bg-sunk` and `--accent-ink`.

The part worth getting right is that the three do not answer the same question
the same way. dash and data have three states and default to `system`, which
stamps no attribute and lets a `prefers-color-scheme` block answer, so the OS
preference keeps working when it changes mid-session; the map has two and
defaults to dark, never consulting the OS. What they do share is the cascade
rule — a surface puts the half it must paint before JavaScript on the bare
selector and spends `data-theme` on the other — and that is a separate claim
from which half a viewer meets. §10 records the split rather than resolving it.

`preview.html` said "the console in light" and "the console in dark" of its
dash and map panels, which reads as two surfaces with different looks. They
are now marked as the two halves of one palette: a shared accent rail, a
kicker naming the half, and a note in each saying which surfaces arrive there
and how.

Where dash and data hold identical values they share a column, which keeps the
tables the width they were. The component matrix is the exception, since that
is precisely where the two differ: data has the shared control rule, the focus
treatment and the styled overlay that §10 has been asking dash for, so those
are recorded as the versions to copy. Its top bar is recorded but explicitly
not proposed for dash, which has two navigation trees the bar cannot hold.

Three corrections found while checking claims against the stylesheets:

- §2 said the console sets its micro-label in mono. dash never has; its stat
  labels, table headers and nav-section titles are all the system stack, and
  data copied that. Only the two marketing sites use mono here.
- tokens.css had the map at radius 6/3/10 against the 8/4/12 the surface
  actually uses and §5 already records.
- dash and data set `--bg-sunk` to the canvas value while the map's light
  theme sets it one step lighter, which is the single place the shared pair
  disagrees. Recorded in §10 rather than resolved, per this file's policy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Babissimo
Babissimo force-pushed the docs/brand-six-surfaces branch from 83f446a to 73c72ce Compare September 15, 2026 12:05
@Babissimo
Babissimo merged commit 251f41c into main Sep 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant