Skip to content

chore(otter): new Otterware brand icons - #32

Merged
ckafrouni merged 2 commits into
mainfrom
brand/new-icons
Oct 11, 2026
Merged

ckafrouni merged 2 commits into
mainfrom
brand/new-icons

Conversation

@ckafrouni

Copy link
Copy Markdown
Collaborator

Otter Code still wore the airbrushed otter. This swaps in the Otterware brand kit's Otter Code icon (a charcoal "‹›" swoosh on an ivory tile) on every surface that carried the otter, and keeps the three channels apart: production = the kit's light icon (with a dark appearance), nightly = night sky, dev = blueprint.

Where each variant goes

Variant Source Used by
Production assets/otter/ Stable desktop (macOS otter-macos-1024.png, Linux otter-universal-1024.png), hosted web on latest, mobile production (app-icon.icon, splash, Android), t3.json
Nightly assets/otter-nightly/ Nightly desktop + nightly hosted web, mobile preview
Dev assets/otter-dev/ Unpackaged dev runs (DesktopAssets, electron-launcher), apps/web/public (dev favicon/splash), server dev overrides, mobile development

What changed

  • Icon Composer projects (assets/otter*/app-icon.icon): the otter.png layer (and the old annotation/cloud layers) are replaced by two full-canvas layers, background.svg + symbol.svg. Production has a dark appearance through fill-specializations (ivory symbol on charcoal); iOS derives the tinted one. otter-source.png is gone.
  • Exports with the same file names: -ios-1024 / -universal-1024 (rounded tile, as Icon Composer's iOS export was), -macos-1024 (824 tile inset 100 with shadow), apple-touch 180, favicon 16/32, .ico (16–256, PNG payloads) for web and Windows.
  • Adaptive favicon: each channel gets <name>-web-favicon.svg (production's follows prefers-color-scheme). It's added to brand-assets.ts, so apply-web-brand-assets and the server's dev overrides copy it per channel. index.html links it, and the .ico link now says sizes="32x32" so browsers pick the SVG. export-brand-icons.ts copies the hand-drawn SVG into apps/web/public as is.
  • Android (apps/mobile/assets/otter/): the adaptive foreground is the symbol at half the 108dp canvas (inside the 66dp safe circle). Production sits on #F8F5EC. Dev and nightly now get their own -dev / -nightly foreground, background image and splash; until now all three used the black otter. Also a white monochrome layer and notification icon. app.config.ts points each variant at its files.
  • In-app mark: T3Wordmark (web and mobile, used for Otter Code's own activity rows), the widget's T3Mark.svg, the Android status-bar agent_activity_mark.xml and the two DMG backgrounds (the symbol is back in the top-left corner, where upstream had the T3 mark) now use the kit's symbol-tight.svg (viewBox 123 127 780 780, coordinates rounded to 0.1).
  • Docs: the OTTER.md icon section now describes these sources.

No lucide Home/House icon stands for the app's home view. The only Home icons are the device preview's hardware Home button (web DeviceControlsRail, mobile DevicePreviewRouteScreen), and they stay. The text wordmarks ("Otter" in the welcome wizard and the mobile title) stay as they are.

What couldn't be regenerated here

This was built on Linux, where Icon Composer, sips and iconutil don't run. The icon.json files were written by hand and the exports were rendered from the kit SVGs with resvg. vp run icons:export / icons:check on a Mac will re-render the iOS, web and ICO files through Icon Composer, which adds its own glass and shadow, so expect small pixel differences. The macOS PNGs still need the manual macOS pre-Tahoe export as before. Please open the three .icon projects in Icon Composer once to confirm the dark specialization looks right. The Android art came from a one-off script outside the repo. Like the old otter art, it is tracked as PNGs.

Checks: tsc --noEmit for scripts, apps/web and apps/mobile; vp lint on the changed TS files; vp fmt --check; brand-assets and DesktopAssets tests; mobile-native-static-check.

🤖 Generated with Claude Code

ckafrouni and others added 2 commits October 11, 2026 14:02
Replace the airbrushed otter with the Otterware kit's Otter Code icon: a
charcoal "‹›" symbol on an ivory tile (dark appearance in the production
Icon Composer project), with the blueprint variant for dev and the night
sky for nightly.

- assets/otter, otter-dev, otter-nightly: Icon Composer projects now hold
  background.svg + symbol.svg layers; iOS/universal, macOS, web and ICO
  exports rendered from the kit, plus an adaptive favicon.svg per channel
  that the web build and hosted channels pick up.
- Android: symbol foreground per variant on ivory (prod) or the variant's
  background image, matching splash icons, white monochrome and
  notification icons.
- In-app mark (web and mobile activity rows, the widget template, the
  Android status bar icon, DMG backgrounds) is the Code symbol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ckafrouni
ckafrouni merged commit 66c2374 into main Oct 11, 2026
18 checks passed
@ckafrouni
ckafrouni deleted the brand/new-icons branch October 11, 2026 14:19
Laurin-Notemann added a commit that referenced this pull request Oct 12, 2026
* chore(otter): new Otterware brand icons (#32)

* chore(otter): new Otterware brand icons

Replace the airbrushed otter with the Otterware kit's Otter Code icon: a
charcoal "‹›" symbol on an ivory tile (dark appearance in the production
Icon Composer project), with the blueprint variant for dev and the night
sky for nightly.

- assets/otter, otter-dev, otter-nightly: Icon Composer projects now hold
  background.svg + symbol.svg layers; iOS/universal, macOS, web and ICO
  exports rendered from the kit, plus an adaptive favicon.svg per channel
  that the web build and hosted channels pick up.
- Android: symbol foreground per variant on ivory (prod) or the variant's
  background image, matching splash icons, white monochrome and
  notification icons.
- In-app mark (web and mobile activity rows, the widget template, the
  Android status bar icon, DMG backgrounds) is the Code symbol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(web): expect the Otter Code symbol in MCP tool rows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): brand new upstream mobile UI text

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Laurin-Notemann added a commit that referenced this pull request Oct 13, 2026
* chore(otter): new Otterware brand icons (#32)

* chore(otter): new Otterware brand icons

Replace the airbrushed otter with the Otterware kit's Otter Code icon: a
charcoal "‹›" symbol on an ivory tile (dark appearance in the production
Icon Composer project), with the blueprint variant for dev and the night
sky for nightly.

- assets/otter, otter-dev, otter-nightly: Icon Composer projects now hold
  background.svg + symbol.svg layers; iOS/universal, macOS, web and ICO
  exports rendered from the kit, plus an adaptive favicon.svg per channel
  that the web build and hosted channels pick up.
- Android: symbol foreground per variant on ivory (prod) or the variant's
  background image, matching splash icons, white monochrome and
  notification icons.
- In-app mark (web and mobile activity rows, the widget template, the
  Android status bar icon, DMG backgrounds) is the Code symbol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(web): expect the Otter Code symbol in MCP tool rows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): brand new upstream mobile UI text

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Laurin-Notemann added a commit that referenced this pull request Oct 14, 2026
* chore(otter): new Otterware brand icons (#32)

* chore(otter): new Otterware brand icons

Replace the airbrushed otter with the Otterware kit's Otter Code icon: a
charcoal "‹›" symbol on an ivory tile (dark appearance in the production
Icon Composer project), with the blueprint variant for dev and the night
sky for nightly.

- assets/otter, otter-dev, otter-nightly: Icon Composer projects now hold
  background.svg + symbol.svg layers; iOS/universal, macOS, web and ICO
  exports rendered from the kit, plus an adaptive favicon.svg per channel
  that the web build and hosted channels pick up.
- Android: symbol foreground per variant on ivory (prod) or the variant's
  background image, matching splash icons, white monochrome and
  notification icons.
- In-app mark (web and mobile activity rows, the widget template, the
  Android status bar icon, DMG backgrounds) is the Code symbol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(web): expect the Otter Code symbol in MCP tool rows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): brand new upstream mobile UI text

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant