One target. Same action.
Your original element stays in place. Links navigate, forms submit, keyboard activation works, and refs point to the same host.
Bloxwap / Haptic
Wrap a React target in Haptic. Taps get feedback, and your button keeps its handlers, ref, focus, and accessibility.
npm install @bloxwap/hapticReact 18+ · SSR-safe · ESM + CommonJS
The first npm release is in preparation. Follow the release plan.
import { Haptic } from '@bloxwap/haptic';
// Add feedback. Keep your original button.
export function SaveButton() {
return (
<Haptic feedback="success">
<button onClick={save}>
Save changes
</button>
</Haptic>
);
}One component. Your original interaction.
11 presets · 1 component
Choose a preset or try a custom pattern.
Patterns need a vibration-capable device. Desktop audio preview lets you try the feedback without vibration hardware. Actions still work when feedback is off.
Your original element stays in place. Links navigate, forms submit, keyboard activation works, and refs point to the same host.
Physical iOS taps use a native system tick. Vibration-capable browsers support eleven presets, intensity, and custom patterns.
Typed React components, server-safe rendering, ESM and CommonJS. The website and its tooling stay outside your application bundle.