Skip to content
Source
Sign inSign up

README.md

67 lines3.8 KB

1# Brand icons
2​
3The three Icon Composer projects are the source of truth for full application icons:
4​
5- `dev/app-icon.icon`
6- `nightly/app-icon.icon`
7- `prod/app-icon.icon`
8​
9Each project uses `text.svg` for the T3 mark and `background.svg` when the background is a vector layer. Additional layers use semantic names that describe their role and placement.
10​
11Run `vp run icons:export` from the repository root to regenerate the tracked iOS, Linux, Windows, and web assets. The development web exports are also copied to `apps/web/public` for the browser favicon, web app manifest icons, and splash screen. Run `vp run icons:check` to verify that the generated assets and public copies match their sources without changing files.
12​
13Exporting requires Icon Composer 2 or newer on macOS. The script selects the newest compatible exporter from Xcode or a standalone Icon Composer installation and pins design generation 26. Set `ICON_COMPOSER_TOOL` to the full path of `Icon Composer.app/Contents/Executables/ictool` to override automatic discovery.
14​
15## macOS exports
16​
17Icon Composer's command-line exporter does not expose the `macOS pre-Tahoe` preset. A plain command-line `macOS` export is full bleed and is not suitable for the desktop app, so the export script intentionally leaves the tracked macOS PNGs unchanged and prints a reminder after every run.
18​
19After changing an Icon Composer project, open it in Icon Composer and export the macOS PNG with exactly these settings:
20​
21- Platform: `macOS pre-Tahoe`
22- Appearance: `Default`
23- Size: `1024pt`
24- Scale: `1×`
25​
26Save the three exports to:
27​
28- `dev/app-icon.icon` -> `dev/blueprint-macos-1024.png`
29- `nightly/app-icon.icon` -> `nightly/nightly-macos-1024.png`
30- `prod/app-icon.icon` -> `prod/black-macos-1024.png`
31​
32The result must be a 1024×1024 PNG with the classic macOS safe area: the opaque icon body is 824×824, inset 100 pixels on every side, with only the native Icon Composer shadow extending into the surrounding transparent canvas.
33​
34To have Codex perform the native exports, paste this prompt into a task opened at the repository root:
35​
36```text
37Use [@Computer](plugin://computer-use@openai-bundled) and the Icon Composer app to export the three macOS app icons in this repository.
38​
39For each project below, use Platform: macOS pre-Tahoe, Appearance: Default, Size: 1024pt, and Scale: 1×, then save the PNG to the exact destination:
40​
41- assets/dev/app-icon.icon -> assets/dev/blueprint-macos-1024.png
42- assets/nightly/app-icon.icon -> assets/nightly/nightly-macos-1024.png
43- assets/prod/app-icon.icon -> assets/prod/black-macos-1024.png
44​
45Do not resize, composite, or otherwise post-process the exported PNGs.
46​
47Verify every result is 1024×1024 and has the classic macOS safe area: an 824×824 opaque body inset 100px on every side, with only Icon Composer's native shadow extending beyond it.
48```
49​
50Do not edit the generated PNG or ICO files directly.
51​
52## Android launcher and splash artwork
53​
54Android masks the central 72dp of a 108dp adaptive canvas, and the Android 12+ splash screen masks
55the central two thirds of a 288dp canvas, so the Icon Composer exports cannot be used directly:
56their rounded-square silhouette gets framed again and the wordmark is cropped. The Android artwork
57is instead rendered from the same Icon Composer SVG sources by `vp run icons:export:android`:
58​
59- `apps/mobile/assets/android-icon-foreground.png`: the shared transparent wordmark, sized to stay
60 inside the safe zone
61- `apps/mobile/assets/android-icon-background-dev.png` and `-nightly.png`: full-bleed variant
62 artwork (blueprint grid and annotations; night sky and clouds). Production uses a solid color.
63- `apps/mobile/assets/android-splash-icon-*.png`: the two layers composed into one 288dp image, so
64 the splash mask reproduces the launcher icon's framing.
65​
66Rerun the export after changing a layer SVG. `android-icon-mark.png` remains a flat silhouette for
67Android's monochrome themed icon.