# Cursor

> Vane pack: the arrow pointer in 3D, cut from thick glossy black acrylic with a polished chrome bevel. It points its tip at your mouse wherever it is on the page and leans toward it; each click dips it and throws a ring of small tinted acrylic petals out from its tip. Idle, it bobs, turns to show its bevel and clicks now and then. Drag to turn it. Traced exactly in WebGL.

- Slug: `vane-cursor`
- 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, cursor, pointer, arrow, click, chrome
- npm dependencies: none
- shadcn/ui dependencies: none
- Live preview: https://www.assembli.design/preview/vane-cursor
- Page: https://www.assembli.design/components/vane-cursor

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

## Props

Other props pass through to the root element.

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `palette` | `VanePalette` |  | 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-cursor/vane-cursor.tsx` and installs dependencies):

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

Registry item JSON: https://www.assembli.design/r/vane-cursor.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.
