role disclosure
Accordion draft v0.1.0
A stack of sections whose content shows and hides under a header people activate.
An accordion stacks sections of content, each behind a header: activating the header shows the section, activating it again hides it. It saves vertical space when people need only one or two sections at a time (settings groups, frequently asked questions, order details). Several sections may be open at once; the component never closes one when another opens. One section alone is the same thing with a single item.
Playground
Shipping and returns
Orders ship within two business days. Returns are free within 30 days.
Payment methods
We accept cards, bank transfers and most digital wallets.
Warranty
Every product is covered for two years from the delivery date.
Token inspector
Part container
Not rendered in this configuration.
No tokens of its own: it inherits from its parent.
Part item
Not rendered in this configuration.
-
border-color from default
{global.border.level.on-level.0}Details
- Resolves through
light-switch.base.100 rawneutral.light.ash.100 raw- Value
-
#ECE8E9dark:#303030 - CSS
--accordion-item-border-color- Token
accordion.item.border-color- Decisions
-
border-width from default
{stroke-width.sm}Details
- Value
-
0.6px - CSS
--accordion-item-border-width- Token
accordion.item.border-width
Part trigger
Not rendered in this configuration.
-
min-height
smallfrom default{space.40}Details
- Value
-
40px - CSS
--accordion-trigger-min-height-small- Token
accordion.trigger.min-height.small- Decisions
-
min-height
mediumfrom default{space.48}Details
- Value
-
48px - CSS
--accordion-trigger-min-height-medium- Token
accordion.trigger.min-height.medium- Decisions
-
padding-inline from default
{space.8}Details
- Value
-
8px - CSS
--accordion-trigger-padding-inline- Token
accordion.trigger.padding-inline- Decisions
-
padding-block from default
{space.8}Details
- Value
-
8px - CSS
--accordion-trigger-padding-block- Token
accordion.trigger.padding-block- Decisions
-
gap from default
{space.12}Details
- Value
-
12px - CSS
--accordion-trigger-gap- Token
accordion.trigger.gap
-
border-radius from default
{corner-radius.xs}Details
- Value
-
4px - CSS
--accordion-trigger-border-radius- Token
accordion.trigger.border-radius
-
background
defaultfrom default{color.transparent}Details
- Value
-
color(srgb 0 0 0 / 0) - CSS
--accordion-trigger-background-default- Token
accordion.trigger.background.default- Decisions
-
background
hoverfrom default{global.bg.subtle.neutral.default}Details
- Value
-
#B6B4B41adark:#7676761a - CSS
--accordion-trigger-background-hover- Token
accordion.trigger.background.hover- Decisions
-
background
activefrom default{global.bg.subtle.neutral.hover}Details
- Value
-
#B6B4B426dark:#7676764d - CSS
--accordion-trigger-background-active- Token
accordion.trigger.background.active- Decisions
-
outline-width
focus-visiblefrom default{focus.ring.width}Details
- Resolves through
stroke-width.lg semantic- Value
-
2.4px - CSS
--accordion-trigger-outline-width-focus-visible- Token
accordion.trigger.outline-width.focus-visible
-
outline-offset
focus-visiblefrom default{focus.ring.offset}Details
- Resolves through
space.4 semantic- Value
-
4px - CSS
--accordion-trigger-outline-offset-focus-visible- Token
accordion.trigger.outline-offset.focus-visible
-
outline-color
focus-visiblefrom default{color.focus.ring}Details
- Resolves through
brand.light.600 raw- Value
-
#175DD6dark:#9EE7FA - CSS
--accordion-trigger-outline-color-focus-visible- Token
accordion.trigger.outline-color.focus-visible
-
transition.duration from default
{duration.fast}Details
- Value
-
150ms - CSS
--accordion-trigger-transition-duration- Token
accordion.trigger.transition.duration
-
transition.easing from default
{easing.standard}Details
- Value
-
cubic-bezier(0.2, 0, 0, 1) - CSS
--accordion-trigger-transition-easing- Token
accordion.trigger.transition.easing
Part title
Not rendered in this configuration.
-
color from default
{global.text.on-base.neutral.primary}Details
- Resolves through
light-switch.base.950 rawneutral.light.ash.950 raw- Value
-
#0E0D0Ddark:#D2CECF - CSS
--accordion-title-color- Token
accordion.title.color- Decisions
-
typography
smallfrom defaultDetails
- Value
-
Inter [object Object]/1.2 500 [object Object] - CSS
--accordion-title-typography-small-font-family- Token
accordion.title.typography.small- Decisions
-
typography
mediumfrom defaultDetails
- Value
-
Inter [object Object]/1.2 500 [object Object] - CSS
--accordion-title-typography-medium-font-family- Token
accordion.title.typography.medium- Decisions
Part indicator
Not rendered in this configuration.
-
font-family from default
{font.icon.family}Details
- Value
-
"Material Symbols Outlined" - CSS
--accordion-indicator-font-family- Token
accordion.indicator.font-family
-
font-weight from default
{font.icon.weight.light}Details
- Value
-
300 - CSS
--accordion-indicator-font-weight- Token
accordion.indicator.font-weight
-
fill from default
{font.icon.fill.off}Details
- Value
-
0 - CSS
--accordion-indicator-fill- Token
accordion.indicator.fill
-
grade from default
{font.icon.grade.normal}Details
- Value
-
0 - CSS
--accordion-indicator-grade- Token
accordion.indicator.grade
-
optical-size from default
{font.icon.optical-size.20}Details
- Value
-
20 - CSS
--accordion-indicator-optical-size- Token
accordion.indicator.optical-size
-
size
smallfrom default{size.3}Details
- Value
-
20px - CSS
--accordion-indicator-size-small- Token
accordion.indicator.size.small- Decisions
-
size
mediumfrom default{size.4}Details
- Value
-
24px - CSS
--accordion-indicator-size-medium- Token
accordion.indicator.size.medium- Decisions
-
transition.duration from default
{duration.fast}Details
- Value
-
150ms - CSS
--accordion-indicator-transition-duration- Token
accordion.indicator.transition.duration
-
transition.easing from default
{easing.standard}Details
- Value
-
cubic-bezier(0.2, 0, 0, 1) - CSS
--accordion-indicator-transition-easing- Token
accordion.indicator.transition.easing
Part panel
Not rendered in this configuration.
-
padding-inline from default
{space.8}Details
- Value
-
8px - CSS
--accordion-panel-padding-inline- Token
accordion.panel.padding-inline
-
padding-block from default
{space.12}Details
- Value
-
12px - CSS
--accordion-panel-padding-block- Token
accordion.panel.padding-block- Decisions
-
color from default
{global.text.on-base.neutral.secondary}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--accordion-panel-color- Token
accordion.panel.color- Decisions
-
typography
smallfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--accordion-panel-typography-small-font-family- Token
accordion.panel.typography.small- Decisions
-
typography
mediumfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--accordion-panel-typography-medium-font-family- Token
accordion.panel.typography.medium- Decisions
<div class="ds-accordion" data-size="medium">
<details
class="ds-accordion__item"
data-part="item"
id="ds-accordion-15-1"
open
>
<summary class="ds-accordion__trigger" data-part="trigger">
<span
class="ds-accordion__title"
data-part="title"
>Shipping and returns</span>
<span
class="ds-accordion__indicator"
data-part="indicator"
aria-hidden="true"
>expand_more</span>
</summary>
<div class="ds-accordion__panel" data-part="panel">
<p>Orders ship within two business days. Returns are free within 30 days.</p>
</div>
</details>
<details
class="ds-accordion__item"
data-part="item"
id="ds-accordion-15-2"
>
<summary class="ds-accordion__trigger" data-part="trigger">
<span
class="ds-accordion__title"
data-part="title"
>Payment methods</span>
<span
class="ds-accordion__indicator"
data-part="indicator"
aria-hidden="true"
>expand_more</span>
</summary>
<div class="ds-accordion__panel" data-part="panel">
<p>We accept cards, bank transfers and most digital wallets.</p>
</div>
</details>
<details
class="ds-accordion__item"
data-part="item"
id="ds-accordion-15-3"
>
<summary class="ds-accordion__trigger" data-part="trigger">
<span
class="ds-accordion__title"
data-part="title"
>Warranty</span>
<span
class="ds-accordion__indicator"
data-part="indicator"
aria-hidden="true"
>expand_more</span>
</summary>
<div class="ds-accordion__panel" data-part="panel">
<p>Every product is covered for two years from the delivery date.</p>
</div>
</details>
</div>