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