[object Object]

← back to Ventura Claw

homepage.html: theme toggle (sun/moon top-right) + light CSS vars + anti-flash inline script; FIX leftover '56 business connectors' in SoftwareApplication JSON-LD → 67 (caught during theme audit)

8e2cca081a25628c9d93c22a6910934379c7a6e2 · 2026-05-07 10:38:17 -0700 · Steve

Files touched

Diff

commit 8e2cca081a25628c9d93c22a6910934379c7a6e2
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu May 7 10:38:17 2026 -0700

    homepage.html: theme toggle (sun/moon top-right) + light CSS vars + anti-flash inline script; FIX leftover '56 business connectors' in SoftwareApplication JSON-LD → 67 (caught during theme audit)
---
 server/public/homepage.html | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/server/public/homepage.html b/server/public/homepage.html
index 1ea52ca..7027878 100644
--- a/server/public/homepage.html
+++ b/server/public/homepage.html
@@ -5,6 +5,7 @@
 <link rel="alternate" type="application/rss+xml" title="VenturaClaw changelog" href="/feed" />
 <link rel="prefetch" href="/connectors" />
 <meta name="theme-color" content="#0e0e10" />
+<script>(function(){try{if(localStorage.getItem('vc-theme')==='light')document.documentElement.setAttribute('data-theme','light');}catch(e){}})();</script>
 <title>VenturaClaw — One AI command runs 67 SaaS tools</title>
 <meta name="description" content="Type one sentence. The AI picks the right SaaS tool — Stripe, Shopify, Slack, Cloudflare, HubSpot — and runs the action. 67 connectors out of the box. Encrypted at rest, audit-trailed, sensitive actions gated by approval." />
 <link rel="canonical" href="https://venturaclaw.com/" />
@@ -19,11 +20,35 @@
 <meta name="twitter:description" content="Type one sentence. The AI picks the tool and runs the action." />
 <meta name="twitter:image" content="https://venturaclaw.com/static/og-cover.svg" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"SoftwareApplication","name":"VenturaClaw","applicationCategory":"BusinessApplication","operatingSystem":"Web","description":"AI agent that routes natural-language commands to 56 business connectors including Stripe, Shopify, Slack, Cloudflare, Notion, HubSpot, and Discord. Encrypted at rest, audit-trailed, with a sensitive-action approval queue.","url":"https://venturaclaw.com","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"publisher":{"@type":"Organization","name":"Steve Abrams","email":"info@venturaclaw.com"}}
+{"@context":"https://schema.org","@type":"SoftwareApplication","name":"VenturaClaw","applicationCategory":"BusinessApplication","operatingSystem":"Web","description":"AI agent that routes natural-language commands to 67 business connectors including Stripe, Shopify, Slack, Cloudflare, Notion, HubSpot, and Discord. Encrypted at rest, audit-trailed, with a sensitive-action approval queue.","url":"https://venturaclaw.com","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"publisher":{"@type":"Organization","name":"Steve Abrams","email":"info@venturaclaw.com"}}
 </script>
 <link rel="stylesheet" href="/static/style.css" />
 <link rel="stylesheet" href="/static/homepage.css" />
+<style>
+html[data-theme="light"] {
+  --bg: #faf8f3; --bg-elevated: #f1ece1;
+  --rule: #d6cfbd; --rule-strong: #c3b9a2;
+  --ink: #1a1a1a; --ink-soft: #383530; --ink-mute: #6a655a;
+  --gold: #8a6520;
+}
+html, body { transition: background-color 200ms ease, color 200ms ease; }
+.theme-toggle {
+  position: fixed; top: 18px; right: 18px; z-index: 100;
+  background: var(--bg-elevated); color: var(--ink-mute); border: 1px solid var(--rule);
+  width: 32px; height: 32px; border-radius: 50%; cursor: pointer;
+  display: inline-flex; align-items: center; justify-content: center;
+  font-size: 14px; line-height: 1; padding: 0;
+  transition: all 200ms;
+}
+.theme-toggle:hover { color: var(--gold); border-color: var(--gold); transform: rotate(20deg); }
+.theme-toggle .moon { display: inline; }
+.theme-toggle .sun  { display: none; }
+html[data-theme="light"] .theme-toggle .moon { display: none; }
+html[data-theme="light"] .theme-toggle .sun  { display: inline; }
+</style>
 </head><body>
+<button class="theme-toggle" id="themeToggle" type="button" title="Toggle light/dark" aria-label="Toggle theme"><span class="moon">☾</span><span class="sun">☀︎</span></button>
+<script>document.getElementById('themeToggle').addEventListener('click',()=>{const c=document.documentElement.getAttribute('data-theme')==='light'?'light':'dark';const n=c==='light'?'dark':'light';if(n==='light')document.documentElement.setAttribute('data-theme','light');else document.documentElement.removeAttribute('data-theme');try{localStorage.setItem('vc-theme',n);}catch{}});</script>
 
 <header class="topbar" style="max-width:var(--max);margin:0 auto;padding:18px 28px;display:flex;justify-content:space-between;align-items:center">
   <div class="brand" style="display:flex;gap:12px;align-items:center">

← a3250a8 /changelog 2026-05-07: append 4 continued-sweep wins (Last-M  ·  back to Ventura Claw  ·  remaining '56' stragglers swept: login.html (title + 3x og/t 4da6324 →