RelayCTX Creative brandassetsREADME.md
RelayCTX Creative · Document

RelayCTX™ brand assets — pack v3.5.3

1,331 words · 6 min View raw Source History

RelayCTX™ brand assets — pack v3.5.3

Canon for web, product, and marketing. These are the approved, version-controlled brand assets. If an implementation and this folder disagree, this folder wins — alongside brand/relay-tokens-v35.css and brand/relay-brand-guide.html.

Design system: v3.5 (neutral-first) · Legal entity: Relay Context Inc.™ Pack version: 3.5.3 · Updated 2026-08-28

Everyday files, colours, and rules on one screen: brand/cheat-sheet.html (linked from the repo index).


Pick the right file

NeedUseNotes
Web / app UIbrand/relay-lockup.html component — not a file hereInline SVG + currentColor. The canonical on-screen lockup.
Design tools, decks, print, PDFs, non-webrelay-lockup.svgHorizontal. Theme-adaptive (light/dark). Default choice.
Square / centred / social layoutsrelay-lockup-stacked.svgMark above wordmark.
One-colour print, embroidery, etch, stampsrelay-lockup-mono.svgEverything in currentColor; set color, defaults #111111.
On the teal fill, dark, or photographyrelay-lockup-on-accent.svgWhite knockout. Only where white holds WCAG AA.
og:image / twitter:imagerelay-social-og.svg1200×630. Export to PNG.
Social profile / avatar — feed-sizedrelay-avatar.svg512×512 accent tile, mark only. The default: the only form that holds at the 32–48px a feed renders.
Social profile / avatar — header-sizedrelay-avatar-lockup.svg512×512 accent tile, mark + wordmark, carries the ™. Circle-safe. Readable at 96px+, marginal at 48, gone at 32 — use where the platform shows the avatar large. -dark / -light grounds alongside.
Mark alone, one-ink / "black" slotsrelay-mark-mono.svgcurrentColor, defaults brand ink #111111. Platform slots that force a dark mono mark.
Mark alone, on teal / dark / photorelay-mark-white.svgSolid #ffffff knockout. Only where white holds WCAG AA.
Anything that can't read SVGpng/Transparent PNG exports of everything above, plus the marks — see the size matrix below.

The canonical teal mark is not duplicated here — one source of truth lives one level up: brand/relay-mark.svg (full, ≥28px), relay-mark-compact.svg (16–27px), relay-mark-core.svg (≤15px), relay-mark-animated.svg, favicon.svg, app-icon-light.svg / app-icon-teal.svg. The pack carries only the mark's one-ink and white portable exports (relay-mark-mono.svg, relay-mark-white.svg), which restate its geometry the same way the lockup files do.


Rules that travel with these files

Web and app surfaces use the inline component, not these SVGs. These files are for contexts that cannot inline SVG or resolve CSS tokens. On the web the mark must inherit currentColor so it adapts with theme.

Trademark (™). RelayCTX™ and Relay Context Inc.™ carry a ™ — never ®. It is Outfit upright (never the Cormorant italic), superscript ~0.42em, tracking reset to 0, and it inherits the wordmark colour — never teal. Placement is primary / first-use only: the lockup and the first prominent wordmark on a surface. Nav, body, compact, and repeated wordmarks stay bare RelayCTX.

Colour. Mark #0d9488 light / #2dd4bf dark (rly-accent-ui). Wordmark #111111 light / #ededed dark. Mark and wordmark are different colours by design — never recolour either independently, and never make the wordmark teal (it is not a touch point).

#00D9C8 is motion-only. It appears in no static asset here. Do not introduce it.

Flat. No shadows, gradients, or glows. No container or box around the mark on web/app — the avatar and app-icon tiles are the only permitted containers, because the platform demands one.

Clear space. One mark-height on all four sides of the lockup.

Lockup gap. The space between mark and wordmark is ~0.25 of the mark's inked width (measured ink-to-ink, not bounding box — the mark's 55%-opacity diagonals read lighter than its box, so a box-measured gap looks too airy). Vertical gap on the stacked lockup follows the same ratio. Never re-space, re-weight, or recolour the mark and wordmark independently — they scale as one object.


Fonts

