---
name: competitor-brief-page
description: "Design and build stunning competitor brand analysis pages — a brief view (visual mosaic gallery with expandable sections) that links to a full deep-dive page. Use when building competitor analysis pages, brand brief pages, competitive intelligence documents, brand research pages, or any visual brand comparison for client deliverables. Produces two connected pages per brand: brief.html (fast visual scan) and index.html (full deep-dive). Works for any brand, any client. Triggers on competitor brief, brand brief page, build the brief, competitor page, brand analysis page, competition page."
---

# Competitor Brief Page

Builds two connected HTML pages per competitor brand:
- **`brief.html`** — editorial brief view: split hero + TL;DR strip + mosaic gallery of expandable section cards
- **`index.html`** — full deep-dive: the complete brand analysis (existing long-form format)

## Assets

- `assets/brief-page.css` — shared stylesheet. Copy to your project's shared assets folder.
- `assets/brief-template.html` — blank template with inline instructions and placeholders.

## Quick Start

```
1. Copy assets/brief-page.css → public/[project]/assets/brief-page.css
2. Copy assets/brief-template.html → public/[project]/[brand]/brief.html
3. Set CSS vars on <body>:  --brand-primary, --brand-dark, --bg
4. Run the image audit (see references/image-assignment.md)
5. Fill 13 sections with content + images
6. Quality gate (see below)
```

## Page Architecture

### Split Hero
Two panels, always:
- **Left** (`.hero-brand`): Brand name, one-line brand statement, 3 key stats. Uses CSS custom properties — never fails even with no assets.
- **Right** (`.hero-photo`): Brand identity image OR brand primary color + wordmark. **Never campaign photography.** Campaign images (celebrity shoots, seasonal ads, specific moments) belong on the Campaigns card.

**Hero image rules:**
- ✅ Logo/wordmark on brand color — always safe, always brand
- ✅ Core product/artifact (the thing the brand IS — e.g., Cash App Card)
- ✅ Brand visual system spread (guidelines page, design system overview)
- ❌ Celebrity campaign shoots — move to §11 Campaigns
- ❌ Seasonal/event-specific ads
- ❌ Images with baked-in rounded corners (device screenshots, web captures)

### Mosaic Columns
Two independent flex columns, `align-items: flex-start`, gap 16px. Cards have intentional heights creating visual rhythm — not a uniform grid.

**Left col arc** (creative/identity): Positioning → Brand Evolution → Color+Type → Campaigns → Quick Facts
**Right col arc** (analytical): Personality → Layout+UX → Social → Assessment → Verdict → Audience → vs Client

### TL;DR Strip
5 stats + 1 strategic call. The strategic call is the most important line on the page — what the client should DO with this intelligence.

## The 13 Canonical Sections

| § | Section | Card image type | Notes |
|---|---------|----------------|-------|
| 01 | Quick Facts | Product/press identity | Bottom of left col — reference, not story opener |
| 02 | Positioning | Cultural/lifestyle | Opens left col LARGE. Shows brand's world, not ad |
| 03 | Brand Evolution | Timeline spread/overview | Natural ratio — panoramic works great |
| 04–05 | Color & Typography | Brand pillars / type system | 3 sub-sections required: Logo + Color + Type |
| 06 | Layout & UX | Website homepage screenshot | Natural ratio. Expanded = full-bleed product screens |
| 07 | Assessment | Design principles / strategy visual | Strengths + Vulnerabilities grid |
| 08 | Verdict | Iconic brand object | Borrow / Watch / Reject framework |
| 09 | Personality | Brand world / lifestyle objects | Brand archetype + tone |
| 10 | Social | Social-native, viral content | Must reflect actual platform strategy |
| 11 | Campaigns | Cinematic campaign hero | Left col visual anchor — largest campaign image |
| 12 | Audience | Documentary / lifestyle | Age, geography, retention driver |
| 13 | vs [Client] | Campaign or cultural image | Comparison table + strategic call |

**Full-width below mosaic:** Brand in Practice — 12+ unique images, never duplicating images used in section cards.

## Per-Brand Theming (CSS Custom Properties)

Set on `<body>` in inline `<style>`:
```css
:root {
  --brand-primary: #00D54B;   /* primary brand color */
  --brand-dark:    #111111;   /* dark/background color */
  --bg:            #f2f2f2;   /* page background */
}
```

That's the entire customization needed. Everything else inherits.

## Image System

See `references/image-assignment.md` for the complete image audit protocol and section-to-image mapping.

