Repository navigation
feat(web): add a brand kit page at /brand - #5
Conversation
Tailwind v4's outline-none sets outline-style: none, and focusRing only restored the width, offset and color, so keyboard focus showed nothing on the landing page. Add focus-visible:outline-solid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CNV-8. Shows the mark on its 32-unit construction grid, then the lockup, mark, wordmark and one-color mark, each switchable between dark and light backgrounds with Copy SVG and SVG/PNG downloads, the colors (click to copy), Geist and Geist Mono, and usage rules. One link downloads the whole kit as a ZIP. scripts/brand-assets.py generates public/brand: the wordmark is Geist SemiBold outlined with fontTools and HarfBuzz, and the PNGs are rendered with convt. The static landing build prerenders /brand, serves it as brand.html with a Markdown version for agents, and lists it in the sitemap and llms.txt. The footer links to it before launch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CNV-8. The kit now comes from the merged logo: the mark for dark and light backgrounds, a one-color mark with the overlap cut out, the app icon, the wordmark, and a lockup measured from design-assets/brand. Every logo can be copied as SVG or PNG, or saved as either. Colors are two panels, on dark and on light, with the README palette; every value copies on click. The hero mark assembles on its grid with a Replay button, sections fade up as they scroll in, the background switch slides and crossfades, copy buttons confirm in place, and the "don't" examples bend into the mistake. All motion respects reduced motion, and printing shows every section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CNV-8 Add a brand page at convt.app/brand
ProblemThere is no public place to get the convt logo, wordmark or colors. Anyone writing about convt has to screenshot the site. GoalA Acceptance criteria
How to verifyRun |
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds a public brand kit at /brand, a page (BrandPage) and a matching brand.md that offer the convt logo, mark, wordmark, one-color and app-icon files as SVG/PNG, plus an all-in-one ZIP, color palettes and type and usage guidance. The static Vercel routes now treat brand like about and privacy, with trailing-slash and .html redirects and markdown served on Accept. llms.txt and the site's header and landing download links now point to the kit.
Review partial — this diff was larger than one review pass covers, so later files were not reviewed; some findings may be missing.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 184 functions depend on the 180 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 184 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 184 function(s) in the blast radius were not formally verified this run
Docs that may be stale (advisory)
.agents/skills/test-convt-cli/SKILL.md§ Doctor (lines 10-25): references changed symbolssvg.agents/skills/test-convt-cli/SKILL.md§ Fixtures (lines 26-36): references changed symbolssvg.agents/skills/test-convt-cli/SKILL.md§ Drive (lines 37-73): references changed symbolssvg.agents/skills/test-convt-cli/SKILL.md§ Licensing (lines 74-102): references changed symbolsrun.agents/skills/test-convt-cli/SKILL.md§ Real file managers without root (lines 143-199): references changed symbolsrun.agents/skills/test-convt-cli/SKILL.md§ Automated tests (lines 200-237): references changed symbolsrun.agents/skills/test-convt-cli/SKILL.md§ Linux bundle and document pack (lines 238-247): references changed symbolsrun.agents/skills/test-convt-cli/SKILL.md§ Native Linux installers (lines 252-261): references changed symbolsrun.agents/skills/test-convt-cli/SKILL.md§ Release verification (P11) (lines 262-269): references changed symbolsrun.agents/skills/test-convt-cli/SKILL.md§ Local media security (lines 270-274): references changed symbolsrun
…and 10 more.
|
- brand-assets.py builds the kit in a staging folder and replaces the committed files only after every render succeeds, and shows convt's error output when a render fails. - Color rows and the page label show and announce "Couldn't copy" when the browser blocks the clipboard, as the logo buttons already did. - Controls on white surfaces use the deep green focus outline; the light green was about 2:1 on white. - A card that is still waiting to scroll in appears at once when it receives keyboard focus. CNV-8 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
There was no public place to get the convt logo, colors or type, so anyone writing about convt had to screenshot the site. This adds a brand kit page at
/brandwhere every logo can be copied as SVG or PNG, saved, or downloaded with the rest of the kit as one ZIP.The page has a construction view of the mark that assembles on load, logo tiles that switch between dark and light backgrounds, the palette for each background (click to copy), Geist and Geist Mono, and usage rules. The footer links to it before launch.
A separate commit makes the shared focus ring visible. Tailwind v4's
outline-nonesetoutline-style: noneand nothing restored it, so keyboard focus showed nothing anywhere on the landing page.Evidence
A 15-second walkthrough, rendered frame by frame from the real page:
brand-page.mp4
bun run check,tsc --noEmitandbun run build:landingpass on the rebased branch; the build prerenders/and/brand.image/pngon the clipboard in Chrome (33 KB lockup), and Copy SVG writes the SVG for the selected background. Over plain HTTP the browser blocks image copy, and the button says to use Save instead.design-assets/brand/lockup-on-dark.pngto within 5 px at 2400 px wide.Not checked: Safari's clipboard, and the routing on the live Vercel deploy.
Merge Danger
Door: two-way. Reverting removes the page and its files.
Blast radius: the coming-soon site on Vercel. The new
vercel.jsonrules route/brandand/brand.md; if they are wrong,/brand404s while/brand/*.svgassets still load. The focus-ring change affects keyboard focus on every landing page control.Fixes CNV-8
Created with Claude Opus 5.5 in Claude Code.