javascript library for haptic feedback inside of safari on ios
please note this only works on ios 17.4 to 26.4, as apple patched it in ios 26.5
demo: ios-haptics demo
npm i ios-hapticsimport { haptic } from 'ios-haptics'
// a single haptic
haptic()
// two rapid haptics
haptic.confirm()
// three rapid haptics
haptic.error()this uses the <input type="checkbox" switch /> (introduced in safari 17.4), which has haptic feedback when toggled
Important
apple patched the bug this library used for haptic feedback in ios 26.5. you can no longer trigger haptic feedback programmatically by calling .click() on a <label> that is for an <input type="checkbox" switch />. haptic feedback still works when the user directly clicks the checkbox switch themselves, but it can no longer be done programmatically.
every haptic call, it will create one of those in the background, toggle it, then remove it
on devices that support it, navigator.vibrate() is called instead, so it works on android too
feel free to send a pr or open an issue if you have suggestions or find improvements