Components

Badge

Color label chip for categorization and status indication

Overview

Badge is a color label chip. It supports three modes: read-only, removable, and add button.

  • 6 colors — blue, gray, green, purple, red, yellow
  • 3 modes — Default (read-only), removable (onRemove), add button (addButtonVariant)
  • Chevron icon — Displays chevron in default mode when connected to a selector

Basic Usage

import { Badge } from '@illog/ui'
 
// Read-only
<Badge item={{ id: '1', name: 'In Progress', color: 'blue' }} />
 
// Removable
<Badge
  item={{ id: '1', name: 'Done', color: 'green' }}
  onRemove={() => handleRemove('1')}
/>
 
// Add button
<Badge
  item={{ name: 'Add Category' }}
  addButtonVariant="default"
  openSelector={(e) => openBadgeSelector(e)}
/>

Colors

ColorExample Usage
blueIn progress, informational
grayDefault, inactive
greenCompleted, success
purpleSpecial, premium
redUrgent, error
yellowWarning, pending

Props

PropTypeDefaultDescription
itemBadgeItem | OmittedBadgeItemrequiredBadge data (name, color, etc.)
addButtonVariant'default' | 'error'Enables add button mode
isOpenedSelectorbooleanChevron icon rotation state
withoutIconbooleanHides chevron in default mode
openSelector(e: MouseEvent) => voidAdd button click handler
onRemove() => voidEnables remove mode + remove handler

BadgeItem Type

type BadgeColor = 'blue' | 'gray' | 'green' | 'purple' | 'red' | 'yellow'
 
type BadgeItem = {
  id: string
  name: string
  color?: BadgeColor
  createdAt?: Date | string
  updatedAt?: Date | string | null
  deletedAt?: Date | string | null
}

Guidelines

  • Use Badge for single selection; use Tag for multi-selection
  • Combine with BadgeSelector for a selection UI with built-in CRUD functionality