Skip to content

Commit dad90ed

Browse files
ChanMeng666claude
andcommitted
fix(docs): landing feedback — all sheet cards carry compiled art; agents band follows appearance; fixed-red solid button
Founder feedback: the two conceptual cards' empty poché bands read as missing images — every card now shows a real compiled plan (studio / themed / two-bed / parametric / relational; hatch fallback kept for any future art-less sheet). The agents band adapts to light mode (paper ground with hairline rules; the terminal block stays carbon — the source world lives in the code, matching inner-page fences) and keeps the carbon band in dark. The solid CTA uses a fixed #b3261e that never mode-flips (white text 6.5:1; var(--redline) fell to ~3.1:1 on the dark value). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 3578eeb commit dad90ed

2 files changed

Lines changed: 65 additions & 17 deletions

File tree

docs-site/.vitepress/theme/SheetGrid.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<script setup lang="ts">
22
// The five features as drafting-sheet cards. Each card is a sheet: a numbered
3-
// title block (A-101 … A-105), a header that shows either a real compiled
4-
// artifact (an example plan's SVG) or a 45° poché-hatch band for the two
5-
// conceptual sheets, then the specification copy. Rows are separated by a
3+
// title block (A-101 … A-105), a header that shows a real compiled artifact (an
4+
// example plan's SVG), then the specification copy. Rows are separated by a
65
// dimension line — the drawing detail that says "this is a measured document".
6+
// (The card__art--poche 45° hatch fallback stays for any future art-less sheet;
7+
// today every card carries a compiled drawing.)
78
interface Sheet {
89
no: string;
910
tag: string;
@@ -19,21 +20,23 @@ const row1: Sheet[] = [
1920
title: "Deterministic by design",
2021
body:
2122
"The same source always compiles to byte-identical output — no clocks, no randomness, no I/O. Every loop, conditional and function is evaluated as the drawing is built.",
23+
art: "/examples/studio.svg",
2224
},
2325
{
2426
no: "A-102",
2527
tag: "Principle",
2628
title: "Zero-dependency core",
2729
body:
2830
"The default SVG path pulls no runtime dependencies. Optional power — PNG raster, vector PDF, angled-wall geometry — loads lazily and is never required.",
31+
art: "/examples/themed.svg",
2932
},
3033
{
3134
no: "A-103",
3235
tag: "Output",
3336
title: "Professional CAD output",
3437
body:
3538
"Layers, line weights, wall poché, openings that void walls, real fixture symbols, dimensions, a north arrow, scale bar and a title block. Export to SVG, DXF, PDF or PNG.",
36-
art: "/examples/studio.svg",
39+
art: "/examples/two-bed.svg",
3740
},
3841
];
3942
@@ -52,7 +55,7 @@ const row2: Sheet[] = [
5255
title: "Reads its own plans",
5356
body:
5457
"describe() returns rooms, areas, adjacency, an access graph and circulation facts; lint() flags habitability problems — image-free, so an agent can verify intent without an image.",
55-
art: "/examples/two-bed.svg",
58+
art: "/examples/relational.svg",
5659
},
5760
];
5861
</script>

docs-site/.vitepress/theme/home.css

Lines changed: 57 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,23 @@
115115
margin-right: var(--vp-offset, calc(50% - 50vw));
116116
}
117117

