role group
Checkbox group draft v0.1.0
Lets people pick any number of options from a short, visible set, under one legend.
A checkbox group shows every option at once, with a legend naming the choice, and lets people check any number of them, including none. It is the grouped form of the Checkbox: the group carries the legend, the shared help text and the error message, and each option its own label, description, value and checked state. Exactly one choice is a Radio group; a long list is a Select.
Playground
Token inspector
Part container
Not rendered in this configuration.
-
row-gap from default
{space.8}Details
- Value
-
8px - CSS
--checkbox-group-container-row-gap- Token
checkbox-group.container.row-gap
-
gap
verticalfrom default{space.8}Details
- Value
-
8px - CSS
--checkbox-group-container-gap-vertical- Token
checkbox-group.container.gap.vertical- Decisions
-
gap
horizontalfrom default{space.16}Details
- Value
-
16px - CSS
--checkbox-group-container-gap-horizontal- Token
checkbox-group.container.gap.horizontal- Decisions
Part legend
Not rendered in this configuration.
-
color
defaultfrom default{global.text.on-base.neutral.primary}Details
- Resolves through
light-switch.base.950 rawneutral.light.ash.950 raw- Value
-
#0E0D0Ddark:#D2CECF - CSS
--checkbox-group-legend-color-default- Token
checkbox-group.legend.color.default
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--checkbox-group-legend-color-disabled- Token
checkbox-group.legend.color.disabled
-
typography from default
Details
- Value
-
Inter [object Object]/1.5 500 [object Object] - CSS
--checkbox-group-legend-typography-font-family- Token
checkbox-group.legend.typography
Part description
Not rendered in this configuration.
-
color
defaultfrom default{global.text.on-base.neutral.secondary}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--checkbox-group-description-color-default- Token
checkbox-group.description.color.default
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--checkbox-group-description-color-disabled- Token
checkbox-group.description.color.disabled
-
typography from default
Details
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--checkbox-group-description-typography-font-family- Token
checkbox-group.description.typography
Part option
Not rendered in this configuration.
-
column-gap from default
{space.8}Details
- Value
-
8px - CSS
--checkbox-group-option-column-gap- Token
checkbox-group.option.column-gap
-
row-gap from default
{space.2}Details
- Value
-
2px - CSS
--checkbox-group-option-row-gap- Token
checkbox-group.option.row-gap
Part control
Not rendered in this configuration.
-
size
smallfrom default{size.2}Details
- Value
-
16px - CSS
--checkbox-group-control-size-small- Token
checkbox-group.control.size.small- Decisions
-
size
mediumfrom default{size.3}Details
- Value
-
20px - CSS
--checkbox-group-control-size-medium- Token
checkbox-group.control.size.medium- Decisions
-
border-radius
smallfrom default{corner-radius.2xs}Details
- Value
-
2px - CSS
--checkbox-group-control-border-radius-small- Token
checkbox-group.control.border-radius.small- Decisions
-
border-radius
mediumfrom default{corner-radius.xs}Details
- Value
-
4px - CSS
--checkbox-group-control-border-radius-medium- Token
checkbox-group.control.border-radius.medium- Decisions
-
border-width from default
{stroke-width.md}Details
- Value
-
1.2px - CSS
--checkbox-group-control-border-width- Token
checkbox-group.control.border-width- Decisions
-
background
defaultfrom default{global.bg.level.0.default}Details
- Resolves through
global.bg.base.neutral.1 semanticlight-switch.base.25 rawneutral.light.ash.25 raw- Value
-
#FDFDFDdark:#191919 - CSS
--checkbox-group-control-background-default- Token
checkbox-group.control.background.default- Decisions
-
background
hoverfrom default{global.bg.level.0.hover}Details
- Resolves through
global.bg.base.neutral.2 semanticlight-switch.base.50 rawneutral.light.ash.50 raw- Value
-
#F7F6F6dark:#212121 - CSS
--checkbox-group-control-background-hover- Token
checkbox-group.control.background.hover- Decisions
-
background
checkedfrom default{global.bg.accent.brand.default}Details
- Resolves through
brand.light.600 raw- Value
-
#175DD6dark:#9EE7FA - CSS
--checkbox-group-control-background-checked- Token
checkbox-group.control.background.checked- Decisions
-
background
disabledfrom default{global.bg.state.disabled.default}Details
- Value
-
#B6B4B41adark:#7676764d - CSS
--checkbox-group-control-background-disabled- Token
checkbox-group.control.background.disabled- Decisions
-
border-color
defaultfrom default{global.border.accent.neutral.default}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--checkbox-group-control-border-color-default- Token
checkbox-group.control.border-color.default- Decisions
-
border-color
hoverfrom default{global.border.accent.neutral.default}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--checkbox-group-control-border-color-hover- Token
checkbox-group.control.border-color.hover- Decisions
-
border-color
checkedfrom default{global.border.accent.brand.default}Details
- Resolves through
brand.light.700 raw- Value
-
#1148A9dark:#53D6F2 - CSS
--checkbox-group-control-border-color-checked- Token
checkbox-group.control.border-color.checked- Decisions
-
border-color
invalidfrom default{global.border.base.functional.error.default}Details
- Resolves through
functional.error.600 raw- Value
-
#C01619dark:#E12A23 - CSS
--checkbox-group-control-border-color-invalid- Token
checkbox-group.control.border-color.invalid- Decisions
-
border-color
disabledfrom default{global.border.state.disabled.default}Details
- Value
-
#B6B4B466dark:#363636b2 - CSS
--checkbox-group-control-border-color-disabled- Token
checkbox-group.control.border-color.disabled- Decisions
-
color
checkedfrom default{global.icon.on-accent.brand.default}Details
- Resolves through
global.text.on-accent.brand.default semanticbrand.light.25 raw- Value
-
#FBFCFDdark:#09191D - CSS
--checkbox-group-control-color-checked- Token
checkbox-group.control.color.checked- Decisions
-
color
disabledfrom default{global.icon.state.disabled.default}Details
- Resolves through
global.text.state.disabled.default semanticlight-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--checkbox-group-control-color-disabled- Token
checkbox-group.control.color.disabled- Decisions
-
outline-width
focus-visiblefrom default{focus.ring.width}Details
- Resolves through
stroke-width.lg semantic- Value
-
2.4px - CSS
--checkbox-group-control-outline-width-focus-visible- Token
checkbox-group.control.outline-width.focus-visible
-
outline-offset
focus-visiblefrom default{focus.ring.offset}Details
- Resolves through
space.4 semantic- Value
-
4px - CSS
--checkbox-group-control-outline-offset-focus-visible- Token
checkbox-group.control.outline-offset.focus-visible
-
outline-color
focus-visiblefrom default{color.focus.ring}Details
- Resolves through
brand.light.600 raw- Value
-
#175DD6dark:#9EE7FA - CSS
--checkbox-group-control-outline-color-focus-visible- Token
checkbox-group.control.outline-color.focus-visible
-
transition.duration from default
{duration.fast}Details
- Value
-
150ms - CSS
--checkbox-group-control-transition-duration- Token
checkbox-group.control.transition.duration
-
transition.easing from default
{easing.standard}Details
- Value
-
cubic-bezier(0.2, 0, 0, 1) - CSS
--checkbox-group-control-transition-easing- Token
checkbox-group.control.transition.easing
Part option-label
Not rendered in this configuration.
-
color
defaultfrom default{global.text.on-base.neutral.primary}Details
- Resolves through
light-switch.base.950 rawneutral.light.ash.950 raw- Value
-
#0E0D0Ddark:#D2CECF - CSS
--checkbox-group-option-label-color-default- Token
checkbox-group.option-label.color.default
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--checkbox-group-option-label-color-disabled- Token
checkbox-group.option-label.color.disabled
-
typography
smallfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--checkbox-group-option-label-typography-small-font-family- Token
checkbox-group.option-label.typography.small- Decisions
-
typography
mediumfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--checkbox-group-option-label-typography-medium-font-family- Token
checkbox-group.option-label.typography.medium- Decisions
Part option-description
Not rendered in this configuration.
-
color
defaultfrom default{global.text.on-base.neutral.secondary}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--checkbox-group-option-description-color-default- Token
checkbox-group.option-description.color.default
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--checkbox-group-option-description-color-disabled- Token
checkbox-group.option-description.color.disabled
-
typography
smallfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--checkbox-group-option-description-typography-small-font-family- Token
checkbox-group.option-description.typography.small
-
typography
mediumfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--checkbox-group-option-description-typography-medium-font-family- Token
checkbox-group.option-description.typography.medium
Part error-message
Not rendered in this configuration.
-
color from default
{global.text.on-base.functional.error.default}Details
- Resolves through
functional.error.500 raw- Value
-
#E12A23dark:#EE5248 - CSS
--checkbox-group-error-message-color- Token
checkbox-group.error-message.color
-
typography from default
Details
- Value
-
Inter [object Object]/1.5 500 [object Object] - CSS
--checkbox-group-error-message-typography-font-family- Token
checkbox-group.error-message.typography
<fieldset
class="ds-checkbox-group"
data-orientation="vertical"
data-size="medium"
>
<legend
class="ds-checkbox-group__legend"
data-part="legend"
>Notifications</legend>
<ul class="ds-checkbox-group__options">
<li>
<div class="ds-checkbox-group__option" data-part="option">
<input
type="checkbox"
class="ds-checkbox-group__control"
data-part="control"
id="ds-checkbox-group-20-1"
name="notifications"
value="email"
checked
aria-describedby="ds-checkbox-group-20-1-description"
>
<label
class="ds-checkbox-group__option-label"
data-part="option-label"
for="ds-checkbox-group-20-1"
>Email</label>
<p
class="ds-checkbox-group__option-description"
data-part="option-description"
id="ds-checkbox-group-20-1-description"
>A daily digest</p>
</div>
</li>
<li>
<div class="ds-checkbox-group__option" data-part="option">
<input
type="checkbox"
class="ds-checkbox-group__control"
data-part="control"
id="ds-checkbox-group-20-2"
name="notifications"
value="push"
checked
>
<label
class="ds-checkbox-group__option-label"
data-part="option-label"
for="ds-checkbox-group-20-2"
>Push</label>
</div>
</li>
<li>
<div class="ds-checkbox-group__option" data-part="option">
<input
type="checkbox"
class="ds-checkbox-group__control"
data-part="control"
id="ds-checkbox-group-20-3"
name="notifications"
value="sms"
aria-describedby="ds-checkbox-group-20-3-description"
>
<label
class="ds-checkbox-group__option-label"
data-part="option-label"
for="ds-checkbox-group-20-3"
>Text message</label>
<p
class="ds-checkbox-group__option-description"
data-part="option-description"
id="ds-checkbox-group-20-3-description"
>Carrier rates may apply</p>
</div>
</li>
</ul>
</fieldset>