Spine Archive
ComponentsSpine Archive
ExperimentsNew

Spine Archive

A shelf of physical project sleeves. Pull a spine into focus and reveal its story.

React + CSS

After-dark experiments

Good ideas rarely keep office hours.

Live component. Go ahead, interact.
01

Installation

Run this in your shadcn-configured React project. The component and stylesheet are added together.

TERMINAL
npx shadcn@latest add http://localhost:5173/r/spine-archive.json

This command uses the current site address. For localhost, keep this preview running on the same computer. Files follow your configured components alias.

02

Usage

Import the component and make the details your own.

TypeScript
import { SpineArchive } from '@/components/anticraft/SpineArchive';

export function Example() {
  return (
    <SpineArchive
      defaultValue="field-notes"
      items={[
        { id: 'field-notes', title: 'Field Notes', year: '2026', category: 'Independent film', color: '#df684b', description: 'Small observations from a world in motion.', artwork: <span style={{ fontSize: 80 }}>✳</span> },
        { id: 'after-hours', title: 'After Hours', year: '2025', category: 'Visual identity', color: '#c6c3ef', description: 'An identity for the hours between one day and the next.', artwork: <span style={{ fontSize: 80 }}>◒</span> },
        { id: 'wild-type', title: 'Wild Type', year: '2024', category: 'Publication', color: '#d8e5b2', description: 'A collection of unexpected shapes and stories.', artwork: <span style={{ fontSize: 80 }}>Aa</span> },
      ]}
    />
  );
}
03

Props

PropTypeDefaultDescription
itemsSpineArchiveItem[]RequiredProject sleeves with unique id, title, and optional year, category, CSS color, foreground color, decorative artwork, description, and href.
defaultValuestringFirst itemThe id of the sleeve selected initially.
onValueChange(value: string) => voidundefinedCalled when a visitor commits a sleeve selection by clicking, tapping, or pressing Enter or Space.
classNamestring''Additional classes for the archive. Keep artwork decorative; an item href is rendered as a separate link.
04

Motion & accessibility

Considered by default.

Hover with a fine pointer or focus a sleeve to preview its cover. Click, tap, Enter, or Space commits the selection. Arrow keys, Home, and End move between sleeves. The shelf scrolls horizontally on small screens. Reduced motion removes the unfolding transitions.

Use semantic content and meaningful labels in your composition. Check contrast and keyboard behavior with your own styles and content.

05

Inspiration

Studio Alphonse’s physical VHS spine archive inspired the shelf metaphor. This original adaptation unfolds a selected spine into a cover and project details, with keyboard and touch controls.

Visit Studio Alphonse — Productions

The component source and demo artwork are original to Anticraft UI. The linked site is the design or content reference.