Skip to content

Commit b6f018c

Browse files
committed
feat: hero tagline with reveal animation, PNG favicon fallback in docs
1 parent 82898b9 commit b6f018c

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

src/cli/dashboard/landing.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@
6969
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 30%,rgba(232,180,74,.05) 0%,transparent 60%),radial-gradient(ellipse 50% 40% at 25% 70%,rgba(224,101,48,.03) 0%,transparent 50%),radial-gradient(ellipse 50% 40% at 75% 60%,rgba(76,168,168,.03) 0%,transparent 50%);pointer-events:none}
7070
.hero-logo{width:96px;height:96px;margin-bottom:32px}
7171
.hero h1{font-family:var(--mono);font-size:clamp(32px,7vw,72px);font-weight:700;letter-spacing:.12em;line-height:1.1;margin-bottom:20px;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
72+
.hero-tagline{font-size:clamp(17px,2.8vw,26px);font-weight:600;color:var(--t1);max-width:700px;line-height:1.5;margin-bottom:20px;opacity:0;animation:tagline-in 1.2s ease .4s forwards}
73+
.hero-tagline em{font-style:normal;color:var(--amber);font-weight:700}
74+
@keyframes tagline-in{0%{opacity:0;transform:translateY(12px);filter:blur(4px)}100%{opacity:1;transform:translateY(0);filter:blur(0)}}
7275
.hero-sub{font-size:clamp(15px,2.2vw,20px);color:var(--t2);max-width:640px;line-height:1.8;margin-bottom:12px}
7376
.hero-mono{font-family:var(--mono);font-size:12px;color:var(--t4);letter-spacing:1px;margin-bottom:40px}
7477
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-bottom:56px}
@@ -319,7 +322,8 @@
319322
<svg id="hero-icon" class="hero-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="96" height="96" style="display:block" role="img" aria-label="Paracosm"><defs><radialGradient id="hg"><stop offset="0%" stop-color="var(--amber)" stop-opacity=".3"/><stop offset="100%" stop-color="var(--amber)" stop-opacity="0"/></radialGradient></defs><g class="pc-orbit"><line x1="256" y1="256" x2="301.06" y2="87.85" stroke="var(--pc-line)" stroke-width="12.8" opacity=".5"/><line x1="256" y1="256" x2="424.15" y2="210.94" stroke="var(--pc-line)" stroke-width="12.8" opacity=".5"/><line x1="256" y1="256" x2="379.09" y2="379.09" stroke="var(--pc-line)" stroke-width="12.8" opacity=".5"/><line x1="256" y1="256" x2="210.94" y2="424.15" stroke="var(--pc-line)" stroke-width="12.8" opacity=".5"/><line x1="256" y1="256" x2="87.85" y2="301.06" stroke="var(--pc-line)" stroke-width="12.8" opacity=".5"/><line x1="256" y1="256" x2="132.91" y2="132.91" stroke="var(--pc-line)" stroke-width="12.8" opacity=".5"/></g><g class="pc-cross"><line x1="301.06" y1="87.85" x2="379.09" y2="379.09" stroke="var(--pc-line)" stroke-width="9" opacity=".18"/><line x1="424.15" y1="210.94" x2="210.94" y2="424.15" stroke="var(--pc-line)" stroke-width="9" opacity=".18"/><line x1="379.09" y1="379.09" x2="87.85" y2="301.06" stroke="var(--pc-line)" stroke-width="9" opacity=".18"/><line x1="210.94" y1="424.15" x2="132.91" y2="132.91" stroke="var(--pc-line)" stroke-width="9" opacity=".18"/><line x1="87.85" y1="301.06" x2="301.06" y2="87.85" stroke="var(--pc-line)" stroke-width="9" opacity=".18"/><line x1="132.91" y1="132.91" x2="424.15" y2="210.94" stroke="var(--pc-line)" stroke-width="9" opacity=".18"/></g><circle class="pc-hub-glow" cx="256" cy="256" r="73.7" fill="url(#hg)"/><circle class="pc-hub" cx="256" cy="256" r="40.96" fill="var(--amber)"/><g class="pc-orbit"><circle cx="301.06" cy="87.85" r="28.16" fill="var(--rust)"/><circle cx="424.15" cy="210.94" r="28.16" fill="var(--amber)"/><circle cx="379.09" cy="379.09" r="28.16" fill="var(--teal)"/><circle cx="210.94" cy="424.15" r="28.16" fill="var(--rust)"/><circle cx="87.85" cy="301.06" r="28.16" fill="var(--teal)"/><circle cx="132.91" cy="132.91" r="28.16" fill="var(--amber)"/></g></svg>
320323

321324
<h1>PARACOSM</h1>
322-
<p class="hero-sub">Define a world as JSON. The engine spawns an autonomous agent swarm, generates crises from simulation state, forges computational tools at runtime, and resolves outcomes through a deterministic kernel. Same starting conditions, different AI personalities, divergent outcomes.</p>
325+
<p class="hero-tagline">Same world. Different leaders. <em>Divergent civilizations.</em></p>
326+
<p class="hero-sub">Define a scenario. Run it with AI commanders that have different personalities. Watch their decisions compound into measurably different outcomes from identical starting conditions.</p>
323327
<p class="hero-mono">OPEN SOURCE &middot; APACHE-2.0 &middot; TYPESCRIPT &middot; BUILT ON AGENTOS</p>
324328

325329
<div class="hero-ctas">

src/cli/server-app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ Respond in character as this person. Be direct, personal, emotional. Reference y
620620
// TypeDoc toolbar + page title hidden via CSS (kept in DOM so JS doesn't crash)
621621
// Add our CSS override + fonts + favicon
622622
html = html.replace('</head>',
623-
`<link rel="icon" type="image/svg+xml" href="/icon.svg"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet"><link rel="stylesheet" href="/docs/assets/paracosm-override.css"></head>`
623+
`<link rel="icon" href="/favicon.png" sizes="32x32"><link rel="icon" type="image/svg+xml" href="/icon.svg"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet"><link rel="stylesheet" href="/docs/assets/paracosm-override.css"></head>`
624624
);
625625
// Inject nav header after <body>
626626
html = html.replace(/<body[^>]*>/, `$&

0 commit comments

Comments
 (0)