Skip to Content
ComponentsCounter

Counter

Input component for incrementing and decrementing numeric values, plus a badge-style number display.

Import

import { Counter, NumberCounter } from "@raydenui/ui";

Usage

Basic Counter

0
<Counter />

Controlled Counter

const [value, setValue] = useState(5); <Counter value={value} onChange={setValue} />

Sizes

3
5
7
<Counter size="sm" /> <Counter size="md" /> <Counter size="lg" />

Shapes

1
2
3
<Counter shape="rounded" /> <Counter shape="block" /> <Counter shape="pill" />

With Min/Max

5
<Counter min={0} max={10} defaultValue={5} />

With Step

10
<Counter step={5} defaultValue={0} />

Disabled

3
<Counter disabled defaultValue={3} />

NumberCounter

A badge-style display for showing numeric values.

Basic

5
<NumberCounter value={5} />

Sizes

3
12
99
<NumberCounter value={3} size="sm" /> <NumberCounter value={12} size="md" /> <NumberCounter value={99} size="lg" />

Colors

5
3
8
2
<NumberCounter value={5} color="orange" /> <NumberCounter value={3} color="red" /> <NumberCounter value={8} color="grey" /> <NumberCounter value={2} color="white" />

In Context

// Shopping cart badge <div className="relative"> <ShoppingCartIcon className="w-6 h-6" /> <NumberCounter value={3} size="sm" color="red" className="absolute -top-2 -right-2" /> </div> // Notification count <div className="flex items-center gap-2"> <span>Messages</span> <NumberCounter value={12} size="sm" /> </div>

Props

Counter

PropTypeDefaultDescription
valuenumber—Current value (controlled)
onChange(value: number) => void—Change callback
defaultValuenumber0Initial value (uncontrolled)
size"sm" | "md" | "lg""sm"Button and text size
shape"rounded" | "block" | "pill""rounded"Container border radius
minnumber0Minimum allowed value
maxnumberInfinityMaximum allowed value
stepnumber1Increment/decrement amount
disabledbooleanfalseDisabled state
classNamestring—Additional CSS classes

NumberCounter

PropTypeDefaultDescription
valuenumber | string—Display value (required)
size"sm" | "md" | "lg""sm"Badge size
color"orange" | "red" | "grey" | "white""orange"Background color
classNamestring—Additional CSS classes

Size Reference

Counter Sizes

SizeButtonIconText
sm32px16pxtext-sm
md40px20pxtext-sm
lg48px24pxtext-base

NumberCounter Sizes

SizePaddingMin Size
sm4px16px
md4px28px
lg8px36px

Accessibility

  • Increment button has aria-label="Increase"
  • Decrement button has aria-label="Decrease"
  • Buttons are disabled when at min/max limits
  • Supports keyboard navigation
Last updated on