
Web Haptics
by lochie7904ed1e1c92e093c1861091e4d809f7d00b7d0dMITListed Oct 9, 2026Updated Oct 9, 2026
Add haptic feedback to web apps using the web-haptics library. Use when building mobile-facing UIs that need tactile feedback on buttons, toggles, forms, pickers, and other interactive elements.
Only the file list is public. File contents are available once the skill is installed in a workspace.
| Path | Size | Type |
|---|---|---|
| apps/react-example/CHANGELOG.md | 424 B | text/markdown |
| apps/react-example/index.html | 311 B | text/plain |
| apps/react-example/package.json | 479 B | application/json |
| apps/react-example/src/App.tsx | 388 B | text/plain |
| apps/react-example/src/main.tsx | 215 B | text/plain |
| apps/react-example/tsconfig.json | 508 B | application/json |
| apps/react-example/vite.config.ts | 136 B | text/plain |
| apps/svelte-example/CHANGELOG.md | 425 B | text/markdown |
| apps/svelte-example/index.html | 310 B | text/plain |
| apps/svelte-example/package.json | 393 B | application/json |
| apps/svelte-example/src/App.svelte | 433 B | text/plain |
| apps/svelte-example/src/main.ts | 123 B | text/plain |
| apps/svelte-example/svelte.config.js | 116 B | text/plain |
| apps/svelte-example/tsconfig.json | 394 B | application/json |
| apps/svelte-example/tsconfig.node.json | 171 B | application/json |
| apps/svelte-example/vite.config.ts | 332 B | text/plain |
| apps/typescript-example/CHANGELOG.md | 429 B | text/markdown |
| apps/typescript-example/index.html | 545 B | text/plain |
| apps/typescript-example/package.json | 327 B | application/json |
| apps/typescript-example/src/main.ts | 193 B | text/plain |
| apps/typescript-example/tsconfig.json | 324 B | application/json |
| apps/typescript-example/vite.config.ts | 69 B | text/plain |
| apps/vue-example/CHANGELOG.md | 422 B | text/markdown |
| apps/vue-example/index.html | 307 B | text/plain |
| apps/vue-example/package.json | 377 B | application/json |
| apps/vue-example/src/App.vue | 364 B | text/plain |
| apps/vue-example/src/main.ts | 93 B | text/plain |
| apps/vue-example/src/vite-env.d.ts | 189 B | text/plain |
| apps/vue-example/tsconfig.json | 387 B | application/json |
| apps/vue-example/tsconfig.node.json | 213 B | application/json |
| apps/vue-example/vite.config.ts | 281 B | text/plain |
| .changeset/config.json | 271 B | application/json |
| .changeset/README.md | 510 B | text/markdown |
| commitlint.config.cjs | 64 B | text/plain |
| .gitattributes | 66 B | text/plain |
| .github/FUNDING.yml | 62 B | application/yaml |
| .gitignore | 35 B | text/plain |
| LICENSE | 1 KB | text/plain |
| package.json | 831 B | application/json |
| packages/web-haptics/CHANGELOG.md | 367 B | text/markdown |
| packages/web-haptics/.eslintignore | 20 B | text/plain |
| packages/web-haptics/.eslintrc.cjs | 1.2 KB | text/plain |
| packages/web-haptics/.gitignore | 17 B | text/plain |
| packages/web-haptics/LICENSE | 1 KB | text/plain |
| packages/web-haptics/.lintstagedrc.cjs | 93 B | text/plain |
| packages/web-haptics/.npmignore | 0 B | text/plain |
| packages/web-haptics/package.json | 2.7 KB | application/json |
| packages/web-haptics/pnpm-lock.yaml | 30.1 KB | application/yaml |
| packages/web-haptics/.prettierignore | 17 B | text/plain |
| packages/web-haptics/.prettierrc.cjs | 130 B | text/plain |
| packages/web-haptics/README.md | 3.3 KB | text/markdown |
| packages/web-haptics/src/index.ts | 304 B | text/plain |
| packages/web-haptics/src/lib/web-haptics/index.ts | 12.6 KB | text/plain |
| packages/web-haptics/src/lib/web-haptics/patterns.ts | 1.9 KB | text/plain |
| packages/web-haptics/src/lib/web-haptics/types.ts | 420 B | text/plain |
| packages/web-haptics/src/react/index.ts | 49 B | text/plain |
| packages/web-haptics/src/react/useWebHaptics.ts | 1 KB | text/plain |
| packages/web-haptics/src/svelte/createWebHaptics.ts | 631 B | text/plain |
| packages/web-haptics/src/svelte/index.ts | 55 B | text/plain |
| packages/web-haptics/src/svelte/types.ts | 149 B | text/plain |
| packages/web-haptics/src/vue/index.ts | 49 B | text/plain |
| packages/web-haptics/src/vue/types.ts | 149 B | text/plain |
| packages/web-haptics/src/vue/useWebHaptics.ts | 798 B | text/plain |
| packages/web-haptics/tsconfig.json | 386 B | application/json |
| packages/web-haptics/tsup.config.ts | 1.5 KB | text/plain |
| pnpm-lock.yaml | 234.3 KB | application/yaml |
| pnpm-workspace.yaml | 53 B | application/yaml |
| README.md | 978 B | text/markdown |
| site/CHANGELOG.md | 416 B | text/markdown |
| site/.eslintrc.cjs | 436 B | text/plain |
| site/.gitignore | 253 B | text/plain |
| site/index.html | 1.7 KB | text/plain |
| site/package.json | 871 B | application/json |
| site/postcss.config.js | 59 B | text/plain |
| site/public/fonts/OpenRunde-Bold.woff | 185.2 KB | font/woff |
| site/public/fonts/OpenRunde-Bold.woff2 | 158.7 KB | font/woff2 |
| site/public/fonts/OpenRunde-Medium.woff | 190.3 KB | font/woff |
| site/public/fonts/OpenRunde-Medium.woff2 | 161.5 KB | font/woff2 |
| site/public/fonts/OpenRunde-Regular.woff | 179.2 KB | font/woff |
| site/public/fonts/OpenRunde-Regular.woff2 | 151 KB | font/woff2 |
| site/public/fonts/OpenRunde-Semibold.woff | 185.3 KB | font/woff |
| site/public/fonts/OpenRunde-Semibold.woff2 | 158.9 KB | font/woff2 |
| site/public/llms.txt | 1.8 KB | text/plain |
| site/public/og.png | 468.3 KB | image/png |
| site/src/App.tsx | 469 B | text/plain |
| site/src/components/auto-resizer/index.tsx | 833 B | text/plain |
| site/src/components/box/index.tsx | 857 B | text/plain |
| site/src/components/button/index.tsx | 389 B | text/plain |
| site/src/components/button/styles.module.scss | 689 B | text/plain |
| site/src/components/codeblock/index.tsx | 1.1 KB | text/plain |
| site/src/components/codeblock/styles.module.scss | 836 B | text/plain |
| site/src/components/dropdown/index.tsx | 2.2 KB | text/plain |
| site/src/components/dropdown/styles.module.scss | 2.5 KB | text/plain |
| site/src/components/footer/index.tsx | 843 B | text/plain |
| site/src/components/footer/styles.module.scss | 1.1 KB | text/plain |
| site/src/components/horizontal-scroll/index.tsx | 1.4 KB | text/plain |
| site/src/components/horizontal-scroll/styles.module.scss | 2.4 KB | text/plain |
| site/src/components/logo/index.tsx | 39.6 KB | text/plain |
| site/src/components/particles/index.tsx | 8.5 KB | text/plain |
| site/src/components/particles/styles.module.scss | 152 B | text/plain |
| site/src/components/qrcode/index.tsx | 29.4 KB | text/plain |
| site/src/components/toggle/index.tsx | 1.3 KB | text/plain |
| site/src/components/toggle/styles.module.scss | 1 KB | text/plain |
| site/src/context/app.tsx | 651 B | text/plain |
| site/src/hooks/useAutoResize.ts | 1017 B | text/plain |
| site/src/hooks/useClickOutside.ts | 662 B | text/plain |
| site/src/hooks/useHaptics.ts | 641 B | text/plain |
| site/src/hooks/useVibration.ts | 2.3 KB | text/plain |
| site/src/icon.svg | 232 B | text/plain |
| site/src/main.tsx | 251 B | text/plain |
| site/src/styles/globals.scss | 145 B | text/plain |
| site/src/styles/modules/codeblock.scss | 344 B | text/plain |
| site/src/styles/modules/fonts.scss | 937 B | text/plain |
| site/src/styles/modules/globals.scss | 4.9 KB | text/plain |
| site/src/styles/modules/reset.scss | 613 B | text/plain |
| site/src/styles/modules/variables.scss | 1.7 KB | text/plain |
| site/src/surfaces/builder/index.tsx | 23 KB | text/plain |
| site/src/surfaces/builder/styles.module.scss | 8.2 KB | text/plain |
| site/src/surfaces/desktop-view/index.tsx | 2.5 KB | text/plain |
| site/src/surfaces/desktop-view/scan-text.tsx | 135.1 KB | text/plain |
| site/src/surfaces/desktop-view/styles.module.scss | 2 KB | text/plain |
| site/src/surfaces/docs/index.tsx | 6.1 KB | text/plain |
| site/src/surfaces/docs/styles.module.scss | 2.8 KB | text/plain |
| site/src/surfaces/installation/index.tsx | 1.3 KB | text/plain |
| site/src/surfaces/installation/styles.module.scss | 540 B | text/plain |
| site/src/surfaces/mobile-view/demo.tsx | 3.2 KB | text/plain |
| site/src/surfaces/mobile-view/index.tsx | 3.8 KB | text/plain |
| site/src/surfaces/mobile-view/safari-bar.tsx | 18.3 KB | text/plain |
| site/src/surfaces/mobile-view/sound-icon.tsx | 1.7 KB | text/plain |
| site/src/surfaces/mobile-view/styles.module.scss | 6.2 KB | text/plain |
| site/src/surfaces/usage/index.tsx | 2.4 KB | text/plain |
| site/src/surfaces/usage/logos.tsx | 9.1 KB | text/plain |
| site/src/surfaces/usage/styles.module.scss | 653 B | text/plain |
| site/src/utils/faviconShake.ts | 1.4 KB | text/plain |
| site/src/vite-env.d.ts | 38 B | text/plain |
| site/tsconfig.json | 605 B | application/json |
| site/tsconfig.node.json | 213 B | application/json |
| site/vite.config.ts | 716 B | text/plain |
| SKILL.md | 4.5 KB | text/markdown |
Source and attribution
Source:lochie/web-hapticsat commit7904ed1
License: MIT
Content belongs to its original authors. SourceWeft indexes it from a public repository.
More in Software Development

Playground
anthropics
Builds self-contained interactive HTML playgrounds with controls, live preview, and copyable prompt output.

M5 Onboard
anthropics
Provisions M5Stack ESP32 boards by detecting them on USB, flashing UIFlow 2.0 firmware, and installing a MicroPython app bundle.

Cardputer Buddy
anthropics
Guides iterating on a Cardputer-Adv MicroPython app bundle: adding apps, pushing files over USB-serial, tailing logs, and running REPL commands.

Web Design Guidelines
vercel-labs
Reviews UI code against Web Interface Guidelines fetched from a remote source and reports findings as file:line entries.

Vercel React Native Skills
vercel-labs
React Native and Expo best-practice rules covering list performance, animation, navigation, UI patterns, state, and monorepo setup.

Vercel React Best Practices
vercel-labs
Vercel's React and Next.js performance guidelines, organized as 70 rules for writing, reviewing, and refactoring code.