01
Canvas is always navy
Every course/lesson/social image sits on --color-brand-900 (#001a3e) — never a photo background, never a gradient. This is the single strongest brand cue across the platform.
02
One hairline grid pattern, low opacity
Pick one of the 9 background patterns (grid, dots, diagonal…) from Brand → 9 Background Patterns at 6–10% white opacity, masked to fade toward the edges. Never two patterns on one image.
03
Mono kicker, top-left, always
A // LABEL style eyebrow in Roboto Mono, uppercase, brand-300, top-left corner. Course thumbnail: category. Lesson thumbnail: parent course name.
04
One accent line, top edge, brand-500
A 3–4px solid brand-500 bar along the top edge only — the single saturated color permitted per Principle 3 (One Signal Color). Never a border on other edges.
05
Title: Inter Bold, sharp, left-aligned
36–56px depending on canvas, tight leading, max 2 lines. Never centered, never a script/serif font.
06
Lesson = Course + a mono index badge
A lesson thumbnail reuses its course's exact frame (same pattern, same kicker) plus a large mono index number badge (01, 02…) bottom-right — so a whole course's lessons visually belong together at a glance.
07
Meta row: mono, bottom, hairline-divided
Duration / level / lesson count sits bottom-left in mono 11–12px, separated from title by a hairline, never icons-only.
08
Sharp corners, no drop shadows
0–4px radius max on the canvas itself; per Principle 4 (Sharp Geometry, Rounded Rest) these are structural surfaces, not soft cards.
09
Every asset ships dark AND light
Same layout, same copy — light swaps navy for white and inverts pattern/text opacity. Never mix themes within one asset.
10
Vary the pattern, not the system
Each thumbnail type gets a different one of the 9 background patterns (grid, dots, diagonal, concentric, blueprint, chevron-grid…) so a feed of thumbnails reads as a family, not identical clones.
11
Icons: Phosphor only, never emoji
Use the ph ph-* glyphs already shipped in this system (play, clock, books, shield-check, code, lightning…) inline with mono text in kickers, meta rows, and CTAs. No emoji, no hand-drawn icons, ever.