Skip to content

Commit 7fc665a

Browse files
authored
Merge pull request #2623 from esokullu/main
Improve completion form classification and update asset galleries
2 parents 2e1ad13 + 6f8e2fc commit 7fc665a

20 files changed

Lines changed: 908 additions & 31 deletions
234 KB
Loading
223 KB
Loading

assets/webstore-explainer-2026-2/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ Files (1280×800):
1111
- 06-launch-offer.png: WebBrain Cloud $5/mo (reg. $8), Save 35%
1212
- 07-social-proof.png: 500+ GitHub stars, 20+ contributors, MIT — repo bar with contributor avatars
1313

14+
Light-background alternates of the two dark slides (originals kept, use whichever fits the gallery):
15+
- 01-hero-light.png
16+
- 05-plan-before-act-light.png
17+
18+
Both come from the same `hero(light)` / `planScene(light)` functions, so edits apply to
19+
dark and light together. In the light plan card the panel goes white and the accent green
20+
darkens for contrast against white button text.
21+
1422
Star/contributor counts are hardcoded in `proofScene()`; bump them there when they go stale (544 stars at last render, 2026-07-29). The avatar initials are decorative, not real contributor handles.
1523

1624
Slide 07 is appended after the offer to keep the existing filenames stable. If proof-then-price reads better, swap the last two entries in the `scenes` array and rename the two PNGs.

assets/webstore-explainer-2026-2/render.mjs

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ const baseCss = `
5656
.provider { --bg1:#f6f8fb; --bg2:#eef8f1; --ink:#182033; --muted:#5b6574;
5757
--accent:#3e6ff4; --accent2:#28a96b; --border:rgba(25,38,68,0.13);
5858
--panel:rgba(255,255,255,0.9); --shadow:0 28px 70px rgba(24,52,90,0.19); }
59+
.hero-light { --bg1:#f7f9ff; --bg2:#fff1f6; --ink:#141828; --muted:#586074;
60+
--accent:#d6417f; --accent2:#12a06a; --border:rgba(28,34,64,0.13);
61+
--panel:rgba(255,255,255,0.9); --shadow:0 28px 70px rgba(40,44,80,0.18); }
62+
.plan-light { --bg1:#f5fbf7; --bg2:#eef4ff; --ink:#141b26; --muted:#586374;
63+
--accent:#12a25f; --accent2:#dd9414; --border:rgba(24,38,48,0.13);
64+
--panel:rgba(255,255,255,0.9); --shadow:0 28px 70px rgba(28,50,44,0.18); }
5965
.proof { --bg1:#f7f6ff; --bg2:#eef4ff; --ink:#171a2b; --muted:#5a6274;
6066
--accent:#6e56cf; --accent2:#f0a52b; --border:rgba(30,34,64,0.13);
6167
--panel:rgba(255,255,255,0.9); --shadow:0 28px 70px rgba(38,34,78,0.18); }
@@ -87,17 +93,18 @@ function brandRow(light) {
8793
</div>`;
8894
}
8995

