UNPKG

rooks

Version:

Collection of awesome react hooks

55 lines (54 loc) 1.54 kB
/** * Color scheme preference */ type ColorScheme = "light" | "dark" | "no-preference"; /** * Return value for the usePreferredColorScheme hook */ interface UsePreferredColorSchemeReturnValue { /** * The preferred color scheme (light, dark, or no-preference) */ colorScheme: ColorScheme | null; /** * Whether the preferred color scheme is dark */ isDark: boolean; /** * Whether the preferred color scheme is light */ isLight: boolean; } /** * usePreferredColorScheme hook * * Detect and track the user's preferred color scheme (dark mode or light mode). * Automatically updates when the user changes their system preference. * * @returns Object containing color scheme information * * @example * ```tsx * import { usePreferredColorScheme } from "rooks"; * * function ThemeAwareComponent() { * const { colorScheme, isDark, isLight } = usePreferredColorScheme(); * * return ( * <div style={{ * backgroundColor: isDark ? "#000" : "#fff", * color: isDark ? "#fff" : "#000" * }}> * <h1>Current theme: {colorScheme}</h1> * <p>Dark mode is {isDark ? "enabled" : "disabled"}</p> * <p>Light mode is {isLight ? "enabled" : "disabled"}</p> * </div> * ); * } * ``` * * @see https://rooks.vercel.app/docs/hooks/usePreferredColorScheme */ declare function usePreferredColorScheme(): UsePreferredColorSchemeReturnValue; export { usePreferredColorScheme }; export type { UsePreferredColorSchemeReturnValue, ColorScheme };