Goldie Blocks

The Header Band Rests and Steps

A card's header strip is its body's colour at rest, steps darker while the card is selected, and goes darkest under its own hover; blocks stay white to the top

Decision

At rest a card's header row is the same colour as its body, on every Folio kind. The strip steps darker while the card is selected and darkest under the header's own hover. The pointer anywhere else on the card leaves the strip alone. Blocks have no band and stay white to the top of their header. Owner ruling 2026-09-10, looking at the live module and document cards after the concertina (GB-220) moved the fold beneath the title: "the header row should be same colour as the body row at rest for the module and for the document and any other folios." This narrows the 2026-09-08 ruling below, which had restored a permanent resting strip; the selection and hover steps it set survive unchanged.

The 2026-09-08 ruling, from the Folio slots story:

When a folio is selected, I think its header row should remain with the darker tone. … I think we initially agreed that there would be a darker tone on hover than when you select the folio. … At the moment, when a stack card is open, there is no distinction between the header row and the body row, as the card is all one colour. But I think there should be some clear separation.

And on the block exception, same sitting:

Blocks are part of the paper, so therefore they should appear white, including the header, other than when hovered or selected, whereas we want to distinguish modules and document folios as not part of the paper and therefore they have a light background even at rest.

In plain terms: a module or document card is a folder, not a page. Its title strip is the folder's label, always a shade darker than the folder, darker still when that folder is the one you picked, and darkest when you point at the label to open it. A block is a page, and a page has no label strip.

Note, 2026-09-10 — the resting seam, parked then settled

GB-220 moved the Contains row out of the band and beneath the fold, so the band is now the title row alone. The owner first parked the question of a permanent seam at rest, then settled it the same day by looking at the live module and document cards: no seam at rest. The +5 resting base is gone; selected +6 and hover +12 stand, and the block exception survives — a block's strip rests white and folds only its Guide and Tags (GB-220 slice 4).

What this supersedes, and what survives

The 2026-08-24 sitting ruled the band engaged-only: it appeared under the header row's hover and at no other time, so a resting or selected card read as one uniform wash. That answered a real problem — the strip had been lighting whenever the pointer was anywhere on the card — but it also removed the seam between header and body, and the schedule the docs recorded (a rest/hover/selected ladder on the band) was never wired: each tier's palette adapter kept computing the band's rung and the card shell dropped it.

What survives from 2026-08-24, unchanged: only the header strip reacts to the pointer. The card's own hover rung (pointer on the body) maps to the resting strip. What survives from the same date's block correction, unchanged: a block prints, and prints without its header row, so it states no tone, gets no band, and only its spine steps.

The schedule

Painted over the card's own 5 / 7 / 12 wash, as a step of the same hue:

Resting cardHovered card (pointer on the body)Selected card
Header bandnone (the card's wash)none+6
Header band under its own hover+12 on top of the above

Starting points to be settled by looking, over the usual narrowing rounds. The hover cue rose from +8 to +12 so a hovered strip reads clearly darker than a selected one rather than level with it.

Where the law lives

  • stackHeaderBand(tone, state) in stack-palette.ts — base from the card's state, cue from the row's own :hover; pinned in stack-palette.node.test.ts.
  • StackHeaderBand and StackHeader take state — the adapter's headerState, which the Stack root no longer accepts.
  • The module card and document folio pass it; the block card states no tone.

Guards

  • stack-palette.node.test.ts pins the doses, that every rung but active is the resting strip, and that the hover cue is the darkest step.
  • Step2bTheHeaderBand and Step6TheWholeCard (stack-anatomy.stories.tsx) pin the resting strip on a toned row, no strip on an untoned one, and no strip on the row inside a band. Since 2026-09-10 Step6TheWholeCard also pins that the band wraps the title row alone and the contents subrow stands outside it.

On this page