Everything is generated entirely in the browser using the Web Audio API with Apple device output mastering and 3D spatial panning.
Add the package to your project. Zero dependencies. React is optional.
Bind interactions either via HTML data attributes, React hooks, or procedural calls.
Enjoy 24 beautifully mastered procedural sound triggers without any network requests.
Install with your package manager of choice.
You can automatically bind sounds to DOM events without writing repetitive event listeners. Call once in your app entry point, and then use attributes on any element. If you leave the attribute empty, it will use its sensible default.
Because relies on event delegation, you can add data attributes directly to your element (or root layout) to enable app-wide native interactions for right-clicking, copying, and pasting:
If you use React, the hook gives you bound functions to trigger sounds and manage engine settings inside your components.
Note for React users: You can absolutely use the HTML data attributes approach in React instead of hooks! It's often cleaner for simple buttons. Just call once in a root layout or a generic Provider:
...and then in your code, you can use the attributes directly on your React elements. Since is observing the DOM globally from the Provider, all data attributes will be automatically activated.
You can also trigger sounds procedurally and adjust the engine settings globally via direct imports.
The output profile adjusts the mastering EQ curve applied to all sounds. This allows you to optimize the audio output for different listening environments.