@teamix-evo/tokens 0.4.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Teamix Evo Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # @teamix-evo/tokens
2
+
3
+ > Teamix Evo 设计 Token 资源包 — 每个变体一份完整、自包含的 token 集,给 CSS bundler(Tailwind v4)消费。
4
+
5
+ ## 定位
6
+
7
+ tokens 是 Teamix Evo 的 **视觉值层**,纯资源包(无 JS 构建产物)。按 [ADR 0020](../../docs/adr/0020-design-to-tokens-skill-fusion.md) 的架构:
8
+
9
+ - 每个 `variants/<name>/` 是一个**完整自包含**的 token 集 —— 不再有 default 基线 + variant 覆盖的合并模型
10
+ - 内含 `theme.css`(Tailwind v4 `@theme {}`)与 `base.tokens.json`(W3C Design Tokens 引用数据)
11
+ - 设计知识(哲学 / 模式 / 品牌调性 / 生成流程)归属 `@teamix-evo/skills` 的 `teamix-evo-design-<variant>` skill,**不在本包**
12
+ - shadcn 全局偏好(pointer cursor 等)归属 `@teamix-evo/ui/src/preferences.css`,由 `teamix-evo ui init` 部署
13
+
14
+ CLI 在运行时按变体加载本包的 `variants/<name>/` 内容,写入消费方根 `tokens/` 目录。
15
+
16
+ ## 目录结构
17
+
18
+ ```
19
+ packages/tokens/
20
+ ├── manifest.json # 顶层 catalog(列出所有 variants 与 advertised files)
21
+ ├── variants/
22
+ │ ├── opentrek/
23
+ │ │ ├── theme.css # Tailwind v4 @theme 变量
24
+ │ │ └── base.tokens.json # W3C Design Tokens 引用数据
25
+ │ └── uni-manager/
26
+ │ ├── theme.css
27
+ │ └── base.tokens.json
28
+ ├── scripts/
29
+ │ └── validate-variants.ts # 变体校验脚本
30
+ └── package.json
31
+ ```
32
+
33
+ > 历史的 `default/` 基线、variants 下的 `DESIGN.md` / `AGENTS.md` / `CLAUDE.md` / `philosophy/` / `patterns/` / `scenarios/` 已按 ADR 0020 移除 —— 设计知识全部进 skill,本包只剩 token 数据。
34
+
35
+ ## 变体状态
36
+
37
+ | 变体 | 内容 | 配套 skill |
38
+ | --------------- | ---------------------------------------- | ----------------------------------------- |
39
+ | **opentrek** | OpenTrek 品牌 token(沉稳克制 AI 副驾驶) | `teamix-evo-design-opentrek`(自包含) |
40
+ | **uni-manager** | Uni-Manager 品牌 token(统一管理类业务) | `teamix-evo-design-uni-manager`(自包含) |
41
+
42
+ `teamix-evo tokens init <variant>` 在写完 `.teamix-evo/tokens-lock.json` 之后会自动调用 `runSkillsAdd`,把对应的 `teamix-evo-design-<variant>` skill 一并装入。
43
+
44
+ ## 研发流程
45
+
46
+ ### 1. 修改既有变体的 token
47
+
48
+ 直接编辑 `variants/<name>/theme.css` 与 `variants/<name>/base.tokens.json`。每个变体独立维护,不影响其他变体。
49
+
50
+ ### 2. 新增 Variant
51
+
52
+ ```bash
53
+ mkdir -p variants/my-variant
54
+ # 1) 写 variants/my-variant/theme.css(Tailwind v4 @theme 块)
55
+ # 2) 写 variants/my-variant/base.tokens.json(W3C 引用数据)
56
+ # 3) 在 manifest.json variants 数组追加该 variant 条目,advertised files 列上述 2 个文件
57
+ # 4) 创建配套 skill(必须):
58
+ # packages/skills/src/teamix-evo-design-my-variant/SKILL.md
59
+ # 并在 packages/skills/manifest.json 加 variant: "my-variant"
60
+ pnpm --filter @teamix-evo/tokens validate
61
+ ```
62
+
63
+ ### 3. 验证
64
+
65
+ ```bash
66
+ pnpm --filter @teamix-evo/tokens validate
67
+ ```
68
+
69
+ `validate-variants.ts` 执行:
70
+
71
+ 1. 加载 `manifest.json`,确认 schema 合法、每个 variant 入口存在
72
+ 2. 确认每个 advertised file 在 `variants/<name>/` 下真实存在
73
+ 3. 抽查 `theme.css` 含 `@theme` 块、`base.tokens.json` 是合法 JSON
74
+
75
+ ### 4. 端到端预览
76
+
77
+ ```bash
78
+ mkdir /tmp/test-tokens && cd /tmp/test-tokens
79
+ node /path/to/packages/cli/dist/index.js tokens init opentrek
80
+ ```
81
+
82
+ 观察生成的 `tokens/`(根目录,frozen+regenerable)、`.teamix-evo/tokens-lock.json`、`.qoder/skills/`、`.claude/skills/` 内容。
83
+
84
+ ## 资源类型与策略
85
+
86
+ 每个变体目录下的文件按以下规则落地(ADR 0020 §3):
87
+
88
+ | 文件 | 落地路径 | 策略 | 含义 |
89
+ | ----------------------------- | ----------------------------- | ----------- | ----------------------------- |
90
+ | `theme.css` | `tokens/tokens.theme.css` | regenerable | 根目录 — 每次 update 完全重写 |
91
+ | `base.tokens.json` | `tokens/base.tokens.json` | regenerable | 根目录 — 每次 update 完全重写 |
92
+ | `overrides.css`(若变体声明) | `tokens/tokens.overrides.css` | frozen | 根目录 — 首次安装后不再覆盖 |
93
+
94
+ ## 与 skills 的关系
95
+
96
+ | 维度 | tokens 包 | skills 包 |
97
+ | -------- | ---------------------------------- | ------------------------------------------- |
98
+ | 内容形式 | 视觉值(CSS 变量 / JSON token) | L4 协议(AI 触发规则 + 提示词) |
99
+ | 入口 | 消费方根 `tokens/` | IDE 的 `.qoder/skills/` / `.claude/skills/` |
100
+ | 变体绑定 | 每变体一个自包含目录(ADR 0020) | manifest 的 `variant` 字段(ADR 0014 风格) |
101
+ | 装机 | `teamix-evo tokens init <variant>` | `teamix-evo skills add` 或 tokens init 联动 |
102
+
103
+ 详见 [`packages/skills/AGENTS.md`](../skills/AGENTS.md)。
104
+
105
+ ## 依赖关系
106
+
107
+ ```
108
+ 本包无运行时依赖
109
+ @teamix-evo/registry — devDependency(validate 脚本与 schema 使用)
110
+ CLI 包 → 运行时 require.resolve 本包获取资源路径
111
+ ```
package/manifest.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://teamix-evo.dev/schema/tokens-package/v1.json",
3
+ "schemaVersion": 1,
4
+ "package": "tokens",
5
+ "version": "0.5.0",
6
+ "engines": {
7
+ "teamix-evo": ">=0.1.0"
8
+ },
9
+ "description": "Design tokens for Tailwind v4 @theme. Each variant is a complete, self-contained token set.",
10
+ "variants": [
11
+ {
12
+ "name": "opentrek",
13
+ "displayName": "OpenTrek",
14
+ "version": "0.5.0",
15
+ "description": "OpenTrek brand tokens — AI 副驾驶场景的视觉语言",
16
+ "files": [
17
+ "variants/opentrek/theme.css",
18
+ "variants/opentrek/base.tokens.json"
19
+ ]
20
+ },
21
+ {
22
+ "name": "uni-manager",
23
+ "displayName": "Uni-Manager",
24
+ "version": "0.5.0",
25
+ "description": "Uni-Manager brand tokens — 统一管理类业务的视觉语言",
26
+ "files": [
27
+ "variants/uni-manager/theme.css",
28
+ "variants/uni-manager/base.tokens.json"
29
+ ]
30
+ }
31
+ ],
32
+ "shared": []
33
+ }
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@teamix-evo/tokens",
3
+ "version": "0.4.0",
4
+ "description": "Design tokens (CSS custom properties) for Teamix Evo — consumed by CSS bundlers (Tailwind v4 @theme)",
5
+ "type": "module",
6
+ "files": [
7
+ "default",
8
+ "variants",
9
+ "manifest.json"
10
+ ],
11
+ "devDependencies": {
12
+ "@types/node": "^20.0.0",
13
+ "tsx": "^4.0.0",
14
+ "@teamix-evo/registry": "0.3.0"
15
+ },
16
+ "publishConfig": {
17
+ "access": "public",
18
+ "registry": "https://registry.npmjs.org/"
19
+ },
20
+ "scripts": {
21
+ "validate": "tsx scripts/validate-variants.ts",
22
+ "test": "echo 'validate only' && pnpm validate",
23
+ "typecheck": "echo 'no ts source'",
24
+ "lint": "echo 'no ts source'",
25
+ "build": "echo 'pure resource package, no build needed'"
26
+ }
27
+ }