Skip to content

Org favicon + social card kit#17

Merged
lesnik512 merged 2 commits into
mainfrom
favicon-and-social-card
Jun 28, 2026
Merged

Org favicon + social card kit#17
lesnik512 merged 2 commits into
mainfrom
favicon-and-social-card

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Org favicon + social card

A reproducible brand kit for the org's favicon and social card, generated from a small Python toolchain. Supersedes the snake mark in #16 (the org identity was redesigned from scratch). The homepage hero and header-logo redesign are intentionally deferred.

The mark

Two interlocked "snakes" reaching the borders — each a square block head at one end and a diagonal-cut tail at the other — around a gold chevron (>), on a square full-bleed green tile. One mark at every size.

avatar

Deliverables (brand/org/)

  • Faviconfavicon.svg + favicon-16/32/48.png, apple-touch-icon.svg + apple-touch-icon-180.png
  • Avataravatar.svg + avatar-1024.png (GitHub, square), and a padded avatar-circle.svg + avatar-circle-1024.png for platforms that crop to a circle (Telegram)
  • Social cardMODERN / PYTHON Jost lockup framed by the snakes: social-card.{svg,png} (cream, primary) + social-card-green.{svg,png}, 1280×640 og:image, and 640×640 squares

How it's built

  • brand/build/: tokens.py (green/cream/gold palette), text.py (a fonttools Jost outliner — the wordmark ships as SVG paths, so assets render with no font installed), geometry.py (SVG builders), render.py (writes SVG + rasterizes PNG via rsvg-convert, skipped gracefully if absent). Regenerate: uv run python -m brand.build.render.
  • Jost (SIL OFL) is vendored with its license; outlined glyphs are unencumbered.
  • No CSS variables in emitted SVGs — concrete colors so non-browser rasterizers render correctly.

Site

  • Favicon swapped to the new mark; og:image set to the 1280×640 card (mkdocs.yml / overrides/main.html). Homepage hero + header logo left as-is (deferred).

Verification

  • uv run pytest -q → 14 passed
  • uvx ty check brand tests → clean
  • uv run mkdocs build --strict → clean
  • Favicon, avatar (square + circle-crop), and both social cards visually verified.

🤖 Generated with Claude Code

lesnik512 and others added 2 commits June 28, 2026 20:20
A deterministic brand toolchain (brand/build/) generating the org favicon,
GitHub/Telegram avatars, and og:image social cards from the approved
two-snakes + chevron mark and a Jost wordmark lockup, plus site wiring.

- brand/build/: green/cream/gold tokens; a fonttools Jost outliner (wordmark
  rendered as SVG paths, no font dependency at view time); geometry builders;
  a renderer emitting SVG + rsvg-rasterized PNG (PNGs skipped if rsvg absent).
- Icon: border-reaching snakes (square block head + diagonal-cut tail) around a
  gold chevron, square full-bleed; one mark for favicon / apple-touch / avatar,
  plus a padded avatar-circle for circular crops (Telegram).
- Social card: MODERN / PYTHON Jost lockup framed by the snakes; cream (primary)
  and green, 1280x640 og:image and a 640x640 square.
- Site: new favicon + og:image (1280x640) wired into mkdocs/overrides.

Design spec and plan under docs/superpowers/. Supersedes the snake mark in PR #16;
the homepage hero and header logo redesign are deferred.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The seam-overlap fix moved the tail's inner vertex into the stroke, stepping
the body's inner edge. Use a 4-point tail that overlaps the stroke for the
seam but starts the inner diagonal at the body's inner corner, so the inner
line runs straight into the tail. Applies to icon and lockup tails.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lesnik512
lesnik512 merged commit 0ca10ce into main Jun 28, 2026
@lesnik512
lesnik512 deleted the favicon-and-social-card branch June 28, 2026 17:45
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.

1 participant