Coach Stories
Story card
The unit of the hub. Image first, then category, title and a three-line excerpt. The whole card is one link; a text card also carries its CTA.
components/coach/story-card.tsx
Examples

Runway
The Fall 2026 Runway Collection
Soft shapes, hard shine. Metallic outerwear meets suede bags made to be carried every day, and the details that made the show are the ones you can take home.

Guides
How to Style Bags with Chain Accents
A chain strap changes how a bag sits and how it catches the light. Three ways to wear one, from a short shoulder drop to a long crossbody, and what to wear with each.
Press
Coach is serving up coffee with handbags as it looks to build on Gen Z success
Part café, part store, and built on a simple idea: give people a reason to stay. How Coach is meeting a younger audience where it already spends its time, and why the bag is still the point.
Continue reading
Guides
The Best Top-Handle Bags

Press
What World Cup? Zendaya Is Team 'Spider-Man' in Coach's Take On the Sports Jersey Trend
The jersey has left the stands. How the season's most talked-about looks put a number on it, and the quilted bag that finishes them.
Anatomy
- 01Story image
- 02Eyebrow, 14px below
- 03Title, 53 Extended 15px
- 04Excerpt, Helvetica 12px, graphite, three lines
- 05CTA, text cards only
Usage
import { StoryCard } from "@/components/coach/story-card";
<StoryCard story={story} aspect="portrait" sizes="(min-width: 1024px) 20vw, 50vw" />
<StoryCard story={story} aspect="text" /> // ruled, no image
<StoryCard story={story} aspect="landscape" size="large" /> // spans two columnsProps
| Prop | Type | Default | Description |
|---|---|---|---|
| story* | Story | — | From lib/content: category, title, excerpt, href, image, cta. |
| aspect | "portrait" | "landscape" | "wide" | "text" | "portrait" | The image crop, or text for a ruled card with no image. |
| size | "default" | "large" | "default" | Large for cards that span two columns; the text column narrows to 75%. |
| excerpt | "always" | "desktop" | "never" | "desktop" | Excerpts show from desktop up; mobile cards are image, eyebrow and title. |
| sizes | string | "(min-width: 1024px) 22vw, 50vw" | Passed to the image. |
| priority | boolean | — | For the first row. |
| className | string | — | Merged last, so it can override layout. Keep brand styling in the component. |
Guidance
Do
- Let the title wrap to three or four lines; it is set to balance.
- Use text cards to break up a row of pictures.
Don't
- Put two text cards in one row.
- Add a date or reading time. The hub is not a feed.