Functional Components
Checkbox Group
Checkbox Groups allow users to select one or more related options from a list or set. This component supports a wide range of visual layouts — from standard stacked checkboxes to styled cards, avatars, or icon-based selections. It’s ideal for filters, multi-select questions, preferences, and onboarding flows.
🧭 When to Use a Checkbox Group
Use a Checkbox Group when:
Users can select multiple answers or preferences
You want to present options as visual blocks, not just text
You're building filters, forms, or multi-choice selectors
Avoid using a Checkbox Group when:
Only one answer is allowed — use a Radio Group
The form is long and selection doesn't benefit from styling — use simple checkboxes
🔲 Status
Checkbox Groups use status tokens consistent with your system:
Default – No interaction
Hover – Slight highlight or border glow to indicate interactivity
These states apply at the group item level, not just the individual checkboxes.
🎨 Types
Checkbox Groups support a wide range of layout and visual presentation styles:
Horizontal Icon Check – Icons laid out side-by-side with a check overlay
Horizontal Checkbox – Standard checkbox + label in a row
Stack – Default stacked vertical layout
Stack Badge – Label appears inside pill/badge-style containers
Horizontal Avatar – Row of avatars with selectable state
Stack Icon Check – Vertically stacked cards with an icon and a check indicator on select
Each type allows the same interaction logic and can be toggled via variants in Figma.
🎯 States
Each checkbox within the group has a binary visual state:
Unselected – Not yet chosen; idle
Selected – Active, visually indicated with a checkmark, color shift, or border
In avatar or badge styles, the selection often appears as an overlay icon or border ring.
🎨 Background Variants
Checkbox Groups can appear in different UI contexts:
Default – For use on standard or light backgrounds
Inverse – Optimized for dark themes or colored sections (e.g., over dark cards, modals, or hero content)
Tokens for text, border, and fill adjust based on background type for full contrast compliance.
🧩 Component Structure
Each group includes:
Group label or heading (optional)
A set of checkbox items with styling based on the selected type
Optional subtext or descriptions for each item
Auto layout logic for spacing, wrapping, and stacking across screen sizes
Each checkbox item can also include:
An icon
An avatar
A badge or tag
A description
A selection indicator
Layer visibility is toggled via Figma component properties.
♿ Accessibility Considerations
From a design perspective:
Ensure selected states are clear, even without color (use icons or bolding)
Maintain enough spacing between options for easy tap/click
Keep contrast compliant for inverse or image-based layouts
From a code perspective (if implemented):
Wrap the group in a
fieldset
with alegend
for labelingUse
aria-checked
,aria-labelledby
, androle="group"
where appropriateSupport keyboard navigation and spacebar selection
✅ Best Practices
Use horizontal icon or avatar layouts for compact visual filters (e.g., in dashboards)
Use stacked badge or icon check for onboarding and form flows
Limit group options to 5–7 visible items — use collapsible logic if more
Add descriptions when necessary, but avoid overwhelming the layout
Match background type to page theme — don’t use inverse on light UIs unless clearly separated
Welcome Aboard
© Copyright 2024. All rights reserved.