Charcoal UI

Overflow Actions

A toolbar that never wraps: as it narrows, the actions that no longer fit slide into a More menu with a count, and they come back as it widens.

Examples

Overflow Actions

API reference

PropTypeDefaultDescription
actions{ label; icon; onClick? }[]—
classNamestring—

About Overflow Actions

Overflow Actions keeps a toolbar on one line: as it narrows, actions that no longer fit slide into a More menu with a count, and they come back as it widens.

Overflow Actions is a navigation component for React 19, styled with Tailwind CSS 4 and animated with Motion. It drops into Next.js, Vite, Remix or Astro through the shadcn CLI as a single file you own.

When to use Overflow Actions

  • Editor and formatting toolbars.
  • Responsive page headers.
  • Table and card action rows.
  • Mobile layouts.

How it works

A hidden copy of every button measures its natural width, and a ResizeObserver decides how many fit. The More menu closes on outside click and Escape.

Links and buttons keep their roles, arrow keys move where a group is expected, the current item is marked with aria-current, and focus is always visible. With prefers-reduced-motion on, it holds still or settles instantly instead of animating.

Customizing Overflow Actions

Every prop is documented in the API reference above with its type and default. The ones you will reach for first are listed here.

Style it with className like any other element. It only uses your theme's tokens, so it follows light and dark mode without extra work.

  • actions ({ label; icon; onClick? }[]).

Goes well with Overflow Actions

These navigation pieces share its tokens and motion language, so they sit together on one page without clashing.

  • Dock: A macOS-style React dock whose icons swell with pointer distance and show labels
  • Expandable Tabs: Compact React icon tabs where the active tab expands to reveal its label
  • Floating Nav: A floating React pill nav that hides on scroll down and returns on scroll up
  • Context Menu: A React right-click context menu that opens at the pointer and stays on screen
  • Bottom Nav: An animated React mobile tab bar with a sliding pill, hopping icons and badges

Install Overflow Actions

npx shadcn@latest add @charcoal/overflow-actions

Overflow Actions is part of Charcoal UI Pro. One seat unlocks all 393 Pro components, 112 landing-page sections and 100 full templates, for every personal and client project, with updates included. Add the @charcoal registry once with your access token, then the command above copies overflow-actions.tsx into components/ui and installs clsx, tailwind-merge.

You own the file you install: no runtime package, no lock-in, nothing to keep in sync. Change it however your product needs.

See Charcoal UI Pro pricing · Pro setup

Frequently asked questions

How do I install Overflow Actions?
Overflow Actions is part of Charcoal UI Pro. Add the @charcoal registry to components.json with your access token, then run npx shadcn@latest add @charcoal/overflow-actions. It copies overflow-actions.tsx into components/ui and installs motion, clsx, tailwind-merge.
Is Overflow Actions free for commercial use?
Overflow Actions needs a Charcoal UI Pro seat, monthly or a one-time lifetime price. A seat covers unlimited personal and commercial projects, including client work, and every future Pro component.
Does Overflow Actions work with Next.js?
Yes. It is a client component for React 19 styled with Tailwind CSS 4, so it works in the Next.js App Router and Pages Router, Vite, Remix and Astro.
Can an AI coding agent install Overflow Actions?
Yes. Connect the Charcoal UI MCP server (https://charcoalui.com/mcp) to Claude Code, Cursor or any MCP client; get_component returns Overflow Actions's props and get_install_command returns the exact command.

Overflow Actions as Markdown · llms.txt