clicktone
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.
1.2kB gzipped
Demo
➤ 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({
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
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.