Commit 25e14e5
Groups and Aliases Specification Updates (#298)
* feat: Complete rewrite of groups specification with advanced features
This is a comprehensive update to the groups specification that significantly
expands the capabilities of design token groups while maintaining backward
compatibility. The changes include:
Key Features Added:
- Root tokens using reserved `$root` name for base values within groups
- Group inheritance via `$extends` property with deep merge semantics
- Enhanced group properties including `$deprecated` and expanded `$description`
- Clear distinction between tokens (has `$value`) and groups (no `$value`)
- Empty groups explicitly permitted with use case justification
- Comprehensive error handling and validation requirements
Technical Improvements:
- Aligned `$extends` with JSON Schema `$ref` semantics for consistency
- Detailed processing rules for token resolution order
- Type inheritance hierarchy with clear precedence rules
- Circular reference detection requirements
- Path construction guidelines including `$root` handling
Documentation Enhancements:
- Extensive examples demonstrating all new features
- Migration and compatibility guidance
- Implementation guidance for tool developers
- Clear rationale for design decisions
- Use cases covering simple to complex scenarios
Breaking Changes: None - fully backward compatible
Migration Path: Existing files work without modification
This update positions the specification to support advanced design system
workflows while maintaining the simplicity that makes design tokens accessible
to all teams.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: Update technical reports with comprehensive alias/reference syntax and enhanced groups specification
- Complete rewrite of aliases.md with dual syntax support (curly brace vs JSON Pointer)
- Add property-level references for color components, dimensions, and typography
- Expand groups.md with root tokens, type inheritance, and $extends functionality
- Include detailed examples for chained references and circular reference detection
- Add implementation guidance for tool authors and advanced use cases
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Resolve broken local references in technical documentation
This commit resolves all but one broken local anchor references in the technical
reports that were causing ReSpec linter warnings during the build process.
**Cross-file Reference Fixes:**
- broken references in `composite-types.md` that were incorrectly
pointing to same-file anchors when they should reference other files
- Updated references from `[color](#color)` to `[color](types#color)`
- Updated references from `[dimension](#dimension)` to `[dimension](types#dimension)`
- Fixed `$description` and `$extensions` references to point to `design-token` file
- Updated groups references from `[Groups](#groups)` to `[Groups](groups)`
**Inter-file Reference Corrections:**
- `groups.md`: Fixed `$value`, `$type`, `$extensions` references to `design-token`
- `design-token.md`: Fixed `#type-0` to `#type`, updated groups and aliases references
- `types.md`: Fixed gradient reference to point to `composite-types#gradient`
**Content Cleanup:**
- Removed redundant nested `$type` and `$value` structures in JSON examples
- Cleaned up color object examples to use proper flat structure
- Removed trailing content section in `groups.md`
**Build Configuration:**
- Added `validate:color` script to package.json for comprehensive validation
- Updated main `validate` script to include color validation
The issue was identified through systematic analysis of ReSpec linter output
which reported "Broken local reference found in document" but didn't specify
the exact broken link. All local anchor references were audited against
actual heading structures to ensure proper cross-file linking.
All references now use the correct relative path format (e.g., `types#anchor`)
instead of incorrect same-file format (e.g., `#anchor`) when targeting
content in other markdown files.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* clarify circular references and provide examples
* Fix invalid dimension
Co-authored-by: Drew Powers <drew@pow.rs>
* Clarify that $extends (in a group) must not reference a token.
Co-authored-by: Drew Powers <drew@pow.rs>
* add clarification for referencing arrays and referencing from within arrays
* make root token example more self-contained
* formatting and tables
* add titles to examples
* clarify error on circular references
* convert bullets to tables
* remove editors note explaining $ rationale
* bézier -> Bézier for spellcheck
* Apply suggestions from code review
Add suggested example titles
Co-authored-by: Drew Powers <drew@pow.rs>
* move explanation from below aside into comments in aside
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Drew Powers <drew@pow.rs>1 parent eb8aeaa commit 25e14e5
File tree
6 files changed
+1273
-381
lines changed- technical-reports
- format
6 files changed
+1273
-381
lines changed
0 commit comments