Skip to content

feat: adopt brand lockup + canonical icons (ui#29 wave 2) - #17

Merged
rep0x merged 2 commits into
mainfrom
chore/brand-wave2-drive
Jun 21, 2026
Merged

feat: adopt brand lockup + canonical icons (ui#29 wave 2)#17
rep0x merged 2 commits into
mainfrom
chore/brand-wave2-drive

Conversation

@rep0x

@rep0x rep0x commented Jun 21, 2026

Copy link
Copy Markdown
Member

Summary

Wave 2 brand-refresh pilot (MIND-Studio/ui#29) for the drive repo. This is the reference PR — a human will eyeball it before we fan the pattern out to the rest of the fleet.

It is based on the open @mind-studio/ui 0.7.0 bump branch (chore/ui-0.7.0-brand-refresh, PR #16) so the new <Logo label="..."> prop and the React-free ./brand subpath (MIND_MARK_SVG, MIND_GREEN, monoMarkSvg, …) are available. Base = the bump branch, so this diff is just the Wave 2 work.

What changed

Tier 3 — in-app logo lockup (src/app/layout.tsx)

  • Masthead() and Colophon() now render <Logo label="Drive" /> instead of a bare Mind Drive text wordmark — shared weave mark + Drive set in the brand serif (Fraunces).
  • Masthead <Link> switched from items-baseline to items-center so the lockup sits cleanly beside the ● files in your pod tagline pill.
  • Logo added to the existing @mind-studio/ui import.

Tier 4 — canonical static brand assets (mark-only, generated from @mind-studio/ui/brand)

  • scripts/gen-icons.mjs — generates the favicon + PWA/apple-touch icons from the canonical mark (MIND_MARK_SVG / monoMarkSvg / MIND_GREEN), so they can never drift from the published logo. Adapted from landing; same outputs, Drive header comment.
  • src/app/icon.svg — replaces the hand-rolled teal "M" placeholder with the canonical gradient weave mark.
  • src/app/apple-icon.png (180), public/icon-192.png, public/icon-512.png — generated maskable/apple-touch binaries, committed.
  • src/app/manifest.tsname: "Mind Drive — your files in your pod", short_name: "Drive", Drive description, theme_color: "#16B88A", background_color: "#07080b".
  • src/app/opengraph-image.tsx — dark green-glow share card with the MIND_MARK_SVG mark + Drive wordmark and Drive-appropriate copy. Deterministic (default font, no remote fetch).
  • package.json+ "gen:icons" script, + sharp ^0.34.5 devDependency.
  • .gitignore — drive has a blanket *.png rule; added negations for the three committed brand icons so the generated binaries ship.

Next 16 auto-detects all four assets by file convention (/icon.svg, /apple-icon.png, /manifest.webmanifest, /opengraph-image all appear in the build route table) — no manual metadata wiring needed, and layout.tsx had no conflicting hard-coded icons.

Test plan

All run from the worktree with NODE_AUTH_TOKEN=$(gh auth token):

Command Result
npm run gen:icons (×2) ✅ reproducible — PNGs byte-identical on re-run
npm run typecheck ✅ pass
npm run lint ✅ exit 0 (only pre-existing warnings/infos; none in changed files)
npm run test ✅ pass (no test files; --passWithNoTests)
npm run build ✅ pass — /icon.svg, /apple-icon.png, /manifest.webmanifest, /opengraph-image all in route table

Pre-existing note (not introduced here): build warns metadataBase is unset for resolving social OG/Twitter image URLs — same as landing; OG image still generates.

Note

This is the Wave 2 pilot / reference for the fleet fan-out. Notable repo-specific wrinkle for the brief: drive's .gitignore ignores *.png (landing's does not), so committing the generated icon binaries required .gitignore negations — other repos may need the same.

🤖 Generated with Claude Code

rep0x and others added 2 commits June 21, 2026 15:54
Picks up the serif heading typography (Fraunces h1–h3), kbd mono, and
the semantic state tokens from the design-system brand refresh.

Refs #29

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Wave 2 brand-refresh pilot for the drive repo, basing on the open
@mind-studio/ui 0.7.0 bump branch so the new `label` prop and the
React-free `./brand` subpath are available.

Tier 3 — in-app logo lockup:
- Masthead and Colophon now render <Logo label="Drive" /> instead of a
  bare "Mind Drive" text wordmark: shared weave mark + "Drive" in the
  brand serif. Masthead link switched to items-center to sit the lockup
  next to the "files in your pod" tagline pill.

Tier 4 — canonical static brand assets (mark-only, from @mind-studio/ui/brand):
- scripts/gen-icons.mjs generates src/app/icon.svg (favicon),
  src/app/apple-icon.png (180), public/icon-{192,512}.png (maskable)
  from MIND_MARK_SVG / monoMarkSvg / MIND_GREEN — single source of truth.
- src/app/icon.svg replaces the hand-rolled teal "M" placeholder.
- src/app/manifest.ts (name/short_name/description, Mind Green theme).
- src/app/opengraph-image.tsx: dark green-glow card, MIND_MARK_SVG mark +
  "Drive" wordmark, Drive-appropriate copy. Deterministic (default font).
- package.json: + "gen:icons" script and sharp devDependency.
- .gitignore: negate the broad *.png rule for the three committed brand
  icons so the generated binaries ship with the app.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rep0x
rep0x changed the base branch from chore/ui-0.7.0-brand-refresh to main June 21, 2026 16:10
@rep0x
rep0x merged commit 874a4a4 into main Jun 21, 2026
1 check passed
@rep0x
rep0x deleted the chore/brand-wave2-drive branch June 21, 2026 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant