Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
3046278
chore: update repository URLs from spectrum-tokens to spectrum-design…
GarthDB Nov 18, 2025
cddc8ef
fix(tests): update test repository references and snapshots for rename
GarthDB Nov 18, 2025
5bcf76e
refactor(schemas): use relative paths in $ref per JSON Schema best pr…
GarthDB Nov 18, 2025
f8c2a8f
chore: update pnpm-lock.yaml after rebase on main
GarthDB Nov 18, 2025
3e60f5a
chore: fix changeset lint and remove OLD_REPO_SETUP.md
GarthDB Nov 18, 2025
aab066a
chore: mark repository rename as breaking change
GarthDB Nov 18, 2025
7127894
fix(site): update Next.js basePath and assetPrefix to spectrum-design…
GarthDB Nov 18, 2025
0e0c09c
Merge branch 'main' into chore/repository-rename
GarthDB Nov 18, 2025
0e1aeca
Merge branch 'main' into chore/repository-rename
GarthDB Nov 18, 2025
61e7013
feat(diff-generator): auto-collapse details sections with >20 items
GarthDB Nov 18, 2025
9932a30
chore: add changeset for auto-collapse feature and shorten repo-rename
GarthDB Nov 18, 2025
612f552
fix(ci): handle large diff outputs gracefully
GarthDB Nov 18, 2025
53f558a
fix: update visualizers to use spectrum-design-data URLs
GarthDB Nov 19, 2025
ac75895
chore: update repo references from spectrum-tokens to spectrum-design…
GarthDB Nov 19, 2025
4530526
Merge branch 'main' into chore/repository-rename
GarthDB Nov 19, 2025
c97d792
fix(diff-generator): update default repo from spectrum-tokens to spec…
GarthDB Nov 19, 2025
85335fe
chore(site): update component and token schemas
GarthDB Nov 19, 2025
d5c7a5b
fix(component-schemas): increase performance test threshold for CI en…
GarthDB Nov 19, 2025
ebeec82
chore: merge main into chore/repository-rename
GarthDB Nov 19, 2025
f36086e
chore: merge main into chore/repository-rename
GarthDB Nov 19, 2025
f3ddee4
Merge branch 'main' into chore/repository-rename
GarthDB Nov 19, 2025
3218cd8
fix(docs): update repository references from spectrum-tokens to spect…
GarthDB Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .changeset/auto-collapse-large-diffs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@adobe/token-diff-generator": patch
"@adobe/spectrum-component-diff-generator": patch
---

feat: auto-collapse details sections with more than 20 items

Diff report templates now automatically collapse `<details>` sections
when they contain more than 20 items, improving readability for large
diffs like repository-wide changes. Sections with 20 or fewer items
remain open by default for quick scanning.

19 changes: 19 additions & 0 deletions .changeset/repo-rename.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@adobe/spectrum-tokens": major
"@adobe/spectrum-component-api-schemas": major
"@adobe/spectrum-design-data-mcp": patch
---

BREAKING CHANGE: Repository renamed from spectrum-tokens to
spectrum-design-data

**Breaking Changes:**
- JSON Schema `$id` URIs changed (spectrum-tokens → spectrum-design-data)
- External tools referencing schemas by `$id` must update references

**Changes:**
- Updated all GitHub repository and Pages URLs
- Updated schema base URIs to maintain consistency

**Note:** NPM package names unchanged. GitHub redirects are in place.

10 changes: 10 additions & 0 deletions .github/actions/diff-pr-comment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,16 @@ runs:
if [ "${{ inputs.diff-generated }}" == "true" ]; then
# Decode base64 content and append to file
echo "${{ inputs.diff-content }}" | base64 -d >> /tmp/comment_body.md
elif [ "${{ inputs.diff-generated }}" == "too-large" ]; then
# Diff too large case
echo "⚠️ **The diff output is too large to display in a PR comment.**" >> /tmp/comment_body.md
echo "" >> /tmp/comment_body.md
echo "${{ inputs.diff-content }}" >> /tmp/comment_body.md
echo "" >> /tmp/comment_body.md
echo "For large-scale changes like repository renames, please run the diff tool locally:" >> /tmp/comment_body.md
echo '```bash' >> /tmp/comment_body.md
echo "pnpm --filter @adobe/${{ inputs.diff-type }}-diff-generator exec -- tdiff report --otb ${{ github.base_ref }} --ntb ${{ github.head_ref }}" >> /tmp/comment_body.md
echo '```' >> /tmp/comment_body.md
elif [ "${{ inputs.diff-generated }}" == "false" ]; then
# No changes case
echo "No ${{ steps.comment-details.outputs.description }} changes detected in this pull request." >> /tmp/comment_body.md
Expand Down
15 changes: 12 additions & 3 deletions .github/actions/generate-diff/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,18 @@ runs:

