Card
The Card component is used to group and showcase content. It supports optional visuals, flexible layout, and can include buttons or links.
Default
<Card href="#" title="Edit settings" description="Review and adjust chat UI settings." visual={ <div className="flex justify-center"> <SettingsEdit size={80} /> </div> } />
Without link
<Card title="Static card" description="This card does not link anywhere." visual={ <div className="flex justify-center"> <Chat size={80} /> </div> } bgHoverColor="" />
Text only
This variant doesn’t include a visual element and is ideal for simple content blocks. You can customise the titleColor
, descriptionColor
, bgHoverColor
, and radius
to create strong visual contrast or subtle emphasis.
<Card href="#" title="Text only" titleColor="group-hover:text-white" description="This card does not include an image or icon." descriptionColor="group-hover:text-gray-400" className="bg-gray-100" radius="rounded-md" bgHoverColor="hover:bg-gray-900" />
With button
This card includes a full-width button placed below the description. The visual
prop can be used for icons or other media, and you can nest additional elements like Button
inside the card as children.
<Card title="Interactive card" description="This card includes a call-to-action button." visual={ <div className="flex justify-center"> <Folder size={80} /> </div> } bgHoverColor="" > <Button className="w-full mt-2">Open project</Button> </Card>
Card with icon
This variant displays a compact icon to the left of the text content — useful for visually reinforcing meaning or status. You can customise the icon itself, as well as its background and border colour using iconBgColor
and iconBorderColor
props.
<Card href="#" title="Left-aligned icon" description="This card uses a Carbon icon positioned to the left of the text content." icon={<Checkmark size={16} className="text-white" />} iconBgColor="bg-blue-500" iconBorderColor="border-blue-500" className="bg-white" bgHoverColor="group-hover:bg-gray-50" />
Usage
Import the Card
component and pass in the title
, description
, and optionally href
, visual
, or other layout props. The Card component can be referenced using the following format:
import Card from "../../components/Card"; <Card href="#" title="Project Files" description="Browse a collection of organized assets." visual={<div className="flex justify-center"><Folder size={80} /></div>} />