Skip to content

feat(accordion): spectrum 2 migration #3684

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
Jun 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
6bf4b9c
docs(accordion): general docs cleanup
jawinn Apr 9, 2025
52fdb76
refactor(accordion): move around and organize existing css
jawinn Apr 10, 2025
f4fb6f8
feat(accordion): rename height and width properties and mods
jawinn Apr 15, 2025
e5fd334
refactor(accordion): use existing rtl custom property
jawinn Apr 15, 2025
48aab28
refactor(accordion): organize open and disabled styles
jawinn Apr 15, 2025
9c32ffc
feat(accordion): add new sized corner rounding tokens
jawinn Apr 15, 2025
f0431e1
feat(accordion)!: overall s2 migration with markup changes
jawinn Apr 18, 2025
99db2ed
refactor(accordion): use custom properties for disabled styles
jawinn Apr 18, 2025
e2daa92
feat(accordion): add chevron rotation animation
jawinn Apr 18, 2025
3196653
chore(accordion): updated metadata
jawinn Apr 21, 2025
ce1363c
feat(accordion): add quiet style
jawinn Apr 21, 2025
bf922d5
docs(accordion): additions to stories and tests
jawinn Apr 23, 2025
4ab23fa
fix(accordion): remove variable assigned to itself
jawinn Apr 23, 2025
61d9075
chore(accordion): changeset formatting adjustment
jawinn Apr 23, 2025
93d193c
fix(accordion): use end edge to text token
jawinn Apr 25, 2025
ebe25e7
chore(accordion): use rgb slash syntax instead of rgba
jawinn Apr 25, 2025
ff5d516
fix(accordion): update minimum height tokens used
jawinn May 7, 2025
601038d
feat(accordion): wip no inline padding variant
jawinn May 7, 2025
be9a5ad
feat(accordion): reduced font sizes and component heights
jawinn May 7, 2025
4616363
chore(accordion): update metadata
jawinn May 8, 2025
d81edc9
fix(accordion): update wip no inline padding variant variables
jawinn May 8, 2025
f5ff709
feat(accordion): add no inline padding variant
saashapina May 15, 2025
e3f5d4a
chore: pr feedback
saashapina Jun 9, 2025
721b6ee
chore: add new accordion tokens
saashapina Jun 9, 2025
5d1abb1
fix: adjust min-width and default width
rise-erpelding Jun 10, 2025
70bfd2f
fix: add comment about start spacing token
rise-erpelding Jun 10, 2025
0812829
feat: use accordion-item-to-divider spacing token, use mod
rise-erpelding Jun 10, 2025
f049ed0
refactor: adjust top-to-text and bottom-to-text tokens
rise-erpelding Jun 10, 2025
a7eb6ef
fix: change outline-offset to not be negative
rise-erpelding Jun 10, 2025
c24755b
fix: use correct -icon- token for top to disclosure compact large
rise-erpelding Jun 10, 2025
dcc42f0
fix: adjust background colors
rise-erpelding Jun 11, 2025
7841fab
feat: quiet down state has border radius
rise-erpelding Jun 11, 2025
10ced88
test: remove hover from disabled test case
rise-erpelding Jun 11, 2025
3df0397
fix: remove application of hover/focus/active states if disabled
rise-erpelding Jun 11, 2025
ad5ca39
fix: remove disclosure icon space calc comment and move custom prop
rise-erpelding Jun 11, 2025
3129a5e
fix: use accordion-disclosure-indicator-height custom property
rise-erpelding Jun 11, 2025
37e0a00
chore: update metadata
rise-erpelding Jun 11, 2025
c302ea5
Revert "feat: use accordion-item-to-divider spacing token, use mod"
rise-erpelding Jun 11, 2025
e9a5ab3
chore: update changeset
rise-erpelding Jun 12, 2025
f07d7a2
Revert "fix: remove application of hover/focus/active states if disab…
rise-erpelding Jun 12, 2025
a1e9a38
fix: use mod-stack in custom prop definition for colors
rise-erpelding Jun 12, 2025
adf3a2b
docs: document min-width and default-width
rise-erpelding Jun 12, 2025
b1f232e
chore: update metadata
rise-erpelding Jun 12, 2025
b776bbf
chore: create custom property for accordion-focus-indicator-gap token
rise-erpelding Jun 12, 2025
f3b1c35
fix: prevent hover from overriding active styles
rise-erpelding Jun 12, 2025
0aa35a3
docs: storybook cleanup
rise-erpelding Jun 13, 2025
d85d936
fix: focus gap token and changeset updates
rise-erpelding Jun 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .changeset/chatty-lands-attack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
"@spectrum-css/accordion": major
---

