# Domino

> Vane pack: twenty acrylic dominoes, tinted and black, standing in an arc on the page. Knocked, each tips over its front edge onto the next and the chain runs to the end, every slab casting a soft shadow tinted by its color; then they stand back up as if the film ran backwards and go again. Tap one to knock it, or tap a fallen chain to stand it up. Traced exactly in WebGL.

- Slug: `vane-domino`
- Category: [Asset packs](https://www.assembli.design/category/asset-packs.md)
- Subcategory: [Vane](https://www.assembli.design/category/asset-packs/vane.md) (`vane`)
- Type: component
- Tags: 3d, webgl, ray-tracing, acrylic, glass, refraction, domino, chain-reaction, physics, shadow, toy
- npm dependencies: none
- shadcn/ui dependencies: none
- Live preview: https://www.assembli.design/preview/vane-domino
- Page: https://www.assembli.design/components/vane-domino

![Domino preview](https://www.assembli.design/thumbnails/vane-domino-light.png)

## Props

Other props pass through to the root element.

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `palette` | `VanePalette` | `"citrus"` | A preset palette. Every piece in the pack reads the same colors. |
| `colors` | `Partial<VaneColors>` |  | Override any color of the palette, as any CSS color. |
| `studio` | `string` |  | The studio sweep behind the piece, as any CSS color: what its blades reflect and what shows through them. Match it to the page behind. By default it's a soft grey, or near black on dark surfaces. |
| `speed` | `number` |  | Playback speed. 0 holds the moment; reduced motion always holds it. |
| `interactive` | `boolean` |  | Hover, drag and tap to play with the piece. |
| `poke` | `number` |  | Change this value to set the piece off on cue, as a tap would. |
| `shadow` | `boolean` |  | Shade on the floor, for pieces that stand on one. |
| `surface` | `"auto" \| "light" \| "dark"` |  | What the piece sits on. "auto" follows the page theme; set "light" or "dark" when it sits on its own backdrop. |
| `rotate` | `[number, number]` |  | Move the camera, in degrees: [higher, round to the right]. |

## Install

One-time setup (needs a subscription):

1. Add the registry to the project's `components.json`: `{"@assembli":{"url":"https://www.assembli.design/r/{name}.json","headers":{"Authorization":"Bearer ${ASSEMBLI_API_KEY}"}}}` (merge into `"registries"`).
2. Put an API key from https://www.assembli.design/account in `.env.local` as `ASSEMBLI_API_KEY=asm_…`.

Then install with the shadcn CLI (writes `components/vane-domino/vane-domino.tsx` and installs dependencies):

```bash
npx shadcn@latest add @assembli/vane-domino
```

Registry item JSON: https://www.assembli.design/r/vane-domino.json (send `Authorization: Bearer <api key>`)

## Code

> Component source needs an Assembli subscription ($12/month or $96/year) and an API key sent as `Authorization: Bearer <key>`. To get one without copying anything, POST https://www.assembli.design/api/agent/login (or call the MCP tool connect_account), show the user the link it returns, and poll https://www.assembli.design/api/agent/token for the key. Or subscribe at https://www.assembli.design/pricing and create a key at https://www.assembli.design/account.
