@qiqi1996/design-system 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,14 @@
1
1
  # Qi Design System
2
2
 
3
- Use a unified configuration file to describe the design system, and then automatically generate the configuration of Tailwind, Chakra UI and other UI frameworks.
3
+ ![banner](src-docs/assets/banner.png)
4
4
 
5
- Languages: [中文](./README.zh-CN.md) | [English](./README.md)
5
+ Describe the design system once and output multiple framework configs (Tailwind, Chakra UI, Ant Design, etc.).
6
6
 
7
- ## Quick Start
7
+ Languages: [中文](./README.zh-cn.md) | [English](./README.md)
8
+
9
+ ## Documentation
10
+
11
+ [https://qiqi-1996.github.io/qi-design-system](https://qiqi-1996.github.io/qi-design-system)
8
12
 
9
13
  ## Features & Roadmap
10
14
 
@@ -13,6 +17,7 @@ Languages: [中文](./README.zh-CN.md) | [English](./README.md)
13
17
  - [ ] Color System
14
18
  - [ ] Single-color Palette Generation
15
19
  - [x] Ant Design Color
20
+ - [x] Qi Design System V0
16
21
  - [ ] Mantine Colors Generator
17
22
  - [ ] Triadic Color Scheme
18
23
  - [x] Semantic Definition (Based on Chakra UI Semantic Specifications)
@@ -32,7 +37,7 @@ Languages: [中文](./README.zh-CN.md) | [English](./README.md)
32
37
  - [ ] Tailwind V3
33
38
  - [ ] Ant Design
34
39
  - [ ] Chakra UI
35
- - [ ] Mantine
40
+ - [x] Mantine
36
41
 
37
42
  ## Contribution
38
43
 
@@ -0,0 +1,42 @@
1
+ # Qi Design System
2
+
3
+ 描述一次设计系统, 输出多套框架配置(Tailwind、Chakra UI、Ant Design 等等)。
4
+
5
+ Languages: [中文](./README.zh-cn.md) | [English](./README.md)
6
+
7
+ ## 文档
8
+
9
+ [https://qiqi-1996.github.io/qi-design-system](https://qiqi-1996.github.io/qi-design-system)
10
+
11
+ ## 特性和计划
12
+
13
+ ### 颜色系统定义
14
+
15
+ - [ ] 颜色系统
16
+ - [ ] 单色色板生成
17
+ - [x] Ant Design Color
18
+ - [x] Qi Design System V0
19
+ - [ ] Mantine Colors Generator
20
+ - [ ] 三元群配色方案
21
+ - [x] 语义化(基于 Chakra UI Semantic 定义)
22
+ - [ ] 暗黑模式
23
+ - [ ] 字体系统
24
+ - [x] 字号(仅语义化定义)
25
+ - [x] 行高
26
+ - [x] 线性自动生成
27
+ - [x] 字重(仅语义化定义)
28
+ - [x] 空间系统
29
+ - [ ] 圆角
30
+ - [ ] 阴影
31
+
32
+ ### 内置配置生成器
33
+
34
+ - [x] Talwind V4
35
+ - [ ] Talwind V3
36
+ - [ ] Ant Design
37
+ - [ ] Chakra UI
38
+ - [x] Mantine
39
+
40
+ ## 贡献
41
+
42
+ * 需要 Bun 运行环境(v1.3.0+)
package/dist/cli/main CHANGED
@@ -708,7 +708,7 @@ var require_lodash = __commonJS((exports2, module2) => {
708
708
  function unicodeWords(string4) {
709
709
  return string4.match(reUnicodeWord) || [];
710
710
  }
711
- var runInContext = function runInContext(context) {
711
+ var runInContext = function runInContext2(context) {
712
712
  context = context == null ? root : _2.defaults(root.Object(), context, _2.pick(root, contextProps));
713
713
  var { Array: Array2, Date: Date2, Error: Error2, Function: Function2, Math: Math2, Object: Object2, RegExp: RegExp2, String: String2, TypeError: TypeError2 } = context;
714
714
  var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;
@@ -5221,7 +5221,7 @@ __p += '`;
5221
5221
  lodash.replace = replace;
5222
5222
  lodash.result = result;
5223
5223
  lodash.round = round;
5224
- lodash.runInContext = runInContext;
5224
+ lodash.runInContext = runInContext2;
5225
5225
  lodash.sample = sample;
5226
5226
  lodash.size = size;
5227
5227
  lodash.snakeCase = snakeCase;
@@ -6236,7 +6236,7 @@ var require_lib2 = __commonJS((exports2) => {
6236
6236
  };
6237
6237
  Object.defineProperty(exports2, "generate", {
6238
6238
  enumerable: true,
6239
- get: function get() {
6239
+ get: function get2() {
6240
6240
  return _generate.default;
6241
6241
  }
6242
6242
  });
@@ -6251,7 +6251,7 @@ var require_lib2 = __commonJS((exports2) => {
6251
6251
  return;
6252
6252
  Object.defineProperty(exports2, key, {
6253
6253
  enumerable: true,
6254
- get: function get() {
6254
+ get: function get2() {
6255
6255
  return _presets[key];
6256
6256
  }
6257
6257
  });
@@ -29157,7 +29157,7 @@ var loadLanguages = instance.loadLanguages;
29157
29157
  // src/schema/color.ts
29158
29158
  var colorPaletteSchema = () => zod_default.array(zod_default.discriminatedUnion("type", [
29159
29159
  zod_default.object({
29160
- type: zod_default.union([zod_default.literal("ant-design")]).default("ant-design").meta({
29160
+ type: zod_default.union([zod_default.literal("ant-design"), zod_default.literal("qi-design-system-v0")]).default("qi-design-system-v0").meta({
29161
29161
  title: t("schema.color.type.title"),
29162
29162
  description: t("schema.color.type.desc")
29163
29163
  }),
@@ -29254,7 +29254,8 @@ var colorSemanticThemeSchema = () => zod_default.record(zod_default.string(), zo
29254
29254
  }));
29255
29255
  var colorSchema = () => zod_default.object({
29256
29256
  palettes: colorPaletteSchema().optional().meta({
29257
- title: t("schema.color.title")
29257
+ title: t("schema.color.title"),
29258
+ description: t("schema.color.desc")
29258
29259
  }),
29259
29260
  semantic: colorSemanticThemeSchema().optional().meta({
29260
29261
  title: t("common.semantic"),
@@ -29277,7 +29278,10 @@ var spaceSchema = () => zod_default.object({
29277
29278
  });
29278
29279
 
29279
29280
  // src/schema/output.ts
29280
- var outputSchema = () => zod_default.record(zod_default.union([zod_default.literal("tailwind-v4")]), zod_default.string().meta({ title: "文件输出位置" })).meta({
29281
+ var outputSchema = () => zod_default.array(zod_default.object({
29282
+ type: zod_default.union([zod_default.literal("tailwind-v4"), zod_default.literal("mantine")]).meta({ title: "输出类型", description: "例如:./src" }),
29283
+ path: zod_default.string().meta({ title: "输出位置", description: "例如:./src/theme.css" })
29284
+ })).meta({
29281
29285
  title: "输出配置"
29282
29286
  });
29283
29287
 
@@ -29371,15 +29375,130 @@ var isColorVariable = (value) => {
29371
29375
  // src/generator/common/color.ts
29372
29376
  var import_colors = __toESM(require_lib2(), 1);
29373
29377
  var import_lodash2 = __toESM(require_lodash(), 1);
29378
+
29379
+ // src/generator/qi-design-system/color-palettes-v0.ts
29380
+ function genQiDesignSystemColorsV0(base, schema = "light") {
29381
+ const [h, s, l] = hexToHsl(base);
29382
+ const light = [
29383
+ ...distribution(l, 100, 7, easeInOutQuad).reverse(),
29384
+ ...distribution(0, l, 4, easeInOutQuart).reverse().slice(1)
29385
+ ].map((l2) => [h, s, Number(l2.toFixed(0))]).map(hslToHex);
29386
+ const dark = [...distribution(0, l, 7, easeInOutQuad), ...distribution(l, 100, 4, easeInOutQuart).slice(1)].map((d) => [h, s, Number(d.toFixed(0))]).map(hslToHex);
29387
+ return {
29388
+ light,
29389
+ dark
29390
+ }[schema];
29391
+ }
29392
+ function distribution(v2, target, step, easing) {
29393
+ if (step <= 0)
29394
+ return [];
29395
+ const result = [];
29396
+ const delta = target - v2;
29397
+ for (let i = 1;i <= step; i++) {
29398
+ const t2 = i / step;
29399
+ const easedT = easing(t2);
29400
+ result.push(v2 + easedT * delta);
29401
+ }
29402
+ return result;
29403
+ }
29404
+ function easeInOutQuart(x) {
29405
+ return x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2;
29406
+ }
29407
+ function easeInOutQuad(x) {
29408
+ return x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2;
29409
+ }
29410
+ function hexToHsl(hex3) {
29411
+ let cleanHex = hex3.replace(/^#/, "");
29412
+ if (cleanHex.length === 3) {
29413
+ cleanHex = cleanHex.split("").map((char) => char + char).join("");
29414
+ }
29415
+ if (!/^[0-9a-fA-F]{6}$/.test(cleanHex)) {
29416
+ throw new Error("无效的16进制颜色值,请传入正确格式(如#fff或#ffffff)");
29417
+ }
29418
+ const r = parseInt(cleanHex.slice(0, 2), 16);
29419
+ const g3 = parseInt(cleanHex.slice(2, 4), 16);
29420
+ const b2 = parseInt(cleanHex.slice(4, 6), 16);
29421
+ const rNorm = r / 255;
29422
+ const gNorm = g3 / 255;
29423
+ const bNorm = b2 / 255;
29424
+ const max = Math.max(rNorm, gNorm, bNorm);
29425
+ const min = Math.min(rNorm, gNorm, bNorm);
29426
+ let h = 0;
29427
+ let s = 0;
29428
+ let l = (max + min) / 2;
29429
+ if (max !== min) {
29430
+ const delta = max - min;
29431
+ s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);
29432
+ switch (max) {
29433
+ case rNorm:
29434
+ h = (gNorm - bNorm) / delta + (gNorm < bNorm ? 6 : 0);
29435
+ break;
29436
+ case gNorm:
29437
+ h = (bNorm - rNorm) / delta + 2;
29438
+ break;
29439
+ case bNorm:
29440
+ h = (rNorm - gNorm) / delta + 4;
29441
+ break;
29442
+ }
29443
+ h = h * 60;
29444
+ }
29445
+ const hFinal = Math.round(h);
29446
+ const sFinal = Math.round(s * 100);
29447
+ const lFinal = Math.round(l * 100);
29448
+ return [hFinal, sFinal, lFinal];
29449
+ }
29450
+ function hslToHex(hslArr) {
29451
+ let [h = 0, s = 0, l = 0] = hslArr;
29452
+ h = Math.max(0, Math.min(360, h));
29453
+ s = Math.max(0, Math.min(100, s)) / 100;
29454
+ l = Math.max(0, Math.min(100, l)) / 100;
29455
+ let r, g3, b2;
29456
+ if (s === 0) {
29457
+ r = g3 = b2 = l;
29458
+ } else {
29459
+ const hue2rgb = (p2, q4, t2) => {
29460
+ if (t2 < 0)
29461
+ t2 += 1;
29462
+ if (t2 > 1)
29463
+ t2 -= 1;
29464
+ if (t2 < 1 / 6)
29465
+ return p2 + (q4 - p2) * 6 * t2;
29466
+ if (t2 < 1 / 2)
29467
+ return q4;
29468
+ if (t2 < 2 / 3)
29469
+ return p2 + (q4 - p2) * (2 / 3 - t2) * 6;
29470
+ return p2;
29471
+ };
29472
+ const q3 = l < 0.5 ? l * (1 + s) : l + s - l * s;
29473
+ const p = 2 * l - q3;
29474
+ r = Math.max(0, Math.min(1, hue2rgb(p, q3, h / 360 + 1 / 3)));
29475
+ g3 = Math.max(0, Math.min(1, hue2rgb(p, q3, h / 360)));
29476
+ b2 = Math.max(0, Math.min(1, hue2rgb(p, q3, h / 360 - 1 / 3)));
29477
+ }
29478
+ const toHex = (value) => {
29479
+ const intValue = Math.round(Math.max(0, Math.min(255, value * 255)));
29480
+ const hex3 = intValue.toString(16);
29481
+ return hex3.padStart(2, "0");
29482
+ };
29483
+ return `#${toHex(r)}${toHex(g3)}${toHex(b2)}`.toUpperCase();
29484
+ }
29485
+
29486
+ // src/generator/common/color.ts
29374
29487
  function commonGenColorPalette(paletteConfig) {
29375
29488
  const fullPalettesConfig = colorPaletteSchema().parse(paletteConfig ?? []);
29376
29489
  return fullPalettesConfig?.map((paletteConfig2) => {
29377
29490
  if (paletteConfig2.type === "ant-design") {
29378
29491
  if (paletteConfig2.base) {
29379
- const palette = import_colors.generate(paletteConfig2.base);
29492
+ const palette = import_colors.generate(paletteConfig2.base, ...paletteConfig2.args ?? []);
29380
29493
  return [paletteConfig2.name, { primary: palette[5] ?? "", palette }];
29381
29494
  }
29382
29495
  }
29496
+ if (paletteConfig2.type === "qi-design-system-v0") {
29497
+ if (paletteConfig2.base) {
29498
+ const palette = genQiDesignSystemColorsV0(paletteConfig2.base, ...paletteConfig2.args ?? []);
29499
+ return [paletteConfig2.name, { primary: palette[6] ?? "", palette }];
29500
+ }
29501
+ }
29383
29502
  return [paletteConfig2.name, { primary: "", palette: [] }];
29384
29503
  }) ?? [];
29385
29504
  }
@@ -29429,16 +29548,11 @@ function genColor(colorConfig) {
29429
29548
  const fullPalette = commonGenColorPalette(fullColorConfig.palettes ?? []);
29430
29549
  const fullSemantic = commonGenColorSemantic(fullColorConfig.semantic ?? {});
29431
29550
  return [
29432
- fullPalette.map(([name, data]) => {
29433
- return [
29434
- `--color-${name}: ${data.primary};`,
29435
- data.palette.map((c, i) => `--color-${name}-${(i + 1) * 100}: ${c};`).join(`
29436
- `)
29437
- ].join(`
29438
- `);
29439
- }),
29440
- fullSemantic.map(([name, value]) => `--color-${name}: ${isColorVariable(value) ? `var(--color-${value});` : value};`).join(`
29441
- `)
29551
+ ...fullPalette.flatMap(([name, data]) => [
29552
+ `--color-${name}: ${data.primary};`,
29553
+ ...data.palette.map((c, i) => `--color-${name}-${(i + 1) * 100}: ${c};`)
29554
+ ]),
29555
+ ...fullSemantic.map(([name, value]) => `--color-${name}: ${isColorVariable(value) ? `var(--color-${value});` : value};`)
29442
29556
  ].join(`
29443
29557
  `);
29444
29558
  }
@@ -29524,8 +29638,46 @@ function genTailwindV4(data, options) {
29524
29638
 
29525
29639
  // src/cli/generate.ts
29526
29640
  var import_promises2 = __toESM(require("node:fs/promises"));
29641
+ // src/generator/mantine/index.ts
29642
+ function genMantine(data) {
29643
+ const system = designSystemSchema().parse(data);
29644
+ const lightIndex = system.color?.palettes?.findIndex((item) => item.type === "qi-design-system-v0" && (item.args?.[0] ?? "light") === "light") ?? -1;
29645
+ const darkIndex = system.color?.palettes?.findIndex((item) => item.type === "qi-design-system-v0" && (item.args?.[0] ?? "light") === "dark") ?? -1;
29646
+ const lightName = system.color?.palettes?.[lightIndex]?.name;
29647
+ const darkTheme = system.color?.palettes?.[darkIndex]?.name;
29648
+ const themeObject = {
29649
+ colors: genColor2(system.color),
29650
+ primaryColor: system.color?.palettes?.[0]?.name,
29651
+ primaryShade: lightIndex !== -1 && lightIndex < 2 || darkIndex !== -1 && darkIndex < 2 ? 7 : undefined
29652
+ };
29653
+ if (lightName && darkTheme) {
29654
+ return `import { createTheme } from "@mantine/core"
29655
+
29656
+ export const lightTheme = createTheme(${JSON.stringify({ ...themeObject, primaryColor: lightName }, null, 4)})
29657
+
29658
+ export const darkTheme = createTheme(${JSON.stringify({ ...themeObject, primaryColor: darkTheme }, null, 4)})
29659
+
29660
+ export default lightTheme
29661
+ `;
29662
+ } else {
29663
+ return `import { createTheme } from "@mantine/core"
29664
+
29665
+ export default createTheme(${JSON.stringify(themeObject, null, 4)})
29666
+ `;
29667
+ }
29668
+ }
29669
+ function genColor2(colorConfig) {
29670
+ const fullColorConfig = colorSchema().parse(colorConfig);
29671
+ const fullPalette = commonGenColorPalette(fullColorConfig.palettes ?? []);
29672
+ return fullPalette.reduce((acc, [name, data]) => {
29673
+ acc[name] = data.palette;
29674
+ return acc;
29675
+ }, {});
29676
+ }
29677
+
29678
+ // src/cli/generate.ts
29527
29679
  async function emitFile(filePath, content) {
29528
- await import_promises2.default.writeFile(filePath, await formatCode(content)).then(() => {
29680
+ await import_promises2.default.writeFile(filePath, content).then(() => {
29529
29681
  console.log(`✅ Generated at '${filePath}'`);
29530
29682
  }).catch((err) => {
29531
29683
  console.log(`❌ Generate failed at '${filePath}', caused by '${err}'`);
@@ -29542,10 +29694,14 @@ async function generateContent(configPath) {
29542
29694
  return;
29543
29695
  const system = designSystemCliSchema().parse(JSON.parse((await file2.readFile()).toString()) ?? {});
29544
29696
  await file2.close();
29545
- if (system.output?.["tailwind-v4"]) {
29546
- const outputPath = system.output["tailwind-v4"];
29547
- const result = genTailwindV4(system);
29548
- await emitFile(outputPath, result);
29697
+ for (let output2 of system.output ?? []) {
29698
+ if (output2.type === "tailwind-v4") {
29699
+ const result = await formatCode(genTailwindV4(system));
29700
+ await emitFile(output2.path, result);
29701
+ } else if (output2.type === "mantine") {
29702
+ const result = genMantine(system);
29703
+ await emitFile(output2.path, result);
29704
+ }
29549
29705
  }
29550
29706
  }
29551
29707
 
@@ -1 +1 @@
1
- {"name":"@qiqi1996/design-system","version":"0.0.1","module":"index.ts","type":"commonjs","scripts":{"dev":"bun run vite","build:schema":"bun run ./src/build-schema.ts","build:cli":"bun build ./src/cli/index.ts --format cjs --target node --banner '#!/usr/bin/env node' --outfile ./dist/cli/main && bun run ./src/build-cli.ts","build:docs":"bun run vite build","build":"del dist && make-dir dist && bun run build:schema && bun run build:cli && bun run build:docs","generate":"bun run src/cli/index.ts"},"files":["./dist"],"bin":{"qi-design-system":"./dist/cli/main"},"devDependencies":{"@types/bun":"latest","@types/lodash":"^4.17.20","@types/node":"^24.8.1","del-cli":"^7.0.0","make-dir-cli":"^4.0.0","prettier-plugin-tailwindcss":"^0.7.1","vite-plugin-pages":"^0.33.1"},"dependencies":{"@ant-design/colors":"^7.2.1","@mantine/core":"^8.3.5","@mantine/hooks":"^8.3.5","@tailwindcss/vite":"^4.1.13","@types/react":"^19.1.10","@types/react-dom":"^19.1.7","@vitejs/plugin-react-swc":"^4.0.0","ahooks":"^3.9.5","classnames":"^2.5.1","globals":"^16.3.0","i18next":"^25.6.0","i18next-browser-languagedetector":"^8.2.0","immer":"^10.2.0","lodash":"^4.17.21","package-directory":"^8.1.0","prettier":"^3.6.2","react":"^19.1.1","react-dom":"^19.1.1","react-i18next":"^16.0.1","react-icons":"^5.5.0","react-json-view-lite":"^2.5.0","react-router-dom":"^7.9.4","save-file":"^2.3.1","tailwindcss":"^4.1.13","ts-essentials":"^10.1.1","typescript":"~5.8.3","vite":"^7.1.2","zod":"^4.1.12"}}
1
+ {"name":"@qiqi1996/design-system","description":"Describe the design system once and output multiple framework configs (Tailwind, Chakra UI, Ant Design, etc.) | 描述一次设计系统, 输出多套框架配置。","version":"0.0.3","module":"index.ts","type":"commonjs","publishConfig":{"access":"public"},"license":"MIT","repository":{"type":"git","url":"https://github.com/qiqi-1996/qi-design-system"},"scripts":{"dev":"bun run vite","build:schema":"bun run ./src/build-schema.ts","build:cli":"bun build ./src/cli/index.ts --format cjs --target node --banner '#!/usr/bin/env node' --outfile ./dist/cli/main && bun run ./src/build-cli.ts","build:docs":"bun run vite build","build":"del dist && make-dir dist && bun run build:schema && bun run build:cli && bun run build:docs","generate":"bun run src/cli/index.ts"},"files":["./dist/cli","./dist/*.json"],"bin":{"qi-design-system":"./dist/cli/main"},"devDependencies":{"@mdx-js/react":"^3.1.1","@mdx-js/rollup":"^3.1.1","@types/bun":"latest","@types/lodash":"^4.17.20","@types/mdx":"^2.0.13","@types/node":"^24.8.1","del-cli":"^7.0.0","make-dir-cli":"^4.0.0","prettier-plugin-tailwindcss":"^0.7.1","vite-plugin-pages":"^0.33.1"},"dependencies":{"@ant-design/colors":"^7.2.1","@mantine/core":"^8.3.5","@mantine/hooks":"^8.3.5","@tailwindcss/vite":"^4.1.13","@types/react":"^19.1.10","@types/react-dom":"^19.1.7","@vitejs/plugin-react-swc":"^4.0.0","ahooks":"^3.9.5","classnames":"^2.5.1","globals":"^16.3.0","i18next":"^25.6.0","i18next-browser-languagedetector":"^8.2.0","immer":"^10.2.0","lodash":"^4.17.21","package-directory":"^8.1.0","prettier":"^3.6.2","react":"^19.1.1","react-dom":"^19.1.1","react-i18next":"^16.0.1","react-icons":"^5.5.0","react-json-view-lite":"^2.5.0","react-router-dom":"^7.9.4","save-file":"^2.3.1","tailwindcss":"^4.1.13","ts-essentials":"^10.1.1","typescript":"~5.8.3","vite":"^7.1.2","zod":"^4.1.12"}}
@@ -1 +1 @@
1
- {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"$schema":{"type":"string"},"output":{"title":"输出配置","type":"object","propertyNames":{"anyOf":[{"type":"string","const":"tailwind-v4"}]},"additionalProperties":{"title":"文件输出位置","type":"string"}},"color":{"title":"Define Color System","default":{"palettes":[]},"type":"object","properties":{"palettes":{"title":"Define Color System","type":"array","items":{"default":{"type":"ant-design","name":"","base":"#212121","args":[]},"anyOf":[{"type":"object","properties":{"type":{"title":"schema.color.type.title","description":"schema.color.type.desc","default":"ant-design","anyOf":[{"type":"string","const":"ant-design"}]},"name":{"title":"Color Name","description":"Supports input of any CSS color value, but not all frameworks may support it. For example: Tailwind v3 does not support oklch","type":"string"},"base":{"title":"Base Color","description":"Supports input of any CSS color value, but not all frameworks may support it. For example: Tailwind v3 does not support oklch","default":"#212121","type":"string"},"args":{"title":"Color Palette Generation Algorithm Parameter Tuple","default":[],"type":"array","items":{}}},"required":["name"]}]}},"semantic":{"title":"common.semantic","description":"schema.color.semantic.desc","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"default":{"title":"配色模式:默认","default":{"type":"chakra","default":"100","solid":"100","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]},"dark":{"title":"配色模式:暗黑模式","default":{"type":"chakra","default":"600","solid":"600","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]}}}}}},"space":{"title":"schema.space.title","description":"schema.space.desc","default":{"base":8,"unit":"px"},"type":"object","properties":{"base":{"title":"schema.space.title","description":"schema.space.base.desc","default":8,"type":"number"},"unit":{"title":"schema.space.unit.title","description":"schema.space.unit.desc","default":"px","type":"string"}}},"font":{"title":"字体字号","type":"object","properties":{"size":{"title":"schema.font.size.title","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"common.semantic","desc":"schema.font.size.semantic-desc","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}}},"lineHeight":{"title":"schema.font.line-height.title","default":{"semantic":{},"auto":{"value":4,"range":[0,3]}},"type":"object","properties":{"semantic":{"title":"common.semantic","description":"schema.font.line-height.semantic-desc","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"auto":{"title":"schema.font.line-height.auto.title","type":"object","properties":{"value":{"title":"schema.font.line-height.auto.value","description":"schema.font.line-height.auto.value-desc","type":"number"},"range":{"title":"schema.font.line-height.auto.range","description":"schema.font.line-height.auto.range-desc","default":[0,3],"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"weight":{"title":"schema.font.weight.title","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"common.semantic","description":"schema.font.weight.semantic-desc","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":""}]}}}},"disableDefault":{"title":"common.disable-default","description":"common.disable-default-desc","default":true,"type":"boolean"}}}}}
1
+ {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"$schema":{"type":"string"},"output":{"title":"输出配置","type":"array","items":{"type":"object","properties":{"type":{"title":"输出类型","description":"例如:./src","anyOf":[{"type":"string","const":"tailwind-v4"},{"type":"string","const":"mantine"}]},"path":{"title":"输出位置","description":"例如:./src/theme.css","type":"string"}},"required":["type","path"]}},"color":{"title":"Define Color System","default":{"palettes":[]},"type":"object","properties":{"palettes":{"title":"Define Color System","description":"Note the order: the first color will be used as the primary color.","type":"array","items":{"default":{"type":"ant-design","name":"","base":"#212121","args":[]},"anyOf":[{"type":"object","properties":{"type":{"title":"Color Harmony","description":"The method used to generate the color palette","default":"qi-design-system-v0","anyOf":[{"type":"string","const":"ant-design"},{"type":"string","const":"qi-design-system-v0"}]},"name":{"title":"Color Name","description":"Supports any CSS color value input, but not all frameworks may support it. For example: Tailwind v3 does not support oklch","type":"string"},"base":{"title":"Base Color","description":"Supports any CSS color value input, but not all frameworks may support it. For example: Tailwind v3 does not support oklch","default":"#212121","type":"string"},"args":{"title":"Color Palette Generation Algorithm Parameter Tuple","default":[],"type":"array","items":{}}},"required":["name"]}]}},"semantic":{"title":"Semantic","description":"Define color semantic names and color relationships (e.g.: The default brand color is the 600th color of the primary palette (bg-brand-solid), { brand: { default: { solid: \"primary-600\" } } })","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"default":{"title":"配色模式:默认","default":{"type":"chakra","default":"100","solid":"100","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]},"dark":{"title":"配色模式:暗黑模式","default":{"type":"chakra","default":"600","solid":"600","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]}}}}}},"space":{"title":"Define Space System","description":"Establish an ordered visual hierarchy and information association in the interface by defining unified spacing rules.","default":{"base":8,"unit":"px"},"type":"object","properties":{"base":{"title":"Define Space System","description":"Example: 4, 8, 10, etc.","default":8,"type":"number"},"unit":{"title":"Value Unit","description":"Example: px, rem, etc.","default":"px","type":"string"}}},"font":{"title":"字体字号","type":"object","properties":{"size":{"title":"Font Size","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"Semantic","desc":"Semantically name font sizes. Example: footnote=12px, text=14px, title=24px, etc.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}}},"lineHeight":{"title":"Line Height","default":{"semantic":{},"auto":{"value":4,"range":[0,3]}},"type":"object","properties":{"semantic":{"title":"Semantic","description":"It is recommended to keep consistency with font size semantics.\nExample: If the font size definition includes { \"title\": \"24px\" },\nthe corresponding line height semantic definition should be { \"title-xs\": \"24px\", \"title-sm\": \"28px\", \"title-md\": \"32px\" }","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"auto":{"title":"Automatically Generate Line Height Based on Font Size","type":"object","properties":{"value":{"title":"Incremental Value","description":"Example: For a base font size of 14px and an incremental value of 4, the line heights generated will be 14px, 18px, 22px","type":"number"},"range":{"title":"Generation Range","description":"Example: [0, 2] means based on the font size (14px) and incremental value (4), generate line heights from 14 + (4 * 0) to 14 + (4 * 2), and match the semantic names in sequence: text-xs: 14px; text-sm: 18px; text-md: 22px;","default":[0,3],"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"weight":{"title":"Font Weight","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"Semantic","description":"It is recommended to keep consistency with font size semantics.\nExample: If the font size definition includes { \"text\": \"14px\", \"title\": \"24px\" },\nthe corresponding font weight semantic definition should be { \"text\": \"400\", \"title\": \"700\" }","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":""}]}}}},"disableDefault":{"title":"Disable Default Styles","description":"Example: Remove default theme definitions like --text-md in Tailwind","default":true,"type":"boolean"}}}}}
@@ -1 +1 @@
1
- {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"$schema":{"type":"string"},"output":{"title":"输出配置","type":"object","propertyNames":{"anyOf":[{"type":"string","const":"tailwind-v4"}]},"additionalProperties":{"title":"文件输出位置","type":"string"}},"color":{"title":"定义颜色系统","default":{"palettes":[]},"type":"object","properties":{"palettes":{"title":"定义颜色系统","type":"array","items":{"default":{"type":"ant-design","name":"","base":"#212121","args":[]},"anyOf":[{"type":"object","properties":{"type":{"title":"色彩调和","description":"使用何种方法生成色板","default":"ant-design","anyOf":[{"type":"string","const":"ant-design"}]},"name":{"title":"颜色名称","description":"支持输入任意 CSS 颜色值,但未必所有框架均能支持,比如:Tailwind v3 不支持 oklch","type":"string"},"base":{"title":"基本颜色","description":"支持输入任意 CSS 颜色值,但未必所有框架均能支持,比如:Tailwind v3 不支持 oklch","default":"#212121","type":"string"},"args":{"title":"色板生成算法参数元组","default":[],"type":"array","items":{}}},"required":["name"]}]}},"semantic":{"title":"语义化","description":"定义颜色语义名称和颜色关系(如:品牌色默认颜色为主色板的600号色(bg-brand-solid),{ brand: { default: { solid: \"primary-600\" } } })","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"default":{"title":"配色模式:默认","default":{"type":"chakra","default":"100","solid":"100","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]},"dark":{"title":"配色模式:暗黑模式","default":{"type":"chakra","default":"600","solid":"600","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]}}}}}},"space":{"title":"定义空间系统","description":"通过定义统一的间距规则,在界面中建立有序的视觉层次与信息关联。","default":{"base":8,"unit":"px"},"type":"object","properties":{"base":{"title":"定义空间系统","description":"例如:4、8、10 等。","default":8,"type":"number"},"unit":{"title":"数值单位","description":"例如:px, rem 等。","default":"px","type":"string"}}},"font":{"title":"字体字号","type":"object","properties":{"size":{"title":"字号","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"语义化","desc":"为字号进行语义化命名,例如:footnote=12px, text=14px, title=24px, etc.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}}},"lineHeight":{"title":"行高","default":{"semantic":{},"auto":{"value":4,"range":[0,3]}},"type":"object","properties":{"semantic":{"title":"语义化","description":"推荐和字号语义保持一致,\n例如:字号定义中有 { \"title\": \"24px\" },\n则对应的行高语义定义应该为 { \"title-xs\": \"24px\", \"title-sm\": \"28px\", \"title-md\": \"32px\" }","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"auto":{"title":"根据字号自动生成行高","type":"object","properties":{"value":{"title":"递增数值","description":"例如:基础字号 14px,递增数值 4 则行高会生成 14px、18px、22px","type":"number"},"range":{"title":"生成范围","description":"例如:[0, 2] 则表示基于字号(14px)和递增数值(4),生成从 14 + (4 * 0) 到 14 + (4 * 2) 的行高,并依次匹配语义名称:text-xs: 14px; text-sm: 18px; text-md: 22px;","default":[0,3],"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"weight":{"title":"字重","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"语义化","description":"推荐和字号语义保持一致,\n例如:字号定义中有 { \"text\": \"14px\", \"title\": \"24px\" },\n则对应的字重语义定义应该为 { \"text\": \"400\", \"title\": \"700\" }","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":""}]}}}},"disableDefault":{"title":"禁用默认样式","description":"例如:移除 tailwind 中默认的 --text-md 等主题定义","default":true,"type":"boolean"}}}}}
1
+ {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"$schema":{"type":"string"},"output":{"title":"输出配置","type":"array","items":{"type":"object","properties":{"type":{"title":"输出类型","description":"例如:./src","anyOf":[{"type":"string","const":"tailwind-v4"},{"type":"string","const":"mantine"}]},"path":{"title":"输出位置","description":"例如:./src/theme.css","type":"string"}},"required":["type","path"]}},"color":{"title":"定义颜色系统","default":{"palettes":[]},"type":"object","properties":{"palettes":{"title":"定义颜色系统","description":"注意顺序,将使用第一个颜色作为主色","type":"array","items":{"default":{"type":"ant-design","name":"","base":"#212121","args":[]},"anyOf":[{"type":"object","properties":{"type":{"title":"色彩调和","description":"使用何种方法生成色板","default":"qi-design-system-v0","anyOf":[{"type":"string","const":"ant-design"},{"type":"string","const":"qi-design-system-v0"}]},"name":{"title":"颜色名称","description":"支持输入任意 CSS 颜色值,但未必所有框架均能支持,比如:Tailwind v3 不支持 oklch","type":"string"},"base":{"title":"基本颜色","description":"支持输入任意 CSS 颜色值,但未必所有框架均能支持,比如:Tailwind v3 不支持 oklch","default":"#212121","type":"string"},"args":{"title":"色板生成算法参数元组","default":[],"type":"array","items":{}}},"required":["name"]}]}},"semantic":{"title":"语义化","description":"定义颜色语义名称和颜色关系(如:品牌色默认颜色为主色板的600号色(bg-brand-solid),{ brand: { default: { solid: \"primary-600\" } } })","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"default":{"title":"配色模式:默认","default":{"type":"chakra","default":"100","solid":"100","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]},"dark":{"title":"配色模式:暗黑模式","default":{"type":"chakra","default":"600","solid":"600","contrast":"100","fg":"200","muted":"300","subtle":"400","emphasized":"500"},"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"chakra"},"default":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"solid":{"title":"The bold fill color of the color.","default":"600","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"contrast":{"title":"The text color that goes on solid color.","default":"100","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"fg":{"title":"The foreground color used for text, icons, etc.","default":"200","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"muted":{"title":"The muted color of the color.","default":"300","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"subtle":{"title":"The subtle color of the color.","default":"400","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]},"emphasized":{"title":"The emphasized version of the subtle color.","default":"500","anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"custom"},"default":{"anyOf":[{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":"1000"}]},{"type":"string"}]}},"required":["type"],"additionalProperties":{}}]}}}}}},"space":{"title":"定义空间系统","description":"通过定义统一的间距规则,在界面中建立有序的视觉层次与信息关联。","default":{"base":8,"unit":"px"},"type":"object","properties":{"base":{"title":"定义空间系统","description":"例如:4、8、10 等。","default":8,"type":"number"},"unit":{"title":"数值单位","description":"例如:px, rem 等。","default":"px","type":"string"}}},"font":{"title":"字体字号","type":"object","properties":{"size":{"title":"字号","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"语义化","desc":"为字号进行语义化命名,例如:footnote=12px, text=14px, title=24px, etc.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}}},"lineHeight":{"title":"行高","default":{"semantic":{},"auto":{"value":4,"range":[0,3]}},"type":"object","properties":{"semantic":{"title":"语义化","description":"推荐和字号语义保持一致,\n例如:字号定义中有 { \"title\": \"24px\" },\n则对应的行高语义定义应该为 { \"title-xs\": \"24px\", \"title-sm\": \"28px\", \"title-md\": \"32px\" }","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"auto":{"title":"根据字号自动生成行高","type":"object","properties":{"value":{"title":"递增数值","description":"例如:基础字号 14px,递增数值 4 则行高会生成 14px、18px、22px","type":"number"},"range":{"title":"生成范围","description":"例如:[0, 2] 则表示基于字号(14px)和递增数值(4),生成从 14 + (4 * 0) 到 14 + (4 * 2) 的行高,并依次匹配语义名称:text-xs: 14px; text-sm: 18px; text-md: 22px;","default":[0,3],"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"weight":{"title":"字重","default":{"semantic":{}},"type":"object","properties":{"semantic":{"title":"语义化","description":"推荐和字号语义保持一致,\n例如:字号定义中有 { \"text\": \"14px\", \"title\": \"24px\" },\n则对应的字重语义定义应该为 { \"text\": \"400\", \"title\": \"700\" }","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string","const":"100"},{"type":"string","const":"200"},{"type":"string","const":"300"},{"type":"string","const":"400"},{"type":"string","const":"500"},{"type":"string","const":"600"},{"type":"string","const":"700"},{"type":"string","const":"800"},{"type":"string","const":"900"},{"type":"string","const":""}]}}}},"disableDefault":{"title":"禁用默认样式","description":"例如:移除 tailwind 中默认的 --text-md 等主题定义","default":true,"type":"boolean"}}}}}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@qiqi1996/design-system",
3
- "version": "0.0.2",
3
+ "description": "Describe the design system once and output multiple framework configs (Tailwind, Chakra UI, Ant Design, etc.) | 描述一次设计系统, 输出多套框架配置。",
4
+ "version": "0.0.3",
4
5
  "module": "index.ts",
5
6
  "type": "module",
6
7
  "publishConfig": {
@@ -27,8 +28,11 @@
27
28
  "qi-design-system": "./dist/cli/main"
28
29
  },
29
30
  "devDependencies": {
31
+ "@mdx-js/react": "^3.1.1",
32
+ "@mdx-js/rollup": "^3.1.1",
30
33
  "@types/bun": "latest",
31
34
  "@types/lodash": "^4.17.20",
35
+ "@types/mdx": "^2.0.13",
32
36
  "@types/node": "^24.8.1",
33
37
  "del-cli": "^7.0.0",
34
38
  "make-dir-cli": "^4.0.0",
package/README.zh-CN.md DELETED
@@ -1,77 +0,0 @@
1
- # Qi Design System
2
-
3
- 使用统一的配置文件去描述设计系统, 然后自动生成到 Tailwind、Chakra UI 等等 UI 框架的配置。
4
-
5
- Languages: [中文](./README.zh-CN.md) | [English](./README.md)
6
-
7
- ## 快速上手
8
-
9
- 1. 安装
10
- - `npm install -D @qiqi1996/design-system`
11
- - `pnpm install -D @qiqi1996/design-system`
12
- - `bun add -D @qiqi1996/design-system`
13
- 2. 创建 `design-system.json`
14
- - 注意:
15
- - 你可以将 `$schema` 改为 `schema-zh.json` 或 `schema-en.json` 以查看多语言的 JSON 字段注释。(目前支持:中文、英语)
16
- - 以下示例为:定义了 8px 的空间系统,和基于 Ant Design 的色板算法生成 品牌色(克莱因蓝) 色板,并将此色板应用到了 Chakra UI 的语义化命名。此设计系统配置将生成 Tailwind V4 版本的配置到 `./src-doc/src/theme.css` 文件中。
17
- ```json
18
- {
19
- "$schema": "./node_modules/@qiqi1996/design-system/schema-zh.json",
20
- "output": {
21
- "tailwind-v4": "./src-doc/src/theme.css"
22
- },
23
- "space": {
24
- "base": 8,
25
- "unit": "px"
26
- },
27
- "color": {
28
- "palettes": [
29
- {
30
- "type": "monochromatic",
31
- "name": "brand",
32
- "base": "#002FA7"
33
- }
34
- ],
35
- "semantic": {
36
- "primary": {
37
- "default": {
38
- "solid": "brand-600"
39
- }
40
- }
41
- }
42
- }
43
- }
44
- ```
45
- 3. 执行生成:qi-design-system --config /path/to/your/design-system.json
46
-
47
- ## 特性和计划
48
-
49
- ### 颜色系统定义
50
-
51
- - [ ] 颜色系统
52
- - [ ] 单色色板生成
53
- - [x] Ant Design Color
54
- - [ ] Mantine Colors Generator
55
- - [ ] 三元群配色方案
56
- - [x] 语义化(基于 Chakra UI Semantic 定义)
57
- - [ ] 暗黑模式
58
- - [ ] 字体系统
59
- - [x] 字号(仅语义化定义)
60
- - [x] 行高
61
- - [x] 线性自动生成
62
- - [x] 字重(仅语义化定义)
63
- - [x] 空间系统
64
- - [ ] 圆角
65
- - [ ] 阴影
66
-
67
- ### 内置配置生成器
68
-
69
- - [x] Talwind V4
70
- - [ ] Talwind V3
71
- - [ ] Ant Design
72
- - [ ] Chakra UI
73
- - [ ] Mantine
74
-
75
- ## 贡献
76
-
77
- * 需要 Bun 运行环境(v1.3.0+)