@qilitt-mickey/vue3-temp-skill 1.1.71 → 1.1.74

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.
Files changed (86) hide show
  1. package/SKILL.md +137 -136
  2. package/bin/cli.js +1 -1
  3. package/dist/theme-vars.js +1 -1
  4. package/dist/theme.css +1 -1
  5. package/mapping/basic/color.json +35 -35
  6. package/mapping/basic/radius.json +17 -17
  7. package/mapping/basic/semantic-values.json +72 -72
  8. package/mapping/basic/spacing.json +21 -21
  9. package/mapping/basic/typography.json +21 -21
  10. package/mapping/component/button.json +90 -90
  11. package/mapping/component/card.json +31 -31
  12. package/mapping/component/input.json +42 -42
  13. package/mapping/component/overlay.json +79 -79
  14. package/mapping/component/pagination.json +34 -34
  15. package/mapping/component/table.json +42 -42
  16. package/mapping/component/tag.json +48 -48
  17. package/mapping/layout/breakpoint.json +20 -20
  18. package/mapping/layout/shell-geometry.json +26 -26
  19. package/mapping/scenes/admin/content.json +494 -494
  20. package/mapping/scenes/admin/layout.json +574 -574
  21. package/package.json +1 -1
  22. package/parser/fixtures/changeset-fullpage-restore.json +259 -138
  23. package/parser/fixtures/changeset-gap-block.json +24 -0
  24. package/parser/fixtures/changeset-legacy.json +11 -11
  25. package/parser/fixtures/changeset-neg1.json +8 -8
  26. package/parser/fixtures/changeset-neg2.json +10 -10
  27. package/parser/fixtures/changeset-neg3.json +22 -22
  28. package/parser/fixtures/changeset-neg4-g8.json +15 -15
  29. package/parser/fixtures/changeset-neg5-g8-stub.json +26 -26
  30. package/parser/fixtures/changeset-neg6-g9-identity.json +39 -39
  31. package/parser/fixtures/changeset-neg7-g10-dims.json +57 -57
  32. package/parser/fixtures/changeset-neg8-g11-oracle.json +57 -57
  33. package/parser/fixtures/changeset-pos-theme-neutral.json +264 -264
  34. package/parser/fixtures/changeset-pos-theme-nometa.json +260 -260
  35. package/parser/fixtures/changeset-pos.json +50 -43
  36. package/parser/fixtures/changeset-registry-gap.json +29 -29
  37. package/parser/fixtures/changeset-v32-fields.json +71 -63
  38. package/parser/fixtures/fake-project/src/styles/app.scss +5 -5
  39. package/parser/fixtures/fake-project/src/views/list.vue +13 -13
  40. package/parser/fixtures/registry-bad.json +11 -11
  41. package/parser/fixtures/registry-sample.json +15 -15
  42. package/parser/fixtures/verify/actual-clean.json +35 -35
  43. package/parser/fixtures/verify/actual.json +33 -33
  44. package/parser/fixtures/verify/mockup-baseline-admin-list.html +27 -0
  45. package/parser/fixtures/verify/mockup-neutral.html +26 -26
  46. package/parser/fixtures/verify/mockup-nometa.html +26 -26
  47. package/parser/fixtures/verify/oracle.json +37 -37
  48. package/parser/fixtures/verify/snapshot-latest.json +102 -102
  49. package/parser/generator.js +178 -178
  50. package/parser/index.js +2675 -2605
  51. package/parser/loader.js +66 -66
  52. package/parser/override.js +119 -119
  53. package/parser/regression.js +301 -293
  54. package/parser/validator.js +206 -206
  55. package/parser/watch.js +103 -103
  56. package/references/auth-pages.md +217 -217
  57. package/references/base-code-dict.md +56 -56
  58. package/references/code-quality.md +3 -2
  59. package/references/data-compare.md +509 -509
  60. package/references/data-writeback.md +124 -124
  61. package/references/design-apply.md +167 -167
  62. package/references/detail-page.md +119 -119
  63. package/references/download-export.md +97 -97
  64. package/references/feedback-loading.md +104 -104
  65. package/references/feedback-ui.md +134 -134
  66. package/references/i18n-localization.md +230 -230
  67. package/references/project-inventory.md +438 -438
  68. package/references/rich-text.md +94 -94
  69. package/references/seamless-scroll.md +47 -47
  70. package/references/steps/maintenance.md +31 -31
  71. package/references/steps/regression.md +49 -49
  72. package/references/steps/step0-preflight.md +58 -58
  73. package/references/steps/step1-match.md +64 -64
  74. package/references/steps/step1b-audit.md +23 -23
  75. package/references/steps/step1c-registry.md +29 -29
  76. package/references/steps/step2-structure.md +73 -73
  77. package/references/steps/step3-style.md +33 -33
  78. package/references/steps/step3b-shell.md +61 -61
  79. package/references/steps/step3c-priority.md +26 -26
  80. package/references/steps/step4-l3.md +14 -14
  81. package/references/steps/step5-gates.md +63 -63
  82. package/references/steps/step6-verify.md +77 -77
  83. package/references/verify-captcha.md +119 -119
  84. package/scripts/apply-final-gate.mjs +170 -170
  85. package/scripts/check.mjs +38 -5
  86. package/scripts/design-audit.mjs +1502 -1498
