Philosophy

"Haptics are not decoration—they're communication. Every vibration should feel intentional and human."

Meaningful, Not Decorative

Every haptic should communicate something specific

Warm, Not Clinical

Organic patterns over mechanical buzzes

Subtle by Default

Reserve intensity for important moments

Persona-Aware

Haptics reflect each character's personality

Respectful

Honor system settings and user preferences

Intensity Levels

Standard 1-5 scale mapped to platform APIs.

Level Name iOS API Android API
1 Whisper UIImpactFeedbackGenerator.light * 0.5 EFFECT_TICK
2 Soft UIImpactFeedbackGenerator.light EFFECT_CLICK
3 Medium UIImpactFeedbackGenerator.medium EFFECT_HEAVY_CLICK
4 Strong UIImpactFeedbackGenerator.heavy EFFECT_DOUBLE_CLICK
5 Emphasis UINotificationFeedbackGenerator.success VIBRATE(100)

Base Patterns

Fundamental haptic building blocks for common interactions.

tap

10ms

Single crisp tap - basic interaction feedback

Button press, selection

softTap

8ms

Gentler tap - subtle acknowledgment

Toggle off, dismiss

doubleTap

40ms

Two quick taps - confirmation

Selection confirmed, got it

bump

20ms

Weighted tap - physical feedback

Toggle on, snap to position

click

15ms

Mechanical click - task complete

Checkbox, item complete

Organic Patterns

Ferni's signature haptics - organic, human, breathing. These patterns feel alive.

warmPulse

250ms

Gentle warmth pulse - emotional acknowledgment

Empathy moment, understanding

heartbeat

800ms

Double-beat pulse - connection/love

Deep connection, milestone

slowBreath

500ms

Extended breath - calm, wisdom

Sage persona, contemplation

quickBreath

200ms

Short energetic breath - curiosity

Researcher energy, discovery

Celebration Patterns

Positive feedback for wins and achievements.

smallWin

200ms

Quick sparkle - small achievement

Task complete, streak continued

bigWin

400ms

Celebration burst - major achievement

Milestone reached, level up

teamUnlock

600ms

Arrival pattern - new team member unlocked

Team member unlock celebration

streakAchieved

500ms

Rhythmic celebration - streak milestone

7-day streak, 30-day streak

Persona Haptic Signatures

Each persona has a unique haptic signature reflecting their personality.

F

Ferni

Warm, grounding, nurturing - life coach energy

ferniBreath 300ms
  • Speaking: ferniBreath
  • Acknowledgment: doubleTap
  • Insight: heartbeat
P

Peter

Curious, energetic, quick - researcher energy

quickBreath 200ms
  • Discovery: burst
  • Thinking: rhythm
  • Eureka: bigWin
A

Alex

Clear, empathetic, smooth - communicator energy

warmPulse 250ms
  • Guidance: leadTap
  • Empathy: warmPulse
  • Clarity: doubleTap
M

Maya

Steady, rhythmic, reliable - architect energy

steadyRhythm 300ms interval
  • Task Complete: click
  • Habit Check: firmTap
  • Progress: ramp
J

Jordan

Joyful, bouncy, celebratory - event planner energy

bounce 250ms
  • Excitement: sparkle
  • Countdown: tick
  • Celebration: bigWin
N

Nayan

Deep, integrative, philosophical - wisdom energy

deepBreath 600ms
  • Contemplation: slowBreath
  • Integration: heartbeat
  • Insight: warmPulse

Emotional Haptics

Haptic responses to detected emotional states.

Empathy

"Like a gentle hand on shoulder"

warmPulse @ 300ms

Encouragement

"Supportive energy"

quickBreath @ 200ms

Understanding

"I get it"

heartbeat @ 500ms

Concern

"Calming presence"

slowBreath @ 400ms

Celebration

"Pure joy"

bigWin @ 400ms

Curiosity

"Tell me more"

quickBreath @ 180ms

Ritual Haptics

Haptics for brand ritual moments that create memorable experiences.

Ritual Duration Character Sequence
welcomeBack 600ms "Welcome home" ferniBreath → pause:200 → doubleTap
firstConversation 800ms "Nice to meet you" slowBreath → pause:300 → warmPulse
sessionEnd 400ms "Until next time" ferniBreath → softTap
handoff 500ms "Smooth transition" softFade → pause:200 → personaSignature

Accessibility

Always Check System Settings

UIAccessibility.isReduceMotionEnabled and isHapticsEnabled

Reduced Motion

Use single tap instead of patterns

Haptics Disabled

Rely on visual/audio feedback only

Low Power Mode

Reduce intensity by 50%

Principles

  • Never make haptics the only feedback channel
  • Always pair with visual or audio feedback
  • Provide option to disable all haptics
  • Test with real devices, not simulators

Platform Implementation

iOS

UIImpactFeedbackGenerator
UINotificationFeedbackGenerator
UISelectionFeedbackGenerator

Call prepare() before expected haptic to reduce latency. Use Core Haptics for complex waveforms.

Android

VibrationEffect
HapticFeedbackConstants

Min SDK 26. Use VibrationEffect.createWaveform() for complex patterns.

Web

Navigator.vibrate()

Limited support. Use visual pulse animations as fallback. Check navigator.vibrate availability.