# Check if the command succeeded and output file exists
if [ $exit_code -eq 0 ] && [ -f "${{ inputs.output-file }}" ] && [ -s "${{ inputs.output-file }}" ]; then
echo "diff_generated=true" >> $GITHUB_OUTPUT
# Use base64 encoding to safely pass multiline content
echo "diff_content=$(base64 -w 0 < "${{ inputs.output-file }}")" >> $GITHUB_OUTPUT
# Check file size (GitHub Actions output limit is ~1MB, base64 adds 33% overhead)
file_size=$(wc -c < "${{ inputs.output-file }}")
max_size=$((750 * 1024)) # 750KB limit to be safe

if [ $file_size -gt $max_size ]; then
echo "diff_generated=too-large" >> $GITHUB_OUTPUT
echo "diff_content=Diff output is too large to display in PR comment (${file_size} bytes). Please check the workflow artifacts or run the diff tool locally." >> $GITHUB_OUTPUT
else
echo "diff_generated=true" >> $GITHUB_OUTPUT
# Use base64 encoding to safely pass multiline content
echo "diff_content=$(base64 -w 0 < "${{ inputs.output-file }}")" >> $GITHUB_OUTPUT
fi
elif [ $exit_code -eq 0 ] && [ -f "${{ inputs.output-file }}" ]; then
# Command succeeded but file exists but is empty (no changes)
echo "diff_generated=false" >> $GITHUB_OUTPUT
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Note: for [Spectrum 2](https://s2.spectrum.adobe.com/) token data has been graduated to the `main` branch. If you need access to the S1 data, use the [`s1-legacy` branch](https://github.com/adobe/spectrum-design-data/tree/s1-legacy) and `v12.x.x` packages on [NPM](https://www.npmjs.com/package/@adobe/spectrum-tokens?activeTab=versions).

The [Spectrum token visualizer](https://opensource.adobe.com/spectrum-tokens/visualizer/) shows the token data for S1. For Spectrum 2 data, use [opensource.adobe.com/spectrum-tokens/s2-visualizer/](https://opensource.adobe.com/spectrum-tokens/s2-visualizer/).
The [Spectrum token visualizer](https://opensource.adobe.com/spectrum-design-data/visualizer/) shows the token data for S1. For Spectrum 2 data, use [opensource.adobe.com/spectrum-design-data/s2-visualizer/](https://opensource.adobe.com/spectrum-design-data/s2-visualizer/).

# Spectrum Tokens Monorepo

Expand All @@ -22,11 +22,11 @@ Packages in this monorepo:

## Documentation & Visualization

* [Spectrum Token Visualizer Tool](docs/visualizer/) a visualizer for inspecting S1 tokens. Published as a [static site](https://opensource.adobe.com/spectrum-tokens/visualizer/).
* [Spectrum Token Visualizer Tool S2](docs/s2-visualizer/) a version of the visualizer that shows the Spectrum 2 data. Published as a [static site](https://opensource.adobe.com/spectrum-tokens/s2-visualizer/).
* [Spectrum Token Visualizer Tool](docs/visualizer/) a visualizer for inspecting S1 tokens. Published as a [static site](https://opensource.adobe.com/spectrum-design-data/visualizer/).
* [Spectrum Token Visualizer Tool S2](docs/s2-visualizer/) a version of the visualizer that shows the Spectrum 2 data. Published as a [static site](https://opensource.adobe.com/spectrum-design-data/s2-visualizer/).
* [Spectrum S2 Tokens Viewer](docs/s2-tokens-viewer/) an enhanced token viewer with component usage analysis for Spectrum 2 tokens.
* [Spectrum Tokens Docs](docs/site/) a static site to show the component options API and other token data.
* [Release Timeline Visualization](docs/release-timeline/) interactive charts showing release frequency and development activity patterns. Published as a [static site](https://opensource.adobe.com/spectrum-tokens/release-timeline/).
* [Release Timeline Visualization](docs/release-timeline/) interactive charts showing release frequency and development activity patterns. Published as a [static site](https://opensource.adobe.com/spectrum-design-data/release-timeline/).

## Development Tools

Expand Down
2 changes: 1 addition & 1 deletion SPECTRUM_MULTIPLATFORM_SDK_STRATEGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ This document consolidates research and strategic planning for building a **comp
### **Team Ownership Model**

```
spectrum-tokens/
spectrum-design-data/
├── base-design-system/ # 🔒 Core Spectrum Team
│ ├── tokens/
│ ├── schemas/
Expand Down
2 changes: 1 addition & 1 deletion TOOLING_STANDARDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ tasks:
"$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "adobe/spectrum-tokens" }
{ "repo": "adobe/spectrum-design-data" }
],
"commit": false,
"access": "public",
Expand Down
16 changes: 9 additions & 7 deletions docs/release-timeline/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,18 @@
- [#566](https://github.com/adobe/spectrum-design-data/pull/566) [`e0de953`](https://github.com/adobe/spectrum-design-data/commit/e0de953fb8ef5aba92782838094eeec3a4c78321) Thanks [@GarthDB](https://github.com/GarthDB)! - Add release timeline visualization and analysis tools for Spectrum Tokens change tracking.

This adds new internal tooling for analyzing and visualizing the frequency and scope of Spectrum Tokens releases:
- **Release Analyzer Tool** (`tools/release-analyzer/`): Parses git tags and CHANGELOG.md to extract release data and change scope metrics
- **Interactive Timeline Visualization** (`docs/release-timeline/`): D3.js-powered charts showing release frequency, change scope, and development activity over time
- **GitHub Pages Integration**: Build system to deploy static visualization to `/spectrum-tokens/release-timeline/`

* **Release Analyzer Tool** (`tools/release-analyzer/`): Parses git tags and CHANGELOG.md to extract release data and change scope metrics
* **Interactive Timeline Visualization** (`docs/release-timeline/`): D3.js-powered charts showing release frequency, change scope, and development activity over time
* **GitHub Pages Integration**: Build system to deploy static visualization to `/spectrum-tokens/release-timeline/`

These tools provide data-driven insights into design system evolution patterns and coordination costs, supporting the business case for systematic token infrastructure at scale.

The visualization demonstrates:
- 220+ releases across 3 years with varying change scope (1-2000+ tokens)
- High development activity (61 beta releases, 24 experimental snapshots)
- 11 concurrent development feature streams
- Clear trends in release frequency and impact

* 220+ releases across 3 years with varying change scope (1-2000+ tokens)
* High development activity (61 beta releases, 24 experimental snapshots)
* 11 concurrent development feature streams
* Clear trends in release frequency and impact

All new packages are marked as private and will not be published to npm.
7 changes: 5 additions & 2 deletions docs/site/public/schemas/component.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"title": "Component",
"type": "object",
"properties": {
Expand All @@ -20,7 +20,10 @@
"typography"
]
},
"documentationUrl": { "type": "string", "format": "uri" }
"documentationUrl": {
"type": "string",
"format": "uri"
}
},
"required": ["category", "documentationUrl"]
}
Expand Down
74 changes: 74 additions & 0 deletions docs/site/public/schemas/components/accordion.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/accordion.json",
"title": "Accordion",
"description": "An accordion is a vertically stacked set of interactive headings that each contain a title and a content area.",
"meta": {
"category": "inputs",
"documentationUrl": "https://spectrum.adobe.com/page/accordion/"
},
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": ["default", "hover", "down", "keyboard focus"],
"default": "default"
},
"size": {
"type": "string",
"enum": ["s", "m", "l", "xl"],
"default": "m"
},
"isQuiet": {
"type": "boolean",
"default": false
},
"isDisabled": {
"type": "boolean",
"default": false
},
"density": {
"type": "string",
"enum": ["compact", "regular", "spacious"],
"default": "regular"
},
"items": {
"type": "array",
"description": "An array of accordion items.",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "The text label displayed for the accordion item."
},
"content": {
"type": "string",
"description": "The content shown when the accordion item is expanded."
},
"isExpanded": {
"type": "boolean",
"default": false,
"description": "Whether the accordion item is expanded by default."
},
"hasSwitch": {
"type": "boolean",
"default": false,
"description": "If true, the accordion item includes a switch."
},
"hasActionButton": {
"type": "boolean",
"default": false,
"description": "If true, the accordion item includes an action button."
}
},
"required": ["label"]
}
},
"isMultiple": {
"type": "boolean",
"default": false,
"description": "If true, multiple accordion items can be expanded at the same time."
}
}
}
4 changes: 2 additions & 2 deletions docs/site/public/schemas/components/action-bar.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/action-bar.json",
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/action-bar.json",
"title": "Action bar",
"description": "Action bars are used for single and bulk selection patterns, when a user needs to perform actions on either a single or multiple items at the same time.",
"meta": {
Expand Down
8 changes: 4 additions & 4 deletions docs/site/public/schemas/components/action-button.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/action-button.json",
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/action-button.json",
"title": "Action button",
"description": "Action buttons allow users to perform an action or mark a selection. They're used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren't meant to draw a lot of attention.",
"meta": {
Expand All @@ -17,7 +17,7 @@
"default": false
},
"icon": {
"$ref": "https://opensource.adobe.com/spectrum-tokens/schemas/types/workflow-icon.json",
"$ref": "https://opensource.adobe.com/spectrum-design-data/schemas/types/workflow-icon.json",
"description": "Icon must be present if the label is not defined."
},
"size": {
Expand All @@ -43,7 +43,7 @@
"description": "Static color must not be set for the default version of this component."
},
"selectedTextColor": {
"$ref": "https://opensource.adobe.com/spectrum-tokens/schemas/types/hex-color.json"
"$ref": "https://opensource.adobe.com/spectrum-design-data/schemas/types/hex-color.json"
},
"hasHoldIcon": {
"type": "boolean",
Expand Down
4 changes: 2 additions & 2 deletions docs/site/public/schemas/components/action-group.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/action-group.json",
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/action-group.json",
"title": "Action group",
"description": "An action group is a grouping of action buttons that are related to each other.",
"meta": {
Expand Down
6 changes: 3 additions & 3 deletions docs/site/public/schemas/components/alert-banner.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/alert-banner.json",
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/alert-banner.json",
"title": "Alert banner",
"description": "Alert banners show pressing and high-signal messages, such as system alerts. They're meant to be noticed and prompt users to take action.",
"meta": {
Expand All @@ -14,7 +14,7 @@
},
"variant": {
"type": "string",
"enum": ["neutral", "informative", "negative"],
"enum": ["neutral", "informative", "negative", "accent"],
"default": "neutral"
},
"actionLabel": {
Expand Down
4 changes: 2 additions & 2 deletions docs/site/public/schemas/components/alert-dialog.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/alert-dialog.json",
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/alert-dialog.json",
"title": "Alert dialog",
"description": "Alert dialogs display important information that users need to acknowledge. They appear over the interface and block further interactions until an action is selected.",
"meta": {
Expand Down
22 changes: 22 additions & 0 deletions docs/site/public/schemas/components/avatar-group.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/avatar-group.json",
"title": "Avatar group",
"description": "Avatar groups display a collection of avatars representing people or entities.",
"meta": {
"category": "actions",
"documentationUrl": "https://spectrum.adobe.com/page/avatar-group/"
},
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Optional text label displayed with the avatar group (e.g., group name)."
},
"size": {
"type": "number",
"enum": [50, 75, 100, 200, 300, 400, 500],
"default": 100
}
}
}
27 changes: 20 additions & 7 deletions docs/site/public/schemas/components/avatar.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/avatar.json",
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/component.json",
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/components/avatar.json",
"title": "Avatar",
"description": "An avatar is a thumbnail representation of an entity, such as a user or an organization.",
"meta": {
Expand All @@ -11,21 +11,34 @@
"properties": {
"size": {
"type": "number",
"enum": [50, 75, 100, 200, 300, 400, 500, 600, 700],
"default": 100
"enum": [
50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200,
1300, 1400, 1500
],
"default": 500
},
"image": {
"type": "string",
"enum": ["text", "image"],
"default": "image"
"enum": [
"user image",
"gradient image",
"gradient",
"guest image",
"initials"
],
"default": "user image"
},
"isDisabled": {
"type": "boolean",
"default": false
},
"showStroke": {
"type": "boolean",
"default": false
},
"state": {
"type": "string",
"enum": ["default", "hover", "down", "keyboard focus"],
"enum": ["default", "down", "keyboard focus"],
"default": "default"
}
}
Expand Down
Loading
Loading