Add the vector mark, its pride variant and their animated loops to assets/brand #1218

Closed
opened 2026-11-05 20:07:28 +00:00 by tiagoagueda · 0 comments
Owner

The mark exists only as a raster, assets/brand/postulo.png (1024 px), which scripts/brand.py turns into every served icon. A vector redraw of it now exists, with a pride variant and two looping animations of each.

What to add

Beside the raster, in assets/brand/:

  • postulo.svg: the mark redrawn as vectors. It has seven paper sheets as Bézier paths, one gradient each sampled from the raster, and per-sheet shadow filters matched to the raster's shadows.
  • postulo_pride.svg: the same shapes in the six pride colours (red to purple), with softer shadows.
  • postulo_swell.svg, postulo_pride_swell.svg: an 8 s loop in which a slow wave bends the edges between sheets while the outline and the counter stay still.
  • postulo_drift.svg, postulo_pride_drift.svg: an 8 s loop in which each sheet's light turns ±22° and back.

Every loop starts and ends on the static mark. The animation is SMIL, so it plays in browsers, including as an <img>.

What does not change

  • assets/brand/postulo.png stays the source of the derived icons. brand.py, brand.json and everything in static/brand/ are untouched.
  • Nothing serves the SVGs yet. Using them anywhere (header, login, docs) is a later decision. Wherever an animated one is used, people who ask for reduced motion get the static file.

Done when

  • The six files are in assets/brand/, each under the repository's 500 KB limit, pure vectors (no embedded raster, no scripts, no external references).
  • A test holds them to that.
  • CONTRIBUTING's The mark names them.

🤖 Generated with Claude Code

The mark exists only as a raster, `assets/brand/postulo.png` (1024 px), which `scripts/brand.py` turns into every served icon. A vector redraw of it now exists, with a pride variant and two looping animations of each. ## What to add Beside the raster, in `assets/brand/`: - `postulo.svg`: the mark redrawn as vectors. It has seven paper sheets as Bézier paths, one gradient each sampled from the raster, and per-sheet shadow filters matched to the raster's shadows. - `postulo_pride.svg`: the same shapes in the six pride colours (red to purple), with softer shadows. - `postulo_swell.svg`, `postulo_pride_swell.svg`: an 8 s loop in which a slow wave bends the edges between sheets while the outline and the counter stay still. - `postulo_drift.svg`, `postulo_pride_drift.svg`: an 8 s loop in which each sheet's light turns ±22° and back. Every loop starts and ends on the static mark. The animation is SMIL, so it plays in browsers, including as an `<img>`. ## What does not change - `assets/brand/postulo.png` stays the source of the derived icons. `brand.py`, `brand.json` and everything in `static/brand/` are untouched. - Nothing serves the SVGs yet. Using them anywhere (header, login, docs) is a later decision. Wherever an animated one is used, people who ask for reduced motion get the static file. ## Done when - The six files are in `assets/brand/`, each under the repository's 500 KB limit, pure vectors (no embedded raster, no scripts, no external references). - A test holds them to that. - CONTRIBUTING's *The mark* names them. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1218
No description provided.