Skip to content

Card Select

The CardSelect component provides an accessible, customizable card-based selection interface. It supports both single and multiple selection modes with flexible layouts (horizontal, vertical, or grid), making it suitable for forms, settings, and decision workflows.

Variations

Selection modes

The CardSelect supports two selection types. single behaves like a radio group; multiple behaves like a set of checkboxes.

Layout

Cards can be arranged horizontally, vertically, or in a grid:

Gap

Control the gap between cards using the gap prop:

Icons and logos

Cards can display either an icon or a logo. If both are set, the icon wins:

Disabled

Cards can be disabled either individually or as a group:

Coming soon

Cards can be marked as not-yet-available. comingSoon forces the item disabled and shows a badge:

Glow

Selected cards can show an accent glow ring in addition to the standard checked border:

Installation

import { CardSelect } from "@harnessio/ui/components";
return (
<CardSelect.Root type="single">
<CardSelect.Item value="option-1" icon="git-branch">
<CardSelect.Title>Option 1</CardSelect.Title>
<CardSelect.Description>With an icon</CardSelect.Description>
</CardSelect.Item>
<CardSelect.Item value="option-2" logo="jira">
<CardSelect.Title>Option 2</CardSelect.Title>
<CardSelect.Description>With a logo</CardSelect.Description>
</CardSelect.Item>
</CardSelect.Root>
)