EEnterUI
DocsComponentsThemesDonation
Get Started
      • Sheet
      • HoverCard
      • ContextMenu
      • OverlayProvider
EnterUIDocsNavigation OverlaysOverlaysPanels and ContextOverlayProvider
Navigation OverlaysUpdated 6 May 2026

OverlayProvider

Coordinates overlay stack state for dialogs, sheets, popovers, and command surfaces.

OverlayProvider defines how EnterUI coordinates overlay stack state, including registration order, top-overlay checks, and close delegation without replacing focus traps owned by overlay primitives.

#Default usage

Overlay coordination

Wrap app surfaces that need shared overlay stack awareness.

Overlay manager ready

Dialogs, sheets, popovers, and command menus can register with the same stack.

Code
<OverlayProvider>
  <Card>
    <CardHeader>
      <CardTitle>Overlay manager ready</CardTitle>
      <CardDescription>Dialogs, sheets, popovers, and command menus can register with the same stack.</CardDescription>
    </CardHeader>
  </Card>
</OverlayProvider>

#Import

Code
import { OverlayProvider, useOverlayManager } from "@froggdesign/enter-ui-react";

#Patterns

Use registerOverlay when a custom overlay opens and call the returned cleanup when it closes. Higher priority overlays are treated as above lower priority overlays.

Code
const manager = useOverlayManager();

React.useEffect(() => {
  if (!open) return;
  return manager.registerOverlay({
    id: "settings-dialog",
    type: "dialog",
    priority: 10,
    close: () => setOpen(false),
  });
}, [manager, open]);

#Accessibility

OverlayProvider does not create DOM focus traps, portals, or inert behavior. It tracks overlay order only, so Radix Dialog, Sheet, Popover, and related primitives keep owning keyboard focus and screen reader semantics.

#API

  • OverlayProvider: provides overlay stack state.
  • useOverlayManager(): returns registerOverlay, unregisterOverlay, isTopOverlay, getOverlayIndex, closeTopOverlay, and overlays.
  • registerOverlay(overlay): accepts { id, type, priority, close, metadata } and returns a cleanup function.

#Styling

OverlayProvider is a coordination utility and does not render visible UI. Overlay components should keep using their own .eui-* classes and FroggDesign tokens.

PreviousContextMenu
NextTable

On this page

  1. Default usage
  2. Import
  3. Patterns
  4. Accessibility
  5. API
  6. Styling