From 2f041e2b588d8b06cac278d0be1b55a9ccced675 Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Tue, 7 Jul 2026 00:15:29 -0500 Subject: [PATCH] =?UTF-8?q?feat(howitworks):=20runtime=20console=20?= =?UTF-8?q?=E2=80=94=20palette=20migration=20+=20smooth=20swaps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recast the 4-tab explainer as a hero-grade runtime console and bring it onto the shared design language. - Palette migration off the legacy #8E3DFF system: rgba(142,61,255)→ rgba(154,142,205), rgba(201,167,255)→rgba(180,170,235), #4ade80→ var(--green). This section was the biggest source of "five experiments". - Frame uses the shared .panel with a new topbar rail (dots + "coven · runtime" + a local status dot) echoing the hero card. - Stage min-height locked so switching tabs never reflows the page; incoming panels crossfade (motion-gated); live content (memory board, harness detail, tool rule) repaints through fadeSwap from shared.js. - wireRadioGroup lifted to shared.js (was inline). - Sessions filter now hides non-matches (was dimming) and announces an empty state inside the aria-live region. - Removed every !important by scoping widget typography under .howit-widget. - Retired the four ad-hoc #E8DBFF focus outlines for the unified ring. - Mobile: tabs become a 2×2 grid (≥40px targets, no 9px squeeze); the tool flow stacks vertically with rotated (still-visible) arrows. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/components/HowItWorks.astro | 313 +++++++++++++++++--------------- 1 file changed, 170 insertions(+), 143 deletions(-) diff --git a/src/components/HowItWorks.astro b/src/components/HowItWorks.astro index 62f098e..2630079 100644 --- a/src/components/HowItWorks.astro +++ b/src/components/HowItWorks.astro @@ -69,7 +69,12 @@ const toolGates = [

Memory, sessions, harnesses, and tools are the four moving parts. Each tab is a working preview of how that piece behaves in a real Coven session.

-
+
+
{tabs.map((t, i) => (
+
    {sessionsData.map((s) => (
  • @@ -157,6 +164,8 @@ const toolGates = [
  • ))}
+ +
@@ -202,7 +211,7 @@ const toolGates = [ ))} -
+

contract

{harnessRows[0].detail}

@@ -235,7 +244,7 @@ const toolGates = [ >{t.label} ))}
-
+
request
gate
@@ -244,12 +253,13 @@ const toolGates = [
result
-
+

{toolGates[0].title}

{toolGates[0].rule}

+ @@ -258,6 +268,8 @@ const toolGates = [