feat(brand): brand home in brand/ (masters, generated icons, tokens, provenance) - #28
Merged
Merged
Conversation
…provenance) The drawing that was docs/public/logo.svg moves to brand/svg/lockdocs-symbol.svg and becomes the only source: build.py copies it back to the URL the site serves, and generates the favicon (16/32 px snapped grids, 48, .ico, .svg), the app icons (192/512/1024, maskable, apple-touch) and tokens.css from it. The docs theme now reads the brand: custom.css imports brand/tokens.css and sets --vp-c-bg*, --vp-c-brand-* and the hero gradient from var(--brand-color-*); docs/.vitepress/config.ts reads theme-color from brand/tokens.json and links the generated favicon files instead of carrying a second copy of the logo as a data URI. Values are unchanged. CI checks that every surface is still a byte-for-byte copy (python3 brand/build.py --check).
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.
One home for the lockdocs brand, so every surface takes the mark, the icons and the colours from one place.
Moved:
docs/public/logo.svg(the padlock) becomes the masterbrand/svg/lockdocs-symbol.svg. The website URL is unchanged —build.pycopies the master back todocs/public/logo.svg, so what the site serves is the same bytes it served before. Added from that drawing:lockdocs-symbol-black.svgand-white.svg(every fill and stroke one colour, with the two document lines cut out of the lock body byfill-rule="evenodd"so they stay visible on a same-colour ground),lockdocs-app-icon.svg(the symbol on a#06080Crounded square,rx22% of the 1024 side, symbol at 70% width — specified by the brand lead in the 2026-09-28 audit) andlockdocs-maskable.svg(the same construction without the corner radius, for masks that crop).Generated by
brand/build.py(a copy of the shared generator, unmodified):favicon/(16 and 32 px pixel-snapped grids kept as hand-editable text, plus 48,.icoand.svg),app-icon/(192, 512, 1024, maskable 192/512, apple-touch 180),tokens.cssandprovenance.json. Re-running the generator is byte-for-byte identical.Surfaces now copying from brand/:
docs/public/logo.svg,docs/public/favicon.svg,docs/public/favicon.ico(all three listed inbrand/brand.jsonoutputs). The docs theme reads the tokens:docs/.vitepress/theme/custom.cssimportsbrand/tokens.cssand sets--vp-c-bg*,--vp-c-brand-1/2/3and the hero gradient fromvar(--brand-color-*);docs/.vitepress/config.tsreads thetheme-colormeta tag frombrand/tokens.jsonand links the generated favicon files instead of carrying a second copy of the logo geometry as a data URI. Every value is unchanged.Remaining surfaces (in
brand/README.md): the fourrgba()brand tints left incustom.css(alpha tints needcolor-mix(), which drops the declaration on older browsers), the two shields.io badge colours inREADME.md, and the social preview —og:imagepoints atimg/demo.gif, a 1400x780 terminal recording, so there is no 1200x630 still and noog/master; the audit recorded that as a gap.CI:
checksgains one step,python3 brand/build.py --check, which fails if any surface stops being a byte-for-byte copy of its brand file.Net LOC against
origin/main: 30 files changed, 682 insertions(+), 12 deletions(-). Binary files are counted separately withgit diff --stat --numstat | grep -c '^-'— 11 of them.Built by: DeepSeek (sonnet). Review: 2 fixes (Opus: 16 px document lines drawn by hand; similarity check; generator synced)