Brand
The mark uses a foreground colour and an accent for the rim. Keep its small-size constraints when changing or exporting assets.
The mark
A speaker driver seen head on: lit rim, basket, cone, dome. Four concentric circles on a 24-unit grid, drawn from the Discord avatar the project has always used. The avatar is a rendered image and cannot survive being shrunk to a tab icon; the mark is what is left when you keep only the structure that still reads at 20 pixels.
assets/brand/logo.svg is the source of truth. It uses currentColor for the
driver and --accent for the rim, with a built-in fallback palette. A page can
override those values when inlining the mark. The source includes light and
dark foreground treatments.
assets/brand/logo-specimen.svg shows it at real sizes against both
backgrounds. Look at that before changing any number in it — the strokes are
tuned so the bands stay separate at small sizes, and thickening one closes
the gap either side of it.
The basket ring (r=8.1, half opacity) is the fragile one. It is what makes
the mark read as a driver rather than a bullseye, and it is also the first
thing to disappear when the icon gets small. Below about 16 pixels it is
gone whatever you do; do not compensate by thickening it, because at 48
pixels and up that reads as a mistake.
Colours
The standalone mark uses these fallback colours. They are distinct from the
landing page palette; an inline mark can inherit the page’s color and --accent.
| role | light | dark | token |
|---|---|---|---|
| mark | #241a21 |
#f2e9ee |
--text |
| rim | #b01e66 |
#e13a86 |
--accent |
| ground | #fbf6f9 |
#171118 |
--ink |
The mark uses its accent for the rim. The landing page defines its own palette
in index.html: dark --ink: #0b0a0c, --text: #f4eff2, --accent: #ff2d7e;
light --ink: #f4f1ea, --text: #16120f, --accent: #c00040.
The mark’s accent carries the rim and nothing else. If a third colour ever seems necessary, the answer is almost always that the thing being coloured should not be in the mark.
Favicons
assets/favicon/ is generated from assets/brand/favicon-source.svg, which
is a separate file on purpose: browser chrome cannot resolve currentColor,
and a tab strip may be any shade, so the favicon carries its own colours and
sits on the dark disc the avatar always had.
Three treatments, and they are not interchangeable:
- Rounded, transparent corners —
favicon.ico(16/32/48) andfavicon-96x96.png. Shown as-is in tabs and bookmarks. - Full bleed —
apple-touch-icon.png. iOS applies its own rounded mask, so shipping our own corners would round it twice. - Full bleed, mark at 82% — the two
web-app-manifest-*files. The manifest declarespurpose: "maskable", which lets Android crop to any shape it likes; anything outside the central 80% can be cut. At full size the rim would lose its edge.