90-
/* ---------- 01 HERO ---------- */
91-
function hero() {
96+
/* ---------- 01 HERO (dark + light variant) ---------- */
97+
function hero(light = false) {
9298
return {
93-
file: '01-hero.png',
94-
theme: 'dark',
99+
file: light ? '01-hero-light.png' : '01-hero.png',
100+
theme: light ? 'hero-light' : 'dark',
95101
body: `
96102
<div style="height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;">
97-
<img src="${assets.logo}" style="width:112px; height:112px; border-radius:28px; box-shadow:0 26px 60px rgba(0,0,0,0.4);" alt="">
103+
<img src="${assets.logo}" style="width:112px; height:112px; border-radius:28px;
104+
box-shadow:${light ? '0 22px 50px rgba(40,44,80,0.2)' : '0 26px 60px rgba(0,0,0,0.4)'};" alt="">
98105
<div style="margin-top:26px; font-size:34px; font-weight:800; letter-spacing:0.01em;">WebBrain</div>
99106
<h1 style="margin-top:20px; font-size:76px; max-width:900px;">Your open-source<br>AI browser agent</h1>
100-
<div class="sub" style="font-size:30px; font-weight:640; color:#ffffff; margin-top:22px;">
107+
<div class="sub" style="font-size:30px; font-weight:640; color:var(--ink); margin-top:22px;">
101108
<span style="color:var(--accent);">Ask.</span>
102109
<span style="color:var(--accent2);">Act.</span>
103110
Automate. <span style="opacity:0.85;">Any LLM.</span>
@@ -252,16 +259,21 @@ function modelsScene() {
252259
};
253260
}
254261

255-
/* ---------- 05 PLAN BEFORE ACT ---------- */
256-
function planScene() {
262+
/* ---------- 05 PLAN BEFORE ACT (dark + light variant) ---------- */
263+
function planScene(light = false) {
257264
const steps = [
258265
'Read the visible form and required fields',
259266
'Fill only what you asked for',
260267
'Pause before any purchase or submit',
261268
];
269+
const card = light
270+
? { bg: '#ffffff', border: 'var(--border)', shadow: '0 30px 70px rgba(28,50,44,0.18)',
271+
label: 'var(--muted)', step: 'var(--ink)', onAccent: '#ffffff' }
272+
: { bg: '#151c2a', border: 'rgba(255,255,255,0.16)', shadow: '0 30px 80px rgba(0,0,0,0.42)',
273+
label: '#8d99ad', step: '#d7e2ea', onAccent: '#102319' };
262274
return {
263-
file: '05-plan-before-act.png',
264-
theme: 'plan',
275+
file: light ? '05-plan-before-act-light.png' : '05-plan-before-act.png',
276+
theme: light ? 'plan-light' : 'plan',
265277
body: `
266278
<div style="display:flex; align-items:center; justify-content:space-between;">
267279
${brandRow()}
@@ -273,23 +285,24 @@ function planScene() {
273285
<div class="sub">Approve first. You stay in the loop.</div>
274286
</div>
275287
<div style="display:flex; justify-content:center;">
276-
<div style="width:470px; padding:28px; background:#151c2a; border:1px solid rgba(255,255,255,0.16);
277-
border-radius:26px; box-shadow:0 30px 80px rgba(0,0,0,0.42); transform:rotate(1.1deg);">
278-
<div style="font-size:15px; font-weight:800; color:#8d99ad; text-transform:uppercase; letter-spacing:0.05em;">Proposed browser plan</div>
288+
<div style="width:470px; padding:28px; background:${card.bg}; border:1px solid ${card.border};
289+
border-radius:26px; box-shadow:${card.shadow}; transform:rotate(1.1deg);">
290+
<div style="font-size:15px; font-weight:800; color:${card.label}; text-transform:uppercase; letter-spacing:0.05em;">Proposed browser plan</div>
279291
<div style="display:grid; gap:14px; margin-top:20px;">
280292
${steps.map((label, i) => `
281-
<div style="display:grid; grid-template-columns:36px 1fr; gap:14px; align-items:center; color:#d7e2ea; font-size:19px; font-weight:640; line-height:1.3;">
293+
<div style="display:grid; grid-template-columns:36px 1fr; gap:14px; align-items:center; color:${card.step}; font-size:19px; font-weight:640; line-height:1.3;">
282294
<span style="width:36px; height:36px; border-radius:12px; display:grid; place-items:center;
283-
background:var(--accent); color:#102319; font-size:17px; font-weight:850;">${i + 1}</span>
295+
background:var(--accent); color:${card.onAccent}; font-size:17px; font-weight:850;">${i + 1}</span>
284296
<span>${label}</span>
285297
</div>`).join('')}
286298
</div>
287299
<div style="display:flex; gap:12px; margin-top:26px;">
288300
<span style="display:inline-flex; align-items:center; justify-content:center; min-width:140px; height:50px;
289-
border-radius:14px; background:var(--accent); color:#102319; font-size:17px; font-weight:800;">Approve</span>
301+
border-radius:14px; background:var(--accent); color:${card.onAccent}; font-size:17px; font-weight:800;">Approve</span>
290302
<span style="display:inline-flex; align-items:center; justify-content:center; min-width:140px; height:50px;
291-
border-radius:14px; border:1px solid rgba(255,255,255,0.2); background:rgba(255,255,255,0.07);
292-
color:#e9eef6; font-size:17px; font-weight:800;">Adjust</span>
303+
border-radius:14px; border:1px solid ${light ? 'var(--border)' : 'rgba(255,255,255,0.2)'};
304+
background:${light ? '#f4f6fa' : 'rgba(255,255,255,0.07)'};
305+
color:${light ? 'var(--ink)' : '#e9eef6'}; font-size:17px; font-weight:800;">Adjust</span>
293306
</div>
294307
</div>
295308
</div>
@@ -393,7 +406,10 @@ function proofScene() {
393406
};
394407
}
395408

396-
const scenes = [hero(), actScene(), askScene(), modelsScene(), planScene(), offerScene(), proofScene()];
409+
const scenes = [
410+
hero(), actScene(), askScene(), modelsScene(), planScene(), offerScene(), proofScene(),
411+
hero(true), planScene(true),
412+
];
397413

398414
function html(scene) {
399415
return `<!doctype html><html><head><meta charset="utf-8">
204 KB
Loading
351 KB
Loading
240 KB
Loading
327 KB
Loading
279 KB
Loading
217 KB
Loading

0 commit comments

Comments
 (0)