Files
NestQuest/design/logos/BRAND-ICONS.md
T
dev_agentandClaude Opus 5.5 e145fdf1bb Ship the NestQuest brand images in the integration's brand directory (task ac84fa96)
Home Assistant 2026.3+ serves custom_components/<domain>/brand/ ahead of the
brands CDN, so generate icon/logo PNGs (256 and 512, RGBA) into
custom_components/nestquest/brand/, which HACS installs with the integration.
Move the generator to design/logos/, add a --check mode, and drop the
obsolete brands-repository staging folder. Add tests that the four images
exist with the right size and reproduce byte-identically. Rewrite the note
to describe the local brand directory and the unverified HACS store card
caveat.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:42:58 -04:00

2.1 KiB
Raw Blame History

NestQuest brand icons in Home Assistant

Where the icon comes from

Since Home Assistant 2026.3, a custom integration can ship its own brand images in custom_components/<domain>/brand/, and Home Assistant serves them ahead of the brands CDN (brands.home-assistant.io). NestQuest ships:

File Size
custom_components/nestquest/brand/icon.png 256×256
custom_components/nestquest/brand/icon@2x.png 512×512
custom_components/nestquest/brand/logo.png 256×256
custom_components/nestquest/brand/logo@2x.png 512×512

HACS installs the whole custom_components/nestquest/ directory, so these images arrive with the integration. On Home Assistant 2026.3 or newer they appear on the integrations page and the integration tile, through Home Assistant's brand endpoint. Older Home Assistant versions ignore the directory and show the generic placeholder icon.

The custom_integrations folder of the home-assistant/brands repository is legacy for this purpose; NestQuest does not depend on it.

Known caveat: the HACS store card

The HACS store card (the repository listing inside HACS, shown before and after installing) is rendered by HACS itself, not by the integration. It may still take its image from the brands CDN or fall back to the avatar of the repository owner (the Maniacs-Mansion organization). Whether HACS reads the local brand/ directory for that card has not been verified, so that icon may stay generic. The repository page inside HACS shows the README, which embeds the logo from design/logos/NestQuest-NoBG.png.

Regenerating

The PNGs are generated offline and deterministically (pure Node, zlib only) from design/logos/NestQuest-NoBG.png, box-filter downscaled with transparency kept. From the repository root:

node design/logos/generate-brand-icons.mjs          # write the four PNGs
node design/logos/generate-brand-icons.mjs --check  # exit 1 if any drifted

tests/test_brand_icons.py runs the --check and asserts the four files exist with the expected sizes, so a missing or hand-edited image fails the test suite.