Sharingan

Atelier Nine · art marketplace

A place to show the work you're proud of

Artists display their pieces, collectors discover and buy the ones that move them. No algorithm, no auction: the work, and the people behind it.

Gallery fan

A fan of artwork cards opens under the headline; the card nearest the pointer rises while its neighbours make room, and collaborator cursors drift between them.

Use when: Marketplaces, portfolios, collectives and galleries: when the work itself is the promise and you have six or seven strong images.

Engine: DOM (HTML, SVG, CSS 3D), every browser

Render: …

npx shadcn@latest add @sharingan/gallery-fan

First time? Add the @sharingan registry to your project: getting started.

Add ?motion=final to the address for the repeatable still frame, or ?motion=off for the reduced-motion version.

Props

content what the hero says, real text in the DOM

Gallery fan content
NameTypeDefaultDescription
eyebrowstring (≤ 48 chars)—A short kicker above the headline.
headline *string (8–60 chars)—The promise in one or two lines, 4–9 words.
subheadlinestring (≤ 180 chars)—One or two sentences under the fan.
primaryCtaobject—
label *string (2–28 chars)—Action verb first, 1–4 words.
href *string (≥ 1 chars)—
secondaryCtaobject—
label *string (2–28 chars)—Action verb first, 1–4 words.
href *string (≥ 1 chars)—
artworks *object[] (3–9)—The cards of the fan, left to right.
src *string (≥ 1 chars)—The image, portrait (4:5 works best).
alt *string (4–160 chars)—What the work shows, for screen readers.
title *string (1–40 chars)—
artist *string (1–40 chars)—Shown under the title when the card is raised. Credit people here.
hrefstring—Where the card leads: the work's page, its source.
collaboratorsobject[] (≤ 2)—Live cursors resting over a card (by index), as in a shared canvas.
name *string (1–16 chars)—
cardinteger (0–9007199254740991)—

config how it looks and moves; attributes on the Web Component

Gallery fan config
NameTypeDefaultDescription
spreadnumber (0.3–1)0.86How wide the fan opens, as a share of the hero's width.
anglenumber (0–40)22How far the outer cards turn, in degrees.
depthnumber (0–500)240How far the outer cards sink back, in pixels.
colorsstring[] (≤ 2)["oklch(0.6 0.2 262)","oklch(0.62 0.14 160)"]The collaborators' cursor colours.
introbooleantrueThe cards start stacked and open into the fan.
pointerbooleantrueThe card nearest the pointer rises and its neighbours make room.
cursorsbooleantrueCollaborator cursors float over the cards and move from one to another.

The same hero as a Web Component

Web Component · no framework

<sg-gallery-fan>

The same engine, driven by attributes: five cards, a narrower and deeper fan, one collaborator.

Sharingan is made by Dilane Kombou.

Open source under the MIT licence.