[SF-29] Add Leopard brand assets and icon export pipeline - #27
Conversation
- brand/assets/leopard-pattern.svg: 400x400 tileable pattern, 36 deterministic spots - brand/assets/logomark.svg: 256x256 gold glyph (concentric arcs + crown dot), 16px safe padding resolves SF-22 icon cropping issue - brand/assets/wordmark.svg: 512x128 'Leopard AI' wordmark - brand/assets/README.md: asset tree, regen command, SF-30 migration notes - scripts/brand/export-icons.mjs: zero-dep Node generator; emits chrome-16/48/128, ios-1024, android-512, favicon-16/32 sized icons - brand/assets/icons/: generated output (verified byte-identical on re-run)
SF-29 Brand asset pipeline — logo, leopard background, icon set
ScopeReplace placeholder SVG icons and procedural leopard pattern with the real Leopard AI brand assets referenced in SF-22 (Gemini leopard background + app icon from the Linear attachments). Deliverables
Acceptance
Branch
Depends onSF-23 (tokens consumed by assets). NotesThe icon image in SF-22 has an edge-crop issue ("aber da gibt es einen rand der immer abgeschnitten werden muss, check selber") — the icon source must be re-exported with added padding before slicing to platform sizes. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9c532f4b0b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| lines.push(` public static let ${camel(key)} = Color(hex: "${v.hex}")`); | ||
| } | ||
| } | ||
| lines.push(" public static let panel = Color.black.opacity(0.78)"); |
There was a problem hiding this comment.
Generate panel color from tokens instead of hardcoded black
palette.neutral.panel in brand/tokens.json is rgba(18, 18, 22, 0.78), but the generator hardcodes Color.black.opacity(0.78) here (and similarly hardcodes black for Kotlin). That makes native outputs diverge from the declared source-of-truth token and means future token edits to neutral.panel will not propagate to generated Swift/Kotlin files, causing cross-platform visual drift once these tokens are consumed.
Useful? React with 👍 / 👎.
https://linear.app/captain-leopard-ai-engineering/issue/SF-29/brand-asset-pipeline-logo-leopard-background-icon-set
Verification: