refine(site): live mode support list copy pass + drop phase caption + border

- Drop the black rule above the support list (it read as a hard hat
  over the column).
- Drop the phase-caption strip below the frame (the demo already
  carries its own state visually; the narrated loop underneath was
  noise).
- Rewrite the four support cells with stronger POV:
  - Start: the actual commands, /impeccable live and stop.
  - Your agent, your code: emphasises that it's the same AI you've
    been working with, reading your real project context, generating
    real edits.
  - Accept = write: canvas-like iteration, production output. The
    point almost no other AI design tool can claim.
  - Skill-native: no external tools or IDE extensions, works across
    every harness the skill targets.
- Drop CSP-patch bullet (edge case, not worth homepage real estate).
- Drop the "Accepts into ... via HMR" framing — accepts work because
  of the skill loop, not because of HMR per se.
This commit is contained in:
Paul Bakaus
2026-04-22 14:12:52 -07:00
parent ae6fa32318
commit 32b81aebcd
3 changed files with 17 additions and 15 deletions
+8 -2
View File
@@ -3219,8 +3219,6 @@
display: flex;
flex-direction: column;
gap: var(--spacing-md);
padding: var(--spacing-md) 0 0;
border-top: 1px solid var(--color-ink);
align-self: stretch;
}
.live-demo-support-cell {
@@ -3247,6 +3245,14 @@
line-height: 1.55;
color: var(--color-ink);
}
.live-demo-support-v code {
font-family: var(--font-mono);
font-size: 0.875em;
background: var(--color-mist);
padding: 1px 6px;
border-radius: 3px;
color: var(--color-ink);
}
@media (max-width: 760px) {
.live-demo-frame { aspect-ratio: 4 / 5; }
+8 -12
View File
@@ -686,29 +686,25 @@
</div>
</div>
<!-- Phase label below the frame -->
<div class="live-demo-caption" data-demo-caption>
<span class="live-demo-caption-label" data-demo-caption-label>Hover an element to pick.</span>
</div>
</div>
<!-- Supporting list sits to the right of the frame on desktop -->
<div class="live-demo-support">
<div class="live-demo-support-cell">
<span class="live-demo-support-k">Works on</span>
<span class="live-demo-support-v">Vite, Next.js, SvelteKit, Astro, Nuxt.</span>
<span class="live-demo-support-k">Start</span>
<span class="live-demo-support-v"><code>/impeccable live</code> to open, <code>/impeccable live stop</code> to close. That's the whole invocation.</span>
</div>
<div class="live-demo-support-cell">
<span class="live-demo-support-k">Accepts into</span>
<span class="live-demo-support-v">Your real source file, via HMR.</span>
<span class="live-demo-support-k">Your agent, your code</span>
<span class="live-demo-support-v">The same AI you've been working with, reading your real project context. Variants are generated as actual edits, not mocks.</span>
</div>
<div class="live-demo-support-cell">
<span class="live-demo-support-k">CSP-strict apps</span>
<span class="live-demo-support-v">One-time dev-only patch, with your consent.</span>
<span class="live-demo-support-k">Accept = write</span>
<span class="live-demo-support-v">An accepted variant lands in your source file. Canvas-like iteration, production output.</span>
</div>
<div class="live-demo-support-cell">
<span class="live-demo-support-k">Overlay toggle</span>
<span class="live-demo-support-v">The anti-pattern detector runs inside Live, one click away.</span>
<span class="live-demo-support-k">Skill-native</span>
<span class="live-demo-support-v">No external tools or IDE extensions. Works across Claude Code, Cursor, Codex, Gemini, and every harness the skill targets.</span>
</div>
</div>
</div>
+1 -1
View File
@@ -119,7 +119,7 @@ export function initLiveDemo() {
};
const setCaption = (text) => {
if (text) captionLabel.textContent = text;
if (text && captionLabel) captionLabel.textContent = text;
};
const typeText = (text, duration) => new Promise((resolve) => {