[ Package conformance ]
Expo SDK · >=12.0.0
expo-haptics
every haptic call routes to a real navigator.vibrate pattern with per-style/per-type duration variation: Light/Soft 5-6ms, Medium 10ms, Rigid/Heavy 13-18ms; notificationAsync emits Success=tick, Warning=double-pulse, Error=triple-pulse via vibrate pattern arrays; performAndroidHapticsAsync maps each AndroidHaptics enum value to a discrete duration or pattern that matches its semantic intent (Confirm=tick+pulse, Reject=triple-pulse, Long_Press=longer single, etc.). Apps that vary haptic by intent feel different to the user; on browsers without vibrate (iOS Safari) this is a safe no-op matching the upstream behavior on web.95%
API coverage
No visual conformance cases have been published for this package yet. The registry summary below describes what the compat layer implements.
Working (7)
impactAsync (vibration fallback)notificationAsyncselectionAsyncperformAndroidHapticsAsyncImpactFeedbackStyle enum including Soft/RigidNotificationFeedbackType enumAndroidHaptics enum
Missing (2)
real CHHapticEngine fidelity on iOS hardware (web vibration is binary on/offnot amplitude/sharpness curves) — unbridgeable in any browser-based simulator