site/deviant/brand
Local Dev e82db4c653 site: fix homepage product count, drop stray brand-page copy, add GOTCHAS
- index.html said 'five products' / 'all five' while listing seven cards
- deviant/brand/social/index.html was a copy of brand/index.html with every
  relative link broken (assets live one level up); never deployed, removed
- GOTCHAS.md: never rsync --delete site/ to the VPS (deviant/ there is owned
  by D:/Dev/Deviant/site), manifest lives in three places, archive script

Also shipped to VPS this session (no source change): releases-manifest.json
under /opt/silent-mode/site/ was stuck at 0.3.3 since 0.3.4; now 0.3.16.
2026-09-07 21:06:25 +02:00
..
icon Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail 2026-08-30 10:38:49 +02:00
logo Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail 2026-08-30 10:38:49 +02:00
social site: fix homepage product count, drop stray brand-page copy, add GOTCHAS 2026-09-07 21:06:25 +02:00
source Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail 2026-08-30 10:38:49 +02:00
index.html site: add favicon link to every silentmode.st HTML page 2026-08-31 21:43:25 +02:00
palette.md Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail 2026-08-30 10:38:49 +02:00
README.md Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail 2026-08-30 10:38:49 +02:00

Deviant — Brand assets

Canonical brand assets for the Deviant project. Source of truth for logos, icons, and social-media cards. All primary assets are SVG (resolution-independent, editable in code); PNG exports live under source/exports/ when tooling generates them.

Contents

Path Purpose
palette.md Color tokens + typography, extracted from the landing page CSS
logo/ Wordmarks and combination marks
icon/ App icons, favicons, the D-mark alone
social/ Open Graph, Twitter card, avatar
source/ Editable working files, exports, raw art

Voice — one paragraph

Deviant exists to enable resistance — by giving users on-chain experience that intermediation cannot mediate.

Tagline (short): Power Your Ideas. Tagline (subline): A response to a default trajectory.

The mark

The Deviant mark is a stylized "D" as an orbital crescent on a starfield, with a single acid-yellow dot orbiting the outer ring. It reads two ways:

  • Letterform: D for Deviant.
  • Astronomical: a partial planetary disc with a satellite — the "deviation from the default trajectory" imagery encoded in the logo itself.

Never redraw the orbital dot inside the ring, never tint it any other color — the acid yellow (--acid) is the load-bearing accent across the whole system.

Themes

Both themes ship — the landing page respects data-theme="editorial" in localStorage; assets should exist for both:

  • signal (default): starfield ink on cool deep-space blue. Acid #d6ff3d.
  • editorial: near-monochrome charcoal, more graphic. Acid #c6ff00.

See palette.md for exact values.

What to use where

Surface Asset Size
Browser tab / OS icon icon/favicon.svg, icon/icon-512.svg 64 / 512
App shell splash icon/icon-512.svg 512 (matches shells/app/public/icon.svg)
Website header, README logo/deviant-wordmark.svg 720×180
Print / dark surfaces logo/deviant-mark.svg 256×256, no background
Print / light surfaces logo/deviant-mark-onlight.svg 256×256, inverted
Open Graph (Facebook, LinkedIn, Slack unfurls) social/og-1200x630.svg 1200×630
Twitter/X post card (summary_large_image) social/twitter-card-1200x675.svg 1200×675 (16:9, current spec)
Twitter/X header (profile banner) social/twitter-header-1500x500.svg 1500×500 (3:1, with profile-photo safe zone)
Facebook page cover social/facebook-cover-820x312.svg 820×312 desktop / 640×360 mobile-safe
LinkedIn company banner social/linkedin-banner-1584x396.svg 1584×396 (with profile-photo safe zone)
Instagram feed post social/instagram-square-1080x1080.svg 1080×1080 (also works for Discord/Threads)
Social avatar (X, GitHub, Discord, LinkedIn) social/avatar-400x400.svg 400×400, round-crop-safe

Fonts

Every SVG with text loads the website's own faces (Fraunces + DM Sans + JetBrains Mono) via a <style>@import url(fonts.googleapis.com/...)</style> block inside the SVG. That means:

  • In a browser (opening the SVG directly, or embedding via <img>) the Google fonts fetch and render — same as the website.
  • In rsvg-convert / most SVG-to-PNG renderers the @import is IGNORED (they don't fetch remote CSS) and the fallback stack applies: Georgia for display, system sans for body. If pixel-perfect PNG exports matter, either install Fraunces + DM Sans locally on the export machine, or export from a browser screenshot instead (see source/README.md).

The <style> block never breaks anything — it degrades to the fallback stack.

PNG exports

SVGs are the source. When a platform demands PNG:

# One-off — needs rsvg-convert (fonts fall back) or a headless browser (fonts real)
rsvg-convert -w 1200 -h 630 brand/social/og-1200x630.svg -o brand/source/exports/og-1200x630.png

Do not check in PNGs unless a specific delivery pipeline requires them — source/exports/ is .gitignore-friendly for that reason.

Do

  • Keep the acid dot outside the ring (upper-right, ~2 o'clock).
  • Use Fraunces for display type, DM Sans for body, JetBrains Mono or DM Mono for code / addresses / hashes.
  • Preserve the black-with-starfield background on dark surfaces; the mark is designed for it.

Don't

  • Don't recolor the acid dot — that yellow-green is the brand.
  • Don't add glow to the wordmark; the glow lives only on the orbital dot.
  • Don't tighten the letterspacing of "Deviant" below 0.02em; the wordmark breathes.
  • Don't put the wordmark on the acid color as a background.