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