{"_id":"@axiomatic-design/color","_rev":"4-c294b6340a37aaeffe0da0f0072b46fa","name":"@axiomatic-design/color","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"@axiomatic-design/color","version":"0.1.0","keywords":["color","design-system","theming","contrast","accessibility","oklch","axiomatic"],"author":{"name":"Yehuda Katz"},"license":"MIT","_id":"@axiomatic-design/color@0.1.0","maintainers":[{"name":"wycats","email":"wycats@gmail.com"}],"homepage":"https://design-axioms.github.io/color/","bugs":{"url":"https://github.com/design-axioms/color/issues"},"bin":{"axiomatic":"dist/cli/index.js"},"dist":{"shasum":"c4106b2d2a3d2d4180c9b9b484b12c7546fd9044","tarball":"https://registry.npmjs.org/@axiomatic-design/color/-/color-0.1.0.tgz","fileCount":109,"integrity":"sha512-NIlHCcGzur+jZraBeKaVh8rpxUcGzggFJi7qq8xGWAewN1zRZKXtAn9XKUpjCP1w0jwERfkQtRhfigk++IqJSQ==","signatures":[{"sig":"MEQCIC73h6GT/zG3hT28NPNjO3+YIQZe3JSM2Jqd+yfRiykXAiBJwrQjHlfienhZ1SoY+4vsSD6EFjPlbP35Ky2uBq4/Iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2342376},"type":"module","_from":"file:axiomatic-design-color-0.1.0.tgz","engines":{"node":"^24.0.0"},"exports":{".":"./dist/lib/index.js","./math":"./dist/lib/math.js","./types":"./dist/lib/types.js","./browser":"./dist/lib/browser.js","./runtime":"./dist/lib/runtime.js","./constants":"./dist/lib/constants.js","./generator":"./dist/lib/generator.js","./theme.css":"./css/theme.css","./engine.css":"./css/engine.css","./utilities.css":"./css/utilities.css"},"scripts":{"lint":"eslint src/**/*.ts","test":"vitest --run","build":"tsup && pnpm schema","solve":"node src/cli/index.ts scripts/surface-lightness.config.json css/theme.css","format":"prettier --write","schema":"ts-json-schema-generator --path 'src/lib/types.ts' --type 'SolverConfig' --out 'color-config.schema.json'","sketch":"node scripts/lightness-lut-sketch.ts","test:ui":"vitest --ui","dev:site":"pnpm docs:dev & pnpm --filter demo dev","docs:dev":"pnpm --filter site dev","lint:fix":"eslint src/**/*.ts --fix","build:site":"node scripts/build-site.ts","docs:build":"pnpm --filter site build","audit:theme":"node src/cli/index.ts audit","check:exports":"publint","lint:security":"node scripts/check-security.ts","test:coverage":"vitest --coverage --run"},"_npmUser":{"name":"wycats","email":"wycats@gmail.com"},"_resolved":"/tmp/df5e11cdc28f00bb4cb9d3baa99434e6/axiomatic-design-color-0.1.0.tgz","_integrity":"sha512-NIlHCcGzur+jZraBeKaVh8rpxUcGzggFJi7qq8xGWAewN1zRZKXtAn9XKUpjCP1w0jwERfkQtRhfigk++IqJSQ==","repository":{"url":"git+https://github.com/design-axioms/color.git","type":"git"},"_npmVersion":"11.6.2","description":"An Axiomatic approach to color. Automated contrast, platform-native adaptation, and mathematically guaranteed accessibility.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"culori":"^4.0.2","apca-w3":"^0.1.9","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^13.0.0","knip":"^5.71.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^4.0.14","publint":"^0.3.15","lefthook":"^2.0.4","prettier":"^3.7.3","@eslint/js":"^9.39.1","@vitest/ui":"^4.0.14","http-proxy":"^1.18.1","playwright":"^1.57.0","@types/node":"^24.10.1","release-plan":"^0.17.0","@types/culori":"^4.0.1","@types/apca-w3":"^0.1.3","@types/http-proxy":"^1.17.17","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.0.14","prettier-plugin-astro":"^0.14.1","prettier-plugin-svelte":"^3.4.0","ts-json-schema-generator":"^2.4.0","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"_npmOperationalInternal":{"tmp":"tmp/color_0.1.0_1764656712613_0.16505658263125889","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@axiomatic-design/color","version":"0.2.0","keywords":["color","design-system","theming","contrast","accessibility","oklch","axiomatic"],"author":{"name":"Yehuda Katz"},"license":"MIT","_id":"@axiomatic-design/color@0.2.0","maintainers":[{"name":"wycats","email":"wycats@gmail.com"}],"homepage":"https://design-axioms.github.io/color/","bugs":{"url":"https://github.com/design-axioms/color/issues"},"bin":{"axiomatic":"bin/axiomatic.js"},"dist":{"shasum":"b77e2c5c57045057f7979f4bc75d01b48cccd283","tarball":"https://registry.npmjs.org/@axiomatic-design/color/-/color-0.2.0.tgz","fileCount":184,"integrity":"sha512-ygB7dqIInkfJ3/81EX5q3Pm0Bc0kxRGqpNhh+SntvGeUNU0F6TYCk2nN+MSHfxrdzmLcSYmi2wdIp/65f0vUKA==","signatures":[{"sig":"MEQCIEA9NzZrEwzpyHNWZybyYXn9/NFdQJYYvEDkwf0MUTg9AiBP8PebW6ELZO6MT7eD7BKUQnMmAWZeXISRhLXpRzJm3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomatic-design%2fcolor@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2800183},"type":"module","_from":"file:axiomatic-design-color-0.2.0.tgz","engines":{"node":">=24.0.0"},"exports":{".":"./dist/lib/index.js","./math":"./dist/lib/math.js","./types":"./dist/lib/types.js","./browser":"./dist/lib/browser.js","./runtime":"./dist/lib/runtime.js","./constants":"./dist/lib/constants.js","./generator":"./dist/lib/generator.js","./inspector":"./dist/lib/inspector/index.js","./style.css":"./dist/style.css","./theme.css":"./css/theme.css","./utilities":"./dist/lib/utilities.js","./engine.css":"./css/engine.css"},"scripts":{"lint":"eslint .","test":"vitest --run","build":"tsup && pnpm solve:dist && pnpm schema && pnpm build:css","solve":"node src/cli/index.ts color-config.json css/theme.css","format":"prettier --write","schema":"ts-json-schema-generator --path 'src/lib/types.ts' --type 'UserConfig' --out 'color-config.schema.json'","sketch":"node scripts/lightness-lut-sketch.ts","test:ui":"vitest --ui","dev:site":"pnpm docs:dev & pnpm --filter demo dev","docs:dev":"pnpm --filter site dev","lint:all":"pnpm lint && pnpm lint:security && pnpm lint:tokens && pnpm lint:docs && pnpm check:site","lint:fix":"eslint . --fix","build:css":"node scripts/build-css.ts","lint:docs":"node scripts/check-docs.ts","build:site":"node scripts/build-site.ts","check:site":"pnpm --filter site check","docs:build":"pnpm --filter site build","qa:capture":"node scripts/qa-screenshots.ts","solve:dist":"node dist/cli/index.js color-config.json css/theme.css","audit:theme":"node src/cli/index.ts audit","lint:tokens":"./scripts/check-tokens.sh","test:visual":"playwright test tests/visual.spec.ts","check:deploy":"node scripts/check-deploy.ts","check:exports":"publint","lint:security":"node scripts/check-security.ts","test:coverage":"vitest --coverage --run","vendor:update":"node scripts/update-vendor.ts","test:playwright":"playwright test","test:visual:update":"playwright test tests/visual.spec.ts --update-snapshots","test:update-snapshots":"vitest -u --run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:aaf74add-66e8-44a1-a11d-172a40124523"}},"_resolved":"/tmp/6cc64d4eb79f3e62797ce60e02d3cd85/axiomatic-design-color-0.2.0.tgz","_integrity":"sha512-ygB7dqIInkfJ3/81EX5q3Pm0Bc0kxRGqpNhh+SntvGeUNU0F6TYCk2nN+MSHfxrdzmLcSYmi2wdIp/65f0vUKA==","repository":{"url":"git+https://github.com/design-axioms/color.git","type":"git"},"_npmVersion":"11.6.2","description":"An Axiomatic approach to color. Automated contrast, platform-native adaptation, and mathematically guaranteed accessibility.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","culori":"^4.0.2","apca-w3":"^0.1.9","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^13.0.0","knip":"^5.71.0","tsup":"^8.5.1","vite":"^6.0.0","eslint":"^9.39.1","vercel":"^49.1.2","vitest":"^4.0.14","globals":"^16.5.0","publint":"^0.3.15","lefthook":"^2.0.4","prettier":"^3.7.3","happy-dom":"^20.0.11","@eslint/js":"^9.39.1","@vitest/ui":"^4.0.14","http-proxy":"^1.18.1","playwright":"^1.57.0","@types/node":"^24.10.1","@glimmer/env":"^0.1.7","lightningcss":"^1.30.2","release-plan":"^0.17.0","@types/culori":"^4.0.1","@types/apca-w3":"^0.1.3","@playwright/test":"^1.57.0","@types/http-proxy":"^1.17.17","typescript-eslint":"^8.48.0","vue-eslint-parser":"^10.2.0","@vitest/coverage-v8":"^4.0.14","astro-eslint-parser":"^1.2.2","ember-eslint-parser":"^0.5.13","eslint-plugin-astro":"^1.5.0","eslint-plugin-svelte":"^3.13.0","svelte-eslint-parser":"^1.4.0","prettier-plugin-astro":"^0.14.1","eslint-config-prettier":"^10.1.8","prettier-plugin-svelte":"^3.4.0","ts-json-schema-generator":"^2.4.0","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"_npmOperationalInternal":{"tmp":"tmp/color_0.2.0_1765331348526_0.3247999359970686","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@axiomatic-design/color","version":"0.3.0","keywords":["color","design-system","theming","contrast","accessibility","oklch","axiomatic"],"author":{"name":"Yehuda Katz"},"license":"MIT","_id":"@axiomatic-design/color@0.3.0","maintainers":[{"name":"wycats","email":"wycats@gmail.com"}],"homepage":"https://design-axioms.github.io/color/","bugs":{"url":"https://github.com/design-axioms/color/issues"},"bin":{"axiomatic":"bin/axiomatic.js"},"dist":{"shasum":"988e33731469333005fedb090a10d6a1a792f767","tarball":"https://registry.npmjs.org/@axiomatic-design/color/-/color-0.3.0.tgz","fileCount":318,"integrity":"sha512-lhXfZ+VaE7v+z00YaD5nS2qBXrSPVuLccTI3eg+ft85y/6sAFkGhj4YsTbgsEBfz+EHe8lHh7f5joyEcB5GGow==","signatures":[{"sig":"MEYCIQCPiiQy8onWhT+Su8WLXAtL7lPbJfiDS99Y7SdbNH1OuAIhAPcVODVDQ4Ozd7ptyMoc8mwra4nYcuzWJECEZuQOfpcf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomatic-design%2fcolor@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1388868},"type":"module","_from":"file:axiomatic-design-color-0.3.0.tgz","engines":{"node":">=24.0.0"},"exports":{".":"./dist/lib/index.js","./math":"./dist/lib/math.js","./types":"./dist/lib/types.js","./browser":"./dist/lib/browser.js","./runtime":"./dist/lib/runtime.js","./constants":"./dist/lib/constants.js","./generator":"./dist/lib/generator/index.js","./inspector":"./dist/lib/inspector/index.js","./style.css":"./dist/style.css","./theme.css":"./css/theme.css","./utilities":"./dist/lib/utilities.js","./engine.css":"./css/engine.css"},"scripts":{"lint":"eslint .","test":"vitest --run","build":"tsup && pnpm solve:dist && pnpm schema && pnpm build:css","solve":"node src/cli/index.ts color-config.json css/theme.css","format":"prettier --write","schema":"ts-json-schema-generator --path 'src/lib/types.ts' --type 'UserConfig' --out 'color-config.schema.json'","test:ui":"vitest --ui","dev:site":"pnpm docs:dev & pnpm --filter demo dev","docs:dev":"pnpm --filter site dev","lint:all":"pnpm lint && pnpm lint:security && pnpm lint:tokens && pnpm lint:docs && pnpm check:site","lint:fix":"eslint . --fix","build:css":"node scripts/build-css.ts","lint:docs":"node scripts/check-docs.ts","build:site":"node scripts/build-site.ts","check:site":"pnpm --filter site check && node scripts/check-starlight-adapter-contract.ts && node scripts/check-starlight-chrome-cssom-sentinel.ts","docs:build":"pnpm --filter site build","qa:capture":"node scripts/qa-screenshots.ts","solve:dist":"node dist/cli/index.js color-config.json css/theme.css","audit:theme":"node src/cli/index.ts audit","lint:tokens":"./scripts/check-tokens.sh","site:routes":"node scripts/list-astro-pages.ts --dist site/dist --format lines","test:visual":"playwright test tests/visual.spec.ts","check:deploy":"node scripts/check-deploy.ts","check:rfc010":"node scripts/check-rfc010.ts","check:exports":"publint","lint:security":"node scripts/check-security.ts","test:coverage":"vitest --coverage --run","vendor:update":"node scripts/update-vendor.ts","test:playwright":"playwright test","check:docs:snaps":"node scripts/check-docs-snaps-all.ts","check:violations":"node scripts/check-violations.ts","site:routes:build":"pnpm --filter site build && pnpm site:routes","check:class-tokens":"node scripts/generate-class-tokens.ts","test:visual:update":"playwright test tests/visual.spec.ts --update-snapshots","check:docs:axiomatic":"node scripts/check-docs-snaps-all.ts --with-inspector --no-snaps","test:update-snapshots":"vitest -u --run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:aaf74add-66e8-44a1-a11d-172a40124523"}},"_resolved":"/tmp/73b9bd8c471433383fa39a9a5e883c1c/axiomatic-design-color-0.3.0.tgz","_integrity":"sha512-lhXfZ+VaE7v+z00YaD5nS2qBXrSPVuLccTI3eg+ft85y/6sAFkGhj4YsTbgsEBfz+EHe8lHh7f5joyEcB5GGow==","repository":{"url":"git+https://github.com/design-axioms/color.git","type":"git"},"_npmVersion":"11.6.2","description":"An Axiomatic approach to color. Automated contrast, platform-native adaptation, and mathematically guaranteed accessibility.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","culori":"^4.0.2","apca-w3":"^0.1.9","parsel-js":"^1.2.2","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^13.0.0","knip":"^5.71.0","tsup":"^8.5.1","vite":"^6.0.0","jsdom":"^27.3.0","eslint":"^9.39.1","vercel":"^49.1.2","vitest":"^4.0.14","globals":"^16.5.0","publint":"^0.3.15","lefthook":"^2.0.4","prettier":"^3.7.3","happy-dom":"^20.0.11","@eslint/js":"^9.39.1","@vitest/ui":"^4.0.14","fast-check":"^4.4.0","http-proxy":"^1.18.1","playwright":"^1.57.0","@types/node":"^24.10.1","@glimmer/env":"^0.1.7","lightningcss":"^1.30.2","release-plan":"^0.17.0","@types/culori":"^4.0.1","@types/apca-w3":"^0.1.3","@playwright/test":"^1.57.0","@types/http-proxy":"^1.17.17","typescript-eslint":"^8.48.0","vue-eslint-parser":"^10.2.0","@vitest/coverage-v8":"^4.0.14","ember-eslint-parser":"^0.5.13","eslint-plugin-astro":"^1.5.0","eslint-plugin-jsdoc":"^61.5.0","eslint-plugin-svelte":"^3.13.0","svelte-eslint-parser":"^1.4.0","prettier-plugin-astro":"^0.14.1","eslint-config-prettier":"^10.1.8","prettier-plugin-svelte":"^3.4.0","ts-json-schema-generator":"^2.4.0","@typescript-eslint/parser":"^8.48.0"},"_npmOperationalInternal":{"tmp":"tmp/color_0.3.0_1767724787083_0.0876154402407574","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@axiomatic-design/color","version":"1.0.0","description":"An Axiomatic approach to color. Automated contrast, platform-native adaptation, and mathematically guaranteed accessibility.","keywords":["color","design-system","theming","contrast","accessibility","oklch","axiomatic"],"author":{"name":"Yehuda Katz"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/design-axioms/color.git"},"bugs":{"url":"https://github.com/design-axioms/color/issues"},"homepage":"https://design-axioms.github.io/color/","type":"module","exports":{".":"./dist/lib/index.js","./math":"./dist/lib/math.js","./generator":"./dist/lib/generator/index.js","./runtime":"./dist/lib/runtime.js","./types":"./dist/lib/types.js","./constants":"./dist/lib/constants.js","./browser":"./dist/lib/browser.js","./utilities":"./dist/lib/utilities.js","./inspector":"./dist/lib/inspector/index.js","./style.css":"./dist/style.css","./engine.css":"./css/engine.css","./theme.css":"./css/theme.css"},"bin":{"axiomatic":"bin/axiomatic.js"},"dependencies":{"ajv":"^8.17.1","apca-w3":"^0.1.9","culori":"^4.0.2","parsel-js":"^1.2.2","typescript":"^5.9.3"},"devDependencies":{"@eslint/js":"^9.39.1","@glimmer/env":"^0.1.7","@playwright/test":"^1.57.0","@types/apca-w3":"^0.1.3","@types/culori":"^4.0.1","@types/http-proxy":"^1.17.17","@types/node":"^24.10.1","@typescript-eslint/parser":"^8.48.0","@vitest/coverage-v8":"^4.0.14","@vitest/ui":"^4.0.14","ember-eslint-parser":"^0.5.13","eslint":"^9.39.1","eslint-config-prettier":"^10.1.8","eslint-plugin-astro":"^1.5.0","eslint-plugin-jsdoc":"^61.5.0","eslint-plugin-svelte":"^3.13.0","fast-check":"^4.4.0","glob":"^13.0.0","globals":"^16.5.0","happy-dom":"^20.0.11","http-proxy":"^1.18.1","jsdom":"^27.3.0","knip":"^5.71.0","lefthook":"^2.0.4","lightningcss":"^1.30.2","playwright":"^1.57.0","prettier":"^3.7.3","prettier-plugin-astro":"^0.14.1","prettier-plugin-svelte":"^3.4.0","publint":"^0.3.15","release-plan":"^0.17.0","svelte-eslint-parser":"^1.4.0","ts-json-schema-generator":"^2.4.0","tsup":"^8.5.1","typescript-eslint":"^8.48.0","vercel":"^49.1.2","vite":"^6.0.0","vitest":"^4.0.14","vue-eslint-parser":"^10.2.0"},"engines":{"node":">=24.0.0"},"publishConfig":{"access":"public"},"scripts":{"solve":"node src/cli/index.ts color-config.json css/theme.css --emit-ts","solve:dist":"node dist/cli/index.js color-config.json css/theme.css --emit-ts","audit:theme":"node src/cli/index.ts audit","build":"tsup && pnpm solve:dist && pnpm schema && pnpm build:css","build:css":"node scripts/build-css.ts","schema":"ts-json-schema-generator --path 'src/lib/types.ts' --type 'UserConfig' --out 'color-config.schema.json'","test":"vitest --run","test:update-snapshots":"vitest -u --run","test:playwright":"playwright test","test:visual":"playwright test tests/visual.spec.ts","test:visual:update":"playwright test tests/visual.spec.ts --update-snapshots","test:ui":"vitest --ui","test:coverage":"vitest --coverage --run","qa:capture":"node scripts/qa-screenshots.ts","lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier --write","format:all":"prettier --write .","lint:security":"node scripts/check-security.ts","lint:tokens":"./scripts/check-tokens.sh","lint:docs":"node scripts/check-docs.ts","lint:all":"pnpm lint && pnpm lint:security && pnpm lint:tokens && pnpm lint:docs && pnpm check:site","docs:dev":"pnpm --filter site dev","docs:build":"pnpm --filter site build","dev:site":"pnpm docs:dev & pnpm --filter demo dev","build:site":"node scripts/build-site.ts","site:routes":"node scripts/list-astro-pages.ts --dist site/dist --format lines","site:routes:build":"pnpm --filter site build && pnpm site:routes","check:site":"pnpm --filter site check && node scripts/check-starlight-adapter-contract.ts && node scripts/check-starlight-chrome-cssom-sentinel.ts","check:exports":"publint","check:deploy":"node scripts/check-deploy.ts","check:rfc010":"node scripts/check-rfc010.ts","check:class-tokens":"node scripts/generate-class-tokens.ts","check:violations":"node scripts/check-violations.ts","check:docs:snaps":"node scripts/check-docs-snaps-all.ts","check:docs:axiomatic":"node scripts/check-docs-snaps-all.ts --with-inspector --no-snaps","vendor:update":"node scripts/update-vendor.ts"},"_id":"@axiomatic-design/color@1.0.0","_integrity":"sha512-ZcP96FoOJpLmOcyiDHMecsZw/OiGM6X0Tv7mOpb9zBxVGw//rT5pSFyc7QJSJ8UB/y02E1rmY6f8x+PtxJRHKw==","_resolved":"/tmp/dafce295b14b599d467c08f707714318/axiomatic-design-color-1.0.0.tgz","_from":"file:axiomatic-design-color-1.0.0.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-ZcP96FoOJpLmOcyiDHMecsZw/OiGM6X0Tv7mOpb9zBxVGw//rT5pSFyc7QJSJ8UB/y02E1rmY6f8x+PtxJRHKw==","shasum":"79028e4d6588ecce96c5c0f208a58e20c54a0be1","tarball":"https://registry.npmjs.org/@axiomatic-design/color/-/color-1.0.0.tgz","fileCount":326,"unpackedSize":1413094,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomatic-design%2fcolor@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGyTZ3jGi1dhntwN8RPNKqh0iat7f99HKuEuOP0Gse+nAiEAwoRQPDb2G2Sh86YvcJKnO0HxUpTmfR1uOdqmXeEE2K0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:aaf74add-66e8-44a1-a11d-172a40124523"}},"directories":{},"maintainers":[{"name":"wycats","email":"wycats@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/color_1.0.0_1767858989359_0.7843954444956014"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-02T06:25:12.546Z","modified":"2026-01-08T07:56:29.936Z","0.1.0":"2025-12-02T06:25:12.818Z","0.2.0":"2025-12-10T01:49:08.720Z","0.3.0":"2026-01-06T18:39:47.306Z","1.0.0":"2026-01-08T07:56:29.528Z"},"bugs":{"url":"https://github.com/design-axioms/color/issues"},"author":{"name":"Yehuda Katz"},"license":"MIT","homepage":"https://design-axioms.github.io/color/","keywords":["color","design-system","theming","contrast","accessibility","oklch","axiomatic"],"repository":{"type":"git","url":"git+https://github.com/design-axioms/color.git"},"description":"An Axiomatic approach to color. Automated contrast, platform-native adaptation, and mathematically guaranteed accessibility.","maintainers":[{"name":"wycats","email":"wycats@gmail.com"}],"readme":"# @axiomatic-design/color\n\n**An Axiomatic approach to color. Automated contrast, platform-native adaptation, and mathematically guaranteed accessibility.**\n\nDocumentation (canonical): https://design-axioms.github.io/color/\n\n## Features\n\n|                     |                                                                                                                        |\n| ------------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| Automated Contrast  | APCA algorithm ensures readability across all surfaces                                                                 |\n| Smooth Transitions  | Theme changes stay continuous via `@property` + transitioned computed colors (with `light-dark()` selecting endpoints) |\n| Platform-Native     | Automatic High Contrast mode support                                                                                   |\n| 7 Semantic Surfaces | Page, Card, Action, Spotlight, Sidebar, Overlay, Popover                                                               |\n| 6 Hue Modifiers     | Monochrome, Brand, Blue, Success, Warning, Error                                                                       |\n| Fully Tested        | 33 unit tests with 91% coverage on core math utilities                                                                 |\n\n## Installation\n\nThis repo uses `pnpm`. If you prefer `npm` (or another package manager), it will generally work as a best-effort alternative.\n\n```bash\npnpm add @axiomatic-design/color\n# or\nnpm install @axiomatic-design/color\n# or\nyarn add @axiomatic-design/color\n```\n\n## Quick Start\n\n### 1. Initialize Configuration\n\nRun the init command to scaffold a configuration file and default theme.\n\n```bash\npnpm exec axiomatic init\n```\n\nThis creates a `color-config.json` in your project root.\n\n### 2. Generate CSS\n\nAdd a script to your `package.json` to generate your theme tokens.\n\n```json\n{\n  \"scripts\": {\n    \"theme\": \"axiomatic\"\n  }\n}\n```\n\nRun the solver:\n\n```bash\npnpm run theme\n```\n\nBest-effort alternative:\n\n```bash\nnpm run theme\n```\n\nThis generates a `theme.css` file (by default).\n\n### 3. Import CSS\n\nImport the engine plus your generated theme.\n\n```css\n/* In your main CSS file */\n@import \"@axiomatic-design/color/engine.css\";\n@import \"./theme.css\"; /* Your generated theme */\n```\n\nOptional: export class tokens for typed access (recommended for component frameworks).\n\n```bash\npnpm exec axiomatic export --format typescript --out ./src/theme.ts\n```\n\n### 4. Use Semantic Classes\n\n```html\n<div class=\"surface-card bordered\">\n  <h1 class=\"text-strong\">Hello World</h1>\n  <button class=\"surface-action\">Click Me</button>\n</div>\n```\n\n## CLI Usage\n\nThe `axiomatic` CLI is the primary tool for generating your theme.\n\n```bash\n# Initialize a new config\npnpm exec axiomatic init\n\n# Generate theme from default config (color-config.json) to default output (theme.css)\npnpm exec axiomatic\n\n# Generate theme with custom paths\npnpm exec axiomatic ./my-config.json ./dist/my-theme.css\n```\n\n## Runtime API\n\nFor dynamic theming or scoped applications, you can use the runtime API to generate and inject themes on the fly.\n\n```typescript\nimport { generateTheme, injectTheme } from \"@axiomatic-design/color/runtime\";\nimport { config } from \"./my-config\";\n\n// Generate CSS for a specific scope\nconst css = generateTheme(config, \"#my-app\");\n\n// Inject it into the page\ninjectTheme(css);\n```\n\n## Architecture\n\nThe system consists of three main components:\n\n- **Solver**: Calculates precise lightness values to hit APCA contrast targets\n- **CSS Pipeline**: Transforms tokens with hue/chroma via relative color syntax\n- **Demo App**: Comprehensive showcase + interactive testing lab\n\n### How It Works\n\n1. **Config**: Define semantic surfaces with polarity and contrast requirements\n2. **Solve**: Algorithm calculates optimal lightness values using binary search\n3. **Generate**: CSS custom properties are written with `light-dark()` functions\n4. **Apply**: Surfaces automatically adapt to system theme preferences\n\nSee [System Intuition](./docs/intuition.md) for the mental model, and [solver-architecture.md](./docs/solver-architecture.md) for technical details.\n\n### CSS Inspector\n\nThe library includes a robust CSS Inspector for debugging style resolution, supporting modern features like `@scope`, `@layer`, and complex specificity.\n\nSee [Inspector Architecture](./src/lib/inspector/ARCHITECTURE.md) for details.\n\n## Development\n\nIf you want to contribute to the library itself:\n\n```bash\npnpm install\npnpm test          # Run unit tests\npnpm build         # Build the package\npnpm solve         # Regenerate internal CSS tokens\n```\n\n### Documentation & Demo\n\nTo run the unified development server (Docs + Demo):\n\n```bash\npnpm dev:site\n```\n\nThis starts a proxy at `http://localhost:3000` where:\n\n- `/` serves the Documentation\n- `/demo/` serves the Theme Builder\n\n### Environment\n\n- **Runtime**: Node.js v24+ (Required for native TypeScript support)\n- **Package Manager**: pnpm\n\n## Project Structure\n\n```\ncolor-system/\n├── src/\n│   ├── lib/\n│   │   ├── math.ts              # Core APCA & binary search utilities\n│   │   ├── generator.ts         # CSS token generation\n│   │   ├── index.ts             # Surface solving algorithm\n│   │   ├── runtime.ts           # Runtime theme generation\n│   │   └── __tests__/           # Unit tests\n│   └── cli/\n│       └── index.ts             # Main CLI entry point\n├── css/\n│   ├── engine.css               # Core reactive pipeline\n│   ├── theme.css                # Generated tokens + semantic classes\n│   └── index.css                # Convenience import (engine + theme)\n└── demo/                        # React demo application\n```\n","readmeFilename":"README.md"}