The wordmark is live text (Outfit 600, −0.02em) in these SVGs, not outlines — so it stays editable and correct wherever Outfit is available.

For print or handoff to a party without Outfit installed, outline the text first. Otherwise it falls back to a system sans and the wordmark will not be correct.


PNG exports — png/

SVG is the source of truth; rasterise from it rather than editing PNGs. The whole folder regenerates with one command from the repo root:

python3 scripts/export_brand_png.py

The script drives headless Chromium (real text shaping — the live-text Outfit wordmark rasterises at true SemiBold with its −0.02em tracking) and requires the Outfit family installed system-wide; it refuses to run without it so a fallback face can never ship. Do not export with cairosvg — its toy font API silently substitutes the wrong weight and drops the tracking.

Every export has a transparent background except the avatar tile, OG card, and app-icon tiles, which are filled by design. Theme-adaptive files bake at their light-mode colours.

SetFilesSizes
Lockup, horizontalrelay-lockup@1x/@2x/@3x/@4x.png204 / 408 / 612 / 816 wide
Lockup, stackedrelay-lockup-stacked@1x/@2x/@3x.png168 / 336 / 504 wide
Lockup, one ink ("black")relay-lockup-mono@1x/@2x/@3x.png204 / 408 / 612 wide
Lockup, white knockoutrelay-lockup-on-accent@1x/@2x/@3x.png204 / 408 / 612 wide
Mark, spec tealrelay-mark-128/256/512/1024.png128–1024 square
Mark, one ink ("black")relay-mark-mono-512/1024.png512 / 1024 square
Mark, white knockoutrelay-mark-white-512/1024.png512 / 1024 square
Mark, compact + corerelay-mark-compact-48.png · relay-mark-core-32.png2× nominal size
Avatar tile — mark onlyrelay-avatar-400/512/1024.png400 for X/LinkedIn crops
Avatar tile — lockuprelay-avatar-lockup-400/512/1024.png · -dark- · -light-Mark + wordmark, circle-safe
OG cardrelay-social-og.png1200×630
App iconsapp-icon-teal-512/1024.png · app-icon-light-512/1024.png1024 for stores
Favicon fallbacksfavicon-32/64.pngSVG favicon is primary

Versioning

Assets are versioned with the design system. Pack version is stamped in every file header and in this README.

PackDesign systemChange
3.5.3v3.5 neutral-firstAdds the lockup avatar (relay-avatar-lockup.svg + -dark / -light): a 1:1 social tile carrying mark and wordmark, with the ™ — correct here because it has a wordmark to carry it, unlike the mark-only tile. Geometry is circle-safe (X/Bluesky/Mastodon round crops clip nothing) and the stacked gap follows the 0.25 × mark-ink rule. Corrects a claim in this README: "the wordmark won't survive avatar crops" was absolute; measured under real circle crops it is size-dependent — comfortable at 96px+, marginal at 48, unreadable at 32. Both tiles now ship, with the size rule stated on each. No colour change.
3.5.2v3.5 neutral-firstMark ink-variant exports added (relay-mark-mono.svg, relay-mark-white.svg). Full transparent-PNG matrix: marks 128–1024 (teal/mono/white), lockups @1x–@4x in all four treatments, avatar + app icons to 1024, favicon-32. All PNGs regenerated through one pipeline (scripts/export_brand_png.py, headless Chromium). relay-lockup-stacked@2x.png was native-size (168w) in 3.5.1 and is now a true 2× (336w) — re-pull if you vendored it. Colours unchanged.
3.5.1v3.5 neutral-firstTightened the lockup mark-to-wordmark gap to ~0.25 of the mark's ink width (horizontal, stacked, mono, on-accent, OG card). Documented the gap rule. Geometry change — re-pull if you vendored 3.5.0.
3.5.0v3.5 neutral-firstFirst packaged asset set. Adds portable lockup SVGs (horizontal, stacked, mono, on-accent), social OG card, avatar tile. Carries the ™ treatment.

Bump the pack version whenever a file in this folder changes shape or colour; note it in the table above. Do not edit an asset in place without a version note — downstream teams pin to these files.


Reporting a problem

If an asset renders wrong, do not patch it locally in a project — that fragments canon. Raise it against relay-creative so the fix lands here and propagates.