Documentation

useFocusTrap

Trap focus within an element for modal accessibility.

Installation

pnpm add @rouf-dev/pantheon-ui

Usage

"use client";

import { useFocusTrap } from "@rouf-dev/pantheon-ui";
import { useRef } from "react";

export function ModalDemo() {
  const modalRef = useRef(null);
  useFocusTrap(modalRef, true); // true = trap is active

  return (
    <div ref={modalRef}>
      <button>First focusable</button>
      <input type="text" />
      <button>Last focusable</button>
    </div>
  );
}

Parameters

ref: React ref for the container element

active: Boolean to enable/disable focus trap