**Four-tier fallback (never show a bad image):**
| Tier | Class | When to use |
|------|-------|-------------|
| 1 | `.m-img` | Real agency/brand photography — always preferred |
| 2 | `.m-img` | Product screenshots (clean, no device borders) |
| 3 | `.m-img.fallback.color` | Brand primary color fill + section label — confident color beats mediocre crop |
| 4 | `.m-img.fallback` | Dark fill + ghost section number — last resort |

**The rule:** A confident color field always beats a mediocre crop. Never show a bad image just because you have one.

**Natural ratio class:**
```html
<div class="m-img natural">  <!-- shows at native aspect ratio, no forced crop -->
<div class="m-img natural portrait">  <!-- natural but capped at max-height: 400px -->
```

Use `.natural` for: agency spreads, panoramas, website screenshots, typography specimens, design system overviews.
Do NOT use `.natural` for: portrait photos of people (use fixed height + object-position), social screenshots.

**Banned image types for card thumbnails:**
- Images with baked-in rounded corners (web/device screenshots with hardware rounding)
- Low-res screenshots below 800px wide
- Images where the subject is cut off or unrecognizable at card width

## Color & Typography Card — Required Sub-sections

The §04–05 Color+Type card MUST contain three sub-sections when expanded:

1. **Logo** — wordmark on brand color + logo construction/spacing guidelines image
2. **Color Palette** — CSS swatches (`.swatches` > `.sw`) with hex values
3. **Typography** — type specimen image (glyph set, weights, or typeface in use) + 1 sentence description

Missing any of these makes the expanded card feel incomplete.

## Layout & UX Expanded — Full-Bleed Images

The Layout & UX card exists to showcase product design. When expanded:
- Images must be **full-bleed** (margin: 0 -20px to break out of content padding)
- Show at **natural ratio** — no forced crop on product screens
- Minimum 3 screens: homepage/landing → core product UI → secondary feature
- Never use small image grids with forced crops inside expanded content

```html
<div style="margin: 16px -20px 0; display:grid; grid-template-columns: 1fr 1fr; gap: 2px;">
  <img src="..." style="width:100%; height:auto; display:block;">
  <img src="..." style="width:100%; height:auto; display:block;">
</div>
<div style="margin: 2px -20px 0;">
  <img src="..." style="width:100%; height:auto; display:block;">
</div>
```

## Brand in Practice — Uniqueness Rule

The full-width Brand in Practice section at the bottom must use **images not used anywhere else on the page**. It should feel like the brand's full visual library — not a repeat of card images.

Target: 12–16 images. Three preview images visible, 9+ more in expanded grid (aspect-ratio: 1, object-fit: cover).

Good sources for unique BIP images (not duplicating card images):
- Alternate agency deliverables
- 3D brand objects
- Custom product variants (limited editions, collabs)
- Motion/animation stills
- Illustration system samples
- Brand guidelines spreads

## Quality Gate — Before Marking Done

Run through this checklist:

- [ ] Split hero: left = brand statement, right = brand identity (not campaign)
- [ ] All images exist (check for 404s — `grep "src=" brief.html | sed 's/.*src="\([^"]*\)".*/\1/' | while read f; do [ -f "$(dirname brief.html)/$f" ] || echo "MISSING: $f"; done`)
- [ ] No images with baked-in rounded corners visible
- [ ] No `border-radius` on any card or image (`border-radius: 0 !important` is set in brief-page.css)
- [ ] Social card: shows social-native content, not a bad crop of a portrait shot
- [ ] Color+Type card: has Logo + Color + Type sub-sections
- [ ] Layout+UX expanded: full-bleed images, natural ratio, 3+ screens
- [ ] Brand in Practice: 12+ unique images, zero duplication with card images
- [ ] TL;DR strategic call is sharp — "borrow / watch / reject" framing
- [ ] Fallback classes used for missing sections (never leave empty card image)
- [ ] CSS custom properties set correctly on `<body>`
- [ ] Link to full deep-dive page works (`<a href="index.html">`)

## Connecting to the Deep-Dive Page

`brief.html` is the entry point. Every Verdict card and the page footer link to `index.html` (the full analysis). The brief is a visual menu — each expanded section is a teaser that makes the reader want to go deeper.

Keep the link visible and titled clearly:
```html
<a href="index.html" class="full-link">Read full analysis →</a>
```

See `references/deep-dive-design.md` for deep-dive page design principles.