@@ -1,34 +1,34 @@
1
- {
2
- "$comment": "全局原子层 · 分页组件映射(EP el-pagination / RePagination 根节点即 el-pagination)。registry list-page §11.83-11.94 登记的 always 子项 height/radius/hover_color/icon_size/gap/text_color/active_bg/active_color/border_color。样式规则经 src/styles/design-shell.scss 落在 .vts-page-card .el-pagination(设计层文件,非出厂源码)。字段名严格对齐 restore-registry 的 dim(parser 逐项校验;registry 11.88 原为 button_hover_color,已对齐为 hover_color 以匹配 host admin.content.pagination 与变更集)。版本恒 1.0.0(由 SKILL.md 体系版本统一管理)。",
3
- "meta": {
4
- "layer": "basic",
5
- "domain": "component_pagination",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus"
9
- },
10
- "mappings": {
11
- "component.pagination.base": {
12
- "type": "global_component",
13
- "component": "ElPagination(RePagination 根节点即 el-pagination)",
14
- "style_scope": ".vts-page-card .el-pagination",
15
- "css_vars": {},
16
- "custom_style_map": {
17
- "height": "height",
18
- "radius": "border-radius",
19
- "hover_color": "color",
20
- "icon_size": "font-size",
21
- "gap": "gap",
22
- "active_bg": "background-color",
23
- "active_color": "color",
24
- "border_color": "border-color",
25
- "text_color": "color"
26
- },
27
- "priority": {
28
- "strategy": "scope_qualified",
29
- "reason": "作用域限定到 .vts-page-card .el-pagination 即可覆盖 EP 出厂分页样式。"
30
- },
31
- "$note": "registry §11.83-11.94 多项均为 always,变更集必须声明;hover_color 为分页整体悬停/激活文字色(对齐 host 的 hover_color 字段名);active_bg/active_color 为当前页按钮底色与文字色;border_color 为分页器边框;text_color/gap/icon_size 为整体文字、间距与翻页图标尺寸。字段名严格对齐 restore-registry 的 dim。"
32
- }
33
- }
34
- }
1
+ {
2
+ "$comment": "全局原子层 · 分页组件映射(EP el-pagination / RePagination 根节点即 el-pagination)。registry list-page §11.83-11.94 登记的 always 子项 height/radius/hover_color/icon_size/gap/text_color/active_bg/active_color/border_color。样式规则经 src/styles/design-shell.scss 落在 .vts-page-card .el-pagination(设计层文件,非出厂源码)。字段名严格对齐 restore-registry 的 dim(parser 逐项校验;registry 11.88 原为 button_hover_color,已对齐为 hover_color 以匹配 host admin.content.pagination 与变更集)。版本恒 1.0.0(由 SKILL.md 体系版本统一管理)。",
3
+ "meta": {
4
+ "layer": "basic",
5
+ "domain": "component_pagination",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus"
9
+ },
10
+ "mappings": {
11
+ "component.pagination.base": {
12
+ "type": "global_component",
13
+ "component": "ElPagination(RePagination 根节点即 el-pagination)",
14
+ "style_scope": ".vts-page-card .el-pagination",
15
+ "css_vars": {},
16
+ "custom_style_map": {
17
+ "height": "height",
18
+ "radius": "border-radius",
19
+ "hover_color": "color",
20
+ "icon_size": "font-size",
21
+ "gap": "gap",
22
+ "active_bg": "background-color",
23
+ "active_color": "color",
24
+ "border_color": "border-color",
25
+ "text_color": "color"
26
+ },
27
+ "priority": {
28
+ "strategy": "scope_qualified",
29
+ "reason": "作用域限定到 .vts-page-card .el-pagination 即可覆盖 EP 出厂分页样式。"
30
+ },
31
+ "$note": "registry §11.83-11.94 多项均为 always,变更集必须声明;hover_color 为分页整体悬停/激活文字色(对齐 host 的 hover_color 字段名);active_bg/active_color 为当前页按钮底色与文字色;border_color 为分页器边框;text_color/gap/icon_size 为整体文字、间距与翻页图标尺寸。字段名严格对齐 restore-registry 的 dim。"
32
+ }
33
+ }
34
+ }
@@ -1,42 +1,42 @@
1
- {
2
- "$comment": "全局原子层 · 表格组件映射(EP 原生 el-table + 项目 element-plus.scss 表头变量化 --vts-table-header-*)。",
3
- "meta": {
4
- "layer": "basic",
5
- "domain": "component_table",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus"
9
- },
10
- "mappings": {
11
- "component.table.base": {
12
- "type": "global_component",
13
- "component": "ElTable",
14
- "style_scope": ":root",
15
- "css_vars": {
16
- "header_bg": "--el-table-header-bg-color",
17
- "header_text_color": "--el-table-header-text-color",
18
- "row_hover_bg": "--el-table-row-hover-bg-color",
19
- "border_color": "--el-table-border-color",
20
- "text_color": "--el-table-text-color",
21
- "bg_color": "--el-table-bg-color",
22
- "tr_bg_color": "--el-table-tr-bg-color",
23
- "expanded_row_bg_color": "--el-table-expanded-cell-bg-color",
24
- "fixed_box_shadow": "--el-table-fixed-box-shadow"
25
- },
26
- "custom_style_map": {
27
- "header_border_bottom": "border-bottom",
28
- "header_font_weight": "font-weight"
29
- }
30
- },
31
- "component.table.header_ext": {
32
- "type": "global_token",
33
- "style_scope": ":root",
34
- "$note": "项目扩展表头令牌(element-plus.scss 消费),与 --el-table-header-* 并存",
35
- "css_vars": {
36
- "vts_header_bg": "--vts-table-header-bg",
37
- "vts_header_text": "--vts-table-header-text"
38
- },
39
- "custom_style_map": {}
40
- }
41
- }
42
- }
1
+ {
2
+ "$comment": "全局原子层 · 表格组件映射(EP 原生 el-table + 项目 element-plus.scss 表头变量化 --vts-table-header-*)。",
3
+ "meta": {
4
+ "layer": "basic",
5
+ "domain": "component_table",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus"
9
+ },
10
+ "mappings": {
11
+ "component.table.base": {
12
+ "type": "global_component",
13
+ "component": "ElTable",
14
+ "style_scope": ":root",
15
+ "css_vars": {
16
+ "header_bg": "--el-table-header-bg-color",
17
+ "header_text_color": "--el-table-header-text-color",
18
+ "row_hover_bg": "--el-table-row-hover-bg-color",
19
+ "border_color": "--el-table-border-color",
20
+ "text_color": "--el-table-text-color",
21
+ "bg_color": "--el-table-bg-color",
22
+ "tr_bg_color": "--el-table-tr-bg-color",
23
+ "expanded_row_bg_color": "--el-table-expanded-cell-bg-color",
24
+ "fixed_box_shadow": "--el-table-fixed-box-shadow"
25
+ },
26
+ "custom_style_map": {
27
+ "header_border_bottom": "border-bottom",
28
+ "header_font_weight": "font-weight"
29
+ }
30
+ },
31
+ "component.table.header_ext": {
32
+ "type": "global_token",
33
+ "style_scope": ":root",
34
+ "$note": "项目扩展表头令牌(element-plus.scss 消费),与 --el-table-header-* 并存",
35
+ "css_vars": {
36
+ "vts_header_bg": "--vts-table-header-bg",
37
+ "vts_header_text": "--vts-table-header-text"
38
+ },
39
+ "custom_style_map": {}
40
+ }
41
+ }
42
+ }
@@ -1,48 +1,48 @@
1
- {
2
- "$comment": "全局原子层 · 状态标签组件映射(EP 原生 el-tag)。对应设计侧 list-page §7 状态标签(filled 默认变体)与 component-spec 3.4 状态色映射。版本恒 1.0.0(由 SKILL.md 体系版本统一管理)。",
3
- "meta": {
4
- "layer": "basic",
5
- "domain": "component_tag",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus"
9
- },
10
- "mappings": {
11
- "component.tag.status": {
12
- "type": "global_component",
13
- "component": "ElTag",
14
- "default_props": { "effect": "light" },
15
- "style_scope": ":root",
16
- "forms": {
17
- "filled": "浅色背景+浅边框+语义色文字(EP effect=light,设计侧默认变体)",
18
- "outlined": "透明背景+语义色边框+语义色文字(EP effect=plain)",
19
- "solid": "纯色填充+白字(EP effect=dark)",
20
- "with_icon": "filled + 16px 图标(物流状态等带图标场景)"
21
- },
22
- "css_vars": {
23
- "bg_color": "--el-tag-bg-color",
24
- "text_color": "--el-tag-text-color",
25
- "border_color": "--el-tag-border-color"
26
- },
27
- "custom_style_map": {
28
- "height": "height",
29
- "radius": "border-radius",
30
- "font_size": "font-size",
31
- "padding_x": "padding",
32
- "icon_size": "font-size"
33
- },
34
- "$note": "状态语义色走 EP 功能色变量:success=--el-color-success / processing=--el-color-primary / warning=--el-color-warning / error=--el-color-danger。列级声明机制:component.tag.status 是 :root 全局默认,逐列差异必须声明为内容点位(admin.content.table.cell_tag.<列语义> 走 pending/L3,或写入该列 notes),禁止对全局 ID 声明多份互相覆盖的 form"
35
- },
36
- "component.tag.size": {
37
- "type": "global_token",
38
- "style_scope": ":root",
39
- "css_vars": {},
40
- "custom_style_map": {
41
- "height": "height",
42
- "font_size": "font-size",
43
- "padding_x": "padding"
44
- },
45
- "$note": "设计值:高 24px、圆角 6px、字号 12px、内边距 0 8px(list-page §11.64)"
46
- }
47
- }
48
- }
1
+ {
2
+ "$comment": "全局原子层 · 状态标签组件映射(EP 原生 el-tag)。对应设计侧 list-page §7 状态标签(filled 默认变体)与 component-spec 3.4 状态色映射。版本恒 1.0.0(由 SKILL.md 体系版本统一管理)。",
3
+ "meta": {
4
+ "layer": "basic",
5
+ "domain": "component_tag",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus"
9
+ },
10
+ "mappings": {
11
+ "component.tag.status": {
12
+ "type": "global_component",
13
+ "component": "ElTag",
14
+ "default_props": { "effect": "light" },
15
+ "style_scope": ":root",
16
+ "forms": {
17
+ "filled": "浅色背景+浅边框+语义色文字(EP effect=light,设计侧默认变体)",
18
+ "outlined": "透明背景+语义色边框+语义色文字(EP effect=plain)",
19
+ "solid": "纯色填充+白字(EP effect=dark)",
20
+ "with_icon": "filled + 16px 图标(物流状态等带图标场景)"
21
+ },
22
+ "css_vars": {
23
+ "bg_color": "--el-tag-bg-color",
24
+ "text_color": "--el-tag-text-color",
25
+ "border_color": "--el-tag-border-color"
26
+ },
27
+ "custom_style_map": {
28
+ "height": "height",
29
+ "radius": "border-radius",
30
+ "font_size": "font-size",
31
+ "padding_x": "padding",
32
+ "icon_size": "font-size"
33
+ },
34
+ "$note": "状态语义色走 EP 功能色变量:success=--el-color-success / processing=--el-color-primary / warning=--el-color-warning / error=--el-color-danger。列级声明机制:component.tag.status 是 :root 全局默认,逐列差异必须声明为内容点位(admin.content.table.cell_tag.<列语义> 走 pending/L3,或写入该列 notes),禁止对全局 ID 声明多份互相覆盖的 form"
35
+ },
36
+ "component.tag.size": {
37
+ "type": "global_token",
38
+ "style_scope": ":root",
39
+ "css_vars": {},
40
+ "custom_style_map": {
41
+ "height": "height",
42
+ "font_size": "font-size",
43
+ "padding_x": "padding"
44
+ },
45
+ "$note": "设计值:高 24px、圆角 6px、字号 12px、内边距 0 8px(list-page §11.64)"
46
+ }
47
+ }
48
+ }
@@ -1,20 +1,20 @@
1
- {
2
- "$comment": "布局规则 · 断点映射。项目断点由 useResizeObserver(layout/index.vue)与 UnoCSS presetWind3 决定,映射为设计侧抽象断点字段。",
3
- "meta": {
4
- "layer": "layout",
5
- "domain": "breakpoint",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
- },
10
- "tokens": {
11
- "bp_mobile": { "value": 760, "type": "breakpoint", "unit": "px", "desc": "≤760 判定移动端:隐藏侧栏,强制 vertical", "hook": "useResizeObserver → toggle('mobile')" },
12
- "bp_collapse": { "value": 990, "type": "breakpoint", "unit": "px", "desc": "760~990 折叠侧栏", "hook": "useResizeObserver → toggle('desktop', false)" },
13
- "bp_expand": { "value": 990, "type": "breakpoint", "unit": "px", "desc": ">990 展开侧栏(非点击折叠态)", "hook": "useResizeObserver → toggle('desktop', true)" },
14
- "unocss_sm": { "value": 640, "type": "breakpoint", "unit": "px", "desc": "UnoCSS sm 断点(presetWind3)" },
15
- "unocss_md": { "value": 768, "type": "breakpoint", "unit": "px", "desc": "UnoCSS md 断点" },
16
- "unocss_lg": { "value": 1024, "type": "breakpoint", "unit": "px", "desc": "UnoCSS lg 断点" },
17
- "unocss_xl": { "value": 1280, "type": "breakpoint", "unit": "px", "desc": "UnoCSS xl 断点" }
18
- },
19
- "$note": "断点值为只读事实映射:设计侧应适配上述断点输出响应式意图;修改断点属于模板行为变更,不在主题变更集范围内。"
20
- }
1
+ {
2
+ "$comment": "布局规则 · 断点映射。项目断点由 useResizeObserver(layout/index.vue)与 UnoCSS presetWind3 决定,映射为设计侧抽象断点字段。",
3
+ "meta": {
4
+ "layer": "layout",
5
+ "domain": "breakpoint",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
+ },
10
+ "tokens": {
11
+ "bp_mobile": { "value": 760, "type": "breakpoint", "unit": "px", "desc": "≤760 判定移动端:隐藏侧栏,强制 vertical", "hook": "useResizeObserver → toggle('mobile')" },
12
+ "bp_collapse": { "value": 990, "type": "breakpoint", "unit": "px", "desc": "760~990 折叠侧栏", "hook": "useResizeObserver → toggle('desktop', false)" },
13
+ "bp_expand": { "value": 990, "type": "breakpoint", "unit": "px", "desc": ">990 展开侧栏(非点击折叠态)", "hook": "useResizeObserver → toggle('desktop', true)" },
14
+ "unocss_sm": { "value": 640, "type": "breakpoint", "unit": "px", "desc": "UnoCSS sm 断点(presetWind3)" },
15
+ "unocss_md": { "value": 768, "type": "breakpoint", "unit": "px", "desc": "UnoCSS md 断点" },
16
+ "unocss_lg": { "value": 1024, "type": "breakpoint", "unit": "px", "desc": "UnoCSS lg 断点" },
17
+ "unocss_xl": { "value": 1280, "type": "breakpoint", "unit": "px", "desc": "UnoCSS xl 断点" }
18
+ },
19
+ "$note": "断点值为只读事实映射:设计侧应适配上述断点输出响应式意图;修改断点属于模板行为变更,不在主题变更集范围内。"
20
+ }
@@ -1,26 +1,26 @@
1
- {
2
- "$comment": "布局规则 · 壳层几何令牌映射(admin 场景标准布局:vertical/horizontal/mix 三模式共用)。设计侧输出 layout_geometry.* 抽象字段或对 layout.* 语义 ID 的 style.width/height 即可转换。header 顶栏(navbar)、tabs 页签栏、sidebar 侧栏、content 内容区。",
3
- "meta": {
4
- "layer": "layout",
5
- "domain": "shell_geometry",
6
- "version": "1.0.0",
7
- "scene": "admin",
8
- "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
- },
10
- "tokens": {
11
- "header_height": { "token": "--header-height → --vts-bar-height", "type": "size", "default": "48px", "desc": "顶栏高度;改后壳层 padding-top 自动跟随(--layout-header-offset)" },
12
- "tabs_height": { "token": "--tabs-height → --vts-tabs-height", "type": "size", "default": "32px", "desc": "多标签页签栏高度(≠ EP 内容区 Tabs --tabs-item-height)" },
13
- "sidebar_width": { "token": "--sidebar-width", "type": "size", "default": "208px", "desc": "侧栏展开宽度(sidebar.scss mixin 三布局共用)" },
14
- "sidebar_collapsed_width": { "token": "--sidebar-collapsed-width", "type": "size", "default": "64px", "desc": "侧栏折叠宽度" },
15
- "sidebar_collapse_bar_height": { "token": "--sidebar-collapse-bar-height", "type": "size", "default": "40px", "desc": "侧栏底部折叠条高度" },
16
- "layout_footer_height": { "token": "--layout-footer-height", "type": "size", "default": "48px", "desc": "页脚高度" },
17
- "tabs_item_height": { "token": "--tabs-item-height", "type": "size", "default": "46px", "desc": "EP 内容区 Tabs 项高(非壳层页签)" },
18
- "menu_item_height": { "token": "--el-menu-item-height", "type": "size", "default": "40px", "desc": "侧栏菜单项高度" }
19
- },
20
- "layout_modes": {
21
- "$comment": "标准布局枚举:现有三模式即标准布局(platform-config.json Layout 字段)。变体/定制布局按 V3.0 §五 分级派生。",
22
- "vertical": { "desc": "侧边导航(出厂默认)", "switch": "platform-config.json Layout=vertical", "sidebar": true },
23
- "horizontal": { "desc": "顶部导航(菜单入顶栏)", "switch": "Layout=horizontal", "sidebar": false },
24
- "mix": { "desc": "混合(一级菜单侧栏 + 二级顶部)", "switch": "Layout=mix", "sidebar": true }
25
- }
26
- }
1
+ {
2
+ "$comment": "布局规则 · 壳层几何令牌映射(admin 场景标准布局:vertical/horizontal/mix 三模式共用)。设计侧输出 layout_geometry.* 抽象字段或对 layout.* 语义 ID 的 style.width/height 即可转换。header 顶栏(navbar)、tabs 页签栏、sidebar 侧栏、content 内容区。",
3
+ "meta": {
4
+ "layer": "layout",
5
+ "domain": "shell_geometry",
6
+ "version": "1.0.0",
7
+ "scene": "admin",
8
+ "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
+ },
10
+ "tokens": {
11
+ "header_height": { "token": "--header-height → --vts-bar-height", "type": "size", "default": "48px", "desc": "顶栏高度;改后壳层 padding-top 自动跟随(--layout-header-offset)" },
12
+ "tabs_height": { "token": "--tabs-height → --vts-tabs-height", "type": "size", "default": "32px", "desc": "多标签页签栏高度(≠ EP 内容区 Tabs --tabs-item-height)" },
13
+ "sidebar_width": { "token": "--sidebar-width", "type": "size", "default": "208px", "desc": "侧栏展开宽度(sidebar.scss mixin 三布局共用)" },
14
+ "sidebar_collapsed_width": { "token": "--sidebar-collapsed-width", "type": "size", "default": "64px", "desc": "侧栏折叠宽度" },
15
+ "sidebar_collapse_bar_height": { "token": "--sidebar-collapse-bar-height", "type": "size", "default": "40px", "desc": "侧栏底部折叠条高度" },
16
+ "layout_footer_height": { "token": "--layout-footer-height", "type": "size", "default": "48px", "desc": "页脚高度" },
17
+ "tabs_item_height": { "token": "--tabs-item-height", "type": "size", "default": "46px", "desc": "EP 内容区 Tabs 项高(非壳层页签)" },
18
+ "menu_item_height": { "token": "--el-menu-item-height", "type": "size", "default": "40px", "desc": "侧栏菜单项高度" }
19
+ },
20
+ "layout_modes": {
21
+ "$comment": "标准布局枚举:现有三模式即标准布局(platform-config.json Layout 字段)。变体/定制布局按布局分级规则派生。",
22
+ "vertical": { "desc": "侧边导航(出厂默认)", "switch": "platform-config.json Layout=vertical", "sidebar": true },
23
+ "horizontal": { "desc": "顶部导航(菜单入顶栏)", "switch": "Layout=horizontal", "sidebar": false },
24
+ "mix": { "desc": "混合(一级菜单侧栏 + 二级顶部)", "switch": "Layout=mix", "sidebar": true }
25
+ }
26
+ }