### Spectrum 2 migration

Accordion now uses Spectrum 2 tokens and specifications.

New sized tokens are used for corner rounding, the spacing around the disclosure icon, and
the spacing around the content area.

#### New features

- Adds the optional "quiet" style, which does not show dividers between accordion items.
- Adds CSS transition to animate the rotation of the disclosure indicator when expanding and
collapsing the accordion item.
- Adds no inline padding variant (`.spectrum-Accordion--noInlinePadding`) in which the item
header does not have padding.
- Per design spec, accordion items have a min-width and default width. Default width can be
overridden with `--mod-accordion-item-width` but should not be smaller than
`--spectrum-accordion-item-minimum-width`.

#### Markup changes

The HTML markup has changed slightly for the accordion header. The disclosure icon has been moved
from outside the button (`spectrum-Accordion-itemHeader`), to within the button. The extra
element with class `spectrum-Accordion-itemIconContainer`, previously wrapping the icon, has
been removed. A span with class `spectrum-Accordion-itemTitle` has been added around the heading
text.

#### Mod changes

The following `--mod` custom properties have been renamed to better reflect how they are used:

- `--mod-accordion-item-height` has been renamed to `--mod-accordion-item-minimum-height`
- `--mod-accordion-min-block-size` has been renamed to `--mod-accordion-item-min-block-size`
- `--mod-accordion-component-edge-to-text` has been renamed to `--mod-accordion-content-padding-inline`

New mods:

