feat: adopt brand lockup + canonical icons (ui#29 wave 2) - #17
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/ui0.7.0 bump branch (chore/ui-0.7.0-brand-refresh, PR #16) so the new<Logo label="...">prop and the React-free./brandsubpath (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()andColophon()now render<Logo label="Drive" />instead of a bareMind Drivetext wordmark — shared weave mark + Drive set in the brand serif (Fraunces).<Link>switched fromitems-baselinetoitems-centerso the lockup sits cleanly beside the● files in your podtagline pill.Logoadded to the existing@mind-studio/uiimport.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.ts—name: "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 theMIND_MARK_SVGmark + Drive wordmark and Drive-appropriate copy. Deterministic (default font, no remote fetch).package.json—+ "gen:icons"script,+ sharp ^0.34.5devDependency..gitignore— drive has a blanket*.pngrule; 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-imageall appear in the build route table) — no manualmetadatawiring needed, andlayout.tsxhad no conflicting hard-coded icons.Test plan
All run from the worktree with
NODE_AUTH_TOKEN=$(gh auth token):npm run gen:icons(×2)npm run typechecknpm run lintnpm run test--passWithNoTests)npm run build/icon.svg,/apple-icon.png,/manifest.webmanifest,/opengraph-imageall in route tablePre-existing note (not introduced here): build warns
metadataBaseis 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
.gitignoreignores*.png(landing's does not), so committing the generated icon binaries required.gitignorenegations — other repos may need the same.🤖 Generated with Claude Code