Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Button examples · Outline

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.

Framework
UI library

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.

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.