Chips

Chips are compact elements that represent an input, attribute, or action. They allow users to enter information, make selections, filter content, or trigger actions.

When to use

  • To display selected items in a multi-select input or autocomplete field
  • To show tags or categories associated with an item
  • To create removable filters or search queries
  • To represent user-entered data that can be edited or removed
  • For displaying contact information (email, phone) in a compact form

When not to use

  • For read-only labels without interaction (use Badges instead)
  • For primary navigation or actions (use Buttons)
  • When the information is critical and should not be easily dismissed
  • For displaying status indicators that should not be removable (use Badges)

Component Anatomy

A Lighthouse Chip consists of:

  • Chip Container: The pill-shaped background element
  • Icon (optional): A prepended icon for visual context
  • Label Text: The main content displayed in the chip
  • Remove Button (optional): An "X" button to dismiss/remove the chip

Variants

Chips use contextual colors to convey meaning:

  • Primary: For default selections or primary tags
  • Secondary: For less prominent tags
  • Success: For positive states or confirmed items
  • Danger: For critical items or errors
  • Warning: For cautionary tags
  • Info: For informational tags

States

Chips can be in different visual states: normal (outline) or active (filled).

Normal (Outline)

Default state with outlined style - light background tint with colored border.

Active (Filled)

Active/selected state with filled background - solid color background.

Sizes

Three size variants are available: small, medium (default), and large.

With Icon

Chips can display an icon before the label for additional context.

Removable

Chips can be made removable by adding the removable prop and listening to the @remove event.

Disabled

Disabled chips cannot be clicked or removed.

Interactive

Chips emit a @click event when clicked (if not disabled).

Props

PropTypeDefaultDescription
variant"primary" | "secondary" | "success" | "danger" | "warning" | "info""primary"The color variant of the chip
size"sm" | "lg"-The size of the chip
disabledbooleanfalseWhether the chip is disabled
activebooleanfalseWhether the chip is in active/selected state (filled style)
removablebooleanfalseWhether the chip shows a remove button
iconstringnullBootstrap icon class (e.g., "bi-person")
classstringnullAdditional CSS classes
removeAriaLabelstring"Remove"ARIA label for the remove button

Events

EventPayloadDescription
@clickEventEmitted when the chip is clicked (not disabled)
@removeEventEmitted when the remove button is clicked (if removable)

Accessibility

  • Chips have role="button" for screen reader compatibility
  • Keyboard navigation: Tab to focus, Enter/Space to activate
  • Remove button has customizable aria-label for screen readers
  • Disabled state communicated via aria-disabled
  • Focus visible indicator for keyboard navigation