Skip to main content
useHover tracks whether a referenced element is currently hovered by the pointer.

Usage

import { useHover } from '@kuzenbo/hooks';

function Demo() {
  const { hovered, ref } = useHover<HTMLDivElement>();

  return (
    <div
      ref={ref}
      style={{
        padding: 40,
        background: hovered ? 'orange' : 'cyan',
      }}
    >
      {hovered ? 'Hovered' : 'Not hovered'}
    </div>
  );
}

API Reference

Parameters

This hook takes no parameters.

Returns

hovered
boolean
true when the element is currently being hovered, false otherwise.
ref
RefCallback<T>
A ref callback to attach to the element you want to track hover state for.

With Dynamic Styling

import { useHover } from '@kuzenbo/hooks';

function Card() {
  const { hovered, ref } = useHover();

  return (
    <div
      ref={ref}
      className={hovered ? 'card-hovered' : 'card'}
    >
      <h3>Card Title</h3>
      <p>Card content</p>
    </div>
  );
}

TypeScript

You can specify the element type using a generic:
import { useHover } from '@kuzenbo/hooks';

function Demo() {
  const { hovered, ref } = useHover<HTMLButtonElement>();

  return (
    <button ref={ref}>
      {hovered ? 'Release to click' : 'Hover me'}
    </button>
  );
}

Build docs developers (and LLMs) love