Repository navigation
🎨 Rebuild the home page from its design canvas, and aim the nav at its sections - #529
Merged
Merged
Conversation
…s sections The home page now argues the product the way the Home mock does: a hero that names the problem, then README-as-a-CLI, agents, runtime, composition, durability, and install. Every class it uses already exists in site/assets/styles.css, because the design system's tokens and patterns were transcribed from it — so the stylesheet is untouched. Code samples are token arrays rendered by one Source component rather than twenty-one hand-written span trees. The header's three old anchors named sections that no longer exist. It now carries the mock's six, keeping Docs and GitHub, which the mock omits only because it describes the home page alone.
PR #529: 🎨 Rebuild the home page from its design canvas, and aim the nav at its sections2 files, +888 / -645 Scope🔴 PR has 1533 lines changed. Split into focused PRs. 🟡 1533 lines changed. PRs under 400 receive more thorough review. 🟡 Large PR with no linked issue. Structural✅ No structural bloat detected. Slop✅ Slop indicators look low. Static Analysis✅ Oxlint found no issues. CorrectnessNo extraneous code patterns detected. |
Six uppercase anchors repeating the page's own sections is chrome, not navigation — the page is short enough to scroll and the sections announce themselves. The header keeps Docs, GitHub, and the theme toggle. The section ids stay, so deep links still land and the hero's Install button still reaches #install.
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.
Why
Home.dc.htmlin the Home design project is the current design for executable.md's landing page, and the repo was still serving the previous one. This imports it.What changes
Before: the home page opened on "Turn documentation into repeatable workflows" and ran through How it works, See it, Economics, Where it fits, One document two models, Get started, and Early, and open — sections built around an instruction-review example. The header linked
#how,#example, and#economics.After: the page opens on "Stop rolling the dice in your workflows" and runs through
#readme(the README as a CLI),#agent,#runtime,#compose,#durability, and#install. The header is down to Docs, GitHub, and the theme toggle — the in-page section anchors are gone, since repeating a short page's own sections in the chrome is noise. The ids stay, so deep links still land and the hero's Install button still reaches#install.No stylesheet change. The design system's
_ds/tokens/*and_ds/patterns/*are transcribed verbatim fromsite/assets/styles.css, and every class the mock reaches for —.section,.section-head,.panel,.code-panel,.card,.grid,.eyebrow-mark,.pill,.chip,.link-rule,.btn-*,.tok-*— already exists there.How it works
The mock composes
<x-import component-from-global-scope="…Header | Button | Panel | Card | CodeBlock | CommandBlock">._ds_bundle.jsis the authority on what each expands to, so the mapping is mechanical:Button variant="primary" size="lg"isbtn btn-primary btn-lg push,Panel title=is.panel > .panel-head + .panel-body,CodeBlockis the repo's<CodeBlock>, andCommandBlockin its children form (the only form this mock uses) is<CodeBlock command>.The mock's
style-hoveris a design-canvas pseudo-state, not CSS. The one place it appears — the version chip's link, which inherits the eyebrow's--dimand picks up the accent on hover — becomes a page-local.release-linkrule.Review guide
Start with:
site/routes/index.tsx, theSourcecomponent and theToktypeThen review:
Source/Terminal— how document source and terminal slabs reach<pre><code>*_MDtoken arrays — the twenty-one code samples, as data#readme,#agent,#runtime,#compose,#durability,#installsite/components/Header.tsx— the nav, now Docs / GitHub / toggleLook carefully at:
<pre>. JSX drops whitespace-only text that contains a newline, so lines are joined with explicit{"\n"}and every leading indent lives inside a token string. A stray literal space or newline in that markup is invisible in review and visible on the page — the rendered-output check below is what catches it.Scope
Included
Home.dc.html.Intentionally unchanged
site/assets/styles.css— the design system holds no rule the repo lacks.Made with ❤️ Effection.bar. That is applied to the home route only, so/docsstill renders the full<Footer>and the two now differ. Extending it to docs is a separate call.routes/_app.tsxmetadata — the title and description still read "turn documentation into repeatable workflows". The mock says nothing about<head>.islands/CopyCommand.tsx— left in place, but now unreferenced; see below.Home-print.dc.htmlandRecipes.dc.htmlin the same design project.New abstractions
Source+ theToktoken type exist because the mock carries twenty-one code samples. The previous page hand-wrote two of them as span trees (ReviewDocument,HelloWorld); at this count that stops being readable. Consumers are everyCodeBlockon the page.Terminal,Chain,Descent,Step,Prompt,Termare small named pieces of repeated mock markup, each used two or more times.Each new abstraction has multiple concrete uses or a clear justification.
No speculative functionality is included.
How to verify it
deno fmt --check . && deno lint . && deno checkanddeno task buildinsite/— green. (The four rootdenotasks skipsite/; it has its own gate.)<pre><code>from/. All twenty-one blocks come out matching the mock exactly, with no stray blank lines or leading spaces — this is what fails if the JSX whitespace handling above is wrong.#installis the only remaining in-page anchor link./docsand/docs/referencestill return 200, sinceHeaderis shared.Risks and limitations
CommandBlock's children form everywhere, which is a plain terminal slab; the previous page used theCopyCommandisland forcurl … | sh. Implemented as designed, but it is a real usability loss on the one command people are meant to copy. The design system'sCommandBlocksupports alines+ copyable variant if we want it back;islands/CopyCommand.tsxis still in the tree for that reason.v0.8.1, matchingpackages/cli/deno.json. It will need bumping with the next release.Scope confirmation