{"_id":"@assalabs/create-design-system","_rev":"4-48cbd3bc38eacfbc18d9f51f4038fbdf","name":"@assalabs/create-design-system","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@assalabs/create-design-system","version":"0.1.0","license":"MIT","_id":"@assalabs/create-design-system@0.1.0","maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"bin":{"create-assalabs-design-system":"bin/create-assalabs-design-system.mjs"},"dist":{"shasum":"8e81a76e1fdbc8765e1ea856016c30e6f5904698","tarball":"https://registry.npmjs.org/@assalabs/create-design-system/-/create-design-system-0.1.0.tgz","fileCount":20,"integrity":"sha512-1MLB2wKl9NAzW64P/4YiDzAcChWO0nMhTyFLGT7VDSc8phyaTjSCbgS0ewz3CZpvUANqpGwoTweL8Pq2V3+NNg==","signatures":[{"sig":"MEYCIQCl1s8sNJ9eygMwZ9yk/UFhc42wQSd64wHDQZzmlnFJZwIhAPqEOFh4tsIhBPPHnmPRivKKMrUKXoarwWE4UM2sORjh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24289},"main":"./dist/index.js","type":"module","_from":"file:assalabs-create-design-system-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint .","test":"node --test test/*.test.mjs","build":"tsup src/index.ts src/cli.ts --format esm --target node22 --dts --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"matanassa","email":"matan@matto.com"},"_resolved":"/tmp/324f796f2ffab2538e172803a95ac471/assalabs-create-design-system-0.1.0.tgz","_integrity":"sha512-1MLB2wKl9NAzW64P/4YiDzAcChWO0nMhTyFLGT7VDSc8phyaTjSCbgS0ewz3CZpvUANqpGwoTweL8Pq2V3+NNg==","_npmVersion":"11.16.0","description":"Bootstrap a cross-platform DTCG design system","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","eslint":"^9.39.2","typescript":"~6.0.3","@types/node":"^24.10.1","@tsconfig/recommended":"^1.0.8","@assalabs/eslint-config":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/create-design-system_0.1.0_1786107728067_0.259093535234042","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@assalabs/create-design-system","version":"0.2.0","license":"MIT","_id":"@assalabs/create-design-system@0.2.0","maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"homepage":"https://github.com/assalabs/design-system#readme","bugs":{"url":"https://github.com/assalabs/design-system/issues"},"bin":{"create-assalabs-design-system":"bin/create-assalabs-design-system.mjs"},"dist":{"shasum":"58f69dbfdbc44e3a61af2970c7b8e390984542df","tarball":"https://registry.npmjs.org/@assalabs/create-design-system/-/create-design-system-0.2.0.tgz","fileCount":54,"integrity":"sha512-dZ75Ho/3JRNbAU5Pxyt27XfnHI78qw6BT/E7x28ZNE/tNyn+bcOqZfCNBz/hBv4YyoHZpq7ofRGekthLaXz52w==","signatures":[{"sig":"MEYCIQC29AIfLC9YCnZ164AyFZTTTkT+JiZlAOjJ5PI7a9yHbgIhAIVEoGRq7LDx/HadhgL71+91AI4kMLCDLYtdDUUhwJAn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@assalabs%2fcreate-design-system@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61519},"main":"./dist/index.js","type":"module","_from":"file:../../../../_temp/changeset-pack-9761737148-1788186267306/packages/assalabs-create-design-system-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint .","test":"node --test test/*.test.mjs","build":"tsup src/index.ts src/cli.ts --format esm --target node22 --dts --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b56ffe0f-edb7-4b51-a8e8-3c8e19660123"}},"_resolved":"/home/runner/work/_temp/changeset-pack-9761737148-1788186267306/packages/assalabs-create-design-system-0.2.0.tgz","_integrity":"sha512-dZ75Ho/3JRNbAU5Pxyt27XfnHI78qw6BT/E7x28ZNE/tNyn+bcOqZfCNBz/hBv4YyoHZpq7ofRGekthLaXz52w==","repository":{"url":"git+https://github.com/assalabs/design-system.git","type":"git","directory":"packages/create-design-system"},"_npmVersion":"11.17.0","description":"Bootstrap a cross-platform DTCG design system","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@clack/prompts":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","eslint":"^9.39.2","typescript":"~6.0.3","@types/node":"^24.10.1","@tsconfig/recommended":"^1.0.8","@assalabs/eslint-config":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/create-design-system_0.2.0_1788186273143_0.09649850103372071","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@assalabs/create-design-system","version":"0.3.0","license":"MIT","_id":"@assalabs/create-design-system@0.3.0","maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"homepage":"https://github.com/assalabs/design-system#readme","bugs":{"url":"https://github.com/assalabs/design-system/issues"},"bin":{"create-assalabs-design-system":"bin/create-assalabs-design-system.mjs"},"dist":{"shasum":"e5db4778752c82d78632b97053c3b997207eec05","tarball":"https://registry.npmjs.org/@assalabs/create-design-system/-/create-design-system-0.3.0.tgz","fileCount":98,"integrity":"sha512-txvOOgJAfbdehjH7OnlrTbZpqpayEA9+JlU7WRryQ28gyD9u+Yn/mVUULaMIpyMpxYWEdiAjjTxcqMIwCawEUw==","signatures":[{"sig":"MEUCIQDqcr/FhQHmfOdZwYYOHOvVhhYm8UC1HD3lKWnEPDDETQIgemjsDYxmqBSkzTDywEhU5tZUpB9E4z6hjE1u+fV0Ulw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@assalabs%2fcreate-design-system@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117812},"main":"./dist/index.js","type":"module","_from":"file:../../../../_temp/changeset-pack-9766806016-1788194488786/packages/assalabs-create-design-system-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint .","test":"node --test test/*.test.mjs","build":"tsup src/index.ts src/cli.ts --format esm --target node22 --dts --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b56ffe0f-edb7-4b51-a8e8-3c8e19660123"}},"_resolved":"/home/runner/work/_temp/changeset-pack-9766806016-1788194488786/packages/assalabs-create-design-system-0.3.0.tgz","_integrity":"sha512-txvOOgJAfbdehjH7OnlrTbZpqpayEA9+JlU7WRryQ28gyD9u+Yn/mVUULaMIpyMpxYWEdiAjjTxcqMIwCawEUw==","repository":{"url":"git+https://github.com/assalabs/design-system.git","type":"git","directory":"packages/create-design-system"},"_npmVersion":"11.17.0","description":"Bootstrap a cross-platform DTCG design system","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@clack/prompts":"^1.7.0","@assalabs/design-system-tools":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","eslint":"^9.39.2","typescript":"~6.0.3","@types/node":"^24.10.1","@tsconfig/recommended":"^1.0.8","@assalabs/eslint-config":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/create-design-system_0.3.0_1788194499034_0.6880414646502566","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@assalabs/create-design-system","version":"0.4.0","description":"Bootstrap a cross-platform DTCG design system","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"bin":{"create-assalabs-design-system":"bin/create-assalabs-design-system.mjs"},"devDependencies":{"@assalabs/eslint-config":"^0.1.1","@tsconfig/recommended":"^1.0.8","@types/node":"^24.10.1","eslint":"^9.39.2","tsup":"^8.5.1","typescript":"~6.0.3"},"engines":{"node":">=22"},"publishConfig":{"access":"public"},"dependencies":{"@clack/prompts":"^1.7.0","@assalabs/design-system-tools":"0.4.0"},"repository":{"type":"git","url":"git+https://github.com/assalabs/design-system.git","directory":"packages/create-design-system"},"homepage":"https://github.com/assalabs/design-system#readme","bugs":{"url":"https://github.com/assalabs/design-system/issues"},"scripts":{"build":"tsup src/index.ts src/cli.ts --format esm --target node22 --dts --clean","lint":"eslint .","test":"node --test test/*.test.mjs","typecheck":"tsc --noEmit"},"_id":"@assalabs/create-design-system@0.4.0","_integrity":"sha512-A/eKplKva6o15c5WPV82kC4mwG84pM4zswg9e4J7DBthDE02GAoCWnfdPab4XyeC0+WogL/G5xWXUmMDCRbq7A==","_resolved":"/home/runner/work/_temp/changeset-pack-9893601622-1788439144331/packages/assalabs-create-design-system-0.4.0.tgz","_from":"file:../../../../_temp/changeset-pack-9893601622-1788439144331/packages/assalabs-create-design-system-0.4.0.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-A/eKplKva6o15c5WPV82kC4mwG84pM4zswg9e4J7DBthDE02GAoCWnfdPab4XyeC0+WogL/G5xWXUmMDCRbq7A==","shasum":"f7cd49d25f9c098dc4b5f72211fd9adb8b3e3018","tarball":"https://registry.npmjs.org/@assalabs/create-design-system/-/create-design-system-0.4.0.tgz","fileCount":99,"unpackedSize":121221,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@assalabs%2fcreate-design-system@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIELAwSgqxDqgbbWapZiUt9VUmi3nz4zEKIB09ndPZ9ukAiB91gn2pAC32yUOi9vnKRhqJYGjW+k4H4fJzxxaU4rj6g=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b56ffe0f-edb7-4b51-a8e8-3c8e19660123"}},"directories":{},"maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/create-design-system_0.4.0_1788439155586_0.9870325375737938"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T13:02:07.864Z","modified":"2026-09-03T12:39:16.100Z","0.1.0":"2026-08-07T13:02:08.220Z","0.2.0":"2026-08-31T14:24:33.289Z","0.3.0":"2026-08-31T16:41:39.179Z","0.4.0":"2026-09-03T12:39:15.750Z"},"bugs":{"url":"https://github.com/assalabs/design-system/issues"},"license":"MIT","homepage":"https://github.com/assalabs/design-system#readme","repository":{"type":"git","url":"git+https://github.com/assalabs/design-system.git","directory":"packages/create-design-system"},"description":"Bootstrap a cross-platform DTCG design system","maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"readme":"# @assalabs/create-design-system\n\nInteractive initializer for a portable design system: DTCG tokens, static web\nCSS, plain React Native themes, and source-owned UI adapters. One brand colour\nin, a contrast-checked palette and a wired-up workspace out.\n\nRequires Node.js 22 or newer.\n\n## Quick start\n\n```bash\npnpm dlx @assalabs/create-design-system@latest init\n```\n\nThe prompts cover the name, the package scope, the CSS custom-property prefix,\nthe app template, the seed colours, and the styling adapters. The web bundler is\nasked only when you pick the web template.\n\nNon-interactive, for scripts and CI:\n\n```bash\npnpm dlx @assalabs/create-design-system@latest init \\\n  --name Acme \\\n  --scope @acme \\\n  --prefix ac \\\n  --template web \\\n  --bundler vite \\\n  --brand '#FF3131' \\\n  --yes\n```\n\n## Options\n\n| Flag                 | Values                                    | Default                         |\n| -------------------- | ----------------------------------------- | ------------------------------- |\n| `--cwd <path>`       | target directory                          | current directory               |\n| `--name <name>`      | design-system display name                | derived from the directory      |\n| `--scope <scope>`    | npm scope, such as `@acme`                | derived from the directory      |\n| `--prefix <prefix>`  | CSS custom-property prefix                | derived from the name           |\n| `--template <name>`  | `expo`, `web`, `none`                     | `none`                          |\n| `--bundler <name>`   | `rsbuild`, `vite` — `--template web` only | `rsbuild`                       |\n| `--brand <hex>`      | `#RRGGBB` brand seed                      | prompted; required with `--yes` |\n| `--neutral <value>`  | `#RRGGBB` or `gray`                       | derived from the brand hue      |\n| `--accent <hex>`     | `#RRGGBB`                                 | brand hue rotated by 150°       |\n| `--web <adapter>`    | `stylex`, `css-modules`, `none`           | `stylex`                        |\n| `--native <adapter>` | `unistyles`, `none`                       | `unistyles`                     |\n| `--yes`              | skip all prompts; requires `--brand`      | —                               |\n\nSeed derivation, the contrast rules the generated palette satisfies, and the\nachromatic/extreme-seed edge cases are documented in\n[`@assalabs/design-system-tools`](https://www.npmjs.com/package/@assalabs/design-system-tools).\n\n## What it creates\n\n`packages/theme` is always created: DTCG tokens seeded from your brand colour,\n`design-system.config.mjs`, generated CSS variables, typed native themes,\nsemantic validation, contrast checks, and drift detection. Its\n`color.brand.primary` alias is pointed at the ramp step your seed actually\nanchored on, not a hardcoded `500`.\n\n`--template` decides what surrounds it:\n\n| Template | Adds                           | Styling                                                              |\n| -------- | ------------------------------ | -------------------------------------------------------------------- |\n| `none`   | nothing but the theme          | `--web` / `--native` pick `packages/ui-web` and `packages/ui-native` |\n| `expo`   | workspace root + `apps/mobile` | Unistyles                                                            |\n| `web`    | workspace root + `apps/web`    | StyleX, via Rsbuild or Vite                                          |\n\nAn app template owns the workspace root: root `package.json`,\n`pnpm-workspace.yaml`, `turbo.json`, `.gitignore`, `.npmrc`, and a\n`theme-check.yml` CI workflow. That is why templates are for **new** repos —\nuse `--template none` inside an existing monorepo.\n\n`--web` and `--native` apply to `--template none` only. The app templates ship\ntheir own styling wiring, so the theme's adapter outputs follow the template\n(`expo` means Unistyles, `web` means StyleX) rather than those flags.\n\nThe `expo` template pins Expo SDK 56 (`expo@56.0.21`, React Native `0.85.3`) —\ndeliberately one SDK behind the latest. `react-native-unistyles@3.3.0` is built\nagainst RN 0.85.3 and ships `react-native-nitro-modules@0.36.1` as its matched\npeer; Nitro is a compiled native module tied to RN's C++ ABI, so a newer RN\nfails at native build time, long after a JS-only typecheck has gone green.\n\nThe initializer preflights every target and refuses to overwrite an existing\ndirectory or an existing workspace-root file, removing anything a failed run\ncreated.\n\n## After scaffolding\n\nAn app template's workspace root exposes `build:theme` and `check:theme`:\n\n```bash\npnpm install\npnpm build:theme   # generate CSS, native themes, and adapter outputs\npnpm check:theme   # re-assert token contracts, contrast pairs, and drift\n```\n\nWith `--template none` there is no workspace root to add scripts to, so drive\nthe theme package directly — `pnpm --filter @acme/theme build` and\n`pnpm --filter @acme/theme tokens:check`.\n\nThen follow the generated package READMEs for app-specific compiler and native\nsetup.\n\n## Upgrading the tooling\n\nThe generated theme pins `@assalabs/design-system-tools` to the initializer's\nown version with a caret, so a scaffolded repo upgrades in place — there is no\nneed to re-run `init`. From an app template's workspace root:\n\n```bash\npnpm up @assalabs/design-system-tools && pnpm build:theme && pnpm check:theme\n```\n\n`build:theme` regenerates every output with the new tooling and `check:theme`\nfails if anything drifted, so the diff you review is the whole blast radius of\nthe upgrade.\n","readmeFilename":"README.md"}