Skip to content

🎨 style(brand): refresh the drydock whale logo everywhere#439

Merged
scttbnsn merged 1 commit into
mainfrom
brand/new-logo
Jun 16, 2026
Merged

🎨 style(brand): refresh the drydock whale logo everywhere#439
scttbnsn merged 1 commit into
mainfrom
brand/new-logo

Conversation

@scttbnsn

Copy link
Copy Markdown
Contributor

New master render (drydock.png, repo root) replaces the whale brand mark across every surface, all regenerated from the single master via the new committed scripts/regenerate-brand-assets.sh (ImageMagick).

Replaced (filenames preserved in place):

  • App UI (ships in the image): drydock-logo.png, whale-logo.png, favicon.ico/.svg/-96, apple-touch-icon, PWA manifest icons
  • Website (apps/web) + demo (apps/demo): favicons, PWA icons, OpenGraph cards, header logo
  • README + docs: docs/assets/whale-logo.png and the dark-mode variant (RGB-negate β†’ orange, mirroring the existing favicon.svg dark invert(1))

Untouched: CodesWhat org logo, selfhst/* service icons, app screenshots.

Safety: no renames β€” docs/assets/whale-logo.png is the Home Assistant entity_picture URL contract (Hass.ts); renaming broke HASS once (CHANGELOG #138).

New master render (drydock.png) replaces the brand mark across all surfaces,
regenerated from the single master via scripts/regenerate-brand-assets.sh:

- App UI: in-app logo (whale-logo, drydock-logo) + favicon.ico/.svg/-96, apple-touch, PWA manifest icons
- Website (apps/web) + demo (apps/demo): favicons, PWA icons, OpenGraph cards, header logo
- README + docs: docs/assets/whale-logo.png and the dark-mode variant (derived by RGB-negate, matching the favicon.svg dark invert)

Filenames preserved in place β€” docs/assets/whale-logo.png is the Home Assistant
entity_picture URL contract (Hass.ts), renaming it broke HASS once (CHANGELOG #138).
CodesWhat org logo, selfhst/* service icons, and app screenshots intentionally untouched.
@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drydock-website Ready Ready Preview, Comment Jun 16, 2026 1:44am
drydockdemo-website Ready Ready Preview, Comment Jun 16, 2026 1:44am

@codecov

codecov Bot commented Jun 16, 2026

Copy link
Copy Markdown

Codecov Report

βœ… All modified and coverable lines are covered by tests.

πŸ“’ Thoughts on this report? Let us know!

@biggest-littlest biggest-littlest left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brand asset refresh β€” regenerated marks/favicons/PWA/OG from the new master. Filenames preserved in place, CI green. LGTM.

@ALARGECOMPANY ALARGECOMPANY left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 27 assets derived from one master via the committed regenerate script. HASS entity_picture path unchanged. Approving.

@scttbnsn scttbnsn merged commit bab63f4 into main Jun 16, 2026
24 checks passed
@scttbnsn scttbnsn deleted the brand/new-logo branch June 16, 2026 02:04
scttbnsn added a commit that referenced this pull request Jun 16, 2026
## What

drydock now renders a compact colored banner of the whale logo on
startup when attached to an interactive terminal, followed by a `drydock
v<version> Β· <mode>` identity line.

## How

- **Build-time bake.** `scripts/gen-banner.mjs` samples the master logo
(`drydock.png`) to a 50-cell-wide grid and renders each terminal row as
two pixel rows via the `β–€` half-block (upper pixel = foreground, lower =
background) using 24-bit truecolor escapes. Transparent cells become
spaces; blank top/bottom rows are trimmed. The result is baked into
`app/banner/art.ts` so **startup decodes no image** and pulls in no
image library. The generator is deterministic β€” re-running produces no
diff.
- **Render.** `renderBanner({ mode })` writes the art + identity line to
**stderr**, centering it when the terminal is wider than the banner.
- **Quiet by default where it matters.** Suppressed automatically when
the stream is not a TTY or when `NO_COLOR` is set (non-empty), so piped
output, log capture, and CI stay clean. Called from the entrypoint for
both controller and agent modes.

## Tests

- `app/banner/index.test.ts` β€” 11 cases covering TTY gating, `NO_COLOR`
(set / empty / unset), centering vs no-padding vs undefined columns, the
stderr/env fallbacks, and identity-line content for both modes.
- `app/index.test.ts` β€” asserts `renderBanner` runs with `{ mode:
'controller' }` and `{ mode: 'agent' }`.
- Full app gate green locally: 366 files / 10,875 tests, 100% coverage.

Builds on the new master logo landed in #439.
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.

3 participants