# useBoolean > Boolean state with setTrue, setFalse, toggle and set. - Category: State - Package: `hookli` (install with `npm i hookli`) - Docs: https://hookli.vercel.app/docs/use-boolean ## Signature ```ts useBoolean(defaultValue?: boolean): { value: boolean; setValue: (value: boolean) => void; setTrue: () => void; setFalse: () => void; toggle: () => void } ``` ## Parameters - `defaultValue`: `boolean` (default: `false`) — The value the boolean starts from. ## Returns - `value`: `boolean` — The current boolean value. - `setValue`: `(value: boolean) => void` — Sets the value directly. - `setTrue`: `() => void` — Sets the value to true. - `setFalse`: `() => void` — Sets the value to false. - `toggle`: `() => void` — Flips the value. ## Usage ```tsx import { useBoolean } from "hookli"; export function Demo() { const { value, setTrue, setFalse, toggle } = useBoolean(false); return (

{value ? "On" : "Off"}

); } ``` ## Source `src/hooks/use-boolean/use-boolean.ts` ```ts import { useCallback, useState } from "react"; export interface UseBooleanReturn { value: boolean; setValue: (value: boolean) => void; setTrue: () => void; setFalse: () => void; toggle: () => void; } export const useBoolean = (defaultValue = false): UseBooleanReturn => { const [value, setValue] = useState(defaultValue); const setTrue = useCallback(() => setValue(true), []); const setFalse = useCallback(() => setValue(false), []); const toggle = useCallback(() => setValue((prev) => !prev), []); return { value, setValue, setTrue, setFalse, toggle }; }; ```