@adobe/spectrum-design-data 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog/accordion.json +359 -0
- package/changelog/action-bar.json +110 -0
- package/changelog/action-button.json +362 -0
- package/changelog/action-group.json +72 -0
- package/changelog/alert-banner.json +65 -0
- package/changelog/alert-dialog.json +88 -0
- package/changelog/avatar-group.json +93 -0
- package/changelog/avatar.json +99 -0
- package/changelog/badge.json +595 -0
- package/changelog/bar-panel.json +7 -0
- package/changelog/body.json +7 -0
- package/changelog/bottom-navigation-android.json +7 -0
- package/changelog/breadcrumbs.json +145 -0
- package/changelog/button-group.json +66 -0
- package/changelog/button.json +504 -0
- package/changelog/calendar.json +62 -0
- package/changelog/card-horizontal.json +7 -0
- package/changelog/card.json +24 -0
- package/changelog/cards.json +137 -0
- package/changelog/checkbox-group.json +48 -0
- package/changelog/checkbox.json +210 -0
- package/changelog/close-button.json +125 -0
- package/changelog/coach-indicator.json +77 -0
- package/changelog/coach-mark.json +44 -0
- package/changelog/code.json +7 -0
- package/changelog/collection-card.json +7 -0
- package/changelog/color-area.json +67 -0
- package/changelog/color-control.json +7 -0
- package/changelog/color-handle.json +80 -0
- package/changelog/color-loupe.json +77 -0
- package/changelog/color-slider.json +89 -0
- package/changelog/color-wheel.json +68 -0
- package/changelog/combo-box.json +277 -0
- package/changelog/contextual-help.json +74 -0
- package/changelog/date-field.json +24 -0
- package/changelog/date-picker.json +175 -0
- package/changelog/detail.json +7 -0
- package/changelog/divider.json +82 -0
- package/changelog/double-calendar.json +7 -0
- package/changelog/drop-zone.json +155 -0
- package/changelog/field-label.json +118 -0
- package/changelog/field.json +7 -0
- package/changelog/floating-action-button.json +7 -0
- package/changelog/form-item.json +7 -0
- package/changelog/heading.json +24 -0
- package/changelog/help-text.json +100 -0
- package/changelog/illustrated-message.json +79 -0
- package/changelog/in-field-button.json +7 -0
- package/changelog/in-field-progress-button.json +7 -0
- package/changelog/in-field-progress-circle.json +48 -0
- package/changelog/in-line-alert.json +66 -0
- package/changelog/link.json +123 -0
- package/changelog/list-view.json +184 -0
- package/changelog/menu.json +254 -0
- package/changelog/meter.json +89 -0
- package/changelog/number-field.json +232 -0
- package/changelog/opacity-checkerboard.json +7 -0
- package/changelog/picker.json +241 -0
- package/changelog/popover.json +86 -0
- package/changelog/progress-bar.json +94 -0
- package/changelog/progress-circle.json +62 -0
- package/changelog/radio-button.json +180 -0
- package/changelog/radio-group.json +61 -0
- package/changelog/rating.json +64 -0
- package/changelog/scroll-zoom-bar.json +7 -0
- package/changelog/search-field.json +188 -0
- package/changelog/segmented-control.json +139 -0
- package/changelog/segmented-text-field.json +7 -0
- package/changelog/select-box.json +106 -0
- package/changelog/side-navigation.json +171 -0
- package/changelog/single-calendar.json +7 -0
- package/changelog/slider.json +144 -0
- package/changelog/stack-item.json +25 -0
- package/changelog/standard-dialog.json +58 -0
- package/changelog/standard-panel.json +7 -0
- package/changelog/status-light.json +108 -0
- package/changelog/steplist.json +66 -0
- package/changelog/swatch-group.json +62 -0
- package/changelog/swatch.json +99 -0
- package/changelog/switch.json +164 -0
- package/changelog/tab-bar-ios.json +25 -0
- package/changelog/table.json +140 -0
- package/changelog/tabs.json +118 -0
- package/changelog/tag-field.json +91 -0
- package/changelog/tag-group.json +66 -0
- package/changelog/tag.json +217 -0
- package/changelog/takeover-dialog.json +67 -0
- package/changelog/text-area.json +240 -0
- package/changelog/text-field.json +222 -0
- package/changelog/thumbnail.json +49 -0
- package/changelog/time-field.json +24 -0
- package/changelog/title.json +24 -0
- package/changelog/toast.json +110 -0
- package/changelog/tooltip.json +115 -0
- package/changelog/tray.json +7 -0
- package/changelog/tree-view.json +202 -0
- package/changelog/triple-calendar.json +7 -0
- package/changelog/user-card.json +24 -0
- package/components/accordion.json +37 -0
- package/components/action-button.json +44 -0
- package/components/badge.json +18 -2
- package/components/button.json +47 -1
- package/components/checkbox.json +42 -0
- package/components/radio-button.json +43 -3
- package/components/switch.json +36 -1
- package/package.json +4 -2
- package/registry/anatomy-terms.json +13 -8
- package/registry/token-terminology.json +1 -1
- package/tokens/layout.tokens.json +3 -2
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-changelog.schema.json",
|
|
3
|
+
"specVersion": "1.0.0-draft",
|
|
4
|
+
"component": "calendar",
|
|
5
|
+
"baseline": {"release":"2.1.0","version":"1.0.0","commit":"4033f09de6696d4f61d1da89d42129a941dbd806"},
|
|
6
|
+
"releases": [
|
|
7
|
+
{
|
|
8
|
+
"release": "3.3.0",
|
|
9
|
+
"version": "1.0.1",
|
|
10
|
+
"bump": "patch",
|
|
11
|
+
"date": "2026-09-30",
|
|
12
|
+
"commit": "fdb29c3027de60713f6f0f98520fc0879fa408c5",
|
|
13
|
+
"commits": [
|
|
14
|
+
{
|
|
15
|
+
"commit": "b9888b8ce9a0e4ec5b607e088942999629d5d43d",
|
|
16
|
+
"date": "2026-09-28",
|
|
17
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1513,"title":"feat(data): add S2 implementation metadata","url":"https://github.com/adobe/spectrum-design-data/pull/1513"},
|
|
18
|
+
"entries": [],
|
|
19
|
+
"metadata": {"count":1,"fields":["implementation added"]}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"release": "3.4.0",
|
|
25
|
+
"version": "1.1.0",
|
|
26
|
+
"bump": "minor",
|
|
27
|
+
"date": "2026-10-01",
|
|
28
|
+
"commit": "61c5e6769e60980caf58c544b508ab2e610958b4",
|
|
29
|
+
"commits": [
|
|
30
|
+
{
|
|
31
|
+
"commit": "ec3376fa833f2c31dd0b2340590134b2747b00c4",
|
|
32
|
+
"date": "2026-10-01",
|
|
33
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1524,"title":"feat(design-data): promote public Spectrum Hub guidance to main","url":"https://github.com/adobe/spectrum-design-data/pull/1524"},
|
|
34
|
+
"entries": [
|
|
35
|
+
{"id":"ec3376fa-0","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/0","name":"guideline: Unavailable dates.\n\nWhen a day or several days a","fields":[{"path":"content","before":"Calendars display the days of a selected month and highlight the current day. They support navigating to past or future months and selecting a specific date.","after":"Unavailable dates.\n\nWhen a day or several days are unavailable within the calendar popover, each day should display a strikethrough to help the user understand that they cannot select it. Disabled days use a distinct gray style to clearly differentiate them from unavailable days. When the calendar prevents selection of past dates, this visual treatment helps users distinguish disabled days from those marked as unavailable."}]},
|
|
36
|
+
{"id":"ec3376fa-1","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/1","name":"guideline: Why unavailable and disabled days are necessary.","fields":[{"path":"content","before":"An array of days that are displayed in the current calendar view. This includes:","after":"Why unavailable and disabled days are necessary.\n\nIn a date selection system, users often need to distinguish between dates that cannot be selected and dates that are simply inactive. Supporting both states improves clarity and prevents errors. Here's an example scenario: A potential guest is browsing a calendar to book a stay at a vacation rental. Unavailable dates: Days when the rental is already booked or blocked by the owner. These appear with a strikethrough, indicating they cannot be selected. Disabled dates: Past dates that are no longer valid for booking. These appear visually distinct (gray style) to show they are inactive. Guests see unavailable dates marked clearly so they don't attempt to select them. Hosts or admins can view past dates as disabled and also mark future dates as unavailable when needed. By supporting both behaviors, the system provides a clear, intuitive experience for different user roles and prevents confusion during date selection."}]},
|
|
37
|
+
{"id":"ec3376fa-2","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/2","name":"guideline: Range fill color.\n\nThe range fill shows which da","fields":[{"path":"content","before":"The maximum amount of months displayed in the calendar popover is three.","after":"Range fill color.\n\nThe range fill shows which days fall between two selected dates. If the range spans more than the three-month calendar view, it ends on the last visible day but continues as users navigate with the calendar chevrons. A dashed stroke outlines the fill to improve visibility on bright screens and for users with vision impairments."}]},
|
|
38
|
+
{"id":"ec3376fa-3","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/3","name":"guideline: Calendar popover states.\n\nThe calendar popover s","fields":[{"path":"content","before":"The minimum amount of months displayed in the calendar popover is one.","after":"Calendar popover states.\n\nThe calendar popover supports a disabled state but not a read-only state. Dates or months may be temporarily disabled based on context (for example, if a user must complete a task before selecting a date). In these cases, help text can explain why certain dates are unavailable. If a date picker is truly read-only, users shouldn't be able to open the calendar popover at all, since they can't interact with it."}]},
|
|
39
|
+
{"id":"ec3376fa-4","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/4","name":"guideline: Optional time fields.\n\nThe calendar popover can ","fields":[{"path":"content","before":"The calendar popover may display an error as error text when a user attempts to provide an input that violates the defined constraints of the date selection. For example, when the user selects dates that fall outside allowable limits, or conflict with contextual restrictions.","after":"Optional time fields.\n\nThe calendar popover can also include time-specific fields, allowing users to specify start and end times."}]},
|
|
40
|
+
{"id":"ec3376fa-5","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/5","name":"guideline: The calendar popover is disabled. For example, a","fields":[],"before":{"type":"guideline","content":"The calendar popover is disabled. For example, a month within a three-month range is disabled."}},
|
|
41
|
+
{"id":"ec3376fa-6","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/6","name":"guideline: The types of selection available for the calenda","fields":[],"before":{"type":"guideline","content":"The types of selection available for the calendar."}},
|
|
42
|
+
{"id":"ec3376fa-7","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/7","name":"guideline: The current year or month displayed in the calen","fields":[],"before":{"type":"guideline","content":"The current year or month displayed in the calendar popover."}},
|
|
43
|
+
{"id":"ec3376fa-8","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/8","name":"guideline: When a day or several days are unavailable withi","fields":[],"before":{"type":"guideline","content":"When a day or several days are unavailable within the calendar popover, each day should display a strikethrough to help the user understand that they cannot select it."}},
|
|
44
|
+
{"id":"ec3376fa-9","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/9","name":"guideline: Disabled days use a distinct gray style to clear","fields":[],"before":{"type":"guideline","content":"Disabled days use a distinct gray style to clearly differentiate them from unavailable days. When the calendar prevents selection of past dates, this visual treatment helps users distinguish disabled days from those marked as unavailable."}},
|
|
45
|
+
{"id":"ec3376fa-10","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/10","name":"guideline: In a date selection system, users often need to ","fields":[],"before":{"type":"guideline","content":"In a date selection system, users often need to distinguish between dates that cannot be selected and dates that are simply inactive. Supporting both states improves clarity and prevents errors."}},
|
|
46
|
+
{"id":"ec3376fa-11","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/11","name":"guideline: Here’s an example scenario: A potential guest is","fields":[],"before":{"type":"guideline","content":"Here’s an example scenario: A potential guest is browsing a calendar to book a stay at a vacation rental."}},
|
|
47
|
+
{"id":"ec3376fa-12","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/12","name":"guideline: Unavailable dates: Days when the rental is alrea","fields":[],"before":{"type":"guideline","content":"Unavailable dates: Days when the rental is already booked or blocked by the owner. These appear with a strikethrough, indicating they cannot be selected."}},
|
|
48
|
+
{"id":"ec3376fa-13","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/13","name":"guideline: Disabled dates: Past dates that are no longer va","fields":[],"before":{"type":"guideline","content":"Disabled dates: Past dates that are no longer valid for booking. These appear visually distinct (gray style) to show they are inactive."}},
|
|
49
|
+
{"id":"ec3376fa-14","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/14","name":"guideline: Guests see unavailable dates marked clearly so t","fields":[],"before":{"type":"guideline","content":"Guests see unavailable dates marked clearly so they don’t attempt to select them. Hosts or admins can view past dates as disabled and also mark future dates as unavailable when needed."}},
|
|
50
|
+
{"id":"ec3376fa-15","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/15","name":"guideline: By supporting both behaviors, the system provide","fields":[],"before":{"type":"guideline","content":"By supporting both behaviors, the system provides a clear, intuitive experience for different user roles and prevents confusion during date selection."}},
|
|
51
|
+
{"id":"ec3376fa-16","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/16","name":"guideline: The range fill shows which days fall between two","fields":[],"before":{"type":"guideline","content":"The range fill shows which days fall between two selected dates. If the range spans more than the three-month calendar view, it ends on the last visible day but continues as users navigate with the calendar chevrons. A dashed stroke outlines the fill to improve visibility on bright screens and for users with vision impairments."}},
|
|
52
|
+
{"id":"ec3376fa-17","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/17","name":"guideline: The strikethrough styling intentionally accommod","fields":[],"before":{"type":"guideline","content":"The strikethrough styling intentionally accommodates internationalization."}},
|
|
53
|
+
{"id":"ec3376fa-18","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/18","name":"guideline: The calendar popover supports a disabled state b","fields":[],"before":{"type":"guideline","content":"The calendar popover supports a disabled state but not a read-only state. Dates or months may be temporarily disabled based on context (for example, if a user must complete a task before selecting a date). In these cases, help text can explain why certain dates are unavailable."}},
|
|
54
|
+
{"id":"ec3376fa-19","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/19","name":"guideline: If a date picker is truly read-only, users shoul","fields":[],"before":{"type":"guideline","content":"If a date picker is truly read-only, users shouldn’t be able to open the calendar popover at all, since they can’t interact with it."}},
|
|
55
|
+
{"id":"ec3376fa-20","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"calendar/documentBlocks/20","name":"guideline: The calendar popover can also include time-speci","fields":[],"before":{"type":"guideline","content":"The calendar popover can also include time-specific fields, allowing users to specify start and end times."}},
|
|
56
|
+
{"id":"ec3376fa-21","kind":"document-block","change":"added","class":"documentation","bump":"minor","indirect":false,"contexts":[],"record":"calendar/documentBlocks/21","name":"do-dont: Do not change the styling of unavailable days","fields":[],"after":{"type":"do-dont","content":"Do not change the styling of unavailable days","dont":"The strikethrough styling intentionally accommodates internationalization."}}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-changelog.schema.json",
|
|
3
|
+
"specVersion": "1.0.0-draft",
|
|
4
|
+
"component": "card-horizontal",
|
|
5
|
+
"baseline": {"release":"2.1.0","version":"1.0.0","commit":"4033f09de6696d4f61d1da89d42129a941dbd806"},
|
|
6
|
+
"releases": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-changelog.schema.json",
|
|
3
|
+
"specVersion": "1.0.0-draft",
|
|
4
|
+
"component": "card",
|
|
5
|
+
"baseline": {"release":"2.1.0","version":"1.0.0","commit":"4033f09de6696d4f61d1da89d42129a941dbd806"},
|
|
6
|
+
"releases": [
|
|
7
|
+
{
|
|
8
|
+
"release": "3.3.0",
|
|
9
|
+
"version": "1.0.1",
|
|
10
|
+
"bump": "patch",
|
|
11
|
+
"date": "2026-09-30",
|
|
12
|
+
"commit": "fdb29c3027de60713f6f0f98520fc0879fa408c5",
|
|
13
|
+
"commits": [
|
|
14
|
+
{
|
|
15
|
+
"commit": "b9888b8ce9a0e4ec5b607e088942999629d5d43d",
|
|
16
|
+
"date": "2026-09-28",
|
|
17
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1513,"title":"feat(data): add S2 implementation metadata","url":"https://github.com/adobe/spectrum-design-data/pull/1513"},
|
|
18
|
+
"entries": [],
|
|
19
|
+
"metadata": {"count":2,"fields":["implementation added"]}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-changelog.schema.json",
|
|
3
|
+
"specVersion": "1.0.0-draft",
|
|
4
|
+
"component": "cards",
|
|
5
|
+
"baseline": {"release":"2.1.0","version":"1.0.0","commit":"4033f09de6696d4f61d1da89d42129a941dbd806"},
|
|
6
|
+
"releases": [
|
|
7
|
+
{
|
|
8
|
+
"release": "2.2.0",
|
|
9
|
+
"version": "1.0.1",
|
|
10
|
+
"bump": "patch",
|
|
11
|
+
"date": "2026-08-24",
|
|
12
|
+
"commit": "4338aa65262f3a8b9b84a64aa6478611d37e41ed",
|
|
13
|
+
"commits": [
|
|
14
|
+
{
|
|
15
|
+
"commit": "0b2d328b9dbfe7adf3cb762853faa15a4ba92dd0",
|
|
16
|
+
"date": "2026-08-17",
|
|
17
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1333,"title":"fix(design-data): remove SPEC-027 dangling tokenBindings superseded by CTR","url":"https://github.com/adobe/spectrum-design-data/pull/1333"},
|
|
18
|
+
"entries": [
|
|
19
|
+
{"id":"0b2d328b-0","kind":"component","change":"updated","class":"api","bump":"patch","indirect":false,"contexts":[],"record":"cards/tokenBindings","name":"tokenBindings","fields":[{"path":"tokenBindings","before":[{"token":"card-selection-background-corner-radius-small","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-medium","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-large","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-extra-large","context":"Selection checkbox "},{"token":"card-header-to-footer","context":"Spacing (text to visual)"},{"token":"card-title-to-description","context":"Spacing (title to description)"},{"token":"horizontal-card-edge-to-content-regular","context":"Spacing (top/side/bottom edge to content)"}],"after":[{"token":"card-selection-background-corner-radius-small","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-medium","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-large","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-extra-large","context":"Selection checkbox "}]}]}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"commit": "9c697cfcee3820ddc7bc3688ea000552de708641",
|
|
24
|
+
"date": "2026-08-17",
|
|
25
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1336,"title":"fix(design-data): resolve SPEC-027 dangling tokenBindings for vpk.1","url":"https://github.com/adobe/spectrum-design-data/pull/1336"},
|
|
26
|
+
"entries": [
|
|
27
|
+
{"id":"9c697cfc-0","kind":"component","change":"updated","class":"api","bump":"patch","indirect":false,"contexts":[],"record":"cards/tokenBindings","name":"tokenBindings","fields":[{"path":"tokenBindings","before":[{"token":"card-selection-background-corner-radius-small","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-medium","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-large","context":"Selection checkbox "},{"token":"card-selection-background-corner-radius-extra-large","context":"Selection checkbox "}]}]}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"release": "2.7.0",
|
|
34
|
+
"version": "1.0.2",
|
|
35
|
+
"bump": "patch",
|
|
36
|
+
"date": "2026-09-03",
|
|
37
|
+
"commit": "6d1892a74dfa5fe9819fdd3d7d6893b08318b244",
|
|
38
|
+
"commits": [
|
|
39
|
+
{
|
|
40
|
+
"commit": "5e22a7a18cd1a4f2a5957cba9cafa66bef73ed63",
|
|
41
|
+
"date": "2026-09-03",
|
|
42
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1394,"title":"fix(design-data): re-point CTR refs off deprecated tokens, add guard rail","url":"https://github.com/adobe/spectrum-design-data/pull/1394"},
|
|
43
|
+
"entries": [
|
|
44
|
+
{"id":"5e22a7a1-0","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, extra small)"],"scope":{"property":"edge-to-content-compact-extra-small","options":null},"record":"edge-to-content-compact-extra-small#Spacing (top/side/bottom edge to content, extra small)","name":"edge-to-content-compact-extra-small","fields":[{"path":"$ref","before":"562738ca-ed16-4855-8855-3914b9109408","after":"f0d9117a-5606-4e49-a81f-f89938b34ca4"}]},
|
|
45
|
+
{"id":"5e22a7a1-1","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, extra small)"],"scope":{"property":"card-edge-to-content-default-extra-small","options":null},"record":"card-edge-to-content-default-extra-small#Spacing (top/side/bottom edge to content, extra small)","name":"card-edge-to-content-default-extra-small","fields":[{"path":"$ref","before":"9ecb4a76-013a-4952-9646-a5660005b31e","after":"9fcd2823-9a13-44c0-a613-7dbe272b99a9"}]},
|
|
46
|
+
{"id":"5e22a7a1-2","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, extra small)"],"scope":{"property":"edge-to-content-spacious-extra-small","options":null},"record":"edge-to-content-spacious-extra-small#Spacing (top/side/bottom edge to content, extra small)","name":"edge-to-content-spacious-extra-small","fields":[{"path":"$ref","before":"91289dd0-0a27-49ef-96c9-3508edecfa44","after":"4c8d7d30-f0fb-4306-b78a-09ec0f2ffd97"}]},
|
|
47
|
+
{"id":"5e22a7a1-3","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, small)"],"scope":{"property":"edge-to-content-compact-small","options":null},"record":"edge-to-content-compact-small#Spacing (top/side/bottom edge to content, small)","name":"edge-to-content-compact-small","fields":[{"path":"$ref","before":"521df9e4-9c61-4a73-9157-d235a4d04090","after":"9fcd2823-9a13-44c0-a613-7dbe272b99a9"}]},
|
|
48
|
+
{"id":"5e22a7a1-4","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, small)"],"scope":{"property":"card-edge-to-content-default-small","options":null},"record":"card-edge-to-content-default-small#Spacing (top/side/bottom edge to content, small)","name":"card-edge-to-content-default-small","fields":[{"path":"$ref","before":"569f8d0a-75f3-4743-aa51-9ec6479cdf21","after":"4c8d7d30-f0fb-4306-b78a-09ec0f2ffd97"}]},
|
|
49
|
+
{"id":"5e22a7a1-5","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, small)"],"scope":{"property":"edge-to-content-spacious-small","options":null},"record":"edge-to-content-spacious-small#Spacing (top/side/bottom edge to content, small)","name":"edge-to-content-spacious-small","fields":[{"path":"$ref","before":"8ec39e04-de4f-48cf-9c8b-7bb7f76730a0","after":"81e5f983-4ca0-4d45-89f0-4accd78d7946"}]},
|
|
50
|
+
{"id":"5e22a7a1-6","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, medium)"],"scope":{"property":"edge-to-content-compact-medium","options":null},"record":"edge-to-content-compact-medium#Spacing (top/side/bottom edge to content, medium)","name":"edge-to-content-compact-medium","fields":[{"path":"$ref","before":"f3566ff3-2430-4fdd-a48c-e8c0d3c34adc","after":"4c8d7d30-f0fb-4306-b78a-09ec0f2ffd97"}]},
|
|
51
|
+
{"id":"5e22a7a1-7","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, medium)"],"scope":{"property":"card-edge-to-content-default-medium","options":null},"record":"card-edge-to-content-default-medium#Spacing (top/side/bottom edge to content, medium)","name":"card-edge-to-content-default-medium","fields":[{"path":"$ref","before":"04ef066b-4733-4d20-9538-7eefd71e7a1e","after":"81e5f983-4ca0-4d45-89f0-4accd78d7946"}]},
|
|
52
|
+
{"id":"5e22a7a1-8","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, medium)"],"scope":{"property":"edge-to-content-spacious-medium","options":null},"record":"edge-to-content-spacious-medium#Spacing (top/side/bottom edge to content, medium)","name":"edge-to-content-spacious-medium","fields":[{"path":"$ref","before":"98ef0816-ad83-43ec-b976-1169a7ce8540","after":"4cf528c8-fc7a-447b-ae4d-38b744ec1b0f"}]},
|
|
53
|
+
{"id":"5e22a7a1-9","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, large)"],"scope":{"property":"edge-to-content-compact-large","options":null},"record":"edge-to-content-compact-large#Spacing (top/side/bottom edge to content, large)","name":"edge-to-content-compact-large","fields":[{"path":"$ref","before":"0b551228-5a6a-403d-bb92-9800835cb3be","after":"81e5f983-4ca0-4d45-89f0-4accd78d7946"}]},
|
|
54
|
+
{"id":"5e22a7a1-10","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, large)"],"scope":{"property":"card-edge-to-content-default-large","options":null},"record":"card-edge-to-content-default-large#Spacing (top/side/bottom edge to content, large)","name":"card-edge-to-content-default-large","fields":[{"path":"$ref","before":"8856270e-65b5-4f81-87c0-5332ffd7459f","after":"4cf528c8-fc7a-447b-ae4d-38b744ec1b0f"}]},
|
|
55
|
+
{"id":"5e22a7a1-11","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, large)"],"scope":{"property":"edge-to-content-spacious-large","options":null},"record":"edge-to-content-spacious-large#Spacing (top/side/bottom edge to content, large)","name":"edge-to-content-spacious-large","fields":[{"path":"$ref","before":"73da978a-bede-439e-97cd-afeb32e87780","after":"2e855806-0f65-4df0-9d8f-74428daa358d"}]},
|
|
56
|
+
{"id":"5e22a7a1-12","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, extra large)"],"scope":{"property":"edge-to-content-compact-extra-large","options":null},"record":"edge-to-content-compact-extra-large#Spacing (top/side/bottom edge to content, extra large)","name":"edge-to-content-compact-extra-large","fields":[{"path":"$ref","before":"a9f253aa-631e-447a-8335-15b4491a8e9d","after":"4cf528c8-fc7a-447b-ae4d-38b744ec1b0f"}]},
|
|
57
|
+
{"id":"5e22a7a1-13","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, extra large)"],"scope":{"property":"card-edge-to-content-default-extra-large","options":null},"record":"card-edge-to-content-default-extra-large#Spacing (top/side/bottom edge to content, extra large)","name":"card-edge-to-content-default-extra-large","fields":[{"path":"$ref","before":"7acf60d0-7870-403e-94b9-18e84eff861b","after":"2e855806-0f65-4df0-9d8f-74428daa358d"}]},
|
|
58
|
+
{"id":"5e22a7a1-14","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content, extra large)"],"scope":{"property":"edge-to-content-spacious-extra-large","options":null},"record":"edge-to-content-spacious-extra-large#Spacing (top/side/bottom edge to content, extra large)","name":"edge-to-content-spacious-extra-large","fields":[{"path":"$ref","before":"c4ee268c-aca6-488f-90db-d3e51a0c5c89","after":"3801295f-e52b-412a-baf4-0b8e20449333"}]},
|
|
59
|
+
{"id":"5e22a7a1-15","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Focus indicator"],"scope":{"property":"gap","options":null},"record":"gap#Focus indicator","name":"gap","fields":[{"path":"$ref","before":"693651ef-71c7-4096-91a5-1c84cb861021","after":"fb035d45-e63b-4cd4-b220-675a52e99399"}]},
|
|
60
|
+
{"id":"5e22a7a1-16","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (title to action button)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (title to action button)","name":"space-between","fields":[{"path":"$ref","before":"1d601d0a-d6d0-4711-9fb9-71898c2bcc9a","after":"9898011f-a47c-4d5d-a74e-70b5f8d0b91c"}]},
|
|
61
|
+
{"id":"5e22a7a1-17","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (title to action button)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (title to action button)","name":"space-between","fields":[{"path":"$ref","before":"09d55113-8d94-429f-b0c8-ffabe8ccba27","after":"9898011f-a47c-4d5d-a74e-70b5f8d0b91c"}]},
|
|
62
|
+
{"id":"5e22a7a1-18","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (header to description)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (header to description)","name":"space-between","fields":[{"path":"$ref","before":"e874d2cd-6ad6-4d1c-8103-789945f10294","after":"62e8853d-9c4f-4e9d-be75-0020344d13ee"}]},
|
|
63
|
+
{"id":"5e22a7a1-19","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (description to footer)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (description to footer)","name":"space-between","fields":[{"path":"$ref","before":"248d1f30-c0d3-49bb-a5b7-0860cc75ee85","after":"81e5f983-4ca0-4d45-89f0-4accd78d7946"}]},
|
|
64
|
+
{"id":"5e22a7a1-20","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (top/side/bottom edge to content)","name":"space-between","fields":[{"path":"$ref","before":"fd732759-52ab-45b7-9949-9d9352091efe","after":"4c8d7d30-f0fb-4306-b78a-09ec0f2ffd97"}]},
|
|
65
|
+
{"id":"5e22a7a1-21","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (top/side/bottom edge to content)","name":"space-between","fields":[{"path":"$ref","before":"45af5962-8d41-476d-a92d-befa408b47b7","after":"81e5f983-4ca0-4d45-89f0-4accd78d7946"}]},
|
|
66
|
+
{"id":"5e22a7a1-22","kind":"relationship","change":"updated","class":"visual","bump":"patch","indirect":false,"contexts":["Spacing (top/side/bottom edge to content)"],"scope":{"property":"space-between","options":null},"record":"space-between#Spacing (top/side/bottom edge to content)","name":"space-between","fields":[{"path":"$ref","before":"104c7b60-387b-4550-b0eb-573915d28f42","after":"4cf528c8-fc7a-447b-ae4d-38b744ec1b0f"}]}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"release": "3.0.0",
|
|
73
|
+
"version": "1.0.3",
|
|
74
|
+
"bump": "patch",
|
|
75
|
+
"date": "2026-09-08",
|
|
76
|
+
"commit": "284fe0dba6da9932c454eaee20bbbb04272d4433",
|
|
77
|
+
"commits": [
|
|
78
|
+
{
|
|
79
|
+
"commit": "6005339a0678226eee3e827fd5bbfa793f5bccc7",
|
|
80
|
+
"date": "2026-09-08",
|
|
81
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1428,"title":"feat(tokens)!: add conceptId as canonical concept-level UUID, retire set_uuid","url":"https://github.com/adobe/spectrum-design-data/pull/1428"},
|
|
82
|
+
"entries": [],
|
|
83
|
+
"metadata": {"count":46,"fields":["conceptId","set_uuid"]}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"release": "3.4.0",
|
|
89
|
+
"version": "1.1.0",
|
|
90
|
+
"bump": "minor",
|
|
91
|
+
"date": "2026-10-01",
|
|
92
|
+
"commit": "61c5e6769e60980caf58c544b508ab2e610958b4",
|
|
93
|
+
"commits": [
|
|
94
|
+
{
|
|
95
|
+
"commit": "ec3376fa833f2c31dd0b2340590134b2747b00c4",
|
|
96
|
+
"date": "2026-10-01",
|
|
97
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1524,"title":"feat(design-data): promote public Spectrum Hub guidance to main","url":"https://github.com/adobe/spectrum-design-data/pull/1524"},
|
|
98
|
+
"entries": [
|
|
99
|
+
{"id":"ec3376fa-0","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/0","name":"guideline: Card component Purpose / use case Interaction ty","fields":[{"path":"content","before":"Cards group related content and actions into flexible containers for browsing. They preview key information and reveal more detail on interaction.","after":"Card component Purpose / use case Interaction type Common visual elements Flex General-purpose, flexible content container Varies (Static or Clickable) Title, preview, checkbox Asset Display assets like images, text documents, files, videos, materials, etc. Clickable (navigates to 1-up view), selectable Preview, filename, metadata, checkbox Gallery Show multiple images or videos in a river grid. Clickable (navigates to 1-up view), selectable Preview, badge, checkbox Collection Group related items such as assets or products in a library of items. Clickable (drill-in), selectable multi or hero multi previews, collection title, checkbox Product Display product details for interaction Clickable (drill-in), selectable Cover image, thumbnail (logo), product title, checkbox Horizontal Displaying mostly text, possibly with a cropped cover image or icon. Clickable (drill-in) Optional cropped preview, icon, or thumbnail, title, metadata"}]},
|
|
100
|
+
{"id":"ec3376fa-1","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/1","name":"guideline: Preview minimum and maximum.\n\nCard preview areas","fields":[{"path":"content","before":"Card preview areas have a maximum image height aspect ratio of 3:4, and a minimum height aspect ratio of of 4:1.","after":"Preview minimum and maximum.\n\nCard preview areas have a maximum image height aspect ratio of 3:4, and a minimum height aspect ratio of of 4:1."}]},
|
|
101
|
+
{"id":"ec3376fa-2","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/2","name":"guideline: Text overflow.\n\nIf the card has a fixed height, ","fields":[{"path":"content","before":"If the card has a fixed height, such as in a tile grid, long titles will be truncated. Use short titles to avoid this. In layouts with variable height, like a waterfall grid, titles will wrap to fit.","after":"Text overflow.\n\nIf the card has a fixed height, such as in a tile grid, long titles will be truncated. Use short titles to avoid this. In layouts with variable height, like a waterfall grid, titles will wrap to fit."}]},
|
|
102
|
+
{"id":"ec3376fa-3","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/3","name":"guideline: Clickable cards.\n\nCards, by definition, should h","fields":[{"path":"content","before":"Cards, by definition, should have some form of interaction such as viewing, editing, purchasing, etc. Some actions are exposed in buttons, and others simply occur by clicking the card.","after":"Clickable cards.\n\nCards, by definition, should have some form of interaction such as viewing, editing, purchasing, etc. Some actions are exposed in buttons, and others simply occur by clicking the card. If a card only has an ability to be opened or viewed in more detail, do not include a button. Clicking anywhere on the card should perform that action. If a card has other interactive elements such as a hidden actions menu or an avatar, but no buttons, the whole card (outside of those elements) should be clickable."}]},
|
|
103
|
+
{"id":"ec3376fa-4","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/4","name":"guideline: Buttons in cards.\n\nIf there's only one action (t","fields":[{"path":"content","before":"If a card only has an ability to be opened or viewed in more detail, do not include a button. Clicking anywhere on the card should perform that action.","after":"Buttons in cards.\n\nIf there's only one action (that's not opening or viewing the card), use a button to communicate that action. If there are two or more available actions, and one of those actions is to open or view the card, use a button to communicate \"View\" or \"Open,\" instead of relying on clicking on the card. If a standard card has a footer with a button, only the button is clickable. If a card has a preview, clicking the preview will open that card. When a preview is purely decorative, it is not clickable."}]},
|
|
104
|
+
{"id":"ec3376fa-5","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/5","name":"guideline: Ghost loading.\n\nWhen a group of cards are loadin","fields":[{"path":"content","before":"If a card has other interactive elements such as a hidden actions menu or an avatar, but no buttons, the whole card (outside of those elements) should be clickable.","after":"Ghost loading.\n\nWhen a group of cards are loading, they follow the ghost loading convention. There are 5 phases for ghost loading: Card group (including metadata) ghost loads. If metadata for all cards is loaded before all preview images are loaded, the metadata is displayed for all cards as soon as the last piece of metadata loads. Previews continue to ghost load. If all preview images load within the x period (a period of time, usually measured in seconds, that you need to specify depending on the use case), they are shown as soon as the last preview loads. If all previews have not finished loading at the end of the x period, the loaded previews are shown, and the pending previews receive individual circle loaders. The group is no longer in a ghost loading state. If the preview load times out, an error is shown along with a mechanism to retry loading."}]},
|
|
105
|
+
{"id":"ec3376fa-6","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/6","name":"guideline: Keep cards simple.\n\nCards are meant to just show","fields":[{"path":"content","before":"If there’s only one action (that’s not opening or viewing the card), use a button to communicate that action. If there are two or more available actions, and one of those actions is to open or view the card, use a button to communicate “View” or “Open,” instead of relying on clicking on the card.","after":"Keep cards simple.\n\nCards are meant to just show a taste of the available information. Don't overload cards with more information than necessary."}]},
|
|
106
|
+
{"id":"ec3376fa-7","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/7","name":"guideline: RTL.\n\nCards in RTL languages mirror their horizo","fields":[{"path":"content","before":"If a standard card has a footer with a button, only the button is clickable. If a card has a preview, clicking the preview will open that card. When a preview is purely decorative, it is not clickable.","after":"RTL.\n\nCards in RTL languages mirror their horizontal layout and directional cues, while their interaction behavior stays the same. Any element with a left‑right relationship flips. Thumbnails or avatars that appear on the left in LTR move to the right in RTL. Metadata stacks reverse order, such as an icon followed by text becoming text followed by an icon. Action areas, including overflow menus, shift from the top right of the card to the top left. Vertical layout and center‑aligned elements do not change. Most icons remain the same, but directional icons, such as arrows and chevrons, flip to match reading direction."}]},
|
|
107
|
+
{"id":"ec3376fa-8","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/8","name":"guideline: Keyboard interactions.\n\nKey Interaction Tab Move","fields":[{"path":"content","before":"When a group of cards are loading, they follow the ghost loading convention. There are 5 phases for ghost loading:","after":"Keyboard interactions.\n\nKey Interaction Tab Moves focus forward to the next card. Arrow keys Moves focus within the card to focusable items within the card. If a button is included on the cards, the button should receive focus first. If there are multiple buttons, the primary or CTA button should receive focus first. Shift + Tab Moves focus backward to the previous card. Return or Enter If the card itself is clickable, Return or Enter will open the card. If the card is not clickable but has buttons, and the buttons or another item within the card is focused, that action is performed. Space If the card is selectable, the space bar will toggle selection. Ctrl / Command + Arrow keys Non-contiguous selection of cards."}]},
|
|
108
|
+
{"id":"ec3376fa-9","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/9","name":"guideline: Cursor guidelines.\n\nNon-interactive cards Cursor","fields":[{"path":"content","before":"Cards are meant to just show a taste of the available information. Don’t overload cards with more information than necessary.","after":"Cursor guidelines.\n\nNon-interactive cards Cursor Description Default (Arrow) Use the default cursor for non-interactive cards. Cards with interactive elements Cursor Description Default (Arrow) Use the default cursor for the non-interactive portions of the card. Pointer Use the pointer cursor for the interactive elements. Grab hand Use the grab hand cursor when hovering over cards that are draggable. Cards that have other interactive elements that are also draggable should first enter a drag mode before showing the grab cursors and allowing a drag action. Grab fist Use the grab fist cursor when actively dragging a card. Fully interactive cards Cursor Description Pointer Use the pointer cursor for the entire card surface when the card is interactive, for example, if clicking the card will navigate to a one-up view. Grab hand Use the grab hand cursor when hovering over cards that are draggable. Grab fist Use the grab fist cursor when actively dragging a card."}]},
|
|
109
|
+
{"id":"ec3376fa-10","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/10","name":"guideline: WCAG 2.2 compliance.\n\nAny criterion not mention ","fields":[{"path":"content","before":"Only standard cards can have a footer, and buttons can only appear inside a footer.","after":"WCAG 2.2 compliance.\n\nAny criterion not mention in the below table are not applicable to this component or are resolved with underlying requirements, engineering, and styles of the entire system. 1. Perceivable Requirement Criterion Level Compliance Non-text content 1.1.1 A Non‑text elements—such as icons or illustrations used in cards—must provide a text alternative that communicates the control’s purpose. All controls, especially icon‑only controls, need an accessible name (for example, via a title, aria‑label, or associated text) so screen readers can announce their function. Info and relationships, Identify purpose 1.3.1, 1.3.6 AA Cards should be understandable by assistive technologies like screen readers. This means the proper semantic HTML or ARIA role should be utilized. Orientation 1.3.4 AA Cards are available in both vertical and horizontal orientations. Use of color 1.4.1 A Color is not used as a means to convey information or distinguish elements, indicate an action, or prompt a response. Color is always paired with text or icons, and is only used to enhance the meaning of the text. Text contrast 1.4.3 AA Large text has a contrast ratio of at least 3:1, and small text has a contrast ratio of at least 4.5:1. Incidental text such as disabled, hidden, or decorative text has no contrast requirement. Visual presentation 1.4.8 AAA The width of text blocks is no more than 80 characters (40 for CJK languages), and text is never justified. Non-text contrast 1.4.11 AA The visual presentation of illustrations, icons, and component states have a contrast ratio of at least 3:1. Text spacing 1.4.12 AA Line height of text is at least 1.5x the font size. 2. Operable Requirement Criterion Level Compliance Keyboard 2.1.1, 2.1.3 A, AAA All functionality of the component is operable through a keyboard without specific timing for keystrokes. Keyboard traps 2.1.2 A Focus can be moved away from the component using only a keyboard. Seizures and physical reactions 2.3.1, 2.3.2, 2.3.3 A, AAA, AAA There is no flashing content or unnecessary motion or animation in this component. Focus order 2.4.3 A Navigation sequences receive focus in an order that preserves meaning and operability. Focus visible 2.4.7 AA Keyboard states use an indicator that is visible with at least 3:1 contrast."}]},
|
|
110
|
+
{"id":"ec3376fa-11","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/11","name":"guideline: Individual cards are not aligned to individual c","fields":[],"before":{"type":"guideline","content":"Individual cards are not aligned to individual columns in the page's responsive column grid. Instead, groups of cards are aligned to the column grid in a layout region."}},
|
|
111
|
+
{"id":"ec3376fa-12","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"cards/documentBlocks/12","name":"guideline: If the preview is a video clip or other moving i","fields":[],"before":{"type":"guideline","content":"If the preview is a video clip or other moving item, do not automatically play the clip or motion. Save the movement for either when a user hovers on the card or when they click on a play button."}},
|
|
112
|
+
{"id":"ec3376fa-13","kind":"document-block","change":"added","class":"documentation","bump":"minor","indirect":false,"contexts":[],"record":"cards/documentBlocks/13","name":"do-dont: Don't add buttons to quiet cards","fields":[],"after":{"type":"do-dont","content":"Don't add buttons to quiet cards","dont":"Only standard cards can have a footer, and buttons can only appear inside a footer."}},
|
|
113
|
+
{"id":"ec3376fa-14","kind":"document-block","change":"added","class":"documentation","bump":"minor","indirect":false,"contexts":[],"record":"cards/documentBlocks/14","name":"do-dont: Don't align individual cards to the column grid","fields":[],"after":{"type":"do-dont","content":"Don't align individual cards to the column grid","dont":"Individual cards are not aligned to individual columns in the page's responsive column grid. Instead, groups of cards are aligned to the column grid in a layout region."}},
|
|
114
|
+
{"id":"ec3376fa-15","kind":"document-block","change":"added","class":"documentation","bump":"minor","indirect":false,"contexts":[],"record":"cards/documentBlocks/15","name":"do-dont: Don't auto-play videos","fields":[],"after":{"type":"do-dont","content":"Don't auto-play videos","dont":"If the preview is a video clip or other moving item, do not automatically play the clip or motion. Save the movement for either when a user hovers on the card or when they click on a play button."}}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"release": "3.8.0",
|
|
121
|
+
"version": "1.1.1",
|
|
122
|
+
"bump": "patch",
|
|
123
|
+
"date": "2026-11-03",
|
|
124
|
+
"commit": "7b38617df24442d22724fb890cef69aa198b9e3a",
|
|
125
|
+
"commits": [
|
|
126
|
+
{
|
|
127
|
+
"commit": "9b4ad35c29fb00193e5847625699afb04fa0c560",
|
|
128
|
+
"date": "2026-10-31",
|
|
129
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1582,"title":"feat: component visual recipes, renderer, explorer site and platform-aware rendering","url":"https://github.com/adobe/spectrum-design-data/pull/1582"},
|
|
130
|
+
"entries": [
|
|
131
|
+
{"id":"9b4ad35c-0","kind":"token","change":"renamed","class":"api","bump":"patch","indirect":false,"contexts":["Focus indicator"],"record":"fb035d45-e63b-4cd4-b220-675a52e99399","name":"gap[anatomy=focus-indicator,legacyKey=focus-ring-gap]","fields":[{"path":"name.anatomy","before":"focus-ring","after":"focus-indicator"},{"path":"name.legacyKey","after":"focus-ring-gap"}]}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-changelog.schema.json",
|
|
3
|
+
"specVersion": "1.0.0-draft",
|
|
4
|
+
"component": "checkbox-group",
|
|
5
|
+
"baseline": {"release":"2.1.0","version":"1.0.0","commit":"4033f09de6696d4f61d1da89d42129a941dbd806"},
|
|
6
|
+
"releases": [
|
|
7
|
+
{
|
|
8
|
+
"release": "3.3.0",
|
|
9
|
+
"version": "1.0.1",
|
|
10
|
+
"bump": "patch",
|
|
11
|
+
"date": "2026-09-30",
|
|
12
|
+
"commit": "fdb29c3027de60713f6f0f98520fc0879fa408c5",
|
|
13
|
+
"commits": [
|
|
14
|
+
{
|
|
15
|
+
"commit": "b9888b8ce9a0e4ec5b607e088942999629d5d43d",
|
|
16
|
+
"date": "2026-09-28",
|
|
17
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1513,"title":"feat(data): add S2 implementation metadata","url":"https://github.com/adobe/spectrum-design-data/pull/1513"},
|
|
18
|
+
"entries": [],
|
|
19
|
+
"metadata": {"count":1,"fields":["implementation added"]}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"release": "3.4.0",
|
|
25
|
+
"version": "1.0.2",
|
|
26
|
+
"bump": "patch",
|
|
27
|
+
"date": "2026-10-01",
|
|
28
|
+
"commit": "61c5e6769e60980caf58c544b508ab2e610958b4",
|
|
29
|
+
"commits": [
|
|
30
|
+
{
|
|
31
|
+
"commit": "ec3376fa833f2c31dd0b2340590134b2747b00c4",
|
|
32
|
+
"date": "2026-10-01",
|
|
33
|
+
"source": {"type":"pr","repo":"adobe/spectrum-design-data","number":1524,"title":"feat(design-data): promote public Spectrum Hub guidance to main","url":"https://github.com/adobe/spectrum-design-data/pull/1524"},
|
|
34
|
+
"entries": [
|
|
35
|
+
{"id":"ec3376fa-0","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/0","name":"guideline: RTL.\n\nFor RTL (right-to-left) languages, the lay","fields":[{"path":"content","before":"When a description is present and an error is triggered, it is replaced with an error message. Once the error is resolved, the help text description reappears.","after":"RTL.\n\nFor RTL (right-to-left) languages, the layout of the checkbox group (and its component parts) is mirrored. The checkmarks and icons are placed on the right side of the text, and text is aligned to the right."}]},
|
|
36
|
+
{"id":"ec3376fa-1","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/1","name":"guideline: Keyboard interactions.\n\nKey Interaction Tab Tabb","fields":[{"path":"content","before":"A checkbox group in a disabled state shows that a selection exists, but is not available in that circumstance. This can be used to maintain layout continuity and communicate that an action may become available later. The field label, checkboxes, and help text are all displayed in a disabled state when the checkbox group is disabled.","after":"Keyboard interactions.\n\nKey Interaction Tab Tabbing into a group of checkboxes places the focus on the first checkbox (only one checkbox receives the keyboard focus at a time). Shift + Tab Moves focus to the previous item or group of items. Arrow keys Moves focus through the group of checkboxes. Page Up or Page Down Moves focus to the previous or next checkbox in the group (last becomes first, and first becomes last). Home or End Moves focus to the first or last checkbox in the group. Space or Enter Toggles the checkbox between selected and not selected. If the checkbox is partially selected initially, the checkbox becomes selected first (subsequent toggles alternate normally between selected and not selected)."}]},
|
|
37
|
+
{"id":"ec3376fa-2","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/2","name":"guideline: Cursor guidelines.\n\nCursor Description Pointer U","fields":[{"path":"content","before":"Checkbox groups can be either horizontal or vertical. By default, checkbox groups are stacked vertically. Use a horizontal checkbox group when vertical space is limited.","after":"Cursor guidelines.\n\nCursor Description Pointer Use the pointer cursor for interactive elements like checkboxes."}]},
|
|
38
|
+
{"id":"ec3376fa-3","kind":"document-block","change":"updated","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/3","name":"guideline: WCAG 2.2 compliance.\n\nAny criterion not mention ","fields":[{"path":"content","before":"Checkbox groups can be marked as optional or required, depending on the situation. Optional checkbox groups are either denoted with text added to the end of the label — “(optional)” — or have no indication at all.","after":"WCAG 2.2 compliance.\n\nAny criterion not mention in the below table are not applicable to this component or are resolved with underlying requirements, engineering, and styles of the entire system. 1. Perceivable Requirement Criterion Level Compliance Non-text content 1.1.1 A Non‑text elements—such as the checkbox control—must provide a text alternative that communicates the control’s purpose. All controls, especially icon‑only controls, need an accessible name (for example, via a title, aria‑label, or associated text) so screen readers can announce their function. Info and relationships, Identify purpose 1.3.1, 1.3.6 A, AAA Checkboxes should be understandable by assistive technologies like screen readers. This means using the proper semantic HTML or ARIA role should be utilized. Orientation 1.3.4 AA Checkbox groups are available in both vertical and horizontal orientations. Use of color 1.4.1 A Color is not used as a means to convey information or distinguish elements, indicate an action, or prompt a response. Color is always paired with text or icons, and is only used to enhance the meaning of the text. Text contrast minimums 1.4.3 AA Large text has a contrast ratio of at least 3:1, and small text has a contrast ratio of at least 4.5:1. Incidental text such as disabled, hidden, or decorative text has no contrast requirement. Resize text 1.4.4 AA Checkboxes should be built in such a way that they can be resized without assistive technology up to 200%. Visual presentation 1.4.8 AAA The width of text blocks is no more than 80 characters (40 for CJK languages), and text is never justified. Non-text contrast 1.4.11 AA The checkbox control and its various states have a contrast ratio of at least 3:1. Text spacing 1.4.12 AA Line height of text is at least 1.5x the font size when the label is wrapped. 2. Operable Requirement Criterion Level Compliance Keyboard 2.1.1, 2.1.3 A, AAA All functionality of the component is operable through a keyboard without specific timing for keystrokes. Keyboard traps 2.1.2 A Focus can be moved away from the component using only a keyboard. Seizures and physical feactions 2.3.1, 2.3.2, 2.3.3 A, AAA, AAA There is no flashing content or unnecessary motion or animation in this component. Focus order 2.4.3 A Navigation sequences receive focus in an order that preserves meaning and operability. Focus visible 2.4.7 AA Keyboard states use an indicator that is visible with at least 3:1 contrast."}]},
|
|
39
|
+
{"id":"ec3376fa-4","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/4","name":"guideline: For required checkbox groups, there are two nece","fields":[],"before":{"type":"guideline","content":"For required checkbox groups, there are two necessity indicator options: a “(required)” label or an asterisk. If you use an asterisk, be sure to include help text to explain what the asterisk means."}},
|
|
40
|
+
{"id":"ec3376fa-5","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/5","name":"guideline: The asterisk used in this component is an icon t","fields":[],"before":{"type":"guideline","content":"The asterisk used in this component is an icon that has specific spacing from the label text — not part of the label text itself."}},
|
|
41
|
+
{"id":"ec3376fa-6","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/6","name":"guideline: Labels can be placed either on top or on the sid","fields":[],"before":{"type":"guideline","content":"Labels can be placed either on top or on the side. Top labels are the default and are recommended because they work better with long copy, localization, and responsive layouts. Side labels are most useful when vertical space is limited."}},
|
|
42
|
+
{"id":"ec3376fa-7","kind":"document-block","change":"removed","class":"documentation","bump":"patch","indirect":false,"contexts":[],"record":"checkbox-group/documentBlocks/7","name":"guideline: Checkbox groups should always have a label. In r","fields":[],"before":{"type":"guideline","content":"Checkbox groups should always have a label. In rare cases where context is sufficient and an accessibility expert has reviewed the design, the label could be undefined. These checkbox groups without a visible label should still include an aria-label in HTML (depending on the context, “aria-label” or “aria-labelledby”)."}}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|