- `--mod-accordion-animation-duration`
- `--mod-accordion-edge-to-content-area`
- `--mod-accordion-item-minimum-width`
- `--mod-accordion-top-to-disclosure-indicator`
145 changes: 89 additions & 56 deletions components/accordion/dist/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
".spectrum-Accordion--compact.spectrum-Accordion--sizeL",
".spectrum-Accordion--compact.spectrum-Accordion--sizeS",
".spectrum-Accordion--compact.spectrum-Accordion--sizeXL",
".spectrum-Accordion--quiet",
".spectrum-Accordion--quiet .spectrum-Accordion-itemHeader:active",
".spectrum-Accordion--quiet .spectrum-Accordion-itemHeader:hover",
".spectrum-Accordion--sizeL",
".spectrum-Accordion--sizeS",
".spectrum-Accordion--sizeXL",
Expand All @@ -14,51 +17,40 @@
".spectrum-Accordion--spacious.spectrum-Accordion--sizeS",
".spectrum-Accordion--spacious.spectrum-Accordion--sizeXL",
".spectrum-Accordion-item",
".spectrum-Accordion-item.is-disabled .spectrum-Accordion-itemContent",
".spectrum-Accordion-item.is-disabled .spectrum-Accordion-itemHeader",
".spectrum-Accordion-item.is-disabled .spectrum-Accordion-itemHeader + .spectrum-Accordion-itemIconContainer",
".spectrum-Accordion-item.is-disabled .spectrum-Accordion-itemHeader:focus-visible",
".spectrum-Accordion-item.is-disabled .spectrum-Accordion-itemHeader:hover",
".spectrum-Accordion-item.is-open .spectrum-Accordion-itemHeader:hover",
".spectrum-Accordion-item.is-disabled",
".spectrum-Accordion-item.is-open > .spectrum-Accordion-itemContent",
".spectrum-Accordion-item.is-open > .spectrum-Accordion-itemHeading > .spectrum-Accordion-itemIconContainer > .spectrum-Accordion-itemIndicator",
".spectrum-Accordion-item.is-open > .spectrum-Accordion-itemIconContainer > .spectrum-Accordion-itemIndicator",
".spectrum-Accordion-item.is-open > .spectrum-Accordion-itemHeading .spectrum-Accordion-itemIndicator",
".spectrum-Accordion-item:first-child",
".spectrum-Accordion-itemContent",
".spectrum-Accordion-itemHeader",
".spectrum-Accordion-itemHeader:active",
".spectrum-Accordion-itemHeader:after",
".spectrum-Accordion-itemHeader:focus",
".spectrum-Accordion-itemHeader.spectrum-Accordion-itemHeader:active",
".spectrum-Accordion-itemHeader:focus-visible",
".spectrum-Accordion-itemHeader:focus:after",
".spectrum-Accordion-itemHeader:hover",
".spectrum-Accordion-itemHeader:hover + .spectrum-Accordion-itemIconContainer",
".spectrum-Accordion-itemHeading",
".spectrum-Accordion-itemIconContainer",
".spectrum-Accordion-itemIconContainer:dir(rtl)",
".spectrum-Accordion-itemIndicator",
".spectrum-Accordion-itemTitle",
".spectrum-Accordion.spectrum-Accordion--noInlinePadding",
".spectrum-Accordion:dir(rtl)",
".spectrum-Accordion:lang(ja)",
".spectrum-Accordion:lang(ko)",
".spectrum-Accordion:lang(zh)",
"[dir=\"rtl\"] .spectrum-Accordion",
"[dir=\"rtl\"] .spectrum-Accordion-itemIconContainer"
"[dir=\"rtl\"] .spectrum-Accordion"
],
"modifiers": [
"--mod-accordion-animation-duration",
"--mod-accordion-background-color-default",
"--mod-accordion-background-color-down",
"--mod-accordion-background-color-hover",
"--mod-accordion-background-color-key-focus",
"--mod-accordion-component-edge-to-text",
"--mod-accordion-content-padding-inline",
"--mod-accordion-corner-radius",
"--mod-accordion-disclosure-indicator-height",
"--mod-accordion-disclosure-indicator-to-text-space",
"--mod-accordion-divider-color",
"--mod-accordion-divider-thickness",
"--mod-accordion-edge-to-content-area",
"--mod-accordion-edge-to-disclosure-indicator-space",
"--mod-accordion-edge-to-text-space",
"--mod-accordion-focus-indicator-color",
"--mod-accordion-focus-indicator-gap",
"--mod-accordion-focus-indicator-thickness",
"--mod-accordion-item-content-area-bottom-to-content",
"--mod-accordion-item-content-area-top-to-content",
"--mod-accordion-item-content-color",
Expand All @@ -68,6 +60,9 @@
"--mod-accordion-item-content-font-style",
"--mod-accordion-item-content-font-weight",
"--mod-accordion-item-content-line-height",
"--mod-accordion-item-focus-indicator-color",
"--mod-accordion-item-focus-indicator-gap",
"--mod-accordion-item-focus-indicator-thickness",
"--mod-accordion-item-header-bottom-to-text-space",
"--mod-accordion-item-header-color-default",
"--mod-accordion-item-header-color-down",
Expand All @@ -80,11 +75,14 @@
"--mod-accordion-item-header-font-weight",
"--mod-accordion-item-header-line-height",
"--mod-accordion-item-header-top-to-text-space",
"--mod-accordion-item-height",
"--mod-accordion-item-min-block-size",
"--mod-accordion-item-minimum-height",
"--mod-accordion-item-minimum-width",
"--mod-accordion-item-width",
"--mod-accordion-min-block-size"
"--mod-accordion-top-to-disclosure-indicator"
],
"component": [
"--spectrum-accordion-animation-duration",
"--spectrum-accordion-background-color-default",
"--spectrum-accordion-background-color-down",
"--spectrum-accordion-background-color-hover",
Expand All @@ -93,72 +91,82 @@
"--spectrum-accordion-bottom-to-text-compact-large",
"--spectrum-accordion-bottom-to-text-compact-medium",
"--spectrum-accordion-bottom-to-text-compact-small",
"--spectrum-accordion-bottom-to-text-regular-extra-large",
"--spectrum-accordion-bottom-to-text-regular-large",
"--spectrum-accordion-bottom-to-text-regular-medium",
"--spectrum-accordion-bottom-to-text-regular-small",
"--spectrum-accordion-bottom-to-text-extra-large",
"--spectrum-accordion-bottom-to-text-large",
"--spectrum-accordion-bottom-to-text-medium",
"--spectrum-accordion-bottom-to-text-small",
"--spectrum-accordion-bottom-to-text-spacious-extra-large",
"--spectrum-accordion-bottom-to-text-spacious-large",
"--spectrum-accordion-bottom-to-text-spacious-medium",
"--spectrum-accordion-bottom-to-text-spacious-small",
"--spectrum-accordion-component-edge-to-text",
"--spectrum-accordion-content-area-bottom-to-content",
"--spectrum-accordion-content-area-edge-to-content-extra-large",
"--spectrum-accordion-content-area-edge-to-content-large",
"--spectrum-accordion-content-area-edge-to-content-medium",
"--spectrum-accordion-content-area-edge-to-content-small",
"--spectrum-accordion-content-area-top-to-content",
"--spectrum-accordion-content-padding-inline",
"--spectrum-accordion-corner-radius",
"--spectrum-accordion-disclosure-indicator-height",
"--spectrum-accordion-disclosure-indicator-to-text",
"--spectrum-accordion-disclosure-indicator-to-text-extra-large",
"--spectrum-accordion-disclosure-indicator-to-text-large",
"--spectrum-accordion-disclosure-indicator-to-text-medium",
"--spectrum-accordion-disclosure-indicator-to-text-small",
"--spectrum-accordion-disclosure-indicator-to-text-space",
"--spectrum-accordion-divider-color",
"--spectrum-accordion-edge-to-disclosure-indicator",
"--spectrum-accordion-divider-thickness",
"--spectrum-accordion-edge-to-content-area",
"--spectrum-accordion-edge-to-content-area-extra-large",
"--spectrum-accordion-edge-to-content-area-large",
"--spectrum-accordion-edge-to-content-area-medium",
"--spectrum-accordion-edge-to-content-area-small",
"--spectrum-accordion-edge-to-disclosure-indicator-space",
"--spectrum-accordion-edge-to-text",
"--spectrum-accordion-edge-to-text-space",
"--spectrum-accordion-focus-indicator-color",
"--spectrum-accordion-focus-indicator-gap",
"--spectrum-accordion-focus-indicator-thickness",
"--spectrum-accordion-item-content-area-bottom-to-content",
"--spectrum-accordion-item-content-area-top-to-content",
"--spectrum-accordion-item-content-color",
"--spectrum-accordion-item-content-disabled-color",
"--spectrum-accordion-item-content-font",
"--spectrum-accordion-item-content-font-size",
"--spectrum-accordion-item-content-font-style",
"--spectrum-accordion-item-content-font-weight",
"--spectrum-accordion-item-content-line-height",
"--spectrum-accordion-item-focus-indicator-color",
"--spectrum-accordion-item-focus-indicator-gap",
"--spectrum-accordion-item-focus-indicator-thickness",
"--spectrum-accordion-item-header-bottom-to-text-space",
"--spectrum-accordion-item-header-color-default",
"--spectrum-accordion-item-header-color-down",
"--spectrum-accordion-item-header-color-hover",
"--spectrum-accordion-item-header-color-key-focus",
"--spectrum-accordion-item-header-disabled-color",
"--spectrum-accordion-item-header-cursor",
"--spectrum-accordion-item-header-font",
"--spectrum-accordion-item-header-font-size",
"--spectrum-accordion-item-header-font-style",
"--spectrum-accordion-item-header-font-weight",
"--spectrum-accordion-item-header-line-height",
"--spectrum-accordion-item-header-top-to-text-space",
"--spectrum-accordion-item-height",
"--spectrum-accordion-item-min-block-size",
"--spectrum-accordion-item-minimum-height",
"--spectrum-accordion-item-minimum-width",
"--spectrum-accordion-item-width",
"--spectrum-accordion-min-block-size",
"--spectrum-accordion-minimum-width",
"--spectrum-accordion-small-top-to-text-spacious",
"--spectrum-accordion-top-to-disclosure-indicator",
"--spectrum-accordion-top-to-text-compact-extra-large",
"--spectrum-accordion-top-to-text-compact-large",
"--spectrum-accordion-top-to-text-compact-medium",
"--spectrum-accordion-top-to-text-compact-small",
"--spectrum-accordion-top-to-text-regular-extra-large",
"--spectrum-accordion-top-to-text-regular-large",
"--spectrum-accordion-top-to-text-regular-medium",
"--spectrum-accordion-top-to-text-regular-small",
"--spectrum-accordion-top-to-text-extra-large",
"--spectrum-accordion-top-to-text-large",
"--spectrum-accordion-top-to-text-medium",
"--spectrum-accordion-top-to-text-small",
"--spectrum-accordion-top-to-text-spacious-extra-large",
"--spectrum-accordion-top-to-text-spacious-large",
"--spectrum-accordion-top-to-text-spacious-medium"
"--spectrum-accordion-top-to-text-spacious-medium",
"--spectrum-accordion-top-to-text-spacious-small"
],
"global": [
"--spectrum-background-opacity-default",
"--spectrum-background-opacity-down",
"--spectrum-background-opacity-hover",
"--spectrum-background-opacity-key-focus",
"--spectrum-animation-duration-100",
"--spectrum-body-color",
"--spectrum-body-sans-serif-font-style",
"--spectrum-body-sans-serif-font-weight",
Expand All @@ -167,36 +175,61 @@
"--spectrum-body-size-s",
"--spectrum-body-size-xs",
"--spectrum-bold-font-weight",
"--spectrum-chevron-icon-size-100",
"--spectrum-chevron-icon-size-200",
"--spectrum-chevron-icon-size-300",
"--spectrum-chevron-icon-size-75",
"--spectrum-cjk-line-height-100",
"--spectrum-component-edge-to-text-100",
"--spectrum-component-edge-to-text-200",
"--spectrum-component-edge-to-text-50",
"--spectrum-component-edge-to-text-75",
"--spectrum-component-height-100",
"--spectrum-component-height-200",
"--spectrum-component-height-300",
"--spectrum-component-height-400",
"--spectrum-component-height-50",
"--spectrum-component-height-75",
"--spectrum-corner-radius-100",
"--spectrum-corner-radius-medium-size-extra-large",
"--spectrum-corner-radius-medium-size-large",
"--spectrum-corner-radius-medium-size-medium",
"--spectrum-corner-radius-medium-size-small",
"--spectrum-default-font-style",
"--spectrum-disabled-content-color",
"--spectrum-divider-thickness-small",
"--spectrum-field-default-width-extra-large",
"--spectrum-field-default-width-large",
"--spectrum-field-default-width-medium",
"--spectrum-field-edge-to-disclosure-icon-100",
"--spectrum-field-edge-to-disclosure-icon-200",
"--spectrum-field-edge-to-disclosure-icon-300",
"--spectrum-field-edge-to-disclosure-icon-75",
"--spectrum-field-top-to-disclosure-icon-compact-extra-large",
"--spectrum-field-top-to-disclosure-icon-compact-large",
"--spectrum-field-top-to-disclosure-icon-compact-medium",
"--spectrum-field-top-to-disclosure-icon-compact-small",
"--spectrum-field-top-to-disclosure-icon-extra-large",
"--spectrum-field-top-to-disclosure-icon-large",
"--spectrum-field-top-to-disclosure-icon-medium",
"--spectrum-field-top-to-disclosure-icon-small",
"--spectrum-field-top-to-disclosure-icon-spacious-extra-large",
"--spectrum-field-top-to-disclosure-icon-spacious-large",
"--spectrum-field-top-to-disclosure-icon-spacious-medium",
"--spectrum-field-top-to-disclosure-icon-spacious-small",
"--spectrum-focus-indicator-color",
"--spectrum-focus-indicator-gap",
"--spectrum-focus-indicator-thickness",
"--spectrum-font-size-100",
"--spectrum-font-size-200",
"--spectrum-font-size-300",
"--spectrum-font-size-500",
"--spectrum-font-size-700",
"--spectrum-font-size-400",
"--spectrum-gray-200",
"--spectrum-gray-900-rgb",
"--spectrum-line-height-100",
"--spectrum-logical-rotation",
"--spectrum-neutral-content-color-default",
"--spectrum-neutral-content-color-down",
"--spectrum-neutral-content-color-hover",
"--spectrum-neutral-content-color-key-focus",
"--spectrum-sans-font-family-stack"
"--spectrum-sans-font-family-stack",
"--spectrum-transparent-black-100",
"--spectrum-transparent-black-25",
"--spectrum-transparent-black-300"
],
"passthroughs": [],
"high-contrast": []
Expand Down
Loading
Loading