# ReactUse - Collection of Essential React Hooks Website: https://reactuse.com | GitHub: https://github.com/childrentime/reactuse | NPM: https://www.npmjs.com/package/@reactuses/core ## Overview ReactUse is a comprehensive collection of custom React Hooks designed to supercharge your functional components. It provides a wide range of reusable hooks for state management, side effects, DOM manipulation, browser APIs, and more. ## Key Features - Tree-shakable: Only bundle the hooks you use - TypeScript Support: Full type definitions included - SSR Compatible: Works with Next.js and other SSR frameworks - Minimal Dependencies: Lightweight with only essential dependencies - Modern React: Built for React 16.8+ with hooks - Well Documented: Comprehensive docs with live examples ## Installation ```bash npm i @reactuses/core # or yarn add @reactuses/core # or pnpm add @reactuses/core ``` ## Quick Start ```tsx import { useToggle } from '@reactuses/core' function Demo() { const [on, toggle] = useToggle(true) return (
{on ? 'ON' : 'OFF'}
) } ``` ## Documentation Structure The hooks are organized into the following categories: ### State React State Hook (24 hooks available) ### Effect React Effect Hook (20 hooks available) ### Element React Dom Element Hook (19 hooks available) ### Browser React BOM Hook (48 hooks available) ### Integrations Integrations React Hook (1 hooks available) ## Complete Hook Reference ### State Hooks #### use `use` is a polyfill hook to resolve promises state for React v18 and below. Note that it only implements the ability to consume promises. For React v19 and abov Documentation: https://reactuse.com/state/use/ Usage: `import { use } from '@reactuses/core'` #### useBoolean React state hook that manages a boolean value. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useBoolean/ Usage: `import { useBoolean } from '@reactuses/core'` #### useControlled `useControlled` is a custom hook that helps you manage controlled components. It is a wrapper around `useState` that allows you to control the value of a compon Documentation: https://reactuse.com/state/useControlled/ Usage: `import { useControlled } from '@reactuses/core'` #### useCookie React hook that facilitates the storage, updating and deletion of values within the CookieStore Documentation: https://reactuse.com/state/useCookie/ Usage: `import { useCookie } from '@reactuses/core'` #### useCountDown React State Hooks that return the minutes gracefull. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useCountDown/ Usage: `import { useCountDown } from '@reactuses/core'` #### useCounter React state hook that tracks a numeric value. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useCounter/ Usage: `import { useCounter } from '@reactuses/core'` #### useCycleList Cycle through a list of items. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useCycleList/ Usage: `import { useCycleList } from '@reactuses/core'` #### useDebounce React hooks that [debounce](https://lodash.com/docs/4.17.15#debounce) value. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useDebounce/ Usage: `import { useDebounce } from '@reactuses/core'` #### useDisclosure `useDisclosure` is a hook that provides all the tools you need to create a disclosure widget. Disclosure widgets are used to show or hide content. This hook pro Documentation: https://reactuse.com/state/useDisclosure/ Usage: `import { useDisclosure } from '@reactuses/core'` #### useFirstMountState React state hook that returns true if component is just mounted. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useFirstMountState/ Usage: `import { useFirstMountState } from '@reactuses/core'` #### useHover Detect if mouse is over given element. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useHover/ Usage: `import { useHover } from '@reactuses/core'` #### useLatest React state hook that returns the latest state as described in the [React hooks Documentation: https://reactuse.com/state/useLatest/ Usage: `import { useLatest } from '@reactuses/core'` #### useLocalStorage React side-effect hook that manages a single `localStorage` key. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useLocalStorage/ Usage: `import { useLocalStorage } from '@reactuses/core'` #### useMap React state hook that manages a Map. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useMap/ Usage: `import { useMap } from '@reactuses/core'` #### useMergedRefs `useMergedRefs` is a hook that merges multiple refs into a single ref. Use this hook when you need to use more than one ref on a single dom node. Learn usage pa Documentation: https://reactuse.com/state/useMergedRefs/ Usage: `import { useMergedRefs } from '@reactuses/core'` #### useMountedState Lifecycle hook providing ability to check component's mount state. Returns a function that will return `true` if component mounted and `false` otherwise. Learn Documentation: https://reactuse.com/state/useMountedState/ Usage: `import { useMountedState } from '@reactuses/core'` #### usePrevious React state hook that returns the previous state as described in the [React Documentation: https://reactuse.com/state/usePrevious/ Usage: `import { usePrevious } from '@reactuses/core'` #### useRafState React state hook that only updates state in the callback of Documentation: https://reactuse.com/state/useRafState/ Usage: `import { useRafState } from '@reactuses/core'` #### useSessionStorage React side-effect hook that manages a single `sessionStorage` key. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useSessionStorage/ Usage: `import { useSessionStorage } from '@reactuses/core'` #### useSetState useState wrapper to work with state like in class component. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useSetState/ Usage: `import { useSetState } from '@reactuses/core'` #### useSupported Check to see if your browser supports some feature. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useSupported/ Usage: `import { useSupported } from '@reactuses/core'` #### useTextSelection Track user text selection based on [document.getSelection](https://developer.mozilla.org/en-US/docs/Web/API/Document/getSelection) Documentation: https://reactuse.com/state/useTextSelection/ Usage: `import { useTextSelection } from '@reactuses/core'` #### useThrottle React hooks that [throttle](https://lodash.com/docs/4.17.15#throttle) value. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useThrottle/ Usage: `import { useThrottle } from '@reactuses/core'` #### useToggle React state hook that tracks value of a boolean. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/state/useToggle/ Usage: `import { useToggle } from '@reactuses/core'` ### Effect Hooks #### useAsyncEffect React useEffect with async await support. Note it don't support generator function. Learn usage patterns, best practices, and code examples for React developers Documentation: https://reactuse.com/effect/useAsyncEffect/ Usage: `import { useAsyncEffect } from '@reactuses/core'` #### useCustomCompareEffect A modified useEffect hook that accepts a comparator which is used for comparison on dependencies instead of reference equality. Learn usage patterns, best pract Documentation: https://reactuse.com/effect/useCustomCompareEffect/ Usage: `import { useCustomCompareEffect } from '@reactuses/core'` #### useDebounceFn React hooks that [debounce](https://lodash.com/docs/4.17.15#debounce) function. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useDebounceFn/ Usage: `import { useDebounceFn } from '@reactuses/core'` #### useDeepCompareEffect A modified useEffect hook that is using deep comparison on its dependencies instead of reference equality. Learn usage patterns, best practices, and code exampl Documentation: https://reactuse.com/effect/useDeepCompareEffect/ Usage: `import { useDeepCompareEffect } from '@reactuses/core'` #### useEvent Basic implementation of [React RFC useEvent](https://github.com/reactjs/rfcs/pull/220). It lets you define event handlers that can read the latest props/state but have always stable function identity Documentation: https://reactuse.com/effect/useEvent/ Usage: `import { useEvent } from '@reactuses/core'` #### useEventEmitter A basic eventemitter. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useEventEmitter/ Usage: `import { useEventEmitter } from '@reactuses/core'` #### useEventListener Use EventListener with ease. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useEventListener/ Usage: `import { useEventListener } from '@reactuses/core'` #### useInterval A declarative interval hook based on [Dan Abramov's article on overreacted.io](https://overreacted.io/making-setinterval-declarative-with-react-hooks/). The interval can be paused by setting the delay to null Documentation: https://reactuse.com/effect/useInterval/ Usage: `import { useInterval } from '@reactuses/core'` #### useIsomorphicLayoutEffect `useIsomorphicLayoutEffect` that does not show warning when server-side rendering, see [Alex Reardon's Documentation: https://reactuse.com/effect/useIsomorphicLayoutEffect/ Usage: `import { useIsomorphicLayoutEffect } from '@reactuses/core'` #### useMount React lifecycle hook that executes a function after the component is mounted. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useMount/ Usage: `import { useMount } from '@reactuses/core'` #### useOnceEffect A Hook that avoids React18 useEffect run twice. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useOnceEffect/ Usage: `import { useOnceEffect } from '@reactuses/core'` #### useOnceLayoutEffect A Hook that avoids React18 useLayoutEffect run twice. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useOnceLayoutEffect/ Usage: `import { useOnceLayoutEffect } from '@reactuses/core'` #### useRafFn Call function on every [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame). With controls of pausing and resuming Documentation: https://reactuse.com/effect/useRafFn/ Usage: `import { useRafFn } from '@reactuses/core'` #### useThrottleFn React hooks that [throttle](https://lodash.com/docs/4.17.15#throttle) function. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useThrottleFn/ Usage: `import { useThrottleFn } from '@reactuses/core'` #### useTimeout Update value after a given time. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useTimeout/ Usage: `import { useTimeout } from '@reactuses/core'` #### useTimeoutFn Wrapper for setTimeout with controls. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useTimeoutFn/ Usage: `import { useTimeoutFn } from '@reactuses/core'` #### useUnmount React lifecycle hook that calls a function when the component will unmount. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/effect/useUnmount/ Usage: `import { useUnmount } from '@reactuses/core'` #### useUpdate React utility hook that returns a function that forces component to re-render when called. Learn usage patterns, best practices, and code examples for React dev Documentation: https://reactuse.com/effect/useUpdate/ Usage: `import { useUpdate } from '@reactuses/core'` #### useUpdateEffect React effect hook that ignores the first invocation (e.g. on mount). The signature is exactly the same as the `useEffect` hook. Learn usage patterns, best pract Documentation: https://reactuse.com/effect/useUpdateEffect/ Usage: `import { useUpdateEffect } from '@reactuses/core'` #### useUpdateLayoutEffect React layoutEffect hook that ignores the first invocation (e.g. on mount). The signature is exactly the same as the `useLayoutEffect` hook. Learn usage patterns Documentation: https://reactuse.com/effect/useUpdateLayoutEffect/ Usage: `import { useUpdateLayoutEffect } from '@reactuses/core'` ### Element Hooks #### useActiveElement React Sensor Hooks that tracks document.activeElement. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useActiveElement/ Usage: `import { useActiveElement } from '@reactuses/core'` #### useClickAway Listen for clicks outside of an element. Alias for useClickOutside. Useful for modal or dropdown. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useClickAway/ Usage: `import { useClickAway } from '@reactuses/core'` #### useClickOutside Listen for clicks outside of an element. Useful for modal or dropdown. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useClickOutside/ Usage: `import { useClickOutside } from '@reactuses/core'` #### useDocumentVisibility React Sensor Hook that tracks [document.visibilityState](https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState) Documentation: https://reactuse.com/element/useDocumentVisibility/ Usage: `import { useDocumentVisibility } from '@reactuses/core'` #### useDoubleClick React sensor hook that controls double click and single click. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useDoubleClick/ Usage: `import { useDoubleClick } from '@reactuses/core'` #### useDraggable Make elements draggable. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useDraggable/ Usage: `import { useDraggable } from '@reactuses/core'` #### useDropZone Create an zone where files can be dropped. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useDropZone/ Usage: `import { useDropZone } from '@reactuses/core'` #### useElementBounding React Element Hook that tracks bounding box of an HTML element. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useElementBounding/ Usage: `import { useElementBounding } from '@reactuses/core'` #### useElementSize React Sensor Hook that tracks size of an HTML element. [ResizeObserver MDN](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver) Documentation: https://reactuse.com/element/useElementSize/ Usage: `import { useElementSize } from '@reactuses/core'` #### useElementVisibility React Element Hooks that tracks the visibility of an element within the viewport. A wrapper of `useIntersectionObserver`. Learn usage patterns, best practices, Documentation: https://reactuse.com/element/useElementVisibility/ Usage: `import { useElementVisibility } from '@reactuses/core'` #### useFocus React Sensor Hooks that tracks element foucs state. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useFocus/ Usage: `import { useFocus } from '@reactuses/core'` #### useIntersectionObserver React sensor hook that tracks the changes in the intersection of a target element with an ancestor element or with a top-level document's viewport. Uses the [In Documentation: https://reactuse.com/element/useIntersectionObserver/ Usage: `import { useIntersectionObserver } from '@reactuses/core'` #### useMeasure React sensor hook that tracks dimensions of an HTML element using the Resize Observer API. Learn usage patterns, best practices, and code examples for React dev Documentation: https://reactuse.com/element/useMeasure/ Usage: `import { useMeasure } from '@reactuses/core'` #### useMutationObserver Watch for changes being made to the DOM tree. [MutationObserver MDN](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) Documentation: https://reactuse.com/element/useMutationObserver/ Usage: `import { useMutationObserver } from '@reactuses/core'` #### useResizeObserver Watch size of an HTML element. [ResizeObserver MDN](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver) Documentation: https://reactuse.com/element/useResizeObserver/ Usage: `import { useResizeObserver } from '@reactuses/core'` #### useSticky React Hook that tracks element sticky. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useSticky/ Usage: `import { useSticky } from '@reactuses/core'` #### useWindowFocus React Element Hook that tracks window focus with `window.onfocus` and `window.onblur` events. Learn usage patterns, best practices, and code examples for React Documentation: https://reactuse.com/element/useWindowFocus/ Usage: `import { useWindowFocus } from '@reactuses/core'` #### useWindowScroll useWindowScroll is a React Hook that is used to get the scroll position of the browser window. Learn usage patterns, best practices, and code examples for React Documentation: https://reactuse.com/element/useWindowScroll/ Usage: `import { useWindowScroll } from '@reactuses/core'` #### useWindowSize React Element Hooks that tracks window size. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/element/useWindowSize/ Usage: `import { useWindowSize } from '@reactuses/core'` ### Browser Hooks #### useBroadcastChannel `useBroadcastChannel` is a hook that allows you to use the `BroadcastChannel API` in your components. Learn usage patterns, best practices, and code examples fo Documentation: https://reactuse.com/browser/useBroadcastChannel/ Usage: `import { useBroadcastChannel } from '@reactuses/core'` #### useClipboard Copy text to a user's clipboard. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useClipboard/ Usage: `import { useClipboard } from '@reactuses/core'` #### useColorMode import Details from "@theme/Details"; Reactive color mode (theme) with auto data persistence and flexible configuration.
For server-side rendered applications, since it's Documentation: https://reactuse.com/browser/useColorMode/ Usage: `import { useColorMode } from '@reactuses/core'` #### useCopyToClipboard Copy text to a user's clipboard. Alias for useClipboard. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useCopyToClipboard/ Usage: `import { useCopyToClipboard } from '@reactuses/core'` #### useCssVar Manipulate CSS variables. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useCssVar/ Usage: `import { useCssVar } from '@reactuses/core'` #### useDarkMode import Details from "@theme/Details"; dark mode with auto data persistence.
For server-side rendered applications, since it's Documentation: https://reactuse.com/browser/useDarkMode/ Usage: `import { useDarkMode } from '@reactuses/core'` #### useDevicePixelRatio `useDevicePixelRatio` is a hook that returns the device pixel ratio of the screen. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useDevicePixelRatio/ Usage: `import { useDevicePixelRatio } from '@reactuses/core'` #### useElementByPoint `useElementByPoint` is a hook that returns the element at a given point. It is useful for implementing drag and drop, or for any other use case where you need t Documentation: https://reactuse.com/browser/useElementByPoint/ Usage: `import { useElementByPoint } from '@reactuses/core'` #### useEventSource `useEventSource` is a hook that allows you to subscribe to an EventSource and receive updates in real-time. Learn usage patterns, best practices, and code examp Documentation: https://reactuse.com/browser/useEventSource/ Usage: `import { useEventSource } from '@reactuses/core'` #### useEyeDropper Use [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API) to pick color Documentation: https://reactuse.com/browser/useEyeDropper/ Usage: `import { useEyeDropper } from '@reactuses/core'` #### useFavicon React side-effect hook sets the favicon of the page. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useFavicon/ Usage: `import { useFavicon } from '@reactuses/core'` #### useFetchEventSource `useFetchEventSource` is a hook that allows you to subscribe to an EventSource using HTTP methods like POST and receive updates in real-time. Documentation: https://reactuse.com/browser/useFetchEventSource/ Usage: `import { useFetchEventSource } from '@reactuses/core'` #### useFileDialog Open file dialog with ease. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useFileDialog/ Usage: `import { useFileDialog } from '@reactuses/core'` #### useFps React Sensor Hooks that tracks FPS (frames per second). Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useFps/ Usage: `import { useFps } from '@reactuses/core'` #### useFullscreen Display an element full-screen. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useFullscreen/ Usage: `import { useFullscreen } from '@reactuses/core'` #### useGeolocation React Sensor Hooks that tracks [Geolocation](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API) Documentation: https://reactuse.com/browser/useGeolocation/ Usage: `import { useGeolocation } from '@reactuses/core'` #### useIdle React sensor hook that tracks if user on the page is idle. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useIdle/ Usage: `import { useIdle } from '@reactuses/core'` #### useInfiniteScroll Infinite scrolling of the element. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useInfiniteScroll/ Usage: `import { useInfiniteScroll } from '@reactuses/core'` #### useKeyModifier React Sensor Hook that tracks state of any of the [supported Documentation: https://reactuse.com/browser/useKeyModifier/ Usage: `import { useKeyModifier } from '@reactuses/core'` #### useLocationSelector Selectively retrieve properties from location. This hook will only re-render when the value you return is changed. For more information, Documentation: https://reactuse.com/browser/useLocationSelector/ Usage: `import { useLocationSelector } from '@reactuses/core'` #### useLongPress React sensor hook that fires a callback after long pressing. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useLongPress/ Usage: `import { useLongPress } from '@reactuses/core'` #### useMediaDevices React sensor hook that tracks connected hardware devices. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useMediaDevices/ Usage: `import { useMediaDevices } from '@reactuses/core'` #### useMediaQuery Ease with media query. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useMediaQuery/ Usage: `import { useMediaQuery } from '@reactuses/core'` #### useMobileLandscape React hook that returns `true` if the mobile device is in landscape mode and `false` otherwise. Learn usage patterns, best practices, and code examples for Reac Documentation: https://reactuse.com/browser/useMobileLandscape/ Usage: `import { useMobileLandscape } from '@reactuses/core'` #### useMouse React sensor hooks that track cursor positio. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useMouse/ Usage: `import { useMouse } from '@reactuses/core'` #### useMousePressed React Sensor Hook that tracks mouse pressing state. Triggered by mousedown touchstart on target element and released by mouseup mouseleave touchend touchcancel Documentation: https://reactuse.com/browser/useMousePressed/ Usage: `import { useMousePressed } from '@reactuses/core'` #### useNetwork Tracks the state of browser's network connection. As of the standard it is not guaranteed that browser connected to the Internet, it only guarantees the network Documentation: https://reactuse.com/browser/useNetwork/ Usage: `import { useNetwork } from '@reactuses/core'` #### useObjectUrl Creates an URL for the provided `File`, `Blob`, or `MediaSource` via Documentation: https://reactuse.com/browser/useObjectUrl/ Usage: `import { useObjectUrl } from '@reactuses/core'` #### useOnline A wrapper of `useNetwork`. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useOnline/ Usage: `import { useOnline } from '@reactuses/core'` #### useOrientation React sensor hook that tracks screen orientation of user's device. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useOrientation/ Usage: `import { useOrientation } from '@reactuses/core'` #### usePageLeave React sensor hook that tracks when mouse leaves the page. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/usePageLeave/ Usage: `import { usePageLeave } from '@reactuses/core'` #### usePermission React side-effect hook to query permission status of browser APIs. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/usePermission/ Usage: `import { usePermission } from '@reactuses/core'` #### usePlatform React hook to tracked the platform of the user. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/usePlatform/ Usage: `import { usePlatform } from '@reactuses/core'` #### usePreferredColorScheme [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme) media query Documentation: https://reactuse.com/browser/usePreferredColorScheme/ Usage: `import { usePreferredColorScheme } from '@reactuses/core'` #### usePreferredContrast [prefers-contrast](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast) media query Documentation: https://reactuse.com/browser/usePreferredContrast/ Usage: `import { usePreferredContrast } from '@reactuses/core'` #### usePreferredDark React Hook that tracks dark theme preference. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/usePreferredDark/ Usage: `import { usePreferredDark } from '@reactuses/core'` #### usePreferredLanguages `usePreferredLanguages` is a hook that returns the user's preferred languages as an array of strings. It uses the `navigator.languages`. Learn usage patterns, b Documentation: https://reactuse.com/browser/usePreferredLanguages/ Usage: `import { usePreferredLanguages } from '@reactuses/core'` #### useReducedMotion React Hook that tracks motion preference. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useReducedMotion/ Usage: `import { useReducedMotion } from '@reactuses/core'` #### useScratch React sensor hook that tracks scratching/dragging gestures on an element with mouse and touch support. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useScratch/ Usage: `import { useScratch } from '@reactuses/core'` #### useScreenSafeArea React sensor hook that tracks `env(safe-area-inset-*)`. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useScreenSafeArea/ Usage: `import { useScreenSafeArea } from '@reactuses/core'` #### useScriptTag Script tag injecting. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useScriptTag/ Usage: `import { useScriptTag } from '@reactuses/core'` #### useScroll React Sensor Hook that tracks scroll position and stat. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useScroll/ Usage: `import { useScroll } from '@reactuses/core'` #### useScrollIntoView React sensor hook works like `element.scrollIntoView(). Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useScrollIntoView/ Usage: `import { useScrollIntoView } from '@reactuses/core'` #### useScrollLock Lock scrolling of the element while preserving scrolling within nested scrollable containers. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useScrollLock/ Usage: `import { useScrollLock } from '@reactuses/core'` #### useSpeechRecognition Reactive SpeechRecognition API for React. Real-time speech recognition with configurable options, cross-browser compatibility, and TypeScript support. Learn usage patterns, best practices, and code examples. Documentation: https://reactuse.com/browser/useSpeechRecognition/ Usage: `import { useSpeechRecognition } from '@reactuses/core'` #### useTextDirection change [dir](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) of the element's text Documentation: https://reactuse.com/browser/useTextDirection/ Usage: `import { useTextDirection } from '@reactuses/core'` #### useTitle set document title. Learn usage patterns, best practices, and code examples for React developers. Documentation: https://reactuse.com/browser/useTitle/ Usage: `import { useTitle } from '@reactuses/core'` #### useWebNotification The Web Notification interface of the Notifications API is used to configure and display desktop notifications to the user. Documentation: https://reactuse.com/browser/useWebNotification/ Usage: `import { useWebNotification } from '@reactuses/core'` ### Integrations Hooks #### useQRCode The `useQRCode` hook is a hook that generates a QR code for a given string. It is useful for generating QR codes for things like URLs, email addresses, and more Documentation: https://reactuse.com/integrations/useQRCode/ Usage: `import { useQRCode } from '@reactuses/core'` ## MCP Support ReactUse supports Model Context Protocol (MCP) integration for enhanced command-line support: ```json { "@reactuses/mcp": { "command": "npx", "args": ["-y", "@reactuses/mcp@latest"], "type": "stdio" } } ``` ## Community & Support Discord: https://discord.gg/HMsq6cFkKp | Issues: https://github.com/childrentime/reactuse/issues | Contributing: https://github.com/childrentime/reactuse/blob/main/CONTRIBUTING.md ## License UnLicense - Use freely without restrictions ## Companies Using ReactUse PDD (Pinduoduo) - E-Commerce | Shopee - E-Commerce | Ctrip - Travel Platform | Bambu Lab - 3D Printing --- Generated: 2026-01-13T15:59:57.040Z | Total Hooks: 112