@qw-ui/tokens 0.1.0
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/LICENSE +21 -0
- package/dist/index.d.ts +624 -0
- package/dist/index.js +1182 -0
- package/dist/index.js.map +1 -0
- package/dist/tokens.css +429 -0
- package/dist/tokens.json +818 -0
- package/dist/tokens.live.css +478 -0
- package/dist/tokens.ts +818 -0
- package/package.json +80 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/seed/index.json","../src/color-architecture.ts","../src/seed/index.ts","../src/schema.ts","../src/color.ts","../src/derive/oklch.ts","../src/derive/naming.ts","../src/derive/reference.ts","../src/derive/semantic.ts","../src/derive/index.ts","../src/derive/live-css.ts"],"names":["seedColor","parse","formatHex","s","color"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"qw\": {\n \"seed\": {\n \"color\": {\n \"brand\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0, 0.0667, 1], \"alpha\": 1 }, \"$type\": \"color\" },\n \"black\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.1333, 0.1333, 0.1333], \"alpha\": 1 }, \"$type\": \"color\" },\n \"white\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [1, 1, 1], \"alpha\": 1 }, \"$type\": \"color\" },\n \"gray\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.6, 0.6, 0.6], \"alpha\": 1 }, \"$type\": \"color\" },\n \"red\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [1, 0.251, 0.251], \"alpha\": 1 }, \"$type\": \"color\" },\n \"orange\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [1, 0.4196, 0.2471], \"alpha\": 1 }, \"$type\": \"color\" },\n \"yellow\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [1, 0.8353, 0.4588], \"alpha\": 1 }, \"$type\": \"color\" },\n \"green\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.1216, 0.6, 0.2471], \"alpha\": 1 }, \"$type\": \"color\" },\n \"cyan\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.1608, 0.7451, 0.8], \"alpha\": 1 }, \"$type\": \"color\" },\n \"blue\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.051, 0.3255, 1], \"alpha\": 1 }, \"$type\": \"color\" },\n \"purple\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.2627, 0.1725, 0.8588], \"alpha\": 1 }, \"$type\": \"color\" },\n \"brown\": { \"$value\": { \"colorSpace\": \"srgb\", \"components\": [0.7059, 0.3686, 0.0235], \"alpha\": 1 }, \"$type\": \"color\" }\n },\n \"size\": {\n \"spacing\": {\n \"step\": { \"$value\": { \"value\": 4, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n },\n \"borderWidth\": {\n \"hairline\": { \"$value\": { \"value\": 1, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n },\n \"radius\": {\n \"base\": { \"$value\": { \"value\": 8, \"unit\": \"px\" }, \"$type\": \"dimension\" },\n \"full\": { \"$value\": { \"value\": 9999, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n },\n \"controlSize\": {\n \"base\": { \"$value\": { \"value\": 40, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n },\n \"iconSize\": {\n \"base\": { \"$value\": { \"value\": 20, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n },\n \"opacity\": {\n \"disabled\": { \"$value\": 0.5, \"$type\": \"number\" },\n \"alphaStep\": { \"$value\": 0.04, \"$type\": \"number\" }\n },\n \"zIndex\": {\n \"step\": { \"$value\": 10, \"$type\": \"number\" }\n }\n },\n \"typography\": {\n \"fontFamily\": {\n \"text\": { \"$value\": [\"system-ui\", \"-apple-system\", \"BlinkMacSystemFont\", \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"number\": { \"$value\": [\"PlusJakartaSans\", \"system-ui\", \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"code\": { \"$value\": [\"ui-monospace\", \"SFMono-Regular\", \"SF Mono\", \"Menlo\", \"Consolas\", \"Liberation Mono\", \"monospace\"], \"$type\": \"fontFamily\" },\n \"textMacLatin\": { \"$value\": [\"-apple-system\", \"BlinkMacSystemFont\", \"SF Pro Text\", \"system-ui\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"textMacZh\": { \"$value\": [\"PingFang SC\", \"-apple-system\", \"BlinkMacSystemFont\", \"Hiragino Sans GB\", \"Hiragino Sans\", \"SF Pro Text\", \"system-ui\", \"Noto Sans SC\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"textMacJa\": { \"$value\": [\"Hiragino Sans\", \"Hiragino Kaku Gothic ProN\", \"-apple-system\", \"BlinkMacSystemFont\", \"PingFang SC\", \"SF Pro Text\", \"system-ui\", \"Noto Sans JP\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"textWindowsLatin\": { \"$value\": [\"Segoe UI\", \"system-ui\", \"Roboto\", \"Noto Sans\", \"Helvetica Neue\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"textWindowsZh\": { \"$value\": [\"Microsoft YaHei\", \"Segoe UI\", \"system-ui\", \"Roboto\", \"Noto Sans SC\", \"Helvetica Neue\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" },\n \"textWindowsJa\": { \"$value\": [\"Meiryo\", \"Yu Gothic UI\", \"Segoe UI\", \"system-ui\", \"Roboto\", \"Noto Sans JP\", \"Helvetica Neue\", \"Arial\", \"sans-serif\"], \"$type\": \"fontFamily\" }\n },\n \"fontWeight\": {\n \"regular\": { \"$value\": 400, \"$type\": \"fontWeight\" },\n \"medium\": { \"$value\": 500, \"$type\": \"fontWeight\" },\n \"semibold\": { \"$value\": 600, \"$type\": \"fontWeight\" }\n },\n \"fontSize\": {\n \"base\": { \"$value\": { \"value\": 14, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n },\n \"lineHeight\": {\n \"base\": { \"$value\": 1.5, \"$type\": \"number\" }\n },\n \"letterSpacing\": {\n \"base\": { \"$value\": { \"value\": 0, \"unit\": \"px\" }, \"$type\": \"dimension\" }\n }\n },\n \"motion\": {\n \"duration\": {\n \"base\": { \"$value\": { \"value\": 200, \"unit\": \"ms\" }, \"$type\": \"duration\" }\n },\n \"easing\": {\n \"standard\": { \"$value\": [0.16, 1, 0.3, 1], \"$type\": \"cubicBezier\" }\n }\n },\n \"effect\": {\n \"shadow\": {\n \"base\": {\n \"$value\": {\n \"color\": { \"colorSpace\": \"srgb\", \"components\": [0, 0, 0], \"alpha\": 0.08 },\n \"offsetX\": { \"value\": 0, \"unit\": \"px\" },\n \"offsetY\": { \"value\": 2, \"unit\": \"px\" },\n \"blur\": { \"value\": 4, \"unit\": \"px\" },\n \"spread\": { \"value\": 0, \"unit\": \"px\" }\n },\n \"$type\": \"shadow\"\n }\n }\n }\n }\n }\n}\n","export const FIGMA_COLOR_COLLECTION = \"Color\";\nexport const FIGMA_COLOR_PREFIX = \"qw\";\n\nexport const T1_COLOR_KEYS = [\n \"brand\",\n \"black\",\n \"white\",\n \"gray\",\n \"red\",\n \"orange\",\n \"yellow\",\n \"green\",\n \"cyan\",\n \"blue\",\n \"purple\",\n \"brown\",\n] as const;\n\nexport type T1ColorKey = (typeof T1_COLOR_KEYS)[number];\n\nexport const FIGMA_T1_SEED_HEX: Record<T1ColorKey, string> = {\n brand: \"#0011FF\",\n black: \"#222222\",\n white: \"#FFFFFF\",\n gray: \"#999999\",\n red: \"#FF4040\",\n orange: \"#FF6B3F\",\n yellow: \"#FFD575\",\n green: \"#1F993F\",\n cyan: \"#29BECC\",\n blue: \"#0D53FF\",\n purple: \"#432CDB\",\n brown: \"#B45E06\",\n};\n\nexport const T2_ALPHA_STEPS = [5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] as const;\nexport const T2_ALPHA_KEYS = T2_ALPHA_STEPS.map((step) => `a${step}`) as [\n \"a5\",\n \"a10\",\n \"a20\",\n \"a30\",\n \"a40\",\n \"a50\",\n \"a60\",\n \"a70\",\n \"a80\",\n \"a90\",\n \"a100\",\n];\n\nexport type T2AlphaStep = (typeof T2_ALPHA_STEPS)[number];\nexport type T2AlphaKey = (typeof T2_ALPHA_KEYS)[number];\n\nexport const T2_OKLCH_STEPS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900] as const;\nexport type T2OklchStep = (typeof T2_OKLCH_STEPS)[number];\n\nexport const FIGMA_T2_SOLID_SCALE: Record<T1ColorKey, Record<T2OklchStep, string>> = {\n brand: {\n 50: \"#F2F6FF\",\n 100: \"#E6ECFF\",\n 200: \"#C4D8FF\",\n 300: \"#9DBDFF\",\n 400: \"#6C9AFF\",\n 500: \"#426EFF\",\n 600: \"#1B57FF\",\n 700: \"#002CE8\",\n 800: \"#001A99\",\n 900: \"#000540\",\n },\n black: {\n 50: \"#F6F6F6\",\n 100: \"#EBEBEB\",\n 200: \"#D7D7D7\",\n 300: \"#BEBEBE\",\n 400: \"#9E9E9E\",\n 500: \"#868686\",\n 600: \"#6F6F6F\",\n 700: \"#555555\",\n 800: \"#353535\",\n 900: \"#121212\",\n },\n white: {\n 50: \"#F6F6F6\",\n 100: \"#EBEBEB\",\n 200: \"#D7D7D7\",\n 300: \"#BEBEBE\",\n 400: \"#9E9E9E\",\n 500: \"#868686\",\n 600: \"#6F6F6F\",\n 700: \"#555555\",\n 800: \"#353535\",\n 900: \"#121212\",\n },\n gray: {\n 50: \"#F6F6F6\",\n 100: \"#EEEEEE\",\n 200: \"#E0E0E0\",\n 300: \"#CCCCCC\",\n 400: \"#A2A9B6\",\n 500: \"#888E99\",\n 600: \"#666666\",\n 700: \"#3A3A3A\",\n 800: \"#2D2D2D\",\n 900: \"#202020\",\n },\n red: {\n 50: \"#FFF3F1\",\n 100: \"#FFE7E4\",\n 200: \"#FFC8C2\",\n 300: \"#FFA097\",\n 400: \"#FF5745\",\n 500: \"#FF4D4D\",\n 600: \"#CF081E\",\n 700: \"#A30013\",\n 800: \"#6A0009\",\n 900: \"#2A0001\",\n },\n orange: {\n 50: \"#FFF3EF\",\n 100: \"#FFE5DD\",\n 200: \"#FFC9B9\",\n 300: \"#FFA287\",\n 400: \"#F76F47\",\n 500: \"#FF764D\",\n 600: \"#C03800\",\n 700: \"#962A00\",\n 800: \"#611800\",\n 900: \"#260500\",\n },\n yellow: {\n 50: \"#FFF5DF\",\n 100: \"#FFE9B9\",\n 200: \"#F4D38B\",\n 300: \"#DCB96B\",\n 400: \"#BE9940\",\n 500: \"#A78013\",\n 600: \"#8B6900\",\n 700: \"#6C5100\",\n 800: \"#453200\",\n 900: \"#191000\",\n },\n green: {\n 50: \"#E2FFE4\",\n 100: \"#BCFFC3\",\n 200: \"#9BEFA5\",\n 300: \"#7BD688\",\n 400: \"#52B764\",\n 500: \"#2C9F47\",\n 600: \"#068631\",\n 700: \"#006823\",\n 800: \"#004213\",\n 900: \"#001704\",\n },\n cyan: {\n 50: \"#E0FCFF\",\n 100: \"#BAF8FF\",\n 200: \"#91EAF2\",\n 300: \"#65D0DC\",\n 400: \"#2FB2BE\",\n 500: \"#0098A4\",\n 600: \"#007E88\",\n 700: \"#006169\",\n 800: \"#003D43\",\n 900: \"#001518\",\n },\n blue: {\n 50: \"#EBF5FF\",\n 100: \"#E7F1FF\",\n 200: \"#D6EBFF\",\n 300: \"#9CBEFF\",\n 400: \"#3086FF\",\n 500: \"#1677FF\",\n 600: \"#266FFF\",\n 700: \"#003DB8\",\n 800: \"#001D66\",\n 900: \"#000A3A\",\n },\n purple: {\n 50: \"#F3F5FF\",\n 100: \"#E6EAFF\",\n 200: \"#CDD5FF\",\n 300: \"#A699FF\",\n 400: \"#8692FF\",\n 500: \"#6B71FF\",\n 600: \"#5550F2\",\n 700: \"#4135C9\",\n 800: \"#280B96\",\n 900: \"#0C0041\",\n },\n brown: {\n 50: \"#FFF3EC\",\n 100: \"#FFE6D5\",\n 200: \"#FFCBA8\",\n 300: \"#F8A971\",\n 400: \"#DA8749\",\n 500: \"#C36D24\",\n 600: \"#A75600\",\n 700: \"#824100\",\n 800: \"#542800\",\n 900: \"#200B00\",\n },\n};\n\nexport const FIGMA_T3_COLOR_ROLES = {\n \"surface.base\": { light: \"color.white.base\", dark: \"color.black.base\" },\n \"surface.subtle\": { light: \"color.gray.50\", dark: \"color.gray.900\" },\n \"surface.elevated\": { light: \"color.white.base\", dark: \"color.gray.800\" },\n \"surface.header\": { light: \"color.gray.100\", dark: \"color.gray.700\" },\n \"surface.brand-subtle\": { light: \"color.blue.50\", dark: \"color.blue.800\" },\n\n \"content.primary\": { light: \"color.black.base\", dark: \"color.white.base\" },\n \"content.secondary\": { light: \"color.gray.600\", dark: \"color.gray.base\" },\n \"content.tertiary\": { light: \"color.gray.base\", dark: \"color.gray.600\" },\n \"content.placeholder\": { light: \"color.gray.300\", dark: \"color.white.a30\" },\n \"content.intro\": { light: \"color.gray.400\", dark: \"color.gray.500\" },\n\n \"border.default\": { light: \"color.gray.100\", dark: \"color.gray.700\" },\n \"border.strong\": { light: \"color.gray.300\", dark: \"color.gray.600\" },\n \"border.focus\": { light: \"color.brand.base\", dark: \"color.brand.500\" },\n\n \"fill.subtle\": { light: \"color.gray.50\", dark: \"color.white.a20\" },\n \"fill.hover\": { light: \"color.gray.100\", dark: \"color.gray.800\" },\n \"fill.active\": { light: \"color.blue.50\", dark: \"color.blue.800\" },\n \"fill.disabled\": { light: \"color.gray.50\", dark: \"color.gray.900\" },\n\n \"action.brand\": { light: \"color.brand.base\", dark: \"color.brand.500\" },\n \"action.product\": { light: \"color.blue.base\", dark: \"color.blue.600\" },\n \"action.selected\": { light: \"color.blue.a20\", dark: \"color.blue.a40\" },\n \"action.inverse\": { light: \"color.white.base\", dark: \"color.black.base\" },\n\n \"status.success\": { light: \"color.green.base\", dark: \"color.green.base\" },\n \"status.warning\": { light: \"color.yellow.base\", dark: \"color.yellow.base\" },\n \"status.danger\": { light: \"color.red.400\", dark: \"color.red.400\" },\n \"status.info\": { light: \"color.blue.base\", dark: \"color.blue.600\" },\n\n \"overlay.scrim\": { light: \"color.black.a50\", dark: \"color.black.a70\" },\n \"overlay.guide\": { light: \"color.black.a70\", dark: \"color.black.a70\" },\n} as const;\n","import raw from \"./index.json\" with { type: \"json\" };\nimport { T1_COLOR_KEYS } from \"../color-architecture.js\";\nimport type { Seed } from \"../schema.js\";\nimport type { SeedColorValue } from \"../color.js\";\n\n/**\n * 把设计交付的 DTCG seed (嵌套 $value,五大类目) 拍平成 derive() 可消费的\n * Seed 形状。DTCG 是设计/Figma 的事实来源;这里是工程读取它的唯一入口。\n * 数值与 packages/tokens/design/seed.tokens.json 逐条一致(parity 测试保证不漂移)。\n */\nconst s = raw.qw.seed;\n\ntype Dimension = { value: number; unit: string };\nconst px = (d: Dimension) => `${d.value}${d.unit}`;\nconst color = (v: unknown) => v as SeedColorValue;\n\nexport const defaultSeed: Seed = {\n color: Object.fromEntries(T1_COLOR_KEYS.map((key) => [key, color(s.color[key].$value)])) as Seed[\"color\"],\n size: {\n spacing: {\n step: px(s.size.spacing.step.$value),\n },\n borderWidth: {\n hairline: px(s.size.borderWidth.hairline.$value),\n },\n radius: {\n base: px(s.size.radius.base.$value),\n full: px(s.size.radius.full.$value),\n },\n controlSize: {\n base: px(s.size.controlSize.base.$value),\n },\n iconSize: {\n base: px(s.size.iconSize.base.$value),\n },\n opacity: {\n disabled: s.size.opacity.disabled.$value,\n alphaStep: s.size.opacity.alphaStep.$value,\n },\n zIndex: {\n step: s.size.zIndex.step.$value,\n },\n },\n typography: {\n fontFamily: {\n text: s.typography.fontFamily.text.$value,\n number: s.typography.fontFamily.number.$value,\n code: s.typography.fontFamily.code.$value,\n textMacLatin: s.typography.fontFamily.textMacLatin.$value,\n textMacZh: s.typography.fontFamily.textMacZh.$value,\n textMacJa: s.typography.fontFamily.textMacJa.$value,\n textWindowsLatin: s.typography.fontFamily.textWindowsLatin.$value,\n textWindowsZh: s.typography.fontFamily.textWindowsZh.$value,\n textWindowsJa: s.typography.fontFamily.textWindowsJa.$value,\n },\n fontWeight: {\n regular: s.typography.fontWeight.regular.$value,\n medium: s.typography.fontWeight.medium.$value,\n semibold: s.typography.fontWeight.semibold.$value,\n },\n fontSize: {\n base: px(s.typography.fontSize.base.$value),\n },\n lineHeight: {\n base: s.typography.lineHeight.base.$value,\n },\n letterSpacing: {\n base: px(s.typography.letterSpacing.base.$value),\n },\n },\n motion: {\n duration: {\n base: px(s.motion.duration.base.$value),\n },\n easing: {\n standard: s.motion.easing.standard.$value as [number, number, number, number],\n },\n },\n effect: {\n shadow: {\n base: {\n color: color(s.effect.shadow.base.$value.color),\n offsetX: px(s.effect.shadow.base.$value.offsetX),\n offsetY: px(s.effect.shadow.base.$value.offsetY),\n blur: px(s.effect.shadow.base.$value.blur),\n spread: px(s.effect.shadow.base.$value.spread),\n },\n },\n },\n};\n","import { z } from \"zod\";\nimport { T1_COLOR_KEYS } from \"./color-architecture.js\";\n\n/**\n * seedColor — DTCG Color module 结构化颜色(不再接受十六进制字符串)。\n * - srgb:components 各分量 0–1(写 0–255 会被拒绝,这是常见错误)。\n * - oklch:l 0–1、c ≥0、h 为角度;用于\"设计师直接以感知空间拍板\"的输入。\n */\nconst seedColor = z\n .object({\n colorSpace: z.enum([\"srgb\", \"oklch\"]),\n components: z.tuple([z.number(), z.number(), z.number()]),\n alpha: z.number().min(0).max(1),\n })\n .superRefine((c, ctx) => {\n if (c.colorSpace === \"srgb\") {\n if (c.components.some((v) => v < 0 || v > 1)) {\n ctx.addIssue({\n code: \"custom\",\n message: \"srgb components 必须是 0–1(不是 0–255),例如 #0011ff → [0, 0.0667, 1]\",\n });\n }\n } else {\n const [l, chroma] = c.components;\n if (l < 0 || l > 1 || chroma < 0) {\n ctx.addIssue({ code: \"custom\", message: \"oklch 要求 l ∈ [0,1] 且 c ≥ 0\" });\n }\n }\n });\n\nconst cubicBezier = z.tuple([z.number(), z.number(), z.number(), z.number()]);\n\nconst fontStack = z.array(z.string()).min(1);\nconst colorSeedShape = Object.fromEntries(T1_COLOR_KEYS.map((key) => [key, seedColor])) as Record<\n (typeof T1_COLOR_KEYS)[number],\n typeof seedColor\n>;\n\n/**\n * SeedSchema — T1 Seed 的唯一事实源校验(RFC 0001 §2.1,v3 修订)。\n *\n * 五大类目 color/size/typography/motion/effect,字段结构对齐\n * packages/tokens/design/seed.tokens.json,全部字段必填——不允许省略后静默\n * 回退默认值,锚点缺口必须在 Seed 层显式补齐,Reference 层不得用硬编码兜底。\n *\n * v3 变化:\n * - 颜色全部结构化(DTCG Color module,支持 srgb/oklch)。\n * - radius/controlSize/iconSize 只留 base 锚点(full 是独立的裁切基准决策),\n * sm/lg 由 Reference 层按既定公式派生。\n * - lineHeight 从 size 移入 typography;新增 letterSpacing.base 锚点。\n * - fontFamily 换 text/number/code 三族 + 平台/语言变体(textMacXx、textWindowsXx)。\n */\nexport const SeedSchema = z.object({\n color: z.object(colorSeedShape),\n size: z.object({\n spacing: z.object({\n step: z.string(),\n }),\n borderWidth: z.object({\n hairline: z.string(),\n }),\n radius: z.object({\n /** 控件基准圆角;Reference 派生 sm=×0.5 / md=×1 / lg=×1.75。 */\n base: z.string(),\n /** 药丸/圆形裁切基准(独立设计决策,不从 base 派生)。 */\n full: z.string(),\n }),\n controlSize: z.object({\n /** md 控件高度锚点;sm/lg = base ∓ spacing.step × 2。 */\n base: z.string(),\n }),\n iconSize: z.object({\n /** md 图标尺寸锚点;sm/lg = base ∓ spacing.step。 */\n base: z.string(),\n }),\n opacity: z.object({\n disabled: z.number().min(0).max(1),\n alphaStep: z.number().min(0).max(1),\n }),\n zIndex: z.object({\n step: z.number().int().positive(),\n }),\n }),\n typography: z.object({\n fontFamily: z.object({\n /** 通用正文栈(跨平台缺省)。 */\n text: fontStack,\n /** 数字/数据展示栈。 */\n number: fontStack,\n /** 代码等宽栈。 */\n code: fontStack,\n /** 平台/语言细分变体,供上层按 UA/lang 重映射 text 角色。 */\n textMacLatin: fontStack,\n textMacZh: fontStack,\n textMacJa: fontStack,\n textWindowsLatin: fontStack,\n textWindowsZh: fontStack,\n textWindowsJa: fontStack,\n }),\n fontWeight: z.object({\n regular: z.number(),\n medium: z.number(),\n semibold: z.number(),\n }),\n fontSize: z.object({\n base: z.string(),\n }),\n lineHeight: z.object({\n base: z.number().positive(),\n }),\n letterSpacing: z.object({\n base: z.string(),\n }),\n }),\n motion: z.object({\n duration: z.object({\n base: z.string(),\n }),\n easing: z.object({\n standard: cubicBezier,\n }),\n }),\n effect: z.object({\n shadow: z.object({\n base: z.object({\n color: seedColor,\n offsetX: z.string(),\n offsetY: z.string(),\n blur: z.string(),\n spread: z.string(),\n }),\n }),\n }),\n});\n\nexport type SeedInput = z.input<typeof SeedSchema>;\nexport type Seed = z.infer<typeof SeedSchema>;\n\n/**\n * validateSeed — ConfigProvider 在 dev 模式调用;生产环境可裁掉,不带 zod 体积。\n * 解析失败抛错,错误信息直接定位到字段。\n */\nexport function validateSeed(seed: unknown): Seed {\n const r = SeedSchema.safeParse(seed);\n if (!r.success) {\n console.error(\"[qw] invalid seed:\", r.error.format());\n throw new Error(\"invalid seed\");\n }\n return r.data;\n}\n","import { formatHex, parse, rgb } from \"culori\";\n\n/**\n * SeedColorValue — DTCG Color module 结构化颜色(design-tokens.org 2025.10)。\n * Seed 层颜色不再用十六进制字符串:结构化后输出 Web / iOS / Android / Figma\n * 插件 / 文档都更稳定,且支持 oklch 等更高级色彩空间直接作为设计输入。\n *\n * - srgb:components = [r, g, b],各分量 0–1(不是 0–255)。\n * - oklch:components = [l, c, h](l 0–1、c ≥0、h 角度)。\n */\nexport interface SeedColorValue {\n colorSpace: \"srgb\" | \"oklch\";\n components: [number, number, number];\n alpha: number;\n}\n\ntype CuloriColor =\n | { mode: \"rgb\"; r: number; g: number; b: number; alpha?: number }\n | { mode: \"oklch\"; l: number; c: number; h: number; alpha?: number };\n\n/** SeedColorValue → culori 可消费的颜色对象。 */\nexport function toCulori(c: SeedColorValue): CuloriColor {\n if (c.colorSpace === \"srgb\") {\n return { mode: \"rgb\", r: c.components[0], g: c.components[1], b: c.components[2], alpha: c.alpha };\n }\n return { mode: \"oklch\", l: c.components[0], c: c.components[1], h: c.components[2], alpha: c.alpha };\n}\n\n// 6 位小数:精度足以保证 hex → 结构化 → ramp 与直接 hex → ramp 全阶一致。\nconst round6 = (n: number) => Math.round(n * 1000000) / 1000000;\n\n/** 十六进制(#rgb / #rrggbb)→ 结构化 srgb SeedColorValue。编辑器色板输入的桥。 */\nexport function hexToSeedColor(hex: string): SeedColorValue {\n const parsed = rgb(parse(hex));\n if (!parsed) throw new Error(`[qw] 无法解析颜色: ${hex}`);\n return {\n colorSpace: \"srgb\",\n components: [round6(parsed.r), round6(parsed.g), round6(parsed.b)],\n alpha: parsed.alpha ?? 1,\n };\n}\n\n/** 结构化颜色 → #rrggbb(丢 alpha;oklch 会先转 sRGB)。展示/对比度计算用。 */\nexport function seedColorToHex(c: SeedColorValue): string {\n const converted = rgb(toCulori(c));\n if (!converted) throw new Error(`[qw] 无法转换颜色: ${JSON.stringify(c)}`);\n return formatHex(converted) ?? \"#000000\";\n}\n\n/**\n * 结构化颜色 → CSS 颜色字符串。srgb 且不透明输出 hex;srgb 半透明输出\n * `rgb(r g b / a)`;oklch 保持原生 `oklch(l c h / a)`(relative color 派生保真)。\n */\nexport function seedColorToCss(c: SeedColorValue): string {\n if (c.colorSpace === \"oklch\") {\n const [l, ch, h] = c.components;\n return c.alpha >= 1 ? `oklch(${l} ${ch} ${h})` : `oklch(${l} ${ch} ${h} / ${c.alpha})`;\n }\n if (c.alpha >= 1) return seedColorToHex(c);\n const [r, g, b] = c.components.map((v) => Math.round(v * 255));\n return `rgb(${r} ${g} ${b} / ${c.alpha})`;\n}\n","import { oklch, formatHex, clampChroma, parse } from \"culori\";\nimport { toCulori, type SeedColorValue } from \"../color.js\";\n\n/** 10 档 token: 50 / 100 / 200 / ... / 900 */\nexport const STEPS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900] as const;\nexport type Step = (typeof STEPS)[number];\n\n/**\n * OKLCH L 目标曲线 — 感知均匀的亮度阶梯 (0..1)。\n * 50 最亮 → 900 最暗;端点 0.972 / 0.18 避免纯白纯黑导致对比\"塌\"。\n * (替换原 HSV:HSV 在感知上不均匀,深档发灰/浅档发白,WCAG 易不过。)\n *\n * 导出供 live-css 生成器复用:CSS relative color 语法\n * `oklch(from var(--seed) L calc(c * f) h)` 的 L/f 常量与这里同源。\n */\nexport const L_TARGETS: Record<Step, number> = {\n 50: 0.972,\n 100: 0.94,\n 200: 0.88,\n 300: 0.8,\n 400: 0.7,\n 500: 0.62,\n 600: 0.54,\n 700: 0.45,\n 800: 0.33,\n 900: 0.18,\n};\n\n/**\n * chroma 端点衰减 — 在 L 的亮/暗两端轻微衰减 chroma,避免 out-of-gamut;\n * 中段 (L≈0.6) 保留全 chroma。\n */\nexport function chromaFactor(l: number): number {\n // 距离中点 0.6 越远,衰减越多;端点约保留 55%。\n const d = Math.abs(l - 0.6) / 0.6;\n return 1 - 0.45 * Math.min(1, d);\n}\n\nexport type Ramp = Record<Step, string>;\n\n/**\n * 给一个 seed 颜色(结构化 SeedColorValue 或 CSS 颜色字符串),算 10 阶 ramp。\n * L 走目标曲线,hue 固定,chroma 端点衰减后再 clampChroma 收进 sRGB 色域。\n */\nexport function ramp(seedColor: SeedColorValue | string): Ramp {\n const input = typeof seedColor === \"string\" ? parse(seedColor) : toCulori(seedColor);\n const base = oklch(input);\n if (!base) throw new Error(`[qw] 无法解析颜色: ${JSON.stringify(seedColor)}`);\n const baseC = base.c ?? 0;\n const baseH = base.h ?? 0;\n\n const out = {} as Ramp;\n for (const step of STEPS) {\n const l = L_TARGETS[step];\n const c = baseC * chromaFactor(l);\n const inGamut = clampChroma({ mode: \"oklch\", l, c, h: baseH }, \"oklch\");\n out[step] = formatHex(inGamut) ?? formatHex(base) ?? \"#000000\";\n }\n return out;\n}\n\n/** 相对亮度 (WCAG) — 用于对偶/校验时的对比度判断。 */\nexport function relativeLuminance(hex: string): number {\n const srgb = parse(hex) as { r: number; g: number; b: number } | undefined;\n if (!srgb) return 0;\n const lin = (v: number) => (v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4));\n return 0.2126 * lin(srgb.r) + 0.7152 * lin(srgb.g) + 0.0722 * lin(srgb.b);\n}\n\n/** WCAG 对比度 (1..21)。 */\nexport function contrastRatio(fg: string, bg: string): number {\n const l1 = relativeLuminance(fg);\n const l2 = relativeLuminance(bg);\n const [hi, lo] = l1 > l2 ? [l1, l2] : [l2, l1];\n return (hi + 0.05) / (lo + 0.05);\n}\n","/**\n * T1/T2/T3 token 的 CSS 变量命名:`--qw-{layer}-{kebab(path)}`。\n *\n * `layer` 区分 Seed(\"seed\",仅出现在 live CSS 产物里、供响应式级联的锚点变量)、\n * Reference(\"ref\",原子层,组件禁止直接引用)与 Semantic(\"sem\",组件唯一\n * 合法消费入口)。`path` 的每个 segment 是内部 TS 属性名(天然 camelCase,\n * 如 \"brandSubtle\"/\"controlSize\"),命名前需转成 kebab-case 才能对齐\n * packages/tokens/design/*.tokens.json 里锁定的 cssVar 字符串。\n *\n * 例:toVar(\"sem\", [\"color\",\"surface\",\"brandSubtle\"]) → \"--qw-sem-color-surface-brand-subtle\"\n * toVar(\"sem\", [\"size\",\"controlHeight\",\"sm\"]) → \"--qw-sem-size-control-height-sm\"\n * toVar(\"seed\", [\"color\",\"brand\"]) → \"--qw-seed-color-brand\"\n *\n * 这是唯一命名口子,运行时 flat var map、build-tokens.ts 的 CSS 出口与\n * live CSS 生成器共用。\n */\nexport type Layer = \"seed\" | \"ref\" | \"sem\";\n\nfunction kebab(segment: string): string {\n return segment.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nexport function toVar(layer: Layer, path: string[]): string {\n return `--qw-${layer}-${path.map(kebab).join(\"-\")}`;\n}\n","import { ramp, L_TARGETS, chromaFactor, type Step } from \"./oklch.js\";\nimport { toVar } from \"./naming.js\";\nimport {\n FIGMA_T2_SOLID_SCALE,\n T1_COLOR_KEYS,\n T2_ALPHA_STEPS,\n T2_OKLCH_STEPS,\n type T1ColorKey,\n type T2OklchStep,\n} from \"../color-architecture.js\";\nimport { seedColorToCss, seedColorToHex, type SeedColorValue } from \"../color.js\";\nimport type { Seed } from \"../schema.js\";\n\n/**\n * T2 Reference(Primitive)派生 —— RFC 0001 §2.1,v3 声明式重构。\n *\n * v3 核心变化:每条 Reference token 的派生规则不再是不透明的 `(seed) => string`\n * 函数,而是可机器读取的 `Derivation` AST——同一份 AST 同时驱动:\n * 1. 运行时求值(evaluateDerivation → tokens);\n * 2. DTCG design 文件生成(scripts/export-design-tokens.ts,$value 全部结构化引用);\n * 3. live CSS 生成(derive/live-css.ts,relative color / calc 表达式);\n * 4. Token Studio 的派生公式展示(formatDerivation)。\n *\n * `seedRefs` 由 AST 自动推导(seedRefsOf),不再手写;可追溯性校验\n * (derive/reference.test.ts)遍历 recipes 断言 seedRefs 非空。\n * 颜色层对齐 Figma `Color/qw` 变量集合:\n * - T1 Seed 为 12 个单色种子;\n * - T2 Reference 为每个 seed 的 A5-A100 Alpha 通道、50-900 OKLCH 设计校准实色色阶、base 引用。\n */\n\nexport type ShadowLevel = \"sm\" | \"md\" | \"lg\";\n\nexport type Derivation =\n /** 直通引用 Seed 字段(dimension/number/duration 字符串或数字)。 */\n | { kind: \"alias\"; seedRef: string }\n /** dimension 字符串 × factor;round:\"int\" 时四舍五入为整数(字号档位用)。 */\n | { kind: \"scale\"; seedRef: string; factor: number; round?: \"int\" }\n /** 无单位数字 × factor(zIndex 刻度)。 */\n | { kind: \"scaleNumber\"; seedRef: string; factor: number }\n /** 无单位数字 + delta(lineHeight tight/relaxed = base ∓ 0.25)。 */\n | { kind: \"offsetNumber\"; seedRef: string; delta: number }\n /** dimension + 另一 dimension × n(controlSize/iconSize sm/lg = base ∓ spacing.step × n)。 */\n | { kind: \"offsetSteps\"; seedRef: string; stepRef: string; n: number }\n /** OKLCH 感知均匀色阶(L 曲线 + chroma 端点衰减,算法见 oklch.ts)。 */\n | { kind: \"oklchRamp\"; seedRef: string; step: Step }\n /** Figma 校准后的 OKLCH 实色色阶;血缘仍指向 T1 seed,但数值由设计稿拍板。 */\n | { kind: \"figmaOklchScale\"; seedRef: string; step: T2OklchStep; value: string }\n /** T1 seed 颜色的固定 Alpha 通道。 */\n | { kind: \"seedAlpha\"; seedRef: string; alpha: number }\n /** 旧版纯黑/纯白透明度工具刻度。保留求值器兼容,不再由 T2 主链路生成。 */\n | { kind: \"alphaScale\"; channel: \"black\" | \"white\"; stepRef: string; multiplier: number }\n /** 字体栈(string[] → CSS font-family 列表)。 */\n | { kind: \"fontStack\"; seedRef: string }\n /** cubic-bezier 四元组 → CSS 函数。 */\n | { kind: \"cubicBezier\"; seedRef: string }\n /** 白名单字面量(色彩空间数学端点,非设计决策)。 */\n | { kind: \"literal\"; value: string }\n /** 阴影档位:形状 = shadow.base × 档位比例,颜色 = alphaStep × 档位倍数。 */\n | { kind: \"shadowLayer\"; level: ShadowLevel };\n\nexport interface ReferenceRecipe {\n path: string[];\n cssVar: string;\n /** 由 derivation 自动推导的 Seed 依赖(点分路径),供可追溯性校验与血缘展示。 */\n seedRefs: string[];\n derivation: Derivation;\n}\n\n/** 拍平后的 CSS 变量映射:cssVar → 字符串值(--qw-ref-* 全集)。 */\nexport type ReferenceTokens = Record<string, string>;\n\n/** 阴影形状(不含颜色),供 Semantic 层复合 effect.shadow.* 时引用固定形状字段。 */\nexport interface ShadowShape {\n offsetX: string;\n offsetY: string;\n blur: string;\n spread: string;\n}\n\nexport interface ReferenceBuild {\n recipes: ReferenceRecipe[];\n tokens: ReferenceTokens;\n shapes: {\n shadow: { sm: ShadowShape; md: ShadowShape; lg: ShadowShape };\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* Seed 取值与格式化工具 */\n/* ------------------------------------------------------------------ */\n\n/** 按点分路径读 Seed 字段(\"size.spacing.step\" → seed.size.spacing.step)。 */\nexport function seedValueAt(seed: Seed, dotted: string): unknown {\n let node: unknown = seed;\n for (const seg of dotted.split(\".\")) {\n if (node == null || typeof node !== \"object\") {\n throw new Error(`[qw] Seed 路径不存在: ${dotted}`);\n }\n node = (node as Record<string, unknown>)[seg];\n }\n if (node === undefined) throw new Error(`[qw] Seed 路径不存在: ${dotted}`);\n return node;\n}\n\nfunction parsePx(s: string): { value: number; unit: string } {\n const m = /^(-?\\d+(?:\\.\\d+)?)(.*)$/.exec(s.trim());\n if (!m) throw new Error(`[qw] 无法解析尺寸: ${s}`);\n return { value: Number(m[1]), unit: m[2] ?? \"\" };\n}\n\nconst round2 = (n: number) => Math.round(n * 100) / 100;\n\nfunction rgba(components: readonly [number, number, number], alpha: number): string {\n return `rgba(${components[0]}, ${components[1]}, ${components[2]}, ${round2(alpha)})`;\n}\n\nfunction hexRgb(hex: string): [number, number, number] {\n const m = /^#?([0-9a-f]{6})$/i.exec(hex);\n if (!m) throw new Error(`[qw] 无法解析 hex 颜色: ${hex}`);\n const n = Number.parseInt(m[1]!, 16);\n return [(n >> 16) & 255, (n >> 8) & 255, n & 255];\n}\n\nfunction seedAlphaCss(seedColor: SeedColorValue, alpha: number): string {\n if (alpha >= 1) return seedColorToCss({ ...seedColor, alpha: 1 });\n return rgba(hexRgb(seedColorToHex(seedColor)), alpha);\n}\n\nexport function formatFontFamily(list: string[]): string {\n return list.map((f) => (/[\\s./]/.test(f) ? `'${f}'` : f)).join(\", \");\n}\n\nfunction formatCubicBezier([a, b, c, d]: readonly [number, number, number, number]): string {\n return `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n}\n\n/** 阴影档位系数:形状(offset/blur/spread 缩放)+ 颜色(alphaStep 倍数)。 */\nexport const SHADOW_LEVELS: Record<ShadowLevel, { offset: number; blur: number; alphaMult: number }> = {\n sm: { offset: 0.5, blur: 0.5, alphaMult: 2 },\n md: { offset: 2, blur: 3, alphaMult: 3 },\n lg: { offset: 4, blur: 6, alphaMult: 4 },\n};\n\nfunction shadowShapeOf(seed: Seed, level: ShadowLevel): ShadowShape {\n const { offset, blur } = SHADOW_LEVELS[level];\n const base = seed.effect.shadow.base;\n const scale = (s: string, f: number) => {\n const { value, unit } = parsePx(s);\n return `${round2(value * f)}${unit}`;\n };\n return {\n offsetX: scale(base.offsetX, offset),\n offsetY: scale(base.offsetY, offset),\n blur: scale(base.blur, blur),\n spread: scale(base.spread, offset),\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* AST 求值器 / seedRefs 推导 / 公式展示 */\n/* ------------------------------------------------------------------ */\n\n/** 求值:一条 Derivation + Seed → 最终 CSS 值字符串。 */\nexport function evaluateDerivation(d: Derivation, seed: Seed): string {\n switch (d.kind) {\n case \"alias\": {\n const v = seedValueAt(seed, d.seedRef);\n if (v != null && typeof v === \"object\" && \"colorSpace\" in v) {\n return seedColorToCss(v as SeedColorValue);\n }\n return typeof v === \"number\" ? String(v) : (v as string);\n }\n case \"scale\": {\n const { value, unit } = parsePx(seedValueAt(seed, d.seedRef) as string);\n const scaled = value * d.factor;\n return `${d.round === \"int\" ? Math.round(scaled) : round2(scaled)}${unit}`;\n }\n case \"scaleNumber\":\n return String(round2((seedValueAt(seed, d.seedRef) as number) * d.factor));\n case \"offsetNumber\":\n return String(round2((seedValueAt(seed, d.seedRef) as number) + d.delta));\n case \"offsetSteps\": {\n const base = parsePx(seedValueAt(seed, d.seedRef) as string);\n const step = parsePx(seedValueAt(seed, d.stepRef) as string);\n return `${round2(base.value + step.value * d.n)}${base.unit}`;\n }\n case \"oklchRamp\":\n return ramp(seed.color[d.seedRef.split(\".\")[1] as keyof Seed[\"color\"]])[d.step];\n case \"figmaOklchScale\":\n return d.value;\n case \"seedAlpha\":\n return seedAlphaCss(seedValueAt(seed, d.seedRef) as SeedColorValue, d.alpha);\n case \"alphaScale\": {\n const step = seedValueAt(seed, d.stepRef) as number;\n const channel: [number, number, number] = d.channel === \"black\" ? [0, 0, 0] : [255, 255, 255];\n return rgba(channel, step * d.multiplier);\n }\n case \"fontStack\":\n return formatFontFamily(seedValueAt(seed, d.seedRef) as string[]);\n case \"cubicBezier\":\n return formatCubicBezier(seedValueAt(seed, d.seedRef) as [number, number, number, number]);\n case \"literal\":\n return d.value;\n case \"shadowLayer\": {\n const { offsetX, offsetY, blur, spread } = shadowShapeOf(seed, d.level);\n const color = rgba([0, 0, 0], seed.size.opacity.alphaStep * SHADOW_LEVELS[d.level].alphaMult);\n return `${offsetX} ${offsetY} ${blur} ${spread} ${color}`;\n }\n }\n}\n\n/** Seed 依赖推导:AST 里出现的全部 Seed 点分路径。 */\nexport function seedRefsOf(d: Derivation): string[] {\n switch (d.kind) {\n case \"alias\":\n case \"scale\":\n case \"scaleNumber\":\n case \"offsetNumber\":\n case \"oklchRamp\":\n case \"figmaOklchScale\":\n case \"seedAlpha\":\n case \"fontStack\":\n case \"cubicBezier\":\n return [d.seedRef];\n case \"offsetSteps\":\n return [d.seedRef, d.stepRef];\n case \"alphaScale\":\n return [d.stepRef];\n case \"literal\":\n return [];\n case \"shadowLayer\":\n return [\"effect.shadow.base\", \"size.opacity.alphaStep\"];\n }\n}\n\n/** 人读派生公式(Token Studio 展示用)。 */\nexport function formatDerivation(d: Derivation): string {\n const sign = (n: number) => (n >= 0 ? \"+\" : \"−\");\n switch (d.kind) {\n case \"alias\":\n case \"fontStack\":\n case \"cubicBezier\":\n return `= seed.${d.seedRef}`;\n case \"scale\":\n return `= seed.${d.seedRef} × ${d.factor}`;\n case \"scaleNumber\":\n return `= seed.${d.seedRef} × ${d.factor}`;\n case \"offsetNumber\":\n return `= seed.${d.seedRef} ${sign(d.delta)} ${Math.abs(d.delta)}`;\n case \"offsetSteps\":\n return `= seed.${d.seedRef} ${sign(d.n)} seed.${d.stepRef} × ${Math.abs(d.n)}`;\n case \"oklchRamp\":\n return `= oklch(seed.${d.seedRef}) @ L ${L_TARGETS[d.step]} · C × ${round2(chromaFactor(L_TARGETS[d.step]))}`;\n case \"figmaOklchScale\":\n return `= figma Color/qw/t2/${d.seedRef.split(\".\")[1]}/${d.step}(OKLCH 设计校准)`;\n case \"seedAlpha\":\n return `= seed.${d.seedRef} / ${round2(d.alpha * 100)}%`;\n case \"alphaScale\":\n return `= ${d.channel === \"black\" ? \"黑\" : \"白\"} / seed.${d.stepRef} × ${d.multiplier}`;\n case \"literal\":\n return `= ${d.value}(色彩空间端点,白名单字面量)`;\n case \"shadowLayer\": {\n const f = SHADOW_LEVELS[d.level];\n return `= seed.effect.shadow.base 形状 × {offset ${f.offset}, blur ${f.blur}} · 色 = 黑 / alphaStep × ${f.alphaMult}`;\n }\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* 13 组配方(声明式) */\n/* ------------------------------------------------------------------ */\n\nfunction ref(path: string[], derivation: Derivation): ReferenceRecipe {\n return { path, cssVar: toVar(\"ref\", path), seedRefs: seedRefsOf(derivation), derivation };\n}\n\nexport const RAMP_COLORS = T1_COLOR_KEYS;\n\n/** 1. 12 个 Seed ×(A5-A100 Alpha 通道 + 50-900 Figma OKLCH 校准色阶 + base)。 */\nexport function buildColorRampRecipes(): ReferenceRecipe[] {\n const out: ReferenceRecipe[] = [];\n for (const name of RAMP_COLORS) {\n const seedRef = `color.${name}`;\n for (const alpha of T2_ALPHA_STEPS) {\n out.push(ref([\"color\", name, `a${alpha}`], { kind: \"seedAlpha\", seedRef, alpha: alpha / 100 }));\n }\n for (const step of T2_OKLCH_STEPS) {\n out.push(\n ref([\"color\", name, String(step)], {\n kind: \"figmaOklchScale\",\n seedRef,\n step,\n value: FIGMA_T2_SOLID_SCALE[name as T1ColorKey][step],\n }),\n );\n }\n out.push(ref([\"color\", name, \"base\"], { kind: \"alias\", seedRef }));\n }\n return out;\n}\n\n/** @deprecated Figma T2 已不再使用 neutral 0/1000 端点;保留给历史迁移脚本。 */\nexport function buildNeutralEndpointRecipes(): ReferenceRecipe[] {\n return [\n ref([\"color\", \"neutral\", \"0\"], { kind: \"literal\", value: \"#ffffff\" }),\n ref([\"color\", \"neutral\", \"1000\"], { kind: \"literal\", value: \"#000000\" }),\n ];\n}\n\nexport const BLACK_ALPHA: ReadonlyArray<readonly [string, number]> = [\n [\"4\", 1],\n [\"8\", 2],\n [\"12\", 3],\n [\"16\", 4],\n [\"24\", 6],\n [\"32\", 8],\n [\"48\", 12],\n [\"64\", 16],\n];\nexport const WHITE_ALPHA: ReadonlyArray<readonly [string, number]> = [\n [\"8\", 2],\n [\"16\", 4],\n [\"24\", 6],\n [\"32\", 8],\n];\n\n/** @deprecated Figma T2 已改为每个 Seed 自带 Alpha 通道;保留给历史迁移脚本。 */\nexport function buildAlphaScaleRecipes(): ReferenceRecipe[] {\n const out: ReferenceRecipe[] = [];\n for (const [key, mult] of BLACK_ALPHA) {\n out.push(\n ref([\"color\", \"blackAlpha\", key], {\n kind: \"alphaScale\",\n channel: \"black\",\n stepRef: \"size.opacity.alphaStep\",\n multiplier: mult,\n }),\n );\n }\n for (const [key, mult] of WHITE_ALPHA) {\n out.push(\n ref([\"color\", \"whiteAlpha\", key], {\n kind: \"alphaScale\",\n channel: \"white\",\n stepRef: \"size.opacity.alphaStep\",\n multiplier: mult,\n }),\n );\n }\n return out;\n}\n\n/** 4. 间距刻度 = spacing.step × N (N=1..8)。 */\nexport function buildSpacingRecipes(): ReferenceRecipe[] {\n const out: ReferenceRecipe[] = [];\n for (let n = 1; n <= 8; n++) {\n out.push(ref([\"size\", \"spacing\", String(n)], { kind: \"scale\", seedRef: \"size.spacing.step\", factor: n }));\n }\n return out;\n}\n\n/** 圆角档位系数(sm/lg 从 base 派生;默认 base=8px → 4/8/14)。 */\nexport const RADIUS_FACTORS = { sm: 0.5, md: 1, lg: 1.75 } as const;\n\n/** 5. 圆角刻度:sm/md/lg 由 radius.base 按系数派生,full 直通独立裁切基准。 */\nexport function buildRadiusRecipes(): ReferenceRecipe[] {\n return [\n ref([\"size\", \"radius\", \"sm\"], { kind: \"scale\", seedRef: \"size.radius.base\", factor: RADIUS_FACTORS.sm }),\n ref([\"size\", \"radius\", \"md\"], { kind: \"alias\", seedRef: \"size.radius.base\" }),\n ref([\"size\", \"radius\", \"lg\"], { kind: \"scale\", seedRef: \"size.radius.base\", factor: RADIUS_FACTORS.lg }),\n ref([\"size\", \"radius\", \"full\"], { kind: \"alias\", seedRef: \"size.radius.full\" }),\n ];\n}\n\n/** 6. 控件/图标尺寸:md = base 直通,sm/lg = base ∓ spacing.step × n(控件 ×2、图标 ×1)。 */\nexport function buildControlIconSizeRecipes(): ReferenceRecipe[] {\n const step = \"size.spacing.step\";\n return [\n ref([\"size\", \"controlSize\", \"sm\"], { kind: \"offsetSteps\", seedRef: \"size.controlSize.base\", stepRef: step, n: -2 }),\n ref([\"size\", \"controlSize\", \"md\"], { kind: \"alias\", seedRef: \"size.controlSize.base\" }),\n ref([\"size\", \"controlSize\", \"lg\"], { kind: \"offsetSteps\", seedRef: \"size.controlSize.base\", stepRef: step, n: 2 }),\n ref([\"size\", \"iconSize\", \"sm\"], { kind: \"offsetSteps\", seedRef: \"size.iconSize.base\", stepRef: step, n: -1 }),\n ref([\"size\", \"iconSize\", \"md\"], { kind: \"alias\", seedRef: \"size.iconSize.base\" }),\n ref([\"size\", \"iconSize\", \"lg\"], { kind: \"offsetSteps\", seedRef: \"size.iconSize.base\", stepRef: step, n: 1 }),\n ];\n}\n\n/** 7. 描边宽度 —— 直通引用。 */\nexport function buildBorderWidthRecipes(): ReferenceRecipe[] {\n return [ref([\"size\", \"borderWidth\", \"hairline\"], { kind: \"alias\", seedRef: \"size.borderWidth.hairline\" })];\n}\n\n/** 8. 行高(typography 类目):normal 直通 Seed,tight/relaxed = base ∓ 0.25。 */\nexport function buildLineHeightRecipes(): ReferenceRecipe[] {\n return [\n ref([\"typography\", \"lineHeight\", \"tight\"], { kind: \"offsetNumber\", seedRef: \"typography.lineHeight.base\", delta: -0.25 }),\n ref([\"typography\", \"lineHeight\", \"normal\"], { kind: \"alias\", seedRef: \"typography.lineHeight.base\" }),\n ref([\"typography\", \"lineHeight\", \"relaxed\"], { kind: \"offsetNumber\", seedRef: \"typography.lineHeight.base\", delta: 0.25 }),\n ];\n}\n\n/** 9. 禁用态不透明度 —— 直通引用。 */\nexport function buildOpacityRecipes(): ReferenceRecipe[] {\n return [ref([\"size\", \"opacity\", \"disabled\"], { kind: \"alias\", seedRef: \"size.opacity.disabled\" })];\n}\n\n/** 10. 层级刻度 = zIndex.step × N (N=1..4);角色分配交给 Semantic 层。 */\nexport function buildZIndexRecipes(): ReferenceRecipe[] {\n return [1, 2, 3, 4].map((n) =>\n ref([\"size\", \"zIndex\", String(n)], { kind: \"scaleNumber\", seedRef: \"size.zIndex.step\", factor: n }),\n );\n}\n\nexport const FONT_FAMILY_KEYS = [\n \"text\",\n \"number\",\n \"code\",\n \"textMacLatin\",\n \"textMacZh\",\n \"textMacJa\",\n \"textWindowsLatin\",\n \"textWindowsZh\",\n \"textWindowsJa\",\n] as const;\n\n/** 字号档位倍数(沿用既定视觉:14px 基准 → 12/16/20/24)。 */\nexport const FONT_SIZE_FACTORS: Record<string, number> = { sm: 0.857, lg: 1.143, xl: 1.429, \"2xl\": 1.714 };\n\n/** 11. 排版原子:字体族(三族 + 平台/语言变体)/字重直通,字号按既定倍数派生。 */\nexport function buildTypographyRecipes(): ReferenceRecipe[] {\n const out: ReferenceRecipe[] = [];\n for (const key of FONT_FAMILY_KEYS) {\n out.push(ref([\"typography\", \"fontFamily\", key], { kind: \"fontStack\", seedRef: `typography.fontFamily.${key}` }));\n }\n for (const key of [\"regular\", \"medium\", \"semibold\"] as const) {\n out.push(ref([\"typography\", \"fontWeight\", key], { kind: \"alias\", seedRef: `typography.fontWeight.${key}` }));\n }\n out.push(ref([\"typography\", \"fontSize\", \"base\"], { kind: \"alias\", seedRef: \"typography.fontSize.base\" }));\n for (const [key, factor] of Object.entries(FONT_SIZE_FACTORS)) {\n out.push(\n ref([\"typography\", \"fontSize\", key], { kind: \"scale\", seedRef: \"typography.fontSize.base\", factor, round: \"int\" }),\n );\n }\n out.push(ref([\"typography\", \"letterSpacing\", \"base\"], { kind: \"alias\", seedRef: \"typography.letterSpacing.base\" }));\n return out;\n}\n\n/** 动效时长档位倍数。 */\nexport const DURATION_FACTORS = { fast: 0.5, slow: 1.6 } as const;\n\n/** 12. 动效:duration 按倍数派生,easing 直通。 */\nexport function buildMotionRecipes(): ReferenceRecipe[] {\n return [\n ref([\"motion\", \"duration\", \"fast\"], { kind: \"scale\", seedRef: \"motion.duration.base\", factor: DURATION_FACTORS.fast }),\n ref([\"motion\", \"duration\", \"base\"], { kind: \"alias\", seedRef: \"motion.duration.base\" }),\n ref([\"motion\", \"duration\", \"slow\"], { kind: \"scale\", seedRef: \"motion.duration.base\", factor: DURATION_FACTORS.slow }),\n ref([\"motion\", \"easing\", \"standard\"], { kind: \"cubicBezier\", seedRef: \"motion.easing.standard\" }),\n ];\n}\n\n/**\n * 13. 阴影:形状由 effect.shadow.base 按各档位比例缩放,颜色沿用\n * alphaStep 结构锚点。它不是 Figma Color 变量体系里的 T2 颜色 token。\n */\nexport function buildShadowRecipes(): ReferenceRecipe[] {\n return ([\"sm\", \"md\", \"lg\"] as const).map((level) => ref([\"effect\", \"shadow\", level], { kind: \"shadowLayer\", level }));\n}\n\nexport function allReferenceRecipes(): ReferenceRecipe[] {\n return [\n ...buildColorRampRecipes(),\n ...buildSpacingRecipes(),\n ...buildRadiusRecipes(),\n ...buildControlIconSizeRecipes(),\n ...buildBorderWidthRecipes(),\n ...buildLineHeightRecipes(),\n ...buildOpacityRecipes(),\n ...buildZIndexRecipes(),\n ...buildTypographyRecipes(),\n ...buildMotionRecipes(),\n ...buildShadowRecipes(),\n ];\n}\n\n/** T2 顶层入口:喂一个 Seed,产出全量 Reference recipes + 拍平后的 CSS 变量映射 + 阴影形状(供 Semantic 层消费)。 */\nexport function buildReference(seed: Seed): ReferenceBuild {\n const recipes = allReferenceRecipes();\n const tokens: ReferenceTokens = {};\n for (const recipe of recipes) tokens[recipe.cssVar] = evaluateDerivation(recipe.derivation, seed);\n return {\n recipes,\n tokens,\n shapes: {\n shadow: {\n sm: shadowShapeOf(seed, \"sm\"),\n md: shadowShapeOf(seed, \"md\"),\n lg: shadowShapeOf(seed, \"lg\"),\n },\n },\n };\n}\n","import { toVar } from \"./naming.js\";\nimport type { ReferenceBuild, ReferenceTokens, ShadowLevel } from \"./reference.js\";\nimport { FIGMA_T3_COLOR_ROLES } from \"../color-architecture.js\";\n\n/**\n * T3 Semantic 派生 —— RFC 0001 §2.1,v3 修订。\n *\n * R7 类型隔离(强制 FR-010):本模块**不 import `Seed`/`schema.ts`** 任何符号,\n * 只接受 `buildReference()` 的输出(`ReferenceBuild`)。Semantic 角色永远经由\n * Reference 层中转到 Seed,不允许绕过 Reference 直接引用 Seed 字段。\n *\n * v3 变化:全部角色表从模块私有改为导出的结构化元数据(SEMANTIC_ROLES),\n * 供 design 文件生成器(scripts/export-design-tokens.ts)、live CSS 生成器\n * (derive/live-css.ts)与 Token Studio 的血缘展示共用同一份事实。\n */\nexport type SemanticMode = \"light\" | \"dark\";\n\nfunction pick(tokens: ReferenceTokens, dottedRefPath: string): string {\n const v = tokens[toVar(\"ref\", dottedRefPath.split(\".\"))];\n if (v === undefined) throw new Error(`[qw] Semantic 引用了不存在的 Reference token: ${dottedRefPath}`);\n return v;\n}\n\nfunction semVar(path: string[]): string {\n return toVar(\"sem\", path);\n}\n\n/* ------------------------------------------------------------------ */\n/* 结构类角色表(mode 无关) */\n/* ------------------------------------------------------------------ */\n\nexport const RADIUS_ROLES: Record<string, string> = {\n control: \"size.radius.md\",\n card: \"size.radius.lg\",\n pill: \"size.radius.full\",\n full: \"size.radius.full\",\n};\n\nexport const CONTROL_HEIGHT_ROLES: Record<string, string> = {\n sm: \"size.controlSize.sm\",\n md: \"size.controlSize.md\",\n lg: \"size.controlSize.lg\",\n};\n\nexport const ICON_SIZE_ROLES: Record<string, string> = {\n sm: \"size.iconSize.sm\",\n md: \"size.iconSize.md\",\n lg: \"size.iconSize.lg\",\n};\n\nexport const INSET_STACK_ROLES: Record<string, string> = {\n sm: \"size.spacing.2\",\n md: \"size.spacing.4\",\n lg: \"size.spacing.6\",\n};\n\nexport const Z_INDEX_ROLES: Record<string, string> = {\n dropdown: \"size.zIndex.1\",\n sticky: \"size.zIndex.2\",\n overlay: \"size.zIndex.3\",\n toast: \"size.zIndex.4\",\n};\n\nexport const MOTION_DURATION_ROLES: Record<string, string> = {\n fast: \"motion.duration.fast\",\n base: \"motion.duration.base\",\n slow: \"motion.duration.slow\",\n};\n\n/** 字体族角色:text(正文缺省)/ number(数字数据)/ code(等宽)。 */\nexport const FONT_FAMILY_ROLES: Record<string, string> = {\n text: \"typography.fontFamily.text\",\n number: \"typography.fontFamily.number\",\n code: \"typography.fontFamily.code\",\n};\n\nexport interface TypographyRole {\n fontFamilyRef: string;\n fontSizeRef: string;\n fontWeightRef: string;\n lineHeightRef: string;\n letterSpacingRef: string;\n}\n\nconst T_LETTER = \"typography.letterSpacing.base\";\n\n/** typography.* 复合角色:每个字段各自引用 Reference(无任何裸字面量)。 */\nexport const TYPOGRAPHY_ROLES: Record<string, TypographyRole> = {\n body: {\n fontFamilyRef: \"typography.fontFamily.text\",\n fontSizeRef: \"typography.fontSize.base\",\n fontWeightRef: \"typography.fontWeight.regular\",\n lineHeightRef: \"typography.lineHeight.normal\",\n letterSpacingRef: T_LETTER,\n },\n bodyStrong: {\n fontFamilyRef: \"typography.fontFamily.text\",\n fontSizeRef: \"typography.fontSize.base\",\n fontWeightRef: \"typography.fontWeight.medium\",\n lineHeightRef: \"typography.lineHeight.normal\",\n letterSpacingRef: T_LETTER,\n },\n headingSm: {\n fontFamilyRef: \"typography.fontFamily.text\",\n fontSizeRef: \"typography.fontSize.lg\",\n fontWeightRef: \"typography.fontWeight.semibold\",\n lineHeightRef: \"typography.lineHeight.tight\",\n letterSpacingRef: T_LETTER,\n },\n headingMd: {\n fontFamilyRef: \"typography.fontFamily.text\",\n fontSizeRef: \"typography.fontSize.xl\",\n fontWeightRef: \"typography.fontWeight.semibold\",\n lineHeightRef: \"typography.lineHeight.tight\",\n letterSpacingRef: T_LETTER,\n },\n headingLg: {\n fontFamilyRef: \"typography.fontFamily.text\",\n fontSizeRef: \"typography.fontSize.2xl\",\n fontWeightRef: \"typography.fontWeight.semibold\",\n lineHeightRef: \"typography.lineHeight.tight\",\n letterSpacingRef: T_LETTER,\n },\n caption: {\n fontFamilyRef: \"typography.fontFamily.text\",\n fontSizeRef: \"typography.fontSize.sm\",\n fontWeightRef: \"typography.fontWeight.regular\",\n lineHeightRef: \"typography.lineHeight.normal\",\n letterSpacingRef: T_LETTER,\n },\n code: {\n fontFamilyRef: \"typography.fontFamily.code\",\n fontSizeRef: \"typography.fontSize.sm\",\n fontWeightRef: \"typography.fontWeight.regular\",\n lineHeightRef: \"typography.lineHeight.normal\",\n letterSpacingRef: T_LETTER,\n },\n};\n\nexport const TYPOGRAPHY_FIELDS = [\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"lineHeight\",\n \"letterSpacing\",\n] as const;\n\n/* ------------------------------------------------------------------ */\n/* 颜色角色表(light/dark 各自引用 Reference 路径) */\n/* ------------------------------------------------------------------ */\n\nexport interface ColorRoleRefs {\n light: string;\n dark: string;\n}\n\nexport const COLOR_ROLES: Record<string, ColorRoleRefs> = FIGMA_T3_COLOR_ROLES;\n\nexport const SHADOW_COMPOSITE_ROLES: Record<string, ShadowLevel> = {};\n\n/* ------------------------------------------------------------------ */\n/* 血缘元数据(Token Studio / 文档消费) */\n/* ------------------------------------------------------------------ */\n\nexport type SemanticRoleEntry =\n | {\n kind: \"structural\";\n /** Semantic 路径(点分,如 \"size.radius.control\")。 */\n path: string;\n cssVar: string;\n /** 引用的 Reference 路径(点分)。 */\n refPath: string;\n }\n | {\n kind: \"color\";\n path: string;\n cssVar: string;\n refPath: { light: string; dark: string };\n }\n | {\n kind: \"shadowComposite\";\n path: string;\n cssVar: string;\n /** 形状来源(reference.effect.shadow.<level>)+ 颜色来源。 */\n shapeRef: string;\n colorRole: string;\n };\n\n/**\n * 全量 Semantic 角色的结构化血缘表——\"角色 → 引用的 Reference 路径(含 light/dark 分支)\"。\n * 与 buildSemanticStructural/buildSemanticColor 的产出一一对应(顺序一致)。\n */\nexport function semanticRoleEntries(): SemanticRoleEntry[] {\n const out: SemanticRoleEntry[] = [];\n const structural = (path: string[], refPath: string) =>\n out.push({ kind: \"structural\", path: path.join(\".\"), cssVar: semVar(path), refPath });\n\n for (const [role, refPath] of Object.entries(RADIUS_ROLES)) structural([\"size\", \"radius\", role], refPath);\n for (const [role, refPath] of Object.entries(CONTROL_HEIGHT_ROLES)) structural([\"size\", \"controlHeight\", role], refPath);\n for (const [role, refPath] of Object.entries(ICON_SIZE_ROLES)) structural([\"size\", \"iconSize\", role], refPath);\n for (const [role, refPath] of Object.entries(INSET_STACK_ROLES)) {\n structural([\"size\", \"inset\", role], refPath);\n structural([\"size\", \"stack\", role], refPath);\n }\n structural([\"size\", \"opacity\", \"disabled\"], \"size.opacity.disabled\");\n for (const [role, refPath] of Object.entries(Z_INDEX_ROLES)) structural([\"size\", \"zIndex\", role], refPath);\n for (const [role, refPath] of Object.entries(FONT_FAMILY_ROLES)) structural([\"typography\", \"fontFamily\", role], refPath);\n for (const [role, spec] of Object.entries(TYPOGRAPHY_ROLES)) {\n structural([\"typography\", role, \"fontFamily\"], spec.fontFamilyRef);\n structural([\"typography\", role, \"fontSize\"], spec.fontSizeRef);\n structural([\"typography\", role, \"fontWeight\"], spec.fontWeightRef);\n structural([\"typography\", role, \"lineHeight\"], spec.lineHeightRef);\n structural([\"typography\", role, \"letterSpacing\"], spec.letterSpacingRef);\n }\n for (const [role, refPath] of Object.entries(MOTION_DURATION_ROLES)) structural([\"motion\", \"duration\", role], refPath);\n structural([\"motion\", \"easing\", \"standard\"], \"motion.easing.standard\");\n\n for (const [path, refs] of Object.entries(COLOR_ROLES)) {\n const segs = [\"color\", ...path.split(\".\")];\n out.push({ kind: \"color\", path: segs.join(\".\"), cssVar: semVar(segs), refPath: refs });\n }\n for (const [role, level] of Object.entries(SHADOW_COMPOSITE_ROLES)) {\n const segs = [\"effect\", \"shadow\", role];\n out.push({\n kind: \"shadowComposite\",\n path: segs.join(\".\"),\n cssVar: semVar(segs),\n shapeRef: `effect.shadow.${level}`,\n colorRole: \"color.shadow\",\n });\n }\n return out;\n}\n\n/* ------------------------------------------------------------------ */\n/* 求值 */\n/* ------------------------------------------------------------------ */\n\n/**\n * 结构类(mode 无关):尺寸角色 + 字体族角色 + 排版复合角色 + 动效时长/缓动。\n * `effect.shadow.*` 的颜色字段随 mode 变化,归入 `buildSemanticColor`。\n */\nexport function buildSemanticStructural(reference: ReferenceBuild): Record<string, string> {\n const out: Record<string, string> = {};\n const { tokens } = reference;\n for (const entry of semanticRoleEntries()) {\n if (entry.kind !== \"structural\") continue;\n out[entry.cssVar] = pick(tokens, entry.refPath);\n }\n return out;\n}\n\n/**\n * 颜色类(light/dark 分别求值):color.* 全部角色。\n */\nexport function buildSemanticColor(reference: ReferenceBuild, mode: SemanticMode): Record<string, string> {\n const out: Record<string, string> = {};\n const { tokens, shapes } = reference;\n\n for (const entry of semanticRoleEntries()) {\n if (entry.kind !== \"color\") continue;\n out[entry.cssVar] = pick(tokens, entry.refPath[mode]);\n }\n\n const shadowColor = out[semVar([\"color\", \"shadow\"])];\n for (const [role, level] of Object.entries(SHADOW_COMPOSITE_ROLES) as Array<\n [keyof typeof SHADOW_COMPOSITE_ROLES, ShadowLevel]\n >) {\n const shape = shapes.shadow[level];\n out[semVar([\"effect\", \"shadow\", role])] =\n `${shape.offsetX} ${shape.offsetY} ${shape.blur} ${shape.spread} ${shadowColor}`;\n }\n\n return out;\n}\n","import { buildReference } from \"./reference.js\";\nimport { buildSemanticStructural, buildSemanticColor } from \"./semantic.js\";\nimport type { SemanticMode } from \"./semantic.js\";\nimport type { Seed } from \"../schema.js\";\n\nexport { toVar } from \"./naming.js\";\nexport type { Layer } from \"./naming.js\";\nexport { ramp, STEPS, L_TARGETS, chromaFactor, contrastRatio } from \"./oklch.js\";\nexport type { Step, Ramp } from \"./oklch.js\";\nexport type { SemanticMode as Mode } from \"./semantic.js\";\nexport type {\n ReferenceRecipe,\n ReferenceTokens,\n ReferenceBuild,\n Derivation,\n ShadowLevel,\n ShadowShape,\n} from \"./reference.js\";\nexport {\n buildReference,\n allReferenceRecipes,\n evaluateDerivation,\n seedRefsOf,\n formatDerivation,\n seedValueAt,\n RAMP_COLORS,\n BLACK_ALPHA,\n WHITE_ALPHA,\n RADIUS_FACTORS,\n FONT_SIZE_FACTORS,\n DURATION_FACTORS,\n SHADOW_LEVELS,\n FONT_FAMILY_KEYS,\n} from \"./reference.js\";\nexport {\n buildSemanticStructural,\n buildSemanticColor,\n semanticRoleEntries,\n RADIUS_ROLES,\n CONTROL_HEIGHT_ROLES,\n ICON_SIZE_ROLES,\n INSET_STACK_ROLES,\n Z_INDEX_ROLES,\n MOTION_DURATION_ROLES,\n FONT_FAMILY_ROLES,\n TYPOGRAPHY_ROLES,\n TYPOGRAPHY_FIELDS,\n COLOR_ROLES,\n SHADOW_COMPOSITE_ROLES,\n} from \"./semantic.js\";\nexport type { SemanticRoleEntry, ColorRoleRefs, TypographyRole } from \"./semantic.js\";\n\nexport interface DerivedTokens {\n /** 亮色全量 CSS 变量:--qw-ref-* ∪ --qw-sem-*(light 取值)。 */\n light: Record<string, string>;\n /** 暗色全量 CSS 变量:--qw-ref-* ∪ --qw-sem-*(dark 取值)。 */\n dark: Record<string, string>;\n}\n\n/**\n * derive — 单源派生(RFC 0001)。喂一个 Seed,编排 T2 Reference → T3 Semantic,\n * 返回亮/暗两套全量 CSS 变量映射(含 --qw-ref-* 与 --qw-sem-*)。\n * 外部签名/返回值形状与改造前保持一致(FR-014),供 `@qw-ui/react`、`@qw-ui/vue` 的\n * ConfigProvider 直接消费,无需改动。\n *\n * 注意:`validateSeed` 不在此处调用(沿用现状契约),校验是调用方的责任。\n */\nexport function derive(seed: Seed): DerivedTokens {\n const reference = buildReference(seed);\n const structural = buildSemanticStructural(reference);\n const mk = (mode: SemanticMode): Record<string, string> => ({\n ...reference.tokens,\n ...structural,\n ...buildSemanticColor(reference, mode),\n });\n return { light: mk(\"light\"), dark: mk(\"dark\") };\n}\n","import { toVar } from \"./naming.js\";\nimport { L_TARGETS, chromaFactor } from \"./oklch.js\";\nimport { seedColorToCss } from \"../color.js\";\nimport {\n allReferenceRecipes,\n formatFontFamily,\n SHADOW_LEVELS,\n FONT_FAMILY_KEYS,\n type Derivation,\n type ShadowLevel,\n} from \"./reference.js\";\nimport { semanticRoleEntries } from \"./semantic.js\";\nimport type { Seed } from \"../schema.js\";\n\n/**\n * live CSS 生成器 —— dist/tokens.live.css / Token Studio 响应式级联的引擎。\n *\n * 与静态 tokens.css(解析后的字面值,SSR 稳定出口)不同,live CSS 把整棵派生\n * 树翻译成 CSS 原生表达式:\n * - T1 Seed 落为 `--qw-seed-*` 变量(唯一含具体数值的层);\n * - T2 Reference 用 relative color(oklch(from …))/ calc() 从 Seed 变量派生;\n * - T3 Semantic 全部是 `var(--qw-ref-*)` 别名;dark 模式只在暗色选择器下\n * 重映射 sem → 不同的 ref 档位。\n *\n * 于是改一个 `--qw-seed-*`(setProperty 即可),整棵 ref/sem 树由浏览器原生\n * 级联更新,零 JS 重算。依赖现代 CSS(relative color / round()),刻意不做\n * 老浏览器兼容——组件库消费方继续用静态 tokens.css。\n */\n\nconst round4 = (n: number) => Math.round(n * 10000) / 10000;\n\nfunction seedVar(dotted: string): string {\n return toVar(\"seed\", dotted.split(\".\"));\n}\n\n/* ------------------------------------------------------------------ */\n/* T1:Seed → --qw-seed-* 变量表 */\n/* ------------------------------------------------------------------ */\n\n/** Seed 拍平成 `--qw-seed-*` → CSS 值。live CSS 里唯一携带具体数值的层。 */\nexport function seedCssVars(seed: Seed): Record<string, string> {\n const out: Record<string, string> = {};\n for (const [name, value] of Object.entries(seed.color)) {\n out[seedVar(`color.${name}`)] = seedColorToCss(value);\n }\n out[seedVar(\"size.spacing.step\")] = seed.size.spacing.step;\n out[seedVar(\"size.borderWidth.hairline\")] = seed.size.borderWidth.hairline;\n out[seedVar(\"size.radius.base\")] = seed.size.radius.base;\n out[seedVar(\"size.radius.full\")] = seed.size.radius.full;\n out[seedVar(\"size.controlSize.base\")] = seed.size.controlSize.base;\n out[seedVar(\"size.iconSize.base\")] = seed.size.iconSize.base;\n out[seedVar(\"size.opacity.disabled\")] = String(seed.size.opacity.disabled);\n out[seedVar(\"size.opacity.alphaStep\")] = String(seed.size.opacity.alphaStep);\n out[seedVar(\"size.zIndex.step\")] = String(seed.size.zIndex.step);\n for (const key of FONT_FAMILY_KEYS) {\n out[seedVar(`typography.fontFamily.${key}`)] = formatFontFamily(seed.typography.fontFamily[key]);\n }\n out[seedVar(\"typography.fontWeight.regular\")] = String(seed.typography.fontWeight.regular);\n out[seedVar(\"typography.fontWeight.medium\")] = String(seed.typography.fontWeight.medium);\n out[seedVar(\"typography.fontWeight.semibold\")] = String(seed.typography.fontWeight.semibold);\n out[seedVar(\"typography.fontSize.base\")] = seed.typography.fontSize.base;\n out[seedVar(\"typography.lineHeight.base\")] = String(seed.typography.lineHeight.base);\n out[seedVar(\"typography.letterSpacing.base\")] = seed.typography.letterSpacing.base;\n out[seedVar(\"motion.duration.base\")] = seed.motion.duration.base;\n const [a, b, c, d] = seed.motion.easing.standard;\n out[seedVar(\"motion.easing.standard\")] = `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n out[seedVar(\"effect.shadow.base.offsetX\")] = seed.effect.shadow.base.offsetX;\n out[seedVar(\"effect.shadow.base.offsetY\")] = seed.effect.shadow.base.offsetY;\n out[seedVar(\"effect.shadow.base.blur\")] = seed.effect.shadow.base.blur;\n out[seedVar(\"effect.shadow.base.spread\")] = seed.effect.shadow.base.spread;\n return out;\n}\n\n/* ------------------------------------------------------------------ */\n/* T2:Derivation AST → CSS 表达式 */\n/* ------------------------------------------------------------------ */\n\nfunction shadowShapeExprs(level: ShadowLevel): { offsetX: string; offsetY: string; blur: string; spread: string } {\n const { offset, blur } = SHADOW_LEVELS[level];\n const scale = (field: string, f: number) => `calc(var(${seedVar(`effect.shadow.base.${field}`)}) * ${f})`;\n return {\n offsetX: scale(\"offsetX\", offset),\n offsetY: scale(\"offsetY\", offset),\n blur: scale(\"blur\", blur),\n spread: scale(\"spread\", offset),\n };\n}\n\n/** 一条 Derivation → 引用 `--qw-seed-*` 的 CSS 原生表达式。 */\nexport function derivationToCssExpr(d: Derivation): string {\n switch (d.kind) {\n case \"alias\":\n case \"fontStack\":\n case \"cubicBezier\":\n return `var(${seedVar(d.seedRef)})`;\n case \"scale\": {\n const expr = `calc(var(${seedVar(d.seedRef)}) * ${d.factor})`;\n return d.round === \"int\" ? `round(nearest, ${expr}, 1px)` : expr;\n }\n case \"scaleNumber\":\n return `calc(var(${seedVar(d.seedRef)}) * ${d.factor})`;\n case \"offsetNumber\":\n return `calc(var(${seedVar(d.seedRef)}) ${d.delta >= 0 ? \"+\" : \"-\"} ${Math.abs(d.delta)})`;\n case \"offsetSteps\":\n return `calc(var(${seedVar(d.seedRef)}) ${d.n >= 0 ? \"+\" : \"-\"} var(${seedVar(d.stepRef)}) * ${Math.abs(d.n)})`;\n case \"oklchRamp\": {\n const l = L_TARGETS[d.step];\n const f = round4(chromaFactor(l));\n return `oklch(from var(${seedVar(d.seedRef)}) ${l} calc(c * ${f}) h)`;\n }\n case \"figmaOklchScale\":\n return d.value;\n case \"seedAlpha\":\n return `rgb(from var(${seedVar(d.seedRef)}) r g b / ${round4(d.alpha)})`;\n case \"alphaScale\": {\n const channel = d.channel === \"black\" ? \"0 0 0\" : \"255 255 255\";\n return `rgb(${channel} / calc(var(${seedVar(d.stepRef)}) * ${d.multiplier}))`;\n }\n case \"literal\":\n return d.value;\n case \"shadowLayer\": {\n const s = shadowShapeExprs(d.level);\n const alpha = `calc(var(${seedVar(\"size.opacity.alphaStep\")}) * ${SHADOW_LEVELS[d.level].alphaMult})`;\n return `${s.offsetX} ${s.offsetY} ${s.blur} ${s.spread} rgb(0 0 0 / ${alpha})`;\n }\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* 组装 */\n/* ------------------------------------------------------------------ */\n\nexport interface LiveCssOptions {\n /** 亮色作用域选择器,默认 \":root\"。 */\n selector?: string;\n /** 暗色作用域选择器,默认 '[data-qw-mode=\"dark\"]'。 */\n darkSelector?: string;\n}\n\nfunction block(selector: string, decls: Array<[string, string]>): string {\n return `${selector} {\\n${decls.map(([k, v]) => ` ${k}: ${v};`).join(\"\\n\")}\\n}\\n`;\n}\n\n/**\n * 生成整份 live CSS:\n * 1. seed 块(具体数值);2. ref 块(表达式派生);3. sem 块(light 别名);\n * 4. dark 块(仅重映射随 mode 变化的 sem 颜色别名)。\n */\nexport function buildLiveCss(seed: Seed, options: LiveCssOptions = {}): string {\n const selector = options.selector ?? \":root\";\n const darkSelector = options.darkSelector ?? '[data-qw-mode=\"dark\"]';\n\n const seedDecls = Object.entries(seedCssVars(seed));\n\n const refDecls: Array<[string, string]> = allReferenceRecipes().map((r) => [\n r.cssVar,\n derivationToCssExpr(r.derivation),\n ]);\n\n const semLight: Array<[string, string]> = [];\n const semDark: Array<[string, string]> = [];\n for (const entry of semanticRoleEntries()) {\n if (entry.kind === \"structural\") {\n semLight.push([entry.cssVar, `var(${toVar(\"ref\", entry.refPath.split(\".\"))})`]);\n } else if (entry.kind === \"color\") {\n semLight.push([entry.cssVar, `var(${toVar(\"ref\", entry.refPath.light.split(\".\"))})`]);\n if (entry.refPath.dark !== entry.refPath.light) {\n semDark.push([entry.cssVar, `var(${toVar(\"ref\", entry.refPath.dark.split(\".\"))})`]);\n }\n } else {\n // shadow 复合:形状表达式 + mode 感知的 sem 颜色(dark 无需重复,颜色变量自己会变)。\n const level = entry.shapeRef.split(\".\").pop() as ShadowLevel;\n const s = shadowShapeExprs(level);\n semLight.push([\n entry.cssVar,\n `${s.offsetX} ${s.offsetY} ${s.blur} ${s.spread} var(${toVar(\"sem\", entry.colorRole.split(\".\"))})`,\n ]);\n }\n }\n\n return [\n \"/* @qw-ui/tokens live — Seed 变量驱动的响应式派生树(relative color / calc),请勿手改。\",\n \" 改 --qw-seed-* 即级联整棵 ref/sem 树;需要现代浏览器,组件库消费方请用静态 tokens.css。 */\",\n block(selector, [...seedDecls, ...refDecls, ...semLight]),\n block(darkSelector, semDark),\n ].join(\"\\n\");\n}\n"]}
|