taste-banners · git:20261030.a9b94a5 · 2026-10-30 · sha256 d1ac91df8508b2cb

taste-banners git:20261030.a9b94a5A

Immutable. This exact content never changes and is served at /api/v1/blob/d1ac91df8508b2cb.

---
name: taste-banners
description: Designs social covers, ad creatives, website heroes, email headers, Open Graph cards and print banners as export-ready HTML/SVG, always in three genuinely different art directions from one token set, with platform safe zones, crop tests and Playwright PNG export. Use for "banner", "OG image", "social cover", "LinkedIn/X/YouTube header", "Instagram post/story", "display ad", "hero image", "email header", "poster".
---

# Taste Banners: one message, three real directions

Reads `brand-guidelines.md` and `design-tokens.json` (run brand Light and tokens Minimal first if missing).

Platform sizes change. Use `references/sizes.md`, verify against the platform's current spec when web access exists, and say "unverified" otherwise.

## Procedure

1. **Brief** (6 lines, infer; ask max 2 questions): goal, platform(s), audience, the single message, one CTA, mandatory elements (logo, legal line, date, price).
2. **Three directions** from `references/directions.md`, each a different idea (not a recolor), with one line each for concept, hierarchy, color use and eye path.
3. **Compose** the largest size first using the rules below, then **reflow** (never scale) to other sizes.
4. **Build** one HTML file per direction x size: `banners/<campaign>-<direction>-<w>x<h>.html` plus `banners/index.html` preview grid.
5. **Check** safe zones, crop behaviour, contrast, file-size budget. **Export** PNG at 2x with `scripts/export-banners.mjs` where Node + Playwright exist.

## Composition rules

- Hierarchy: headline, then proof line or visual, then CTA, then logo. Max 3 text levels.
- Copy: headline at most 7 words (tiny formats 4); verb-led CTA of 2-3 words; formulas from taste-brand (PAS, BAB, 4U). Never invent statistics, testimonials or discounts (C03).
- Grid: margins at least 5% of the shorter side; align to a baseline; token spacing.
- Contrast: text 4.5:1 (3:1 for 24px+ bold); photos get a scrim (surface color at 60-80%) or a text panel.
- Type: brand fonts, 2 weights max, tighter tracking at display sizes, no text over busy image areas.
- Color: 60/30/10; the accent is for the CTA only. No default AI gradient (V01), blobs (V04) or glow (V09).
- Imagery: supplied, original or generated abstract/illustrative only; no identifiable people without rights; no third-party logos.
- Motion (HTML ads): max 15s or 3 loops, `prefers-reduced-motion` respected, final frame carries the whole message.
- Alt text for every exported image in the notes.

## Artboard pattern

```html
<section class="banner" style="width:1200px;height:630px" role="img" aria-label="<alt text>">
  <div class="bg"></div>
  <div class="content"><h1>...</h1><p>...</p><span class="cta">...</span></div>
  <svg class="logo" aria-hidden="true">...</svg>
</section>
```
Fixed pixel artboard for exact export; preview pages scale it with `transform: scale()` only.

## Quality gate

- [ ] One message, one CTA, headline within limit.
- [ ] Three distinct directions with rationale.
- [ ] Text inside safe zones; crop-tested per platform.
- [ ] Contrast verified; scrim on photos.
- [ ] Tokens only; no invented claims or third-party marks.
- [ ] Exact dimensions; within file-size budget; alt text written.