Ring Gallery

Images on a 3D ring you spin by dragging. It settles with one image facing you.

  • The Halden R camera from three quarters, lens forward.

1 / 8

import { RingGallery } from '@brand-studio/ui';
import { cameraViews } from '@/demos/assets';

export default function RingGalleryDemo() {
  return (
    <div style={{ width: '100%' }}>
      <RingGallery label="Halden R, every angle" images={[...cameraViews, ...cameraViews.slice(0, 2)]} />
    </div>
  );
}

Installation

pnpm add @brand-studio/ui

Usage

import { RingGallery } from '@brand-studio/ui';
<RingGallery label="Every angle" images={images} />

Accessibility

  • The ring is a labelled carousel; only the image facing you is exposed to screen readers.
  • Previous and next buttons and arrow keys turn it one image at a time, and the counter is announced.
  • Dragging spins sideways only, so the page still scrolls on touch.
  • With reduced motion it turns without gliding.

API Reference

PropTypeDefault
imagesImageAsset[]
label?string'Gallery'
className?string''

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