🌙 Guided — Brand Assets¶
Status: Asset pack designed and built (8 May 2026). Production wire-up NOT YET DONE — see "Wire-up checklist" below. Source files:
~/.copilot/session-state/ae6d27b9-c51f-4824-a823-799ff9598fb1/files/brand/Repo destination (when wired up):guided/public/brand/Live preview: open…/files/brand/preview.htmlin browser
Decision summary¶
Sush picked the crescent moon mark (8 May 2026) from a 5-concept exploration. Rationale:
- Guided is a moon orbiting the home planet (
aguidetocloud.com), not a separate planet. The crescent says that explicitly. - Distinct from the home planet's identity but family-aligned (same indigo accent, same Inter font stack).
- Reads at every size from 16px favicon to 200px hero.
- Works in light + dark + on-indigo + on-charcoal.
Geometry locked: outer circle r=32, inner mask cut at (50, 32) r=29 — a medium-thickness waxing crescent (opens up-right = "growth/progress" symbolism). Tweakable parameters: stroke weight, cut angle, indigo accent.
Other 4 concepts considered & rejected:
| # | Concept | Why not |
|---|---|---|
| 1 | Wordmark + moon dot | Too subtle for planetary map at small sizes |
| 3 | Lowercase 'g' in circle | Too generic — letter-in-circle is everywhere |
| 4 | Path arrow + target | Arrows are everywhere; target dot helps but not enough |
| 5 | Three-dot progression | Reads as pagination / loading / EQ at small sizes |
Mockups for all five are preserved at ~/.copilot/session-state/.../files/logo-mockups.html for reference if you want to revisit.
Asset inventory¶
8 SVGs in the locked pack:
| File | Purpose | Viewbox | Notes |
|---|---|---|---|
guided-mark.svg |
Primary mark — indigo crescent | 80×80 | Hardcoded fill="#6366F1". Use this for branded contexts (light bg). |
guided-mark-mono.svg |
currentColor variant | 80×80 | Inherits text colour. Use for places that should adapt to text (footers, monochrome headers). |
guided-mark-on-dark.svg |
White crescent | 80×80 | Hardcoded fill="#FFFFFF". Use on indigo / charcoal backgrounds. |
guided-lockup.svg |
Horizontal lockup — mark + wordmark | 240×60 | For header nav, primary brand surface. Wordmark uses currentColor. |
guided-lockup-stacked.svg |
Vertical lockup | 200×200 | For hero banners, footer, app open screens. |
guided-favicon.svg |
Browser tab icon | 32×32 | Has indigo rounded-square background + white crescent for legibility at 16–32px. |
guided-apple-touch.svg |
iOS app icon | 180×180 | Full-bleed indigo bg + white crescent, with safe-area padding for iOS rounded mask. |
guided-og-image.svg |
Social card | 1200×630 | Hero composition with crescent + wordmark + tagline + URL. Must be rendered to PNG before production use (Twitter/LinkedIn/OG don't reliably render SVG). |
Wire-up checklist (the next session that ships brand)¶
Step 1 — copy SVGs to product repo¶
# From session-state
cp ~/.copilot/session-state/ae6d27b9-c51f-4824-a823-799ff9598fb1/files/brand/*.svg \
C:/ssClawy/guided/public/brand/
After copy, verify git status shows 8 untracked SVGs in public/brand/. Commit them with:
Step 2 — render PNG variants (required for browsers / social platforms)¶
PNGs are required for:
favicon-32.png,favicon-16.png— legacy IE / older Chrome / fallback for browsers that don't render SVG faviconsapple-touch-icon.png(180×180) — iOS Safari requires PNG, won't accept SVGog-image.png(1200×630) — Twitter, LinkedIn, Slack, Facebook all require PNG/JPG for OG cards
Use Node + sharp or @resvg/resvg-js:
// scripts/render-brand-pngs.mjs (pattern, write this when wiring up)
import { readFileSync, writeFileSync } from 'fs';
import { Resvg } from '@resvg/resvg-js';
function render(svgPath, outPath, width) {
const svg = readFileSync(svgPath, 'utf8');
const resvg = new Resvg(svg, { fitTo: { mode: 'width', value: width } });
writeFileSync(outPath, resvg.render().asPng());
}
render('public/brand/guided-favicon.svg', 'public/favicon-32.png', 32);
render('public/brand/guided-favicon.svg', 'public/favicon-16.png', 16);
render('public/brand/guided-apple-touch.svg', 'public/apple-touch-icon.png', 180);
render('public/brand/guided-og-image.svg', 'public/brand/og-image.png', 1200);
If @resvg/resvg-js install fails on Windows ARM64 (known issue with native binaries), fall back to sharp or use a one-shot online tool like https://cloudconvert.com/svg-to-png. Generated PNGs go in:
public/favicon-32.png,public/favicon-16.png(root)public/apple-touch-icon.png(root, iOS picks it up automatically)public/brand/og-image.png(referenced in BaseLayout)
Step 3 — replace the default favicon¶
The current public/favicon.svg is the Astro scaffold default (not Sush's brand) — confirmed 8 May 2026. Replace it:
Step 4 — update BaseLayout <head>¶
src/layouts/BaseLayout.astro currently has no explicit <link rel="icon"> tag — browsers fall back to /favicon.ico and /favicon.svg. Add explicit links for clarity + apple-touch:
<!-- After the canonical link, around line 90 -->
<link rel="icon" type="image/svg+xml" href={`${import.meta.env.BASE_URL}favicon.svg`} />
<link rel="icon" type="image/png" sizes="32x32" href={`${import.meta.env.BASE_URL}favicon-32.png`} />
<link rel="icon" type="image/png" sizes="16x16" href={`${import.meta.env.BASE_URL}favicon-16.png`} />
<link rel="apple-touch-icon" sizes="180x180" href={`${import.meta.env.BASE_URL}apple-touch-icon.png`} />
For OG image — find the existing ogImageURL variable (around line 100) and update its default to the new crescent PNG:
const ogImageURL = ogImage
? new URL(ogImage, Astro.site).toString()
: new URL(`${import.meta.env.BASE_URL}brand/og-image.png`, Astro.site).toString();
Step 5 — swap nav lockup (Header.astro)¶
Currently guided/src/components/layout/Header.astro uses Earth's logo via cross-domain reference (/images/logo_agtc_dark_1.webp) per the cosmos "One Body Two Organs" rule.
Decision needed when wiring up: keep the cross-domain Earth logo for cohesion, OR swap to Guided's own lockup?
The cosmos-nav-playbook says moons share the parent's chrome. So the safer call is to keep Earth's logo on Guided's nav. The crescent then lives in: - favicon (browser tab) - apple-touch-icon (iOS home screen) - OG image (social cards) - About page hero / hero header (optional, where Guided self-identifies)
If Sush wants the crescent in the nav instead of Earth's logo, edit Header.astro to use <img src={${base}brand/guided-lockup.svg}> — but that breaks One Body Two Organs. Confirm with Sush before doing this.
Step 6 — verify¶
cd guided
npx astro dev --port 4322
# Visit http://localhost:4322/guided/
# Check: favicon in browser tab, view-source confirms <link rel> tags, og:image meta
# Open share preview in https://www.opengraph.xyz/ once deployed
Run both test suites. Build clean. Pre-push smoke. Commit. Push. Cloudflare auto-build. Post-deploy smoke.
Design tokens used¶
- Primary indigo:
#6366F1(light) /#818CF8(dark) — matches Zen System - Foreground for mono: uses
currentColor(CSS inherits) - Wordmark font:
ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, system-ui, sans-serif— matches BaseLayout's preloaded Inter - No gradients, no glows, no backdrop-filter — Zen System guardrails enforced
- Wordmark: 600 weight, -0.5px letter-spacing for the lockup
- Tagline (OG image): 500 weight headline + 400 weight subhead
Tweakable parameters (if Sush asks for adjustments)¶
| Parameter | Current | How to change |
|---|---|---|
| Crescent thickness | medium (cut r=29 inside outer r=32) | Increase cut r → thinner crescent; decrease cut r → thicker |
| Crescent angle | waxing up-right (cut at cx=50, cy=32) | Move cut to cx=50, cy=40 = horizontal C; cy=48 = waxing down-right |
| Accent colour | #6366F1 |
Edit each SVG. For mark-mono, no change needed (uses currentColor) |
| Wordmark font | system-ui stack | Replace font-family in lockup SVGs |
| Wordmark weight | 600 | Edit font-weight in lockup SVGs |
| OG image tagline | "$9, not $79." | Edit text in guided-og-image.svg |
Open questions¶
- Should the cosmos planet rail show Guided? Currently the rail has Earth, Brain Bar, Shift, Plain AI. Guided isn't in the list because it's a moon, not a sibling planet. If Sush wants Guided visible in cross-cosmos navigation, it'd need its own entry in
planets.jsonfiles across cosmos-aware sites. - Should Guided's favicon supersede Earth's
aguidetocloud.comfavicon when navigating between Earth and Guided? Browsers cache favicons per-origin. Guided is on the same origin (/guided/subpath ofaguidetocloud.com), so currently uses Earth's favicon. If we change Guided's favicon, the wholeaguidetocloud.comorigin gets the new favicon. - PNG render automation in CI? The PNG variants need to regenerate if SVGs change. A
prebuildscript that runsrender-brand-pngs.mjsbeforeastro buildwould catch this. Worth doing if brand SVGs become a moving target.
Related¶
- Logo concept exploration:
~/.copilot/session-state/.../files/logo-mockups.html(5 concepts) - Crescent asset preview:
~/.copilot/session-state/.../files/brand/preview.html(real-world contexts: browser tab, iOS dock, social card, nav, cert grid) - Cosmos system context: cosmos-nav-playbook.md
- Zen design tokens: zen-system-quickref.md
- Voice + tone (lowercase rules, when proper nouns stay capitalised): voice-and-tone.md