# Confetti

Deterministic particle burst with configurable power, gravity, and seed.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).

## Installation

<TabsTrigger value="cli">Command</TabsTrigger>
<TabsTrigger value="manual">Manual</TabsTrigger>

```bash
npx shadcn@latest add @framecn/confetti
```

<Step>Copy and paste the following code into your project.</Step>

<Step>Update the import paths to match your project setup.</Step>

## Usage

```tsx
import { Confetti } from "@/components/framecn/confetti";
```

```tsx
<Confetti />
```

## API Reference

### Confetti

| Prop               | Type       | Default                                                         |
| ------------------ | ---------- | --------------------------------------------------------------- |
| `particleCount`    | `number`   | `80`                                                            |
| `originX`          | `number`   | `0.5`                                                           |
| `originY`          | `number`   | `0.5`                                                           |
| `lifetime`         | `number`   | `90`                                                            |
| `power`            | `number`   | `17`                                                            |
| `gravity`          | `number`   | `0.45`                                                          |
| `size`             | `number`   | `13`                                                            |
| `seed`             | `number`   | `1`                                                             |
| `colors`           | `string[]` | `["#1d9bf0","#ff5da2","#ffd23f","#22c55e","#a855f7","#ff7a45"]` |
| `width`            | `number`   | `1280`                                                          |
| `height`           | `number`   | `720`                                                           |
| `speed`            | `number`   | `1`                                                             |
| `fps`              | `number`   | `30`                                                            |
| `durationInFrames` | `number`   | `180`                                                           |
| `className`        | `string`   | `-`                                                             |

## Notes

  Particle positions, angles, and sizes are generated from a mulberry32 PRNG
  seeded by the `seed` prop. Changing `seed` produces a completely different
  burst pattern while remaining frame-for-frame reproducible on every render.