| name | ds-create-token |
| description | Create design tokens for a component from its CSS variables |
ds-create-token
Create component design tokens from CSS variables defined in a component's SCSS file. The skill analyzes vars.local() calls and variant --mod- variables, suggests component token paths, and creates them in Base.tokens.json.
Usage
/ds-create-token <component-name>
Examples:
/ds-create-token badge
/ds-create-token button
/ds-create-token footer
Workflow
Step 1: Extract & Display
- Parses component SCSS files for
@include vars.local() and --mod- variables
- Shows a table with:
- Component variable name
- Current value (alias/global/hardcoded)
- Value type
- Status indicator
- Displays preview of component tokens that will be created
- User confirms to proceed to Step 2
Step 2: Suggest Paths & Confirm
For each variable:
- Hardcoded values → Uses
ds-find-token skill to find matching alias tokens
- If no match found → Suggests creating new Alias token (user confirms)
- Global tokens → Suggests replacing with Alias equivalent
- Proposes component token path following:
--ds-[component]-[variant]-[element]-[category]-[property]-[state]
- Missing segments are skipped (no placeholders)
- State segment only included if multiple states exist
- User can review, edit, or confirm each mapping
Step 3: Write & Compile
- Backs up
Base.tokens.json
- Writes new tokens to
Base.tokens.json
- Creates any new Alias tokens needed
- Runs
pnpm tokens to compile outputs
- Shows success summary with created tokens
Token Path Structure
Component tokens always follow this structure:
--ds-[component]-[variant]-[element]-[category]-[property]-[state]
Example: --ds-badge-primary-color-base-text
component: badge
variant: primary
element: (skipped if not present)
category: color
property: text
state: base
Requirements
- Component must exist in
packages/core/src/components/
- Component must have a
.host.scss file with vars.local() definitions
- Design tokens must already be compiled (run
pnpm tokens first if needed)
Important Notes
JSDoc Comments: When generating or updating JSDoc comments in the SCSS file, do NOT include default values in parentheses. Only include the property name and description. Example:
- ✓
@prop --button-color: Text color of the button
- ✗
@prop --button-color: Text color of the button (default: --ds-alias-text-color-white)