Pinned Zoom

A picture that starts as a framed card and grows to fill the screen as you scroll.

Make room for the first sip.

A cobalt ceramic cup of coffee on a brushed steel counter in morning light.

The Huila lot, poured at ninety-four degrees.

import { PinnedZoom } from '@brand-studio/ui';
import { cup } from '@/demos/assets';

export default function PinnedZoomDemo() {
  return (
    <div style={{ width: '100%' }}>
      <PinnedZoom asset={cup} title="Make room for the first sip.">
        <p style={{ margin: 0 }}>The Huila lot, poured at ninety-four degrees.</p>
      </PinnedZoom>
    </div>
  );
}

Installation

pnpm add @brand-studio/ui

Usage

import { PinnedZoom } from '@brand-studio/ui';
<PinnedZoom asset={cup} title="Make room for the first sip.">
  <p>The Huila lot, poured at ninety-four degrees.</p>
</PinnedZoom>

The title fades as the picture grows; the children appear over the full picture at the end.

Accessibility

  • The picture keeps its alt text, and the title is a real heading.
  • Before scripts run, and under reduced motion, it is the title over a full-width image.

API Reference

PropTypeDefault
assetImageAsset–
title?React.ReactNode–
children?React.ReactNode–
className?string''

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