Skip to content

docs(site): sequence the landing page and repair its panels - #210

Merged
vishr merged 2 commits into
mainfrom
feat/landing-sequence
Aug 29, 2026
Merged

docs(site): sequence the landing page and repair its panels#210
vishr merged 2 commits into
mainfrom
feat/landing-sequence

Conversation

@vishr

@vishr vishr commented Aug 29, 2026

Copy link
Copy Markdown
Member

Order

The comparison section carries the sentence "This is the whole argument. Every other claim on this page follows from it" — and it sat fifth, with the benchmark fourth, where a reader met the evidence before the claim it answers.

New sequence: promise → filter → product → premise → mechanism → proof → limits → act.

Before After
Hero Hero
ProofStrip ProofStrip
What you look at What you look at
Measured on one machine What it replaces
What it replaces Inside the binary
Inside the binary Measured on one machine
Limits Limits

Each section now answers the question the previous one raises, and the benchmark lands on a reader who has just been told one process does the work of five.

Panels

Reviewing each visualization turned up four defects, three of them systemic:

  • Section.astro styled every descendant <p>, not just its own slotted prose. A class-plus-element selector outranks the single class a child component styles itself with, so component paragraphs inherited section margins and type — which is why Benchmark had started defending its copy with an id and doubled class selectors. Now scoped to direct children.
  • Starlight's consecutive-block margin landed inside component grids, so the preview's health tiles and the contrast panes' rows did not share a baseline. The three affected components take Starlight's own not-content opt-out; the rest keep content styling because they contain links.
  • The service table was left-aligned in every column, so its slack collected in the last cell and the figures huddled against the service names with half a pane empty beside them. Numerics align right; the pane closes with a count.
  • The three status hues were hardcoded in three components. Now site tokens with light-theme and print values — the pale green and coral that read on Ayu surfaces fall under 4.5:1 on white, which is where the hero's spike annotations were sitting.

Verified at 1280px and 430px in both themes; no horizontal overflow.

https://claude.ai/code/session_01FCgBTMHyJzwwbMDJ2RfzKk

vishr added 2 commits August 29, 2026 10:13
Reorder the argument, then fix what the panels were doing wrong.

The comparison section carries the sentence "This is the whole argument.
Every other claim on this page follows from it", and it sat fifth. The
benchmark sat fourth, where a reader met the evidence before the claim it
answers. The page now runs promise, filter, product, premise, mechanism,
proof, limits, act: what it replaces and how it works move ahead of the
measurement, so the number lands on a reader who has just been told one
process does the work of five.

Section styled every descendant paragraph rather than its own slotted
prose. A class-plus-element selector outranks the single class a child
component styles itself with, so component paragraphs inherited section
margins and type — which is why the benchmark card had started defending
its own copy with an id and doubled class selectors. Scoped to direct
children.

Starlight adds a top margin to consecutive blocks in rendered content.
Inside components that lay out their own grids that margin lands between
grid children, so the preview's health tiles and the contrast panes' rows
did not share a baseline. Those three components take Starlight's own
opt-out; the others keep content styling because they contain links.

Every column of the service table was left-aligned, so the table's slack
collected in the last cell and the figures huddled against the service
names with half a pane empty beside them. Numerics align right and
compare down their columns, and the pane closes with a count instead of
stopping halfway down.

The three status hues were hardcoded in three components. They are site
tokens now, with light-theme and print values: the pale green and coral
that read clearly on Ayu surfaces fall under 4.5:1 on white, which is
where the hero's spike annotations had been sitting.

Claude-Session: https://claude.ai/code/session_01FCgBTMHyJzwwbMDJ2RfzKk
The closing call to action shows the one command that installs Fanout,
and selecting it by hand across a line that scrolls sideways on a phone
is the worst part of the page.

Analytics counts installs from the browser's own copy event, which fires
for a hand-made selection and not for the Clipboard API. A button that
only wrote to the clipboard would take over the common path and stop the
measurement without anything looking broken, so the button announces the
copy on a custom event and the analytics script counts both paths.

The button removes itself where the Clipboard API is absent, because a
control that silently fails is worse than selecting the text by hand.
The command box gains the tabindex its own comment already claimed it
had: it scrolls, and an overflow a keyboard cannot reach cannot be read.

Claude-Session: https://claude.ai/code/session_01FCgBTMHyJzwwbMDJ2RfzKk
@vishr
vishr merged commit d10b55c into main Aug 29, 2026
8 checks passed
@vishr
vishr deleted the feat/landing-sequence branch August 29, 2026 17:39
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