Skip to main content
Components

React Overlay Components

Modals, drawers, popovers, tooltips, and dropdown menus — all with focus trapping, portal rendering, and Radix accessibility.

import { Modal, Drawer, Popover, Tooltip, DropdownMenu } from "@ninna-ui/overlays";

<Tooltip content="Helpful tip">
  <Button>Hover me</Button>
</Tooltip>

<DropdownMenu>
  <DropdownMenu.Trigger>Menu</DropdownMenu.Trigger>
  <DropdownMenu.Content>
    <DropdownMenu.Item>Edit</DropdownMenu.Item>
    <DropdownMenu.Item>Delete</DropdownMenu.Item>
  </DropdownMenu.Content>
</DropdownMenu>

Key features

Modal: focus-trapped dialog with scroll lock

Drawer: slide-in panel from any edge

Popover: anchored floating content

Tooltip: smart positioning with delay control

DropdownMenu: full menu with submenus, separators, labels

All render in portals — no z-index battles

One package for all overlays

All overlay components live in @ninna-ui/overlays — not scattered across packages. This is a common gotcha for developers coming from shadcn/ui, where overlays are mixed into primitives. Import Modal, Drawer, Popover, Tooltip, and DropdownMenu from the same package.

Component Docs

FAQ