Empty Projects, animated React component
An empty projects screen with three starter templates in a loose stack that fans out when you point at it. Picking a template flies that exact card into the grid as your first project.
- Pro
- Cards
- Hover
- Spring
Taps when you pick a template or start over and lands the new project card with a soft drop; the fan-out on hover is silent. Sound is off on this site until you switch it on.
Play with it
Move the controls and watch it change. Copy code gives you a snippet with only the props you changed.
Projects
No projects yet
Pick a starting point. You can change everything later.
Props
| Prop | Type | Default | What it does |
|---|---|---|---|
| templates | EmptyProjectsTemplate[] | EMPTY_PROJECTS_TEMPLATES | The starter templates in the stack, each { id, name, tint: [background, accent] }. The ids landing, dashboard and docs draw their own little page; three works best. |
| title | string | "Projects" | Heading above the grid. |
| emptyTitle | string | "No projects yet" | Headline of the empty state. |
| emptyDescription | string | "Pick a starting point. You can change everything later." | Line under the headline. |
| onCreate | (template: EmptyProjectsTemplate) => void | undefined | Called when a template, or the blank project, is picked. The autoplay demo never calls it. |
| autoplay | boolean | false | Fans the stack, picks a template and starts over on a loop until someone touches it. Pauses off screen and never runs under reduced motion. |
| className | string | "" | Extra classes for the card. |
| enableSound | boolean | true | Plays interface sounds on interaction. They follow the sound switch (setSoundsEnabled, on by default) and stay silent on hover. Autoplay makes the same sounds once the visitor has used the page. Pass false to silence this component. |
Empty Projects questions
Does it make sound, and how do I turn it off?
Taps when you pick a template or start over and lands the new project card with a soft drop; the fan-out on hover is silent. Sounds are synthesised with the Web Audio API, so there are no audio files, and they only play after a click or key press. Pass `enableSound={false}` to silence this component, or call `setSoundsEnabled(false)` from `@/lib/ui-sounds` to switch every sound off at once. The CLI installs `@/lib/ui-sounds` with the component.