118-
/* ═══ "Built for agents" band — the source world returns mid-page ══════════
119-
A full-width carbon strip. Every element is class-targeted under `.vp-doc
120-
.agents` so it beats the default markdown typography cleanly. */
118+
/* ═══ "Built for agents" band — mode-aware ════════════════════════════════
119+
Follows the appearance toggle. In LIGHT mode it is a sheet-world section:
120+
warm paper ground bounded by hairline dimension rules top and bottom, ink
121+
copy, a redline eyebrow — a distinct measured section against the page bg.
122+
In DARK mode the `.dark` overrides at the foot of this block restore the
123+
original carbon "source world returns mid-page" strip exactly.
124+
Every element is class-targeted under `.vp-doc .agents` so it beats the
125+
default markdown typography cleanly.
126+
127+
The one constant across modes is the `.agents__term` terminal block: source
128+
lives in the terminal, so it stays carbon in both modes (mirroring how
129+
inner-page code blocks are carbon on paper). The solid CTA is a fixed-color
130+
redline (see `--solid` below) valid on either ground. */
121131
.vp-doc .agents {
122-
background: var(--carbon);
123-
color: var(--src-fg);
132+
background: var(--paper);
133+
color: var(--ink);
134+
border-block: 1px solid var(--hairline);
124135
padding-block: clamp(56px, 8vw, 104px);
125136
}
126137
.vp-doc .agents__inner {
@@ -133,7 +144,7 @@
133144
font-family: var(--font-mono);
134145
font-size: 12px;
135146
letter-spacing: 0.04em;
136-
color: var(--plum-bright);
147+
color: var(--redline-ink); /* light: redline-ink on paper 5.8:1 */
137148
}
138149
.vp-doc .agents__title {
139150
margin: 0;
@@ -146,20 +157,20 @@
146157
letter-spacing: -0.01em;
147158
line-height: 1.05;
148159
font-size: clamp(2rem, 4.4vw, 3.2rem);
149-
color: var(--src-fg);
160+
color: var(--ink); /* light: ink on paper 14:1 */
150161
}
151162
.vp-doc .agents__lede {
152163
margin: 20px 0 0;
153164
max-width: 56ch;
154165
font-family: var(--font-body);
155166
font-size: 1.05rem;
156167
line-height: 1.65;
157-
color: var(--src-muted);
168+
color: var(--ink-muted); /* light: ink-muted on paper 5.4:1 */
158169
}
159170
.vp-doc .agents__code {
160171
font-family: var(--font-mono);
161172
font-size: 0.88em;
162-
color: var(--plum-bright);
173+
color: var(--redline-ink); /* light: redline-ink on paper 5.8:1 */
163174
background: transparent;
164175
padding: 0;
165176
border: 0;
@@ -217,17 +228,51 @@
217228
transform: translateY(1px);
218229
}
219230
.vp-doc .agents__btn--solid {
220-
background: var(--redline);
231+
/* FIXED redline — never mode-flips. var(--redline) becomes #e2564a in dark,
232+
where white-on-it is only 3.7:1 (fails AA); a fixed #b3261e gives
233+
white-on-it 6.5:1 on either ground. Same fixed-color reasoning as the
234+
.agents__flag micro-label above. */
235+
background: #b3261e;
221236
color: #fff;
222237
}
223238
.vp-doc .agents__btn--solid:hover {
224-
background: color-mix(in srgb, var(--redline) 90%, #fff);
239+
/* lighten the ground toward white; white stays 5.3:1 (AA) */
240+
background: color-mix(in srgb, #b3261e 88%, #fff);
225241
}
242+
/* Ghost button — mode-aware. Light: hairline border + ink text, redline hover.
243+
Dark override (below) restores the source-world ghost. */
226244
.vp-doc .agents__btn--ghost {
245+
border-color: var(--hairline);
246+
color: var(--ink);
247+
}
248+
.vp-doc .agents__btn--ghost:hover {
249+
border-color: color-mix(in srgb, var(--redline) 60%, transparent);
250+
color: var(--redline-ink);
251+
}
252+
253+
/* ── Dark mode: restore the original carbon "source world" band ──────────── */
254+
.dark .vp-doc .agents {
255+
background: var(--carbon);
256+
color: var(--src-fg);
257+
border-block-color: transparent;
258+
}
259+
.dark .vp-doc .agents__eyebrow {
260+
color: var(--plum-bright);
261+
}
262+
.dark .vp-doc .agents__title {
263+
color: var(--src-fg);
264+
}
265+
.dark .vp-doc .agents__lede {
266+
color: var(--src-muted);
267+
}
268+
.dark .vp-doc .agents__code {
269+
color: var(--plum-bright);
270+
}
271+
.dark .vp-doc .agents__btn--ghost {
227272
border-color: var(--src-border);
228273
color: var(--src-fg);
229274
}
230-
.vp-doc .agents__btn--ghost:hover {
275+
.dark .vp-doc .agents__btn--ghost:hover {
231276
border-color: color-mix(in srgb, var(--plum) 60%, transparent);
232277
color: #fff;
233278
}

0 commit comments

Comments
 (0)