You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(brand): correct Boosty cover to 8:1 header (1920x240)
Boosty's profile header slot is 1920x240 (8:1), per Boosty creator
guides; the initial 4:1/1920x480 would have been cropped. The 240px
strip is too short to stack, so the lockup and tagline now sit side by
side, centered as a pair using the measured tagline width.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
summary: Add a Boosty profile cover to the brand generator — a wide 1920x480 green-colorway banner (MODERN/PYTHON lockup + "Open-source Python for production" tagline) as SVG + PNG in brand/org/.
2
+
summary: Add a Boosty profile cover to the brand generator — an 8:1 1920x240 green-colorway header banner (MODERN/PYTHON lockup + "Open-source Python for production" tagline, side by side) as SVG + PNG in brand/org/.
3
3
---
4
4
5
5
# Design: modern-python Boosty profile cover
@@ -8,14 +8,15 @@ summary: Add a Boosty profile cover to the brand generator — a wide 1920x480 g
8
8
9
9
Add a new **Boosty cover** output to the brand kit (`brand/build/`) that renders
10
10
a wide profile-header banner for the org's Boosty page (`boosty.to/lesnik512`).
11
-
It is the green colorway (green surface `#2f5e4a` with cream + gold-dark ink) —
12
-
the same treatment as `social-card-green` and the org avatar — so the banner
13
-
sits as one green field beside the (green) Boosty avatar. The composition is the
14
-
existing MODERN/PYTHON `lockup_body` centered above the outlined tagline
15
-
`Open-source Python for production`. Everything is drawn from existing
16
-
`geometry.py` primitives; the only new geometry is the wide-banner composition.
17
-
Outputs land in `brand/org/` as vector SVG plus a 1920×480 PNG, regenerable via
18
-
`uv run python -m brand.build.render`.
11
+
It is **8:1 at 1920×240** — Boosty's documented profile-header size. It uses the
12
+
green colorway (green surface `#2f5e4a` with cream + gold-dark ink) — the same
13
+
treatment as `social-card-green` and the org avatar — so the banner sits as one
14
+
green field beside the (green) Boosty avatar. The short strip is too shallow to
15
+
stack, so the existing MODERN/PYTHON `lockup_body` and the outlined tagline
16
+
`Open-source Python for production` sit **side by side**, centered as a pair.
17
+
Everything is drawn from existing `geometry.py` primitives; the only new geometry
18
+
is the horizontal-banner composition. Outputs land in `brand/org/` as vector SVG
19
+
plus a 1920×240 PNG, regenerable via `uv run python -m brand.build.render`.
19
20
20
21
## Motivation
21
22
@@ -42,71 +43,80 @@ interactively against a rendered draft.
42
43
### 1. Cover geometry — `brand/build/geometry.py`
43
44
44
45
Add `boosty_cover(*, bg, struct, gold)`: a complete `<svg>` (viewBox
45
-
`0 0 1920 480`) with a full-bleed `bg` rect, the `lockup_body()` lockup scaled
46
-
1.4 and centered, and the outlined tagline beneath it. It reuses `lockup_body()`
47
-
(the MODERN/PYTHON crop-mark lockup in the 540×250 space) and `outline_text()`
48
-
(the same font-outlining path the social card URL uses, so nothing depends on a
49
-
font at serve time).
46
+
`0 0 1920 240`) with a full-bleed `bg` rect, the `lockup_body()` lockup scaled
47
+
`0.9`, and the outlined tagline set to its right — the pair centered as a row.
48
+
It reuses `lockup_body()` (the MODERN/PYTHON crop-mark lockup in the 540×250
49
+
space) and `outline_text()` (the same font-outlining path the social card URL
50
+
uses, so nothing depends on a font at serve time). Because 240 px is too short
51
+
to stack the lockup over a tagline, the layout is horizontal; the tagline width
52
+
is measured (from `outline_text`'s returned advance) so the whole row centers on
0 commit comments