Repository navigation
Review follow-up 4: standards map rework (legend-as-filter rail, ELK layout, outline on phones) - #62
Merged
Merged
Conversation
…tacked map on phones The head ends on a quiet Filter disclosure and the live count, the map follows directly at its full height, the legend sits below it. Below 40rem a stacked arc-diagram drawing replaces the wide one. The matrix's disclosure styles move to a shared .disclosure in global.css. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
Generated by the screenshots workflow for #62.
…hones The rail beside the drawing is legend, filter and reading pane in one. Its checkboxes filter the drawing and the outline through :has() rules, so a filter needs no script; references are off by default. elkjs lays the map out at build time: a spec a column right of what it builds on, columns grouped by body behind bands, dependency edges routed orthogonally, cross links as curves. Below 40rem the drawing gives way to an outline of the dependency forest, which also replaces the flat list. Recently revised is a view of the map rather than a line in the head. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
…to claude/project-thread-fsow94
Fading the whole label to 0.45 opacity broke the colour-contrast check for the references and recent-view toggles. The label now drops to --ink-2 and only the line sample fades. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
Generated by the screenshots workflow for #62.
Guards the previous fix: switching a relation off fades its line sample, never its label, which must still pass the contrast check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1
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.
Requested by Jan · project thread
What this changes
Review follow-up 4, reworked after the first version: the filters and the drawing felt disconnected, and the phone got a squeezed desktop drawing. The proposal behind this is "Standards map: a second take" in the project.
Head. h1 is "The standards map" (plan 5.1). The three counts move into the lede. The "Recently revised" line goes; it is a view of the map now (below).
The rail is the legend, the filter and the reading pane. Beside the drawing:
The toggles are plain checkboxes. Stylesheet rules on
:has()hide what an unchecked toggle covers, in the drawing and in the outline, so filtering needs no JavaScript. An unchecked toggle fades its line sample and drops its label to the second ink, which keeps the label's contrast. The island only keeps the count, mirrors the state in the URL (?type=…&body=…&view=recent), shows the card and highlights the neighbourhood.Layout by ELK at build time.
src/lib/graph.tshands the dependency relations (builds-on, profiles, replaces) toelkjs(layered, orthogonal routing, merged edges, model order kept). A spec sits a column right of what it builds on (FR-005), each column groups by body in BODY_ORDER behind a tinted band with the body's name, and dependency edges are routed around nodes instead of curving through them. Cross links stay curves over the drawing.elkjsis a dev dependency, runs only duringastro build, ships 0 bytes and is deterministic; plan 016 gets the deviation note. The drawing fills the column at full height, so the frame does not scroll inside the page.Phones get an outline, not a drawing. Below 40rem the SVG is hidden and
StandardsOutline.astroshows the dependency forest (buildForest): 4 trees (OAuth 2.0, WIMSE architecture, SD-JWT, eIDAS 2) plus the standalone and withdrawn documents, indented by builds-on, cross links as<details>chips that open the named documents in place, the builds-on spine as a hairline. The outline is on every screen: it replaces the flat list and carries body, family, revision and both links (FR-015), so the page is shorter.Recently revised as a view. A "Recently revised" toggle in the rail fades everything but the five dated nodes; those carry their revision date on the node.
Tests. e2e: filtering without JavaScript, references off by default, an unchecked toggle keeping its label contrast, the outline on phones, the reading pane, the recent view, the frame with no inner scroll, hover/focus/spine on the visible drawing. Unit:
layoutGraph(columns, bands, borders, polylines vs curves, determinism) andbuildForest.tasks.mdgets R-04.Screenshots
From
astro previewof this branch at 1440 px and Pixel 7, reduced motion. Before: main (first row), as in the earlier version of this description.The screenshots were committed once for stable URLs and removed in the next commit, so the squashed diff carries no images.
Code checklist
pnpm checkpasses.elkjs, with the deviation noted in plan 016.refresh-screenshotsworkflow on this head.🤖 Generated with Claude Code
https://claude.ai/code/session_015K8n6c3uztMvwMXWSzxJW1