Skip to content

shadcn.io is an independent project built on shadcn/ui

Free

Button with Count (Outline) for React

An outline button with a count beside the label, when a secondary action should show how many items it actually covers.

A border, the label, and a badge with the number. The demo shows 3. Update it from your state, and hide the badge at zero if zero is not useful.

Use it for View cart or Review comments when this is not the primary button. If the count is urgent, put it on the filled Button. In React, Base UI does not keep the number in sync for you.

Preview

Preview width

Installation

Sign in to get your install command
Free with an account. It carries your token, so the CLI installs everything in one go.
Use email insteadNo credit card

Anatomy

Button anatomy: root, icon, text

Usage

<Button variant="outline">
  Button
  <Badge pill variant="secondary">
    3
  </Badge>
</Button>

FAQ

Is the 3 a live count?

No. The Badge children are the characters 3. Nothing in the demo reads a selection or updates the number. Pass your count as the badge's children.

How is the badge colored on an outline button?

variant="outline" is the bordered button. The badge is variant="secondary" and pill, a muted round count on the outline.

Should I disable it when the count is 0?

When a delete with nothing selected shouldn't run, pass disabled yourself. The demo always shows 3 and stays enabled. Hide the button only when that action isn't part of the screen.

How do I show singular and plural?

The badge is only the number. Put the noun on the button, such as Delete, or write the whole phrase as the button's children. This demo doesn't pick a plural form for you.

What if the number is long?

The badge sizes to its text, so 1482 widens the button. Format the children before you pass them if you want a shorter label, such as 99+. The component won't abbreviate them.

How is the count announced?

The badge text is inside the button, so this demo is announced as its label plus 3. Set aria-label on the button, such as Delete 3 items, when the visible words aren't a full phrase.

API Reference

Button

Sets variant="outline". The rest is on the Button page.

Badge

Sets pill and variant="secondary". The rest is on the Badge page.