Repository navigation
feat(website): /t27f/graph/ in the site's own style - #1681
Merged
Merged
Conversation
… JetBrains Mono) The page was plain white. The page chrome now uses the t27.ai tokens from src/index.css (black page, #0b0d0c panel, #00FF88 accent, Outfit text, JetBrains Mono for names), with a link back to t27.ai. Box and line colours are not set here: they come from spec_graph_view.t27 (gHashTag/t27#10215, master 538df0750), so t27f.wasm, spec_graph_view.mjs and the vendored view spec are regenerated on the lab and PROVENANCE.txt carries the new checksums. graph.js stays 39 lines; its only change is the SVG font. Derived edges are not included: the derive pass is a separate module the wasm glue does not call yet. Refs #1648 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 04:43
Summary by t27-beesChecked by the t27 compilert27c parse, parse-complete and typecheck on each changed .t27 file at
Read by the modelThe PR redesigns the Worth a look
Read: 7 files, +78 -26, the whole diff. Head |
github-actions Bot
added a commit
that referenced
this pull request
Oct 18, 2026
feat(website): /t27f/graph/ in the site's own style (dark, Outfit and JetBrains Mono) (#1681) The page was plain white. The page chrome now uses the t27.ai tokens from src/index.css (black page, #0b0d0c panel, #00FF88 accent, Outfit text, JetBrains Mono for names), with a link back to t27.ai. Box and line colours are not set here: they come from spec_graph_view.t27 (gHashTag/t27#10215, master 538df0750), so t27f.wasm, spec_graph_view.mjs and the vendored view spec are regenerated on the lab and PROVENANCE.txt carries the new checksums. graph.js stays 39 lines; its only change is the SVG font. Derived edges are not included: the derive pass is a separate module the wasm glue does not call yet. Refs #1648 Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
{ "version": 1, "head_sha": "2ea2f722d4161c4c7802f7300f61623d72fd5e54", "summary": "The T27F graph page at t27.ai/t27f/graph/ is no longer plain white: the page chrome uses the t27.ai site tokens (black page, green accent, Outfit and JetBrains Mono) with a link back to t27.ai, and the colour of every box and line now comes from the view spec in t27, rebuilt into the wasm.", "changes": [ "apps/website/public/t27f/graph/index.html: dark page chrome from the site tokens in src/index.css, fonts loaded from the site's own woff2 files, header with a t27.ai link, styled picker and status line (62 lines; CSS is chrome only)", "apps/website/public/t27f/graph/graph.js: still 39 lines; the only change is the SVG font family, JetBrains Mono, so box text matches the site", "apps/website/public/t27f/graph/t27f.wasm, spec_graph_view.mjs and specs/spec_graph_view.t27: rebuilt on the lab from the recoloured view spec (gHashTag/t27#10215, master 538df0750); the colours live in the spec, not in JS", "apps/website/public/t27f/graph/PROVENANCE.txt: new source commit, glue commit, checksums, colour provenance and why derived edges are still absent", "apps/website/README.md: the graph page section says the page follows the site tokens and where the colours live" ], "tests": [ { "command": "t27c test-report specs/t27f/spec_graph_view.t27 on the Railway lab", "result": "9 pass, 0 fail, 4 invariants proved, 0 vacuous passes", "status": "passed", "evidence": "lab run for gHashTag/t27#10215 with the recoloured constants and updated asserts" }, { "command": "t27c gen-js, t27c gen and zig build-exe to wasm32-freestanding on the Railway lab from the vendored specs", "result": "the shipped t27f.wasm, spec_graph_view.mjs and the two generated Zig files have the sha256 values recorded in PROVENANCE.txt", "status": "passed", "evidence": "lab run on 2026-10-18; t27f.wasm sha256 7b2a0f0c...1e60" }, { "command": "static server over apps/website/public, open /t27f/graph/ and select the specs", "result": "page renders dark with site fonts; specs draw with green solid, golden, blue and grey dashed boxes; over-cap specs show the refusal in the warn colour; no console errors", "status": "passed", "evidence": "Claude built-in browser pane against a local static server on the branch before the commit" } ], "limitations": [ "Derived edges are not included: the derive pass (t27#10198) is a separate module that the wasm glue does not call, and wiring it in needs more hand-written glue.", "Derived boxes are golden and dashed, not solid, because the view spec's invariant requires a distinct dash per label for colour-blind readers.", "No CI check re-verifies the checksums in PROVENANCE.txt yet.", "Merge is not deploy: t27.ai is published by a separate publisher, so the page is not live until it deploys." ], "tags": [ "t27f", "website", "design", "wasm" ], "blog": { "title": "The T27F graph page now looks like t27.ai", "summary": "The graph page that draws a t27 spec as boxes and lines now uses the site's own dark style, and the colours of the boxes are set by a t27 spec rather than by CSS.", "outline": [ "The first version of the graph page drew correctly but looked like a plain white document, unlike the rest of t27.ai.", "The page chrome now uses the site's tokens: black page, green accent, Outfit text and JetBrains Mono for names.", "The colour of every box and line is a constant in the t27 view spec, changed through a t27 pull request and rebuilt into the wasm.", "The label stays readable without colour: each of exact, derived, suggested and unknown keeps its own outline dash and a text label." ] } }Makes
/t27f/graph/match the rest of t27.ai. Refs #1648 (RFC #1649).Which palette, and why
I followed the site's own tokens (
apps/website/src/index.css :rootandsrc/lib/explorerTheme.ts), notdocs/BRAND-KIT.md. The brand kit is the older trios palette; the live site does not use it, so using it would make the page look foreign next to the pages it links to.#000/#0b0d0c/#121614rgba(0,255,136,.10)/rgba(0,255,136,.34)#fff/#8b9490#00FF88/#FFD700/#58A6FF/#f0a020Where each colour lives
specs/t27f/spec_graph_view.t27, not in JS or CSS. Changed in spec(t27f): the graph view uses the t27.ai site colours t27#10215 (closes spec(t27f): the graph view uses the t27.ai site colours (dark backdrop, accent green) t27#10213, merged as538df0750), tests updated, ASCII only.t27f.wasm,spec_graph_view.mjsand the vendored view spec here are regenerated from it on the lab. The JS never overrides a spec colour.#00FF88, solid. derived: golden#FFD700, dashed. suggested: blue#58A6FF, dashed. unknown: muted#8B9490, dashed. Edges follow their label's stroke. The text label stays in every box, and each label keeps its own dash, so colour is never the only signal.#status.refused).index.htmlis page chrome only: background, fonts, header, picker, link back to t27.ai.Deviation from the suggested mapping
Derived is dashed, not solid. The view spec has an invariant that all four dashes are distinct and exact is 0, so a reader who cannot tell colours apart can still tell labels apart. Making derived solid would break that invariant. Edges are not given a separate colour per kind (tested_by, data_flow): the view spec already separates edge kinds by lane (each kind is shifted by its own lane), and the colour of a line is its inference label's stroke, so I left that rule alone rather than add a second colour axis.
Hand-written code
graph.jsis still 39 lines (comments included); its only change is the SVG font family.index.htmlis 62 lines: markup plus the chrome CSS. No layout or colour logic in JS.Contrast
White text on each box fill is above 13:1. Each stroke on the
#0b0d0cbackdrop is above 6:1; the muted grey is the lowest. Muted#8b9490body text on the black page is above 6:1 too. All are well past 4.5:1. (Computed by hand from the relative-luminance formula, not by a tool run.)Derived edges: not included
The derive pass (
spec_graph_derive.t27, t27#10198) is merged, but it is a separate module that the wasm glue (export.zigin t27-mcp) does not call. Wiring it in means exporting its entry points from that hand-written glue, which is more foreign code. Until t27 has a way to wire it without glue, every edge on the page is exact, and the page says so. PROVENANCE.txt records this.Verification
t27c test-reporton the view spec gives 9 pass, 0 fail, 4 invariants proved, 0 vacuous. The wasm rebuilt from the vendored specs matches the shipped file byte for byte (sha2567b2a0f0c...1e60).After merge
Merge is not deploy. The page goes live only after the publisher runs (
Publish website from trinityin gHashTag/ghashtag.github.io) and the Pages build finishes.🤖 Generated with Claude Code