Story Hero

The opening frame of a page: headline, promise, action and image.

Still Coffee

Make room for the first sip.

Still is a fictional coffee brand from the Brand Studio showcase.

A cobalt ceramic cup of coffee on a brushed steel counter in morning light.
import { ActionLink, StoryHero } from '@brand-studio/ui';
import { cup } from '@/demos/assets';

export default function StoryHeroDemo() {
  return (
    <StoryHero
      eyebrow="Still Coffee"
      title="Make room for the first sip."
      description="Still is a fictional coffee brand from the Brand Studio showcase."
      asset={cup}
      action={<ActionLink href="#menu">See the menu</ActionLink>}
    />
  );
}

Installation

pnpm add @brand-studio/ui

Usage

import { StoryHero } from '@brand-studio/ui';
<StoryHero
  title="Make room for the first sip."
  description="…"
  asset={cup}
  action={<ActionLink href="/menu">See the menu</ActionLink>}
/>

Examples

Overlay

The copy sits on a scrim that stays readable before the image loads.

Give it a moment.

The copy sits on a scrim, so it stays readable before the image loads.

A slender stream of coffee pours into the cobalt cup.
import { ActionLink, StoryHero } from '@brand-studio/ui';
import { pour } from '@/demos/assets';

export default function StoryHeroOverlay() {
  return (
    <StoryHero
      variant="overlay"
      title="Give it a moment."
      description="The copy sits on a scrim, so it stays readable before the image loads."
      asset={pour}
      action={<ActionLink href="#visit" tone="inverse">Plan a visit</ActionLink>}
    />
  );
}

Accessibility

  • Renders the page <h1>. Use one StoryHero per page.
  • The image loads with high priority.

API Reference

PropTypeDefault
titleReact.ReactNode
descriptionstring
assetImageAsset
actionReact.ReactNode
eyebrow?string
id?string
variant?"overlay" | "split"'split'

Still, Deskhand and Hollis are fictional brands. The coffee photographs are original generated artwork. @brand-studio/ui is MIT licensed.