A comprehensive collection of framework-agnostic browser API utilities exposed as hooks.
npm install browser-hooks
<!-- UMD version -->
<script src="https://unpkg.com/browser-hooks@0.0.3/dist/browser-hooks.umd.js"></script>
<script>
// Using Notifications (example)
const notifications = BrowserHooks.useNotifications();
notifications.show("Hello!", {
body: "This is a notification from Browser Hooks",
icon: "path/to/icon.png",
onClick: () => console.log("Notification clicked!"),
onClose: () => console.log("Notification closed"),
onError: () => console.log("Notification error occurred"),
onShow: () => console.log("Notification shown"),
});
</script>
<!-- ES Module version -->
<script type="module">
import { useNotifications } from "https://unpkg.com/browser-hooks@0.0.3/dist/browser-hooks.es.js";
// Using Notifications (example)
const notifications = useNotifications();
notifications.show("Demo Notification", {
body: "This is a demo notification",
icon: "path/to/icon.png",
onClick: () => console.log("Notification clicked!"),
onClose: () => console.log("Notification closed"),
onError: () => console.log("Notification error occurred"),
onShow: () => console.log("Notification shown"),
});
</script>
This library provides hooks for various browser APIs:
useLocalStorage
- Local storage operationsuseClipboard
- Clipboard APIuseFileSystem
- File System APIuseFile
- File API operationsuseMediaStream
- Media Stream APIuseMediaRecorder
- Media RecordinguseMediaSession
- Media Session APIuseScreenCapture
- Screen Capture APIusePictureInPicture
- Picture-in-Picture APIuseWebAudio
- Web Audio APIuseFullscreen
- Fullscreen APIuseDeviceOrientation
- Device Orientation APIuseDeviceMemory
- Device Memory APIuseDevicePosture
- Device Posture APIuseEyeDropper
- EyeDropper APIuseWebUSB
- Web USB APIuseWebHID
- Web HID APIuseWebNFC
- Web NFC APIuseWebRTC
- WebRTC functionalityuseBroadcastChannel
- BroadcastChannel APIuseMessageChannel
- MessageChannel APIuseWebTransport
- WebTransport APIuseBeacon
- Beacon APIuseWebAuthn
- Web Authentication APIuseWebCrypto
- Web Crypto APIuseCredentialManagement
- Credential Management APIusePermissions
- Permissions APIusePerformance
- Performance APIuseResourceTiming
- Resource Timing APIuseIdleDetection
- Idle Detection APIuseNetwork
- Network Information APIusePointerEvents
- Pointer EventsusePointerLock
- Pointer Lock APIuseDragAndDrop
- Drag and Drop APIusePopover
- Popover APIuseKeyboard
- Keyboard APIimport { useLocalStorage } from "browser-hooks";
const { getItem, setItem, removeItem } = useLocalStorage();
setItem("key", "value");
const value = getItem("key");
import { useNotifications } from "browser-hooks";
const { requestPermission, sendNotification } = useNotifications();
await requestPermission();
sendNotification("Title", { body: "Message body" });
import { useMediaStream } from "browser-hooks";
const { getVideoStream } = useMediaStream();
const stream = await getVideoStream();
Most hooks require modern browser support. Check individual hook documentation for specific browser compatibility information.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License