Skip to main content
/
/
/
CheckboxCard

CheckboxCard

Toggleable panel

import CheckboxCard from "@intility/bifrost-react/CheckboxCard";
Props

Basic usage

CheckboxCard is a combination of <Card> and <Checkbox>

TSX
<CheckboxCard label="Blueberries">
  Blueberries udon noodles crispy iceberg lettuce picnic soy milk green tea
  scotch bonnet pepper tahini drizzle
</CheckboxCard>

Controlled state

You can bind to a boolean state using the checked prop and update your state every time the onChange event is triggered.

TSX
<CheckboxCard checked={selected} onChange={() => setSelected(!selected)}>

Radio buttons

RadioCard alias

By default, type will be checkbox. If you want radio button, pass type='radio' to the component.

Use the same name to connect multiple radio cards (so only one of them can be selected).

TSX
<CheckboxCard name="radioDemo" type="radio">

Switch toggle

SwitchCard alias
TSX
<CheckboxCard type="switch">

Custom label content

The label prop also accepts JSX content, which can be useful if you want an icon next to your header:

Header content

If you want to display content above your <CheckboxCard>, you can use header prop. You are responsible for the layout, but the component will ensure that your content is clickable and acts as a part of the component

TSX
<CheckboxCard
  label="Cilantro"
  header={<img src="/seal.jpg" alt="Grumpy-looking seal" />}
>
  ...
</CheckboxCard>

Align left

Optional placement for the checkbox, radio, or switch icon with align="left".

TSX
<CheckboxCard align="left">

Alert state

You can set the state prop to alert to give feedback to the user that something is wrong with the selection.

TSX
<CheckboxCard state="alert">

Inactive state

Use state="inactive" instead of disabled when the user needs to know the card exists but cannot be toggled — and why. The card chrome and label stay fully visible; only the toggle icon is dimmed. The control stays focusable and screen-readable (announced via aria-disabled), and can be wrapped in a <Tooltip> to explain the reason.

This matches the pattern from <Button state="inactive">.

Please note

state="inactive" only handles styling and the aria-disabled attribute. The underlying <input> is still a checkbox that the browser will toggle on click. To actually block toggling, render the card in controlled mode and ignore onChange (or never update the checked state) while inactive.

TSX
<CheckboxCard state="inactive">

Combine controlled state with <Tooltip> to keep the value frozen and explain why the card is inactive:

Disabled

CheckboxCard can be disabled, by passing disabled prop.

Prefer state="inactive" for accessibility. A disabled control cannot be focused, read by screen readers, or hold a tooltip, meaning users can't discover why it's not interactive.

TSX
<CheckboxCard disabled>

If you're using header and disabled prop together, it will get reduced opacity.

TSX
<CheckboxCard
  label="Seal"
  disabled
  header={<img src="/seal.jpg" alt="Grumpy-looking seal" />}
>
  ...
</CheckboxCard>