Trade the step-3-of-3 ladder for the shared header of all three pages - #49
Merged
Merged
Conversation
This page was the only one of the three that told the whole story, and it told it as a numbered ladder: "This is step 3 of 3". The numbering claims an order that does not hold. samples-controls is a reference you come back to whenever you need one control, not a step you finish once, and a reader who arrives here first is not behind. So the ladder becomes the card strip that now sits before the footer on all three pages - same three questions, no numbers - and a bar above the masthead carries Learn / Controls / Stack with the current one marked. Both blocks are identical in abap2UI5/samples, /samples-controls and /samples-stack, and read three tokens the page sets for itself, which is the only thing the copies may differ in. Three static pages cannot share a file at run time without fetching from another host, which is what these pages avoid, so the blocks are copied and check:family-nav keeps the copies honest: it fails on a subtitle reworded on one page only, a "you are here" left on whichever page was copied from, or a sibling missing from the footer. The masthead note now says what it actually means - there is no Playground button on a card here - instead of "no in-browser demo", which stopped being the difference when the other two pages dropped theirs. The empty result names both siblings rather than only samples. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014QKMsbCiREgnpdfVvQYsa2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This page was the only one of the three that told the whole story — and it told it as a numbered ladder: "This is step 3 of 3". The numbering claims an order that does not hold. samples-controls is a reference you come back to whenever you need one control, not a step you finish once, and a reader who arrives here first is not behind.
What lands on the page
The ladder becomes the card strip that now sits before the footer on all three pages — same three questions, no numbers — and a bar above the masthead carries Learn · Controls · Stack with the current one marked. Both blocks are identical in
abap2UI5/samples,/samples-controlsand/samples-stack; onlyaria-currentmoves.<nav class="family"><section class="three">.ladderThey carry verbs rather than repository names —
samples-controlstells a newcomer nothing, Controls / every UI5 control, searchable tells them everything — so the repository name lives in thetitleattribute and the footer instead.Two more corrections specific to this page:
abap2UI5/samples; it now names both siblings, by the verbs the bar uses.Why the blocks are copied rather than shared
Three static pages cannot share a file at run time without one of them fetching from another host, which is exactly what this folder avoids — it is the deployed site, uploaded unchanged. So the blocks are copied, which is already the practice here:
stack.csssays out loud that its custom properties are the ones samples-controls uses, "on purpose".npm run check:family-navkeeps the copies honest: it fails on a subtitle reworded on one page only, a you are here marker left on whichever page was copied from, a sibling missing from the footer, or a link to…/samples-controls/search/, which is a 404. It is offline on purpose — diffing the three repositories against each other needs the network, and then this repository goes red because github.com is having a morning. It checks the canonical strings it carries itself, the same in all three copies, so rewording one means editing three files. It runs innpm run checkand as its own workflow.Shape of the copies
The styles sit at the end of
stack.cssbetween the same markers and read three tokens this page sets in:root—--family-width(var(--wide)here),--family-gutter,--family-bleed. Those three are the only thing the copies may differ in, because the three pages are built around containers of different widths. Every colour comes from the palette already here, so light and dark come free. The CSS block is byte-identical across the three repositories (verified). The.ladderand.stepsrules go with the section they styled.One detail worth knowing: the current page is coloured with
--accent, not--accent-ink. Here--accent-inkis white — it is the text on the accent fill, as on a pressed.chip— and white on--accent-softis nothing at all.Verification
Rendered in Chromium on all three pages, light and dark, at 1280px and 390px: the right page marked, exactly one marker per block, no sideways scrolling, no console errors. The strip carries a top rule so it does not read as the tail of
.packages, which has one.check:web,check:proseandcheck:family-navpass; the check was also tested negatively and rejects a wrongaria-current, a reworded subtitle and the retired 404 address with exit 1.No generator, package index or
apps.jsonis touched.deploy-webalready triggers onweb/**, so the page redeploys on merge.Generated by Claude Code