initial landing scaffold (hyperhive/website MVP)
Tracks hyperhive#502 — landing-only first cut. Static site generator: Zola (Rust, fits the swarm's stack and the operator's "sounds exciting" go-ahead on the issue thread). ## Structure - `flake.nix` — `nix build .#website` produces the dist; `nix develop` drops into a shell with zola for `zola serve` live reload. No CI runner; the flake is the validation contract. - `config.toml` — Zola config; base URL `hyperhive.darkest.space` per #502. Single-page landing — feeds / search index off. - `content/_index.md` — landing copy. Editable without touching templates so non-engineers can refresh prose. - `templates/base.html` + `templates/index.html` — base layout + landing-specific extension. og:tags + favicon wired through. - `sass/main.scss` — theme. Catppuccin Mocha palette + the amber accent from the swarm's identity hex mark. Self-contained (no @import) so the file is reviewable in one place. - `static/{favicon,hex-mark,hyperhive}.svg` — copies of the dashboard's `branding/hyperhive.svg` (hex motif). Used as favicon, hero inline, and og:image respectively. ## Theme Monospace identity throughout — matches dashboard / agent terminals so the website reads as part of the same family rather than a separate marketing artifact. Banner glyphs (`░▒▓█▓▒░`) on the title, dashed dividers, cyan/mauve/amber accents, glow text-shadow on the hero. Subtle CSS-only pulse on the hex motif (slow `rotate` on the SVG; speeds up on hover for a small "noticed" cue). ## Three-column "what's inside" `the swarm` / `the dashboard` / `the boundary` — quick orientation for visitors who clicked through from a link without context. Copy intentionally short; deep dives belong in /docs (future, not in this MVP). ## Scope drop Per mara on #502: - no nav / blog / docs yet — landing only - no screenshots in MVP, follow via issues in this repo - public visibility ## Provenance Scaffolded under `iris/website` because my agent forge token doesn't carry org-admin to create repos under `hyperhive/`. Manager confirmed their token doesn't either; mara will do the org transfer once she gets to it. README documents this.
This commit is contained in:
parent
b1dd949291
commit
d3a55c5631
12 changed files with 873 additions and 2 deletions
97
static/favicon.svg
Normal file
97
static/favicon.svg
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
<svg width="300" height="300" viewBox="0 0 300 300" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>HyperHive</title>
|
||||
<desc>HyperHive icon — hexagonal hive, amber on dark</desc>
|
||||
<defs>
|
||||
<clipPath id="clipH"><circle cx="150" cy="150" r="140"/></clipPath>
|
||||
</defs>
|
||||
|
||||
<g clip-path="url(#clipH)">
|
||||
<rect x="0" y="0" width="300" height="300" fill="#0a0600"/>
|
||||
<g stroke="#ffb300" stroke-width="0.35" opacity="0.07">
|
||||
<line x1="0" x2="300" y1="10" y2="10"/> <line x1="0" x2="300" y1="20" y2="20"/>
|
||||
<line x1="0" x2="300" y1="30" y2="30"/> <line x1="0" x2="300" y1="40" y2="40"/>
|
||||
<line x1="0" x2="300" y1="50" y2="50"/> <line x1="0" x2="300" y1="60" y2="60"/>
|
||||
<line x1="0" x2="300" y1="70" y2="70"/> <line x1="0" x2="300" y1="80" y2="80"/>
|
||||
<line x1="0" x2="300" y1="90" y2="90"/> <line x1="0" x2="300" y1="100" y2="100"/>
|
||||
<line x1="0" x2="300" y1="110" y2="110"/> <line x1="0" x2="300" y1="120" y2="120"/>
|
||||
<line x1="0" x2="300" y1="130" y2="130"/> <line x1="0" x2="300" y1="140" y2="140"/>
|
||||
<line x1="0" x2="300" y1="150" y2="150"/> <line x1="0" x2="300" y1="160" y2="160"/>
|
||||
<line x1="0" x2="300" y1="170" y2="170"/> <line x1="0" x2="300" y1="180" y2="180"/>
|
||||
<line x1="0" x2="300" y1="190" y2="190"/> <line x1="0" x2="300" y1="200" y2="200"/>
|
||||
<line x1="0" x2="300" y1="210" y2="210"/> <line x1="0" x2="300" y1="220" y2="220"/>
|
||||
<line x1="0" x2="300" y1="230" y2="230"/> <line x1="0" x2="300" y1="240" y2="240"/>
|
||||
<line x1="0" x2="300" y1="250" y2="250"/> <line x1="0" x2="300" y1="260" y2="260"/>
|
||||
<line x1="0" x2="300" y1="270" y2="270"/> <line x1="0" x2="300" y1="280" y2="280"/>
|
||||
</g>
|
||||
|
||||
<circle cx="150" cy="150" r="118" fill="none" stroke="#ffb300" stroke-width="1" opacity="0.4"/>
|
||||
<circle cx="150" cy="150" r="104" fill="none" stroke="#ff8f00" stroke-width="0.5" opacity="0.25" stroke-dasharray="4 6"/>
|
||||
|
||||
<!-- RING 2 — 6 between-axis hexes, centered on (150,150) instead of (170,170) -->
|
||||
<g fill="#0e0800" stroke="#ffb300" stroke-width="0.7" opacity="0.4">
|
||||
<polygon points="254,105 241,127.5 215,127.5 202,105 215,82.5 241,82.5"/>
|
||||
<polygon points="98,105 85,127.5 59,127.5 46,105 59,82.5 85,82.5"/>
|
||||
<polygon points="176,60 163,82.5 137,82.5 124,60 137,37.5 163,37.5"/>
|
||||
<polygon points="254,195 241,217.5 215,217.5 202,195 215,172.5 241,172.5"/>
|
||||
<polygon points="98,195 85,217.5 59,217.5 46,195 59,172.5 85,172.5"/>
|
||||
<polygon points="176,240 163,262.5 137,262.5 124,240 137,217.5 163,217.5"/>
|
||||
</g>
|
||||
|
||||
<!-- RING 1 — 6 hexes -->
|
||||
<g fill="#150c00" stroke="#ffb300" stroke-width="1.2" opacity="0.8">
|
||||
<polygon points="228,150 215,172.5 189,172.5 176,150 189,127.5 215,127.5"/>
|
||||
<polygon points="202,105 189,127.5 163,127.5 150,105 163,82.5 189,82.5"/>
|
||||
<polygon points="150,105 137,127.5 111,127.5 98,105 111,82.5 137,82.5"/>
|
||||
<polygon points="124,150 111,172.5 85,172.5 72,150 85,127.5 111,127.5"/>
|
||||
<polygon points="150,195 137,217.5 111,217.5 98,195 111,172.5 137,172.5"/>
|
||||
<polygon points="202,195 189,217.5 163,217.5 150,195 163,172.5 189,172.5"/>
|
||||
</g>
|
||||
|
||||
<!-- CENTER hex -->
|
||||
<polygon points="176,150 163,172.5 137,172.5 124,150 137,127.5 163,127.5"
|
||||
fill="#1a0f00" stroke="#ffb300" stroke-width="1.8"/>
|
||||
|
||||
<!-- connections -->
|
||||
<g stroke="#ffb300" stroke-width="1" opacity="0.6">
|
||||
<line x1="176" y1="150" x2="202" y2="150"/>
|
||||
<line x1="124" y1="150" x2="98" y2="150"/>
|
||||
<line x1="163" y1="128" x2="176" y2="105"/>
|
||||
<line x1="137" y1="128" x2="124" y2="105"/>
|
||||
<line x1="163" y1="173" x2="176" y2="195"/>
|
||||
<line x1="137" y1="173" x2="124" y2="195"/>
|
||||
</g>
|
||||
|
||||
<!-- CENTER node -->
|
||||
<circle cx="150" cy="150" r="10" fill="#ffb300" opacity="0.95"/>
|
||||
<circle cx="150" cy="150" r="5" fill="#0a0600"/>
|
||||
|
||||
<!-- ring 1 nodes -->
|
||||
<g fill="#ff8f00" opacity="0.9">
|
||||
<circle cx="202" cy="150" r="6"/>
|
||||
<circle cx="176" cy="105" r="6"/>
|
||||
<circle cx="124" cy="105" r="6"/>
|
||||
<circle cx="98" cy="150" r="6"/>
|
||||
<circle cx="124" cy="195" r="6"/>
|
||||
<circle cx="176" cy="195" r="6"/>
|
||||
</g>
|
||||
<g fill="#0a0600">
|
||||
<circle cx="202" cy="150" r="2.5"/>
|
||||
<circle cx="176" cy="105" r="2.5"/>
|
||||
<circle cx="124" cy="105" r="2.5"/>
|
||||
<circle cx="98" cy="150" r="2.5"/>
|
||||
<circle cx="124" cy="195" r="2.5"/>
|
||||
<circle cx="176" cy="195" r="2.5"/>
|
||||
</g>
|
||||
|
||||
<rect x="0" y="143" width="300" height="2" fill="#ffb300" opacity="0.07"/>
|
||||
</g>
|
||||
|
||||
<circle cx="150" cy="150" r="140" fill="none" stroke="#ffb300" stroke-width="2.5"/>
|
||||
<circle cx="150" cy="150" r="145" fill="none" stroke="#ff8f00" stroke-width="0.5" opacity="0.4" stroke-dasharray="8 4"/>
|
||||
<g stroke="#ffb300" stroke-width="1.5" fill="none" opacity="0.8">
|
||||
<path d="M44,44 L20,44 L20,70"/>
|
||||
<path d="M256,44 L280,44 L280,70"/>
|
||||
<path d="M44,256 L20,256 L20,230"/>
|
||||
<path d="M256,256 L280,256 L280,230"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
Loading…
Add table
Add a link
Reference in a new issue