@microi.net/cli 5.7.7 → 5.7.9

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 (191) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.workbuddy-plugin/marketplace.json +2 -2
  5. package/.workbuddy-plugin/plugin.json +1 -1
  6. package/LICENSE +21 -21
  7. package/README.md +71 -71
  8. package/assets/build-meta.json +6 -6
  9. package/assets/feature-matrix.json +138 -138
  10. package/assets/logo.svg +4 -4
  11. package/cordis.patch.yml +1 -1
  12. package/package.json +1 -1
  13. package/scripts/mcp-codex-stdio-adapter.js +0 -0
  14. package/scripts/mcp-server.js +102 -101
  15. package/scripts/microi-cli.js +57 -57
  16. package/scripts/microi-codex-broker.js +450 -450
  17. package/scripts/microi-codex-router.js +0 -0
  18. package/scripts/microi-skills.meta.json +366 -366
  19. package/skills/.microi-skills-version.json +2 -2
  20. package/skills/.progressive-disclosure-manifest.json +27 -27
  21. package/skills/README.md +286 -286
  22. package/skills/ai-engine/SKILL.md +265 -265
  23. package/skills/ai-engine/agents/openai.yaml +4 -4
  24. package/skills/ai-platform-governance/SKILL.md +177 -177
  25. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  26. package/skills/app-store/SKILL.md +392 -396
  27. package/skills/app-store/agents/openai.yaml +4 -4
  28. package/skills/business-blueprint/SKILL.md +193 -193
  29. package/skills/datasource-engine/SKILL.md +90 -90
  30. package/skills/datasource-engine/agents/openai.yaml +4 -4
  31. package/skills/dos-orm/references/api-reference.md +229 -229
  32. package/skills/email-engine/SKILL.md +78 -78
  33. package/skills/email-engine/references/v8-email.md +34 -34
  34. package/skills/job-engine/SKILL.md +171 -172
  35. package/skills/job-engine/agents/openai.yaml +4 -4
  36. package/skills/message-notification/SKILL.md +155 -156
  37. package/skills/message-notification/agents/openai.yaml +5 -5
  38. package/skills/message-notification/references/contracts.md +102 -102
  39. package/skills/microi-ai-app-auth.js +652 -652
  40. package/skills/microi-ai-application/SKILL.md +102 -106
  41. package/skills/microi-ai-application/agents/openai.yaml +4 -4
  42. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  43. package/skills/microi-client-frontend/SKILL.md +235 -240
  44. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +144 -144
  45. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +196 -196
  46. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +167 -167
  47. package/skills/microi-codex/SKILL.md +75 -75
  48. package/skills/microi-codex-installer/SKILL.md +225 -223
  49. package/skills/microi-codex-installer/agents/openai.yaml +7 -7
  50. package/skills/microi-datasource-mapping/SKILL.md +107 -111
  51. package/skills/microi-db-schema/SKILL.md +175 -175
  52. package/skills/microi-db-schema/agents/openai.yaml +4 -4
  53. package/skills/microi-db-schema/references/core-tables.md +695 -695
  54. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  55. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  56. package/skills/microi-db-schema/references/schema.md +646 -646
  57. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  58. package/skills/microi-deployment/references/deployment-matrix.md +101 -101
  59. package/skills/microi-docs-coverage/references/capability-map.md +0 -1
  60. package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
  61. package/skills/microi-form-engine/SKILL.md +226 -226
  62. package/skills/microi-form-engine/references/component-catalog.md +216 -216
  63. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  64. package/skills/microi-form-layout/SKILL.md +205 -205
  65. package/skills/microi-form-layout/references/progressive-01-3-/344/270/211/347/247/215/345/210/206/347/273/204/347/232/204/345/255/230/345/202/250/344/270/216/351/205/215/347/275/256.md +235 -235
  66. package/skills/microi-frontend-sdk/SKILL.md +188 -188
  67. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +176 -176
  68. package/skills/microi-left-right-layout/SKILL.md +141 -141
  69. package/skills/microi-microservice/SKILL.md +322 -323
  70. package/skills/microi-microservice/references/runtime-delivery.md +278 -278
  71. package/skills/microi-mobile-app-quality/SKILL.md +181 -181
  72. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +213 -213
  73. package/skills/microi-mobile-app-quality/references/progressive-02-9-/344/270/273/351/242/230/345/210/207/346/215/242/345/277/205/351/241/273/347/234/237/345/256/236/344/270/224/345/205/250/345/261/200/347/224/237/346/225/210.md +128 -128
  74. package/skills/microi-solution-quotation/SKILL.md +78 -78
  75. package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
  76. package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
  77. package/skills/microi-sso/references/acceptance.md +49 -49
  78. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  79. package/skills/microi-sso/references/inbound.md +53 -53
  80. package/skills/microi-sso/references/outbound.md +39 -39
  81. package/skills/microi-system-delivery/SKILL.md +134 -134
  82. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +193 -193
  83. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +189 -189
  84. package/skills/microi-ui/SKILL.md +174 -174
  85. package/skills/microi-ui/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/234/272/346/231/257/350/223/235/345/233/276.md +183 -183
  86. package/skills/microi-uniapp-frontend/SKILL.md +193 -193
  87. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +225 -225
  88. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +154 -154
  89. package/skills/microi.v8.js +1921 -1921
  90. package/skills/module-engine/SKILL.md +237 -250
  91. package/skills/module-engine/references/module-config.md +204 -204
  92. package/skills/ocr-engine/SKILL.md +113 -113
  93. package/skills/ocr-engine/agents/openai.yaml +4 -4
  94. package/skills/page-engine/SKILL.md +180 -191
  95. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +234 -234
  96. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +60 -60
  97. package/skills/performance-testing/SKILL.md +221 -221
  98. package/skills/playwright-e2e/SKILL.md +197 -197
  99. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +173 -173
  100. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +183 -183
  101. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
  102. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
  103. package/skills/print-engine/SKILL.md +259 -259
  104. package/skills/production-readonly-audit/SKILL.md +41 -41
  105. package/skills/report-engine/SKILL.md +71 -71
  106. package/skills/report-engine/agents/openai.yaml +4 -4
  107. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
  108. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
  109. package/skills/search-engine/SKILL.md +75 -75
  110. package/skills/search-engine/agents/openai.yaml +4 -4
  111. package/skills/spider-engine/SKILL.md +190 -190
  112. package/skills/system-observability/SKILL.md +238 -238
  113. package/skills/system-observability/references/memory-incident-triage.md +70 -70
  114. package/skills/translate-engine/SKILL.md +140 -140
  115. package/skills/translate-engine/agents/openai.yaml +4 -4
  116. package/skills/ui-design/SKILL.md +191 -191
  117. package/skills/ui-design/assets/templates/MCI-DESIGN.md +198 -198
  118. package/skills/ui-design/references/design-pattern-library.md +184 -184
  119. package/skills/ui-design/references/mci-design-contract.md +163 -163
  120. package/skills/ui-design/references/progressive-01-/351/242/234/350/211/262/344/275/223/347/263/273-css-variables-/346/224/257/346/214/201/344/270/273/351/242/230/345/210/207/346/215/242.md +218 -218
  121. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +137 -137
  122. package/skills/ui-design/references/progressive-03-/345/212/250/346/225/210/350/247/204/350/214/203-/344/270/260/345/257/214/344/275/206/344/270/215/345/215/241.md +235 -235
  123. package/skills/ui-design/references/progressive-04-/347/273/204/344/273/266/351/243/216/346/240/274/351/200/237/346/237/245.md +152 -152
  124. package/skills/ui-design/references/progressive-05-/347/247/273/345/212/250/347/253/257/344/270/223/347/224/250/350/247/204/350/214/203.md +238 -238
  125. package/skills/ui-design/references/progressive-06-/344/270/273/351/242/230/345/210/207/346/215/242/345/256/236/347/216/260.md +194 -194
  126. package/skills/ui-design/references/progressive-07-/351/200/237/346/237/245-/344/273/216/345/244/264/346/220/255/345/273/272/344/270/200/344/270/252/347/247/273/345/212/250/347/253/257/351/241/265/351/235/242.md +207 -207
  127. package/skills/ui-design/references/progressive-08-/350/241/250/345/215/225/345/210/206/347/273/204/350/247/204/350/214/203-tabs-vs-collapsegroup-/345/274/272/345/210/266.md +117 -117
  128. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  129. package/skills/unity-integration/SKILL.md +155 -155
  130. package/skills/unity-integration/agents/openai.yaml +4 -4
  131. package/skills/unity-integration/references/ai-app-delivery.md +103 -103
  132. package/skills/unity-integration/references/sdk-api.md +82 -82
  133. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  134. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  135. package/skills/v8-cache-pattern/SKILL.md +306 -306
  136. package/skills/v8-crud-api/SKILL.md +175 -175
  137. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +226 -226
  138. package/skills/v8-crud-api/references/progressive-02-where-/346/235/241/344/273/266/350/257/255/346/263/225/351/200/237/346/237/245.md +49 -49
  139. package/skills/v8-debugging/SKILL.md +284 -284
  140. package/skills/v8-explorer-tree/SKILL.md +228 -228
  141. package/skills/v8-export-import/SKILL.md +209 -209
  142. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +211 -211
  143. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
  144. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +42 -42
  145. package/skills/v8-file-upload/SKILL.md +256 -263
  146. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +101 -101
  147. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +150 -150
  148. package/skills/v8-formengine-http/SKILL.md +219 -219
  149. package/skills/v8-frontend-events/SKILL.md +178 -178
  150. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  151. package/skills/v8-frontend-events/references/bluetooth-print.md +246 -246
  152. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
  153. package/skills/v8-http-integration/SKILL.md +182 -182
  154. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
  155. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +44 -44
  156. package/skills/v8-image-processing/SKILL.md +190 -190
  157. package/skills/v8-image-processing/agents/openai.yaml +4 -4
  158. package/skills/v8-image-processing/references/api-reference.md +623 -623
  159. package/skills/v8-menu-buttons/SKILL.md +180 -180
  160. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +222 -222
  161. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +228 -228
  162. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +104 -104
  163. package/skills/v8-mongodb/SKILL.md +192 -192
  164. package/skills/v8-mq-mqtt/SKILL.md +175 -176
  165. package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
  166. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
  167. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
  168. package/skills/v8-saas-multi-tenant/SKILL.md +219 -219
  169. package/skills/v8-security/SKILL.md +168 -168
  170. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +198 -198
  171. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +158 -158
  172. package/skills/v8-sql-query/SKILL.md +302 -302
  173. package/skills/v8-table-event/SKILL.md +144 -144
  174. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +197 -197
  175. package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +46 -46
  176. package/skills/v8-tcp-integration/SKILL.md +147 -147
  177. package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
  178. package/skills/v8-template-engine/SKILL.md +167 -167
  179. package/skills/v8-utilities/SKILL.md +90 -90
  180. package/skills/v8-utilities/references/client-api-index.md +143 -143
  181. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  182. package/skills/v8-utilities/references/server-api-index.md +188 -188
  183. package/skills/v8-workflow/SKILL.md +216 -243
  184. package/skills/v8-workflow/references/progressive-01-/350/212/202/347/202/271/345/274/200/345/247/213-v8-/344/272/213/344/273/266.md +180 -180
  185. package/skills/vision-engine/SKILL.md +159 -159
  186. package/skills/vision-engine/agents/openai.yaml +4 -4
  187. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  188. package/skills/workspace-conventions/SKILL.md +261 -261
  189. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +208 -208
  190. package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +216 -216
  191. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +27 -27
@@ -1,235 +1,235 @@
1
- # ui-design 详细参考 3
2
-
3
- > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
-
5
- <!-- microi-progressive:chunk id=ui-design-012 sha256=d59ae14c3991bb27949dcdcc0df3114ecbd1e627d6a69f5f78d1247ea2e02cd6 -->
6
- ## 动效规范(丰富但不卡)
7
-
8
- ### 性能铁律
9
-
10
- 1. **只用 `transform` 和 `opacity` 做动画** — 走 GPU 合成层,不触发重排重绘
11
- 2. **禁止动画 `width/height/top/left/margin/padding`** — 会触发 Layout,导致卡顿
12
- 3. **禁止动画 `box-shadow`** — 改用伪元素 `::after` 的 `opacity` 切换预设阴影
13
- 4. **`will-change` 不要滥用** — 只在动画激活时添加,静态元素禁止使用
14
- 5. **动画时长控制**:微交互 150-250ms,转场 300-400ms,装饰动效 600ms-2s
15
- 6. **使用 `prefers-reduced-motion` 媒体查询**提供无动画回退
16
- 7. **移动端额外限制**:禁用 `backdrop-filter: blur()` 大面积使用(中低端机型严重掉帧),最多用于小型胶囊/标签
17
- 8. **移动端装饰背景**:优先使用结构化渐变、网格、细线、扫光和内容图片;禁用 Canvas 装饰点、密集散点、离散光球、模糊色块堆叠。
18
-
19
- ### Timing Functions
20
-
21
- ```css
22
- :root {
23
- --mci-ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
24
- --mci-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
25
- --mci-ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
26
- --mci-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
27
-
28
- --mci-duration-fast: 150ms;
29
- --mci-duration-base: 250ms;
30
- --mci-duration-slow: 400ms;
31
- --mci-duration-decorative: 800ms;
32
- }
33
- ```
34
-
35
- ### 标准动效库
36
-
37
- #### 1. 卡片悬浮 / 按下(高性能阴影切换)
38
-
39
- ```scss
40
- .mci-card {
41
- position: relative;
42
- border-radius: var(--mci-radius-xl);
43
- background: var(--mci-bg-card);
44
- box-shadow: var(--mci-shadow-card);
45
- transition: transform var(--mci-duration-base) var(--mci-ease-out);
46
-
47
- &::after {
48
- content: '';
49
- position: absolute;
50
- inset: 0;
51
- border-radius: inherit;
52
- box-shadow: var(--mci-shadow-card-hover);
53
- opacity: 0;
54
- transition: opacity var(--mci-duration-base) var(--mci-ease-out);
55
- pointer-events: none;
56
- z-index: -1;
57
- }
58
-
59
- /* PC: hover */
60
- @media (hover: hover) {
61
- &:hover {
62
- transform: translateY(-4px) scale(1.01);
63
- &::after { opacity: 1; }
64
- }
65
- }
66
-
67
- /* 移动端:active 按压反馈 */
68
- &:active {
69
- transform: scale(0.98);
70
- transition-duration: var(--mci-duration-fast);
71
- }
72
- }
73
- ```
74
-
75
- #### 2. 淡入上浮(列表/卡片进入)
76
-
77
- ```scss
78
- .mci-fade-up-enter {
79
- opacity: 0;
80
- transform: translateY(20px);
81
- }
82
- .mci-fade-up-enter-active {
83
- animation: mciFadeUp var(--mci-duration-slow) var(--mci-ease-out) forwards;
84
- }
85
-
86
- @keyframes mciFadeUp {
87
- to {
88
- opacity: 1;
89
- transform: translateY(0);
90
- }
91
- }
92
-
93
- /* 列表交错进入 */
94
- .mci-stagger-item {
95
- opacity: 0;
96
- transform: translateY(16px);
97
- animation: mciFadeUp var(--mci-duration-slow) var(--mci-ease-out) forwards;
98
- animation-delay: calc(var(--mci-index, 0) * 60ms);
99
- }
100
- ```
101
-
102
- #### 3. 按钮渐变扫光
103
-
104
- ```scss
105
- .mci-btn-glow {
106
- position: relative;
107
- overflow: hidden;
108
- background: var(--mci-gradient-primary);
109
- border: none;
110
- border-radius: var(--mci-radius-md);
111
- color: var(--mci-text-on-primary);
112
- box-shadow: var(--mci-shadow-button);
113
- transition: transform var(--mci-duration-fast) var(--mci-ease-out);
114
-
115
- &::before {
116
- content: '';
117
- position: absolute;
118
- top: 0;
119
- left: -100%;
120
- width: 100%;
121
- height: 100%;
122
- background: linear-gradient(
123
- 90deg,
124
- transparent,
125
- rgba(255, 255, 255, 0.2),
126
- transparent
127
- );
128
- }
129
-
130
- @media (hover: hover) {
131
- &:hover {
132
- transform: translateY(-2px);
133
- &::before {
134
- left: 100%;
135
- transition: left 0.5s var(--mci-ease-smooth);
136
- }
137
- }
138
- }
139
-
140
- &:active { transform: scale(0.97); }
141
- }
142
- ```
143
-
144
- #### 4. 焦点边框扫光
145
-
146
- ```scss
147
- .mci-focus-border {
148
- position: relative;
149
- border: 1px solid var(--mci-border-glow);
150
- border-radius: var(--mci-radius-lg);
151
- overflow: hidden;
152
-
153
- &::before {
154
- content: '';
155
- position: absolute;
156
- inset: 0;
157
- border-radius: inherit;
158
- background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
159
- transform: translateX(-110%) skewX(-18deg);
160
- animation: mciFocusSweep 3.6s ease-in-out infinite;
161
- pointer-events: none;
162
- }
163
- }
164
-
165
- @keyframes mciFocusSweep {
166
- 0%, 42% { transform: translateX(-110%) skewX(-18deg); opacity: 0; }
167
- 58% { opacity: .85; }
168
- 100% { transform: translateX(120%) skewX(-18deg); opacity: 0; }
169
- }
170
- ```
171
-
172
- #### 5. 玻璃拟态容器(PC 用,移动端慎用)
173
-
174
- ```scss
175
- .mci-glass {
176
- background: var(--mci-bg-glass);
177
- backdrop-filter: blur(12px) saturate(1.5);
178
- -webkit-backdrop-filter: blur(12px) saturate(1.5);
179
- border: 1px solid var(--mci-bg-glass-border);
180
- border-radius: var(--mci-radius-xl);
181
- box-shadow: var(--mci-shadow-md);
182
- }
183
-
184
- /* 移动端降级:用半透明色块代替模糊 */
185
- @media (max-width: 768px) {
186
- .mci-glass {
187
- background: var(--mci-bg-elevated);
188
- backdrop-filter: none;
189
- -webkit-backdrop-filter: none;
190
- }
191
- }
192
- ```
193
-
194
- #### 6. 无障碍动效回退
195
-
196
- ```scss
197
- @media (prefers-reduced-motion: reduce) {
198
- *, *::before, *::after {
199
- animation-duration: 0.01ms !important;
200
- animation-iteration-count: 1 !important;
201
- transition-duration: 0.01ms !important;
202
- }
203
- }
204
- ```
205
-
206
- ---
207
-
208
- <!-- /microi-progressive:chunk -->
209
- <!-- microi-progressive:chunk id=ui-design-013 sha256=385528713388a28e0182e2df9e2ed828ddb7cccaf7a3a5e78354f46a588f6f1c -->
210
- ## Vue 3 过渡动画
211
-
212
- ```scss
213
- /* 淡入上浮 */
214
- .mci-up-enter-active { transition: all var(--mci-duration-slow) var(--mci-ease-out); }
215
- .mci-up-leave-active { transition: all var(--mci-duration-base) var(--mci-ease-smooth); }
216
- .mci-up-enter-from { opacity: 0; transform: translateY(20px); }
217
- .mci-up-leave-to { opacity: 0; transform: translateY(-10px); }
218
-
219
- /* 缩放弹出 */
220
- .mci-scale-enter-active { transition: all var(--mci-duration-base) var(--mci-ease-spring); }
221
- .mci-scale-leave-active { transition: all var(--mci-duration-fast) var(--mci-ease-smooth); }
222
- .mci-scale-enter-from { opacity: 0; transform: scale(0.92); }
223
- .mci-scale-leave-to { opacity: 0; transform: scale(0.95); }
224
-
225
- /* 列表交错 */
226
- .mci-list-move,
227
- .mci-list-enter-active { transition: all var(--mci-duration-slow) var(--mci-ease-out); }
228
- .mci-list-leave-active { transition: all var(--mci-duration-base) var(--mci-ease-smooth); position: absolute; }
229
- .mci-list-enter-from { opacity: 0; transform: translateX(-20px); }
230
- .mci-list-leave-to { opacity: 0; transform: translateX(20px); }
231
- ```
232
-
233
- ---
234
-
235
- <!-- /microi-progressive:chunk -->
1
+ # ui-design 详细参考 3
2
+
3
+ > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
+
5
+ <!-- microi-progressive:chunk id=ui-design-012 sha256=d59ae14c3991bb27949dcdcc0df3114ecbd1e627d6a69f5f78d1247ea2e02cd6 -->
6
+ ## 动效规范(丰富但不卡)
7
+
8
+ ### 性能铁律
9
+
10
+ 1. **只用 `transform` 和 `opacity` 做动画** — 走 GPU 合成层,不触发重排重绘
11
+ 2. **禁止动画 `width/height/top/left/margin/padding`** — 会触发 Layout,导致卡顿
12
+ 3. **禁止动画 `box-shadow`** — 改用伪元素 `::after` 的 `opacity` 切换预设阴影
13
+ 4. **`will-change` 不要滥用** — 只在动画激活时添加,静态元素禁止使用
14
+ 5. **动画时长控制**:微交互 150-250ms,转场 300-400ms,装饰动效 600ms-2s
15
+ 6. **使用 `prefers-reduced-motion` 媒体查询**提供无动画回退
16
+ 7. **移动端额外限制**:禁用 `backdrop-filter: blur()` 大面积使用(中低端机型严重掉帧),最多用于小型胶囊/标签
17
+ 8. **移动端装饰背景**:优先使用结构化渐变、网格、细线、扫光和内容图片;禁用 Canvas 装饰点、密集散点、离散光球、模糊色块堆叠。
18
+
19
+ ### Timing Functions
20
+
21
+ ```css
22
+ :root {
23
+ --mci-ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
24
+ --mci-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
25
+ --mci-ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
26
+ --mci-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
27
+
28
+ --mci-duration-fast: 150ms;
29
+ --mci-duration-base: 250ms;
30
+ --mci-duration-slow: 400ms;
31
+ --mci-duration-decorative: 800ms;
32
+ }
33
+ ```
34
+
35
+ ### 标准动效库
36
+
37
+ #### 1. 卡片悬浮 / 按下(高性能阴影切换)
38
+
39
+ ```scss
40
+ .mci-card {
41
+ position: relative;
42
+ border-radius: var(--mci-radius-xl);
43
+ background: var(--mci-bg-card);
44
+ box-shadow: var(--mci-shadow-card);
45
+ transition: transform var(--mci-duration-base) var(--mci-ease-out);
46
+
47
+ &::after {
48
+ content: '';
49
+ position: absolute;
50
+ inset: 0;
51
+ border-radius: inherit;
52
+ box-shadow: var(--mci-shadow-card-hover);
53
+ opacity: 0;
54
+ transition: opacity var(--mci-duration-base) var(--mci-ease-out);
55
+ pointer-events: none;
56
+ z-index: -1;
57
+ }
58
+
59
+ /* PC: hover */
60
+ @media (hover: hover) {
61
+ &:hover {
62
+ transform: translateY(-4px) scale(1.01);
63
+ &::after { opacity: 1; }
64
+ }
65
+ }
66
+
67
+ /* 移动端:active 按压反馈 */
68
+ &:active {
69
+ transform: scale(0.98);
70
+ transition-duration: var(--mci-duration-fast);
71
+ }
72
+ }
73
+ ```
74
+
75
+ #### 2. 淡入上浮(列表/卡片进入)
76
+
77
+ ```scss
78
+ .mci-fade-up-enter {
79
+ opacity: 0;
80
+ transform: translateY(20px);
81
+ }
82
+ .mci-fade-up-enter-active {
83
+ animation: mciFadeUp var(--mci-duration-slow) var(--mci-ease-out) forwards;
84
+ }
85
+
86
+ @keyframes mciFadeUp {
87
+ to {
88
+ opacity: 1;
89
+ transform: translateY(0);
90
+ }
91
+ }
92
+
93
+ /* 列表交错进入 */
94
+ .mci-stagger-item {
95
+ opacity: 0;
96
+ transform: translateY(16px);
97
+ animation: mciFadeUp var(--mci-duration-slow) var(--mci-ease-out) forwards;
98
+ animation-delay: calc(var(--mci-index, 0) * 60ms);
99
+ }
100
+ ```
101
+
102
+ #### 3. 按钮渐变扫光
103
+
104
+ ```scss
105
+ .mci-btn-glow {
106
+ position: relative;
107
+ overflow: hidden;
108
+ background: var(--mci-gradient-primary);
109
+ border: none;
110
+ border-radius: var(--mci-radius-md);
111
+ color: var(--mci-text-on-primary);
112
+ box-shadow: var(--mci-shadow-button);
113
+ transition: transform var(--mci-duration-fast) var(--mci-ease-out);
114
+
115
+ &::before {
116
+ content: '';
117
+ position: absolute;
118
+ top: 0;
119
+ left: -100%;
120
+ width: 100%;
121
+ height: 100%;
122
+ background: linear-gradient(
123
+ 90deg,
124
+ transparent,
125
+ rgba(255, 255, 255, 0.2),
126
+ transparent
127
+ );
128
+ }
129
+
130
+ @media (hover: hover) {
131
+ &:hover {
132
+ transform: translateY(-2px);
133
+ &::before {
134
+ left: 100%;
135
+ transition: left 0.5s var(--mci-ease-smooth);
136
+ }
137
+ }
138
+ }
139
+
140
+ &:active { transform: scale(0.97); }
141
+ }
142
+ ```
143
+
144
+ #### 4. 焦点边框扫光
145
+
146
+ ```scss
147
+ .mci-focus-border {
148
+ position: relative;
149
+ border: 1px solid var(--mci-border-glow);
150
+ border-radius: var(--mci-radius-lg);
151
+ overflow: hidden;
152
+
153
+ &::before {
154
+ content: '';
155
+ position: absolute;
156
+ inset: 0;
157
+ border-radius: inherit;
158
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
159
+ transform: translateX(-110%) skewX(-18deg);
160
+ animation: mciFocusSweep 3.6s ease-in-out infinite;
161
+ pointer-events: none;
162
+ }
163
+ }
164
+
165
+ @keyframes mciFocusSweep {
166
+ 0%, 42% { transform: translateX(-110%) skewX(-18deg); opacity: 0; }
167
+ 58% { opacity: .85; }
168
+ 100% { transform: translateX(120%) skewX(-18deg); opacity: 0; }
169
+ }
170
+ ```
171
+
172
+ #### 5. 玻璃拟态容器(PC 用,移动端慎用)
173
+
174
+ ```scss
175
+ .mci-glass {
176
+ background: var(--mci-bg-glass);
177
+ backdrop-filter: blur(12px) saturate(1.5);
178
+ -webkit-backdrop-filter: blur(12px) saturate(1.5);
179
+ border: 1px solid var(--mci-bg-glass-border);
180
+ border-radius: var(--mci-radius-xl);
181
+ box-shadow: var(--mci-shadow-md);
182
+ }
183
+
184
+ /* 移动端降级:用半透明色块代替模糊 */
185
+ @media (max-width: 768px) {
186
+ .mci-glass {
187
+ background: var(--mci-bg-elevated);
188
+ backdrop-filter: none;
189
+ -webkit-backdrop-filter: none;
190
+ }
191
+ }
192
+ ```
193
+
194
+ #### 6. 无障碍动效回退
195
+
196
+ ```scss
197
+ @media (prefers-reduced-motion: reduce) {
198
+ *, *::before, *::after {
199
+ animation-duration: 0.01ms !important;
200
+ animation-iteration-count: 1 !important;
201
+ transition-duration: 0.01ms !important;
202
+ }
203
+ }
204
+ ```
205
+
206
+ ---
207
+
208
+ <!-- /microi-progressive:chunk -->
209
+ <!-- microi-progressive:chunk id=ui-design-013 sha256=385528713388a28e0182e2df9e2ed828ddb7cccaf7a3a5e78354f46a588f6f1c -->
210
+ ## Vue 3 过渡动画
211
+
212
+ ```scss
213
+ /* 淡入上浮 */
214
+ .mci-up-enter-active { transition: all var(--mci-duration-slow) var(--mci-ease-out); }
215
+ .mci-up-leave-active { transition: all var(--mci-duration-base) var(--mci-ease-smooth); }
216
+ .mci-up-enter-from { opacity: 0; transform: translateY(20px); }
217
+ .mci-up-leave-to { opacity: 0; transform: translateY(-10px); }
218
+
219
+ /* 缩放弹出 */
220
+ .mci-scale-enter-active { transition: all var(--mci-duration-base) var(--mci-ease-spring); }
221
+ .mci-scale-leave-active { transition: all var(--mci-duration-fast) var(--mci-ease-smooth); }
222
+ .mci-scale-enter-from { opacity: 0; transform: scale(0.92); }
223
+ .mci-scale-leave-to { opacity: 0; transform: scale(0.95); }
224
+
225
+ /* 列表交错 */
226
+ .mci-list-move,
227
+ .mci-list-enter-active { transition: all var(--mci-duration-slow) var(--mci-ease-out); }
228
+ .mci-list-leave-active { transition: all var(--mci-duration-base) var(--mci-ease-smooth); position: absolute; }
229
+ .mci-list-enter-from { opacity: 0; transform: translateX(-20px); }
230
+ .mci-list-leave-to { opacity: 0; transform: translateX(20px); }
231
+ ```
232
+
233
+ ---
234
+
235
+ <!-- /microi-progressive:chunk -->