Files
zero-fucks-given/packages/hooks/src/useBodyClass/Readme.md
T

1.0 KiB

useBodyClass

Adds one or more CSS classes to document.body while the component is mounted, and removes them on unmount.

Signature

function useBodyClass(className: string): void;
Parameter Type Description
className string Space-separated class name(s) to add to document.body

Usage

export function ModalLayout({ children }: { children: React.ReactNode }) {
  useBodyClass('overflow-hidden bg-overlay');

  return <div>{children}</div>;
}

While ModalLayout is mounted, document.body will have the classes overflow-hidden and bg-overlay. Both are removed automatically when the component unmounts.

Notes

  • Accepts a space-separated string — multiple classes are handled individually so partial removal is safe.
  • Re-applies classes if the className prop changes.
  • Client-only ('use client'). Does not run during SSR.