DesignSync processes W3C Design Token Format Module (DTFM) compliant tokens and transforms them into platform-specific output formats via a plugin system.
| Package | Description |
|---|---|
| @design-sync/cli | Command-line interface |
| @design-sync/manager | Plugin orchestration, config resolution, file writing |
| @design-sync/w3c-dtfm | Token processor, query API, color utilities |
| @design-sync/utils | Shared utilities |
| @design-sync/rpc | JSON-RPC 2.0 over postMessage |
| @design-sync/storage | Remote storage providers (GitHub, GitLab, Bitbucket, Azure DevOps) |
| Package | Target |
|---|---|
| @design-sync/css-plugin | CSS custom properties |
| @design-sync/json-plugin | JSON |
| @design-sync/vanilla-extract-plugin | vanilla-extract |
| @design-sync/styled-components-plugin | styled-components |
| @design-sync/emotion-plugin | Emotion |
| @design-sync/tailwind-plugin | Tailwind CSS |
| @design-sync/panda-plugin | Panda CSS |
| @design-sync/unocss-plugin | UnoCSS |
| @design-sync/docs-plugin | Documentation (Markdown/HTML) |
| @design-sync/assets-plugin | SVG sprites, icon components |
| @design-sync/react-native-plugin | React Native |
| @design-sync/tamagui-plugin | Tamagui |
| @design-sync/compose-plugin | Jetpack Compose (Kotlin) |
| @design-sync/flutter-plugin | Flutter (Dart) |
| @design-sync/swiftui-plugin | SwiftUI (Swift) |
| Package | Description |
|---|---|
| @design-sync/figma-plugin | Figma plugin (Solid.js + vanilla-extract) |
| @design-sync/design-tokens | Theme contracts and platform themes |
| @design-sync/uikit | Shared UI components (Solid.js + Kobalte) |
| @design-sync/figma-icons | Figma icon components |
Create a design-sync.config.ts in your project:
import { cssPlugin } from '@design-sync/css-plugin';
import { jsonPlugin } from '@design-sync/json-plugin';
export default {
uri: 'gh:owner/repo/path#branch',
out: './tokens',
plugins: [cssPlugin(), jsonPlugin()],
requiredModes: ['dark', 'light'],
defaultMode: 'default',
};npx design-sync syncRequires Node.js >= 22 and Bun as package manager.
# Install dependencies
bun install
# Build all packages
bun run build
# Lint all packages
bun run lint
# Type check all packages
bun run test:types
# Run all tests
bun run test
# Create a changeset for versioning
bun run changesetcd packages/css-plugin
bun run build
bun run testGitHub Actions manages versioning and publishing via Changesets. When changeset commits are merged to main, a release PR is created automatically. Merging the release PR publishes updated packages to npm.
MIT
