clicktone
v1.8.0
Published
ClickTone is a lightweight helper for UI sound feedback. It wraps the Web Audio API, giving you instant click‑sounds with volume control, throttling, callbacks, and an iOS resume workaround.
Maintainers
Readme
➤ Install
yarn add clicktone➤ Import
import ClickTone from 'clicktone';➤ Usage
<audio preload="auto">
<source id="click-source" src="./click.mp3" type="audio/mpeg" />
<source src="./click.ogg" type="audio/ogg" />
</audio>const sound = new ClickTone({
// Any of the forms work:
// file: './sound.mp3',
// file: new URL('./sound.mp3', import.meta.url).href,
// file: document.querySelector('#click-source') as HTMLSourceElement,
file: { id: 'click-source' },
volume: 0.7,
throttle: 100,
callback: () => console.log('done'),
debug: true,
});
button.addEventListener('click', () => click.play());ClickTone uses the Web Audio API, which supports many audio file formats: MP3, WAV, OGG, AAC and others. Note that not all browsers support these formats. Tip: you can also override the source at call‑time: click.play('./alt.wav').
➤ Options
| Option | Type | Default | Description |
|:----------:|:-----------------------------------------------:|:-------:|:--------------------------------------------------------------------------------------------------------------------------------|
| file | string \| HTMLSourceElement \| { id: string } | – | Audio source. Either a direct URL, an actual <source> element, or an object whose id maps to a <source> already in the DOM. |
| volume | number | 1 | Playback volume 0–1. |
| callback | ((error?: Error) => void) \| null | null | Called after playback ends or if an error occurs. |
| throttle | number | 0 | Debounce interval in ms. Playback requests arriving sooner are ignored. |
| debug | boolean | false | Log internal errors/warnings to the console. |
➤ License
clicktone is released under MIT license.
