feat: add tactile haptic feedback to rosary prayer cards
All checks were successful
CI / update (push) Successful in 3m56s
All checks were successful
CI / update (push) Successful in 3m56s
Every prayer card now vibrates on tap — non-decade cards advance to the next section, decade cards increment the Ave Maria counter with auto-scroll at 10. Two profiles (bead vs card) give distinct tactile feel; the 10th bead fires the heavier card haptic to mark decade completion. Native Android path via AndroidBridge.forceVibrate uses VibrationAttributes USAGE_ACCESSIBILITY so vibration bypasses silent / Do-Not-Disturb inside the Tauri app. Browser falls back to the web-haptics npm package. Haptic fires on pointerdown with touch-action: manipulation for near-zero tap latency; state change stays on click so scroll gestures don't advance. - Remove CounterButton (whole card is now the tap target) - Replace emoji with Lucide BookOpen icon, restyle citation as an understated inline typographic link (no background chip) - Drop decade min-height leftover from the pre-auto-advance layout Bumps site to 1.27.0 and Tauri app to 0.5.0 (new Android capability).
This commit is contained in:
24
pnpm-lock.yaml
generated
24
pnpm-lock.yaml
generated
@@ -53,6 +53,9 @@ importers:
|
||||
sharp:
|
||||
specifier: ^0.34.5
|
||||
version: 0.34.5
|
||||
web-haptics:
|
||||
specifier: ^0.0.6
|
||||
version: 0.0.6(svelte@5.55.1)
|
||||
devDependencies:
|
||||
'@playwright/test':
|
||||
specifier: 1.56.1
|
||||
@@ -2033,6 +2036,23 @@ packages:
|
||||
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
web-haptics@0.0.6:
|
||||
resolution: {integrity: sha512-eCzcf1LDi20+Fr0x9V3OkX92k0gxEQXaHajmhXHitsnk6SxPeshv8TBtBRqxyst8HI1uf2FyFVE7QS3jo1gkrw==}
|
||||
peerDependencies:
|
||||
react: '>=18'
|
||||
react-dom: '>=18'
|
||||
svelte: '>=4'
|
||||
vue: '>=3'
|
||||
peerDependenciesMeta:
|
||||
react:
|
||||
optional: true
|
||||
react-dom:
|
||||
optional: true
|
||||
svelte:
|
||||
optional: true
|
||||
vue:
|
||||
optional: true
|
||||
|
||||
webidl-conversions@7.0.0:
|
||||
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -3765,6 +3785,10 @@ snapshots:
|
||||
dependencies:
|
||||
xml-name-validator: 5.0.0
|
||||
|
||||
web-haptics@0.0.6(svelte@5.55.1):
|
||||
optionalDependencies:
|
||||
svelte: 5.55.1
|
||||
|
||||
webidl-conversions@7.0.0: {}
|
||||
|
||||
webidl-conversions@8.0.0: {}
|
||||
|
||||
Reference in New Issue
Block a user