uni.scss 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. /**
  2. * ============================================================
  3. * 浠艾福 (XAF) Design System — UniApp SCSS Variables
  4. * ============================================================
  5. *
  6. * 色彩体系: 品牌橙 + 珊瑚暖色 (活力关怀 + 家庭温暖)
  7. * 风格: 极简扁平圆角 (全角色统一)
  8. * Logo配色参考: #6BB9F0 (中蓝) / #D6EAF8 (浅蓝) / ❤白色心形
  9. *
  10. * 设计原则:
  11. * - 扁平圆角:全端统一,无Claymorphism
  12. * - 品牌橙 #F97316 为主色:与 pages.json tabBar.selectedColor 一致(线上真值)
  13. * - 珊瑚暖色为点缀:保留"家庭温暖"和"关怀"
  14. * - 心形符号:品牌识别元素
  15. * - 减少装饰动效,聚焦内容可读性
  16. *
  17. * v3.1 — 2026-10-18 品牌令牌收敛:$uni-primary 系由旧蓝 #5B9BD5 翻转为品牌橙
  18. * (旧蓝与 tabBar.selectedColor / 线上实际主色不一致,详见 §12 背景说明)
  19. * v3.2 — 2026-10-18 维度生态共享令牌:新增 §16(B 批 mind-detail 15 兄弟页收敛)
  20. * ============================================================
  21. */
  22. // ============================================================
  23. // 1. 品牌色彩 (Brand Colors)
  24. // ============================================================
  25. // 主色调 - 品牌橙(2026-10 令牌收敛:原 #5B9BD5 旧蓝与线上实际主色不一致,已翻转;
  26. // 现值与 $brand-primary / tabBar.selectedColor 三方一致,见 §12)
  27. $uni-primary: #F97316; // 品牌主色
  28. $uni-primary-light: #FB923C; // 浅橙
  29. $uni-primary-dark: #EA580C; // 深橙
  30. $uni-primary-pale: #FFF7ED; // 极浅橙 (品牌淡底)
  31. // 辅助暖色 - 珊瑚粉 (家庭温暖)
  32. $uni-warm: #F08A7A; // 心形暖色 - 保留"关爱"感
  33. $uni-warm-light: #F4B0A5;
  34. $uni-warm-dark: #E06A58;
  35. // 语义色 (Semantic)
  36. // ---- Material 兜底色板族(全库 ≥2 页复用的 Material 值,统一一套命名:色相 × 档位)----
  37. // 档位约定:tint 极浅底 / light 亮档(渐变伴生)/ base 主色 / strong 深文字
  38. // 绿(成功 / 健康 / 选中态)
  39. $mat-green: #4CAF50; // green-500 主色(33 文件;原 $uni-success)
  40. $mat-green-light: #81C784; // green-300 亮档(5 文件;原 $uni-success-light)
  41. $mat-green-light-2:#66BB6A; // green-400 亮档·副档(5 文件;同渐变族不同档)
  42. $mat-green-tint: #E8F5E9; // green-50 极浅底(38 文件)
  43. $mat-green-strong: #2E7D32; // green-800 深文字(25 文件)
  44. $mat-green-base-2: #43A047; // green-600 深主色(5 文件;vs $mat-green #4CAF50 green-500)
  45. // 琥珀(警示 / 提示 / 选中浅底)
  46. $mat-amber-tint: #FFF8E1; // amber-50 极浅底(14 文件)
  47. $mat-amber-strong: #F57F17; // amber-800 深文字(6 文件;vs $status-warning-strong #92400E 同角色不同值)
  48. // 橙(警示文字)
  49. $mat-orange-strong:#E65100; // orange-900 深文字(24 文件)
  50. // 蓝(信息态)
  51. $mat-blue-tint: #E3F2FD; // blue-50 极浅底(29 文件)
  52. $mat-blue-light: #BBDEFB; // blue-100 浅档(4 文件)
  53. $mat-blue-light-2: #64B5F6; // blue-300 亮档·副档(1 文件)
  54. $mat-blue-strong: #1565C0; // blue-800 深文字(17 文件)
  55. $uni-warning: #FFB74D;
  56. $uni-warning-light: #FFD54F;
  57. $uni-error: #EF5350;
  58. $uni-error-light: #E57373;
  59. $uni-info: #0EA5E9; // 信息蓝(2026-10 起独立于品牌色,不再复用主色)
  60. // 中性色 (Neutral) — 冷调中性,匹配蓝色系
  61. $uni-bg-color: #F5F9FC; // 极浅蓝灰背景
  62. $uni-bg-color-grey: #EDF2F7; // 浅灰蓝
  63. $uni-bg-color-dark: #E2E8F0; // 灰蓝
  64. $uni-surface: #FFFFFF; // 卡片/表面
  65. $uni-border-color: #CBD5E1; // 冷灰边框
  66. $uni-border-color-light: #E2E8F0;
  67. $uni-text-color: #1E293B; // 深蓝灰 (正文)
  68. $uni-text-color-secondary: #64748B; // 次要文字
  69. $uni-text-color-grey: #94A3B8; // 灰色文字
  70. $uni-text-color-placeholder: #94A3B8;
  71. $uni-text-color-inverse: #FFFFFF;
  72. // ============================================================
  73. // 2. 字体系统 (Typography)
  74. // ============================================================
  75. // 字体栈 - 小程序不支持自定义字体
  76. $uni-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
  77. 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
  78. 'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif;
  79. $uni-font-family-display: $uni-font-family;
  80. $uni-font-family-mono: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
  81. // 字号
  82. $uni-font-size-xs: 20rpx;
  83. $uni-font-size-sm: 24rpx;
  84. $uni-font-size-base: 28rpx;
  85. $uni-font-size-lg: 32rpx;
  86. $uni-font-size-xl: 36rpx;
  87. $uni-font-size-2xl: 44rpx;
  88. $uni-font-size-3xl: 52rpx;
  89. // 字重
  90. $uni-font-weight-normal: 400;
  91. $uni-font-weight-medium: 500;
  92. $uni-font-weight-bold: 600;
  93. $uni-font-weight-black: 700;
  94. // ============================================================
  95. // 3. 间距系统 (Spacing)
  96. // ============================================================
  97. $uni-spacing-xs: 8rpx;
  98. $uni-spacing-sm: 16rpx;
  99. $uni-spacing-md: 24rpx;
  100. $uni-spacing-lg: 32rpx;
  101. $uni-spacing-xl: 48rpx;
  102. $uni-spacing-2xl: 64rpx;
  103. $uni-page-padding: 32rpx;
  104. // ============================================================
  105. // 4. 圆角 (Border Radius)
  106. // ============================================================
  107. $uni-radius-sm: 10rpx;
  108. $uni-radius-md: 16rpx;
  109. $uni-radius-lg: 24rpx;
  110. $uni-radius-xl: 32rpx;
  111. $uni-radius-full: 50%;
  112. $uni-radius-round: 9999rpx;
  113. // ============================================================
  114. // 5. 阴影 (Shadows) — 极简风格,轻微阴影
  115. // ============================================================
  116. $uni-shadow-sm: 0 2rpx 8rpx rgba(249, 115, 22, 0.06);
  117. $uni-shadow-md: 0 4rpx 16rpx rgba(249, 115, 22, 0.08);
  118. $uni-shadow-lg: 0 8rpx 32rpx rgba(249, 115, 22, 0.10);
  119. $uni-shadow-inner: inset 0 1rpx 4rpx rgba(0, 0, 0, 0.04);
  120. // ============================================================
  121. // 6. 动画 (Animations) — 节制使用
  122. // ============================================================
  123. $uni-transition-fast: 0.15s ease;
  124. $uni-transition-base: 0.25s ease;
  125. $uni-transition-slow: 0.3s ease;
  126. // ============================================================
  127. // 7. CSS 自定义属性
  128. // ============================================================
  129. :root {
  130. // 品牌色(2026-10 由旧蓝 #5B9BD5 系翻转为品牌橙,与 §1 SCSS 变量同值;
  131. // 注意 mp-weixin 对 :root 支持不稳,页面实际渲染以各处 var() 兜底值为准)
  132. --color-primary: #F97316;
  133. --color-primary-light: #FB923C;
  134. --color-primary-dark: #EA580C;
  135. --color-primary-pale: #FFF7ED;
  136. --color-warm: #F08A7A;
  137. --color-warm-light: #F4B0A5;
  138. // 语义色
  139. --color-success: #4CAF50;
  140. --color-warning: #FFB74D;
  141. --color-error: #EF5350;
  142. // 中性色
  143. --bg: #F5F9FC;
  144. --bg-grey: #EDF2F7;
  145. --surface: #FFFFFF;
  146. --text: #1E293B;
  147. --text-secondary: #64748B;
  148. --muted: #94A3B8;
  149. --border: #CBD5E1;
  150. --border-light: #E2E8F0;
  151. // 间距
  152. --space-xs: 4px;
  153. --space-sm: 8px;
  154. --space-md: 12px;
  155. --space-lg: 16px;
  156. --space-xl: 24px;
  157. --space-page: 16px;
  158. // 圆角
  159. --radius-sm: 5px;
  160. --radius-md: 8px;
  161. --radius-lg: 12px;
  162. --radius-xl: 16px;
  163. // 阴影 — 极简风格(色调随品牌色翻转为橙,2026-10)
  164. --shadow-sm: 0 1px 4px rgba(249, 115, 22, 0.06);
  165. --shadow-md: 0 2px 8px rgba(249, 115, 22, 0.08);
  166. --shadow-lg: 0 4px 16px rgba(249, 115, 22, 0.10);
  167. }
  168. // ============================================================
  169. // 8. 实用工具类
  170. // ============================================================
  171. // --- 文字色彩 ---
  172. .text-primary { color: $uni-primary; }
  173. .text-warm { color: $uni-warm; }
  174. .text-success { color: $mat-green; }
  175. .text-warning { color: $uni-warning; }
  176. .text-error { color: $uni-error; }
  177. .text-muted { color: $uni-text-color-grey; }
  178. .text-secondary { color: $uni-text-color-secondary; }
  179. .text-bold { font-weight: $uni-font-weight-bold; }
  180. .text-black { font-weight: $uni-font-weight-black; }
  181. .text-center { text-align: center; }
  182. // 正文工具类跟随用户字号系数(--font-scale);使用方式:在根节点 :style="{ '--font-scale': fontScale }"
  183. .text-sm { font-size: calc($uni-font-size-sm * var(--font-scale, 1)); }
  184. .text-base { font-size: calc($uni-font-size-base * var(--font-scale, 1)); }
  185. .text-lg { font-size: calc($uni-font-size-lg * var(--font-scale, 1)); }
  186. .text-xl { font-size: calc($uni-font-size-xl * var(--font-scale, 1)); }
  187. .text-2xl { font-size: calc($uni-font-size-2xl * var(--font-scale, 1)); }
  188. .text-3xl { font-size: calc($uni-font-size-3xl * var(--font-scale, 1)); }
  189. // --- 背景 ---
  190. .bg-primary { background-color: $uni-primary; }
  191. .bg-warm { background-color: $uni-warm; }
  192. .bg-surface { background-color: $uni-surface; }
  193. .bg-page { background-color: $uni-bg-color; }
  194. // --- 圆角 ---
  195. .radius-sm { border-radius: $uni-radius-sm; }
  196. .radius-md { border-radius: $uni-radius-md; }
  197. .radius-lg { border-radius: $uni-radius-lg; }
  198. .radius-xl { border-radius: $uni-radius-xl; }
  199. // --- 弹性布局 ---
  200. .flex { display: flex; }
  201. .flex-col { flex-direction: column; }
  202. .flex-row { flex-direction: row; }
  203. .flex-wrap { flex-wrap: wrap; }
  204. .flex-1 { flex: 1; }
  205. .items-center { align-items: center; }
  206. .justify-center { justify-content: center; }
  207. .justify-between { justify-content: space-between; }
  208. .justify-around { justify-content: space-around; }
  209. .gap-xs { gap: $uni-spacing-xs; }
  210. .gap-sm { gap: $uni-spacing-sm; }
  211. .gap-md { gap: $uni-spacing-md; }
  212. .gap-lg { gap: $uni-spacing-lg; }
  213. // --- 间距 ---
  214. .m-0 { margin: 0; }
  215. .p-0 { padding: 0; }
  216. .p-sm { padding: $uni-spacing-sm; }
  217. .p-md { padding: $uni-spacing-md; }
  218. .p-lg { padding: $uni-spacing-lg; }
  219. .mt-sm { margin-top: $uni-spacing-sm; }
  220. .mt-md { margin-top: $uni-spacing-md; }
  221. .mt-lg { margin-top: $uni-spacing-lg; }
  222. .mb-sm { margin-bottom: $uni-spacing-sm; }
  223. .mb-md { margin-bottom: $uni-spacing-md; }
  224. .mb-lg { margin-bottom: $uni-spacing-lg; }
  225. // --- 其他 ---
  226. .w-full { width: 100%; }
  227. .h-full { height: 100%; }
  228. .relative { position: relative; }
  229. .overflow-hidden { overflow: hidden; }
  230. .truncate {
  231. overflow: hidden;
  232. text-overflow: ellipsis;
  233. white-space: nowrap;
  234. }
  235. // ============================================================
  236. // 9. 扁平圆角卡片 (Flat Rounded Card) — 全端统一风格
  237. // ============================================================
  238. @mixin flat-card($border-color: $uni-border-color-light) {
  239. border-radius: $uni-radius-md;
  240. background: $uni-surface;
  241. border: 1rpx solid $border-color;
  242. box-shadow: $uni-shadow-sm;
  243. }
  244. @mixin flat-button($bg-color: $uni-primary) {
  245. border-radius: $uni-radius-lg;
  246. background: $bg-color;
  247. color: #FFFFFF;
  248. border: none;
  249. transition: opacity $uni-transition-fast;
  250. &:active {
  251. opacity: 0.85;
  252. }
  253. }
  254. .flat-card {
  255. @include flat-card;
  256. }
  257. // ============================================================
  258. // 10. 关键帧动画(精简)
  259. // ============================================================
  260. @keyframes fadeIn {
  261. from { opacity: 0; }
  262. to { opacity: 1; }
  263. }
  264. @keyframes slideUp {
  265. from { opacity: 0; transform: translateY(20rpx); }
  266. to { opacity: 1; transform: translateY(0); }
  267. }
  268. @keyframes scaleIn {
  269. from { opacity: 0; transform: scale(0.95); }
  270. to { opacity: 1; transform: scale(1); }
  271. }
  272. @keyframes pulseSoft {
  273. 0%, 100% { opacity: 1; }
  274. 50% { opacity: 0.7; }
  275. }
  276. // 动画实用类
  277. .animate-fade-in { animation: fadeIn $uni-transition-base both; }
  278. .animate-slide-up { animation: slideUp $uni-transition-slow both; }
  279. .animate-scale-in { animation: scaleIn $uni-transition-slow both; }
  280. .animate-pulse-soft { animation: pulseSoft 3s ease-in-out infinite; }
  281. // 交错入场
  282. @for $i from 1 through 20 {
  283. .animate-stagger-#{$i} {
  284. animation-delay: #{$i * 60}ms;
  285. }
  286. }
  287. // ============================================================
  288. // 11. 骨架屏
  289. // ============================================================
  290. @mixin skeleton {
  291. background: linear-gradient(
  292. 90deg,
  293. $uni-border-color-light 25%,
  294. #F5F9FC 50%,
  295. $uni-border-color-light 75%
  296. );
  297. background-size: 200% 100%;
  298. animation: shimmer 1.5s ease-in-out infinite;
  299. border-radius: $uni-radius-sm;
  300. }
  301. @keyframes shimmer {
  302. 0% { background-position: -200% 0; }
  303. 100% { background-position: 200% 0; }
  304. }
  305. .skeleton { @include skeleton; }
  306. .skeleton-text {
  307. @include skeleton;
  308. height: 28rpx;
  309. margin-bottom: 12rpx;
  310. }
  311. .skeleton-block {
  312. @include skeleton;
  313. height: 160rpx;
  314. }
  315. // ============================================================
  316. // 12. 五维 + 品牌运行时令牌(对齐真实线上视觉)
  317. // ============================================================
  318. // 背景:原 $uni-primary(#5B9BD5 蓝) 与线上实际主色不一致,且五维色长期硬编码在页面里。
  319. // 本段补齐「真实在用」的语义令牌;页面改用这些名字,避免逐个硬编码。
  320. // 注意:mp-weixin 对 CSS var(--x) 运行时解析不稳定,故统一用 SCSS 变量(编译期内联,零运行时风险)。
  321. // 品牌主色 —— 与 pages.json tabBar.selectedColor 一致
  322. $brand-primary: #F97316;
  323. $brand-primary-dark: #EA580C;
  324. $brand-primary-soft: rgba(249, 115, 22, 0.12);
  325. // 五维身份色:页面 PageBanner / 分段左条 / CTA / 价值卡浅底统一取用
  326. $dim-body: #FF8C42;
  327. $dim-mind: #FF6B9D;
  328. $dim-wisdom: #6366F1;
  329. $dim-action: #10B981;
  330. $dim-wealth: #F59E0B;
  331. $dim-body-soft: rgba(255, 140, 66, 0.15);
  332. $dim-mind-soft: rgba(255, 107, 157, 0.15);
  333. $dim-wisdom-soft: rgba(99, 102, 241, 0.15);
  334. $dim-action-soft: rgba(16, 185, 129, 0.15);
  335. $dim-wealth-soft: rgba(245, 158, 11, 0.15);
  336. // 语义角色(与应用真实观感一致)
  337. $app-bg: #F5F7FA;
  338. $app-bg-2: #f5f6fa; // 浅灰蓝底·副档(3 文件;vs $app-bg #F5F7FA)
  339. $app-surface: #FFFFFF;
  340. $app-surface-subtle: #F7F8FA;
  341. $app-text: #17181C;
  342. $app-text-secondary: #606875;
  343. $app-text-muted: #8A94A3;
  344. $app-border-subtle: #E7EBF0;
  345. $app-border: #CBD5E1;
  346. // 状态:按压/禁用用透明度与语言表达,不新增多套颜色
  347. $press-opacity: 0.85;
  348. $disabled-opacity: 0.45;
  349. // 动效令牌:只声明稳定属性,禁止 transition: all
  350. $ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  351. $dur-press: 0.12s;
  352. $dur-state: 0.2s;
  353. $dur-structural: 0.26s;
  354. // 可复用 mixin
  355. @mixin dim-card($radius: $uni-radius-md) {
  356. background: $app-surface;
  357. border-radius: $radius;
  358. box-shadow: $uni-shadow-sm;
  359. }
  360. @mixin press-scale {
  361. transition: opacity $dur-press $ease-standard, transform $dur-press $ease-standard;
  362. &:active { opacity: $press-opacity; }
  363. }
  364. @mixin touch-target($size: 88rpx) {
  365. min-height: $size;
  366. min-width: $size;
  367. }
  368. // ============================================================
  369. // 13. 状态色阶 / 品牌亮阶 / 维度浅底
  370. // ============================================================
  371. // 状态色只用于传达状态,禁止当装饰使用;浅底为不透明 tint,用于卡片与分区背景。
  372. // 状态色阶
  373. $status-success: #10B981;
  374. $status-success-soft: #D1FAE5;
  375. $status-success-strong: #065F46;
  376. $status-warning: #FBBF24;
  377. $status-warning-soft: #FEF3C7;
  378. $status-warning-strong: #92400E;
  379. $status-danger: #EF4444;
  380. $status-danger-soft: #FEE2E2;
  381. $status-danger-strong: #B91C1C;
  382. // 品牌橙亮阶(渐变/高亮用)
  383. $brand-primary-light: #FB923C;
  384. $brand-primary-light-2: #FED7AA; // 品牌橙浅档 orange-200(29 文件;vs $brand-primary-light #FB923C orange-400)
  385. // 维度浅底(不透明 tint)
  386. $dim-body-tint: #FFF8F0;
  387. $dim-mind-tint: #FFF0F5;
  388. $dim-wisdom-tint: #F0F0FF;
  389. $dim-action-tint: #F0FFF4;
  390. $dim-wealth-tint: #FFFBEB;
  391. // 边框与文字的次级阶
  392. $app-border-strong: #D1D5DB;
  393. $app-text-subtle: #94A3B8;
  394. // ============================================================
  395. // 14. 状态深阶 / 品牌深阶(收尾:跨页共性)
  396. // ============================================================
  397. // -deep 为色板 600 档,用于状态文字与强调;-tint 为极浅底。
  398. // 仅收录在 2 个及以上页面中复用的色值,单页专有色阶由页面级局部变量承载。
  399. // 状态深阶(文字 / 强调)
  400. $status-danger-deep: #DC2626; // 危险态文字:较差 / 已过期
  401. $status-danger-flat: #E74C3C; // flat 红·危档(2 文件;vs $status-danger #EF4444)
  402. $status-warning-deep: #D97706; // 警示态文字
  403. $status-success-deep: #059669; // 成功态文字
  404. $status-success-text: #16A34A; // 成功态文字(green-600)
  405. // 品牌 / 身 深阶文字
  406. $brand-primary-deep: #C2410C;
  407. // ============================================================
  408. // 15. 共享门面令牌(A 批 6 个门面页收敛,2026-10-18)
  409. // ============================================================
  410. // 来源:index-home / health-main / profile-main / growth-main / cognitive-hall /
  411. // service-center 六页原页面级局部调色板中跨页复用(≥2 页同值)的变量。
  412. // 命名:$facade- 前缀与页面局部 $c- 完全隔离,永不同名冲突。
  413. // 同名不同值的处理:$c-text-ghost 曾一页 #BBB / 四页 #CCC,拆为
  414. // $facade-text-ghost(#CCC) 与 $facade-text-ghost-light(#BBB) 两档,保零观感变化。
  415. // $c-text-slate-2 曾 #6B7280×2 / #64748B×1:仅提升 #6B7280 为 $facade-text-slate,
  416. // #64748B 为单页专有色,留在页面局部。
  417. // 各页单页专有色阶(维度深/浅阶、Material/Element/Ant 状态色等)仍由页面级局部变量承载。
  418. // 文字阶(6 页门面共用)
  419. $facade-text-muted: #999; // 次要文字(6 页复用)
  420. $facade-text-body: #666; // 正文灰(5 页复用)
  421. $facade-text-faint: #888; // 弱文字(5 页复用)
  422. $facade-text-strong: #333; // 强文字(4 页复用)
  423. $facade-text-ghost: #CCC; // 幽灵灰(4 页复用)
  424. $facade-text-ghost-light: #BBB; // 幽灵灰浅档(index-home + cognitive-hall)
  425. $facade-text-deep: #555; // 深灰文字(health-main + growth-main)
  426. $facade-text-slate: #6B7280; // gray-500(health-main + profile-main)
  427. // 填充阶
  428. $facade-fill: #F0F0F0; // 占位/分隔(4 页复用)
  429. $facade-fill-2: #F5F5F5; // 浅灰填充(index-home + growth-main)
  430. $facade-fill-cool: #F7F7F7; // 冷灰填充(health-main + growth-main)
  431. $facade-fill-warm-gray: #F8F4EF; // 暖灰填充(profile-main + service-center)
  432. // 品牌淡底(orange-50/100)
  433. $facade-brand-tint: #FFF7ED; // 品牌极浅底(4 页复用)
  434. $facade-brand-tint-2: #FFEDD5; // 品牌浅底(index-home + growth-main)
  435. // 维度共用色
  436. $facade-violet: #8B5CF6; // violet-500(index-home + cognitive-hall + service-center)
  437. // ============================================================
  438. // 16. 维度生态共享令牌(B 批 mind-detail 15 兄弟页收敛,2026-10-18)
  439. // ============================================================
  440. // 来源:mind-detail 生态(index.vue 除外,其已全令牌化)15 个兄弟文件
  441. // (articles / duo-compatibility / emotion-checkin / emotion-report / emotion-trend /
  442. // family-dashboard / innate-portrait / innate-trajectory / member-mind-detail /
  443. // screening / soothe-toolbox / traditional-mirror / training +
  444. // components/FamilyTianpanCard / components/PsychCrisisBanner)。
  445. // 收敛规则同 §14:≥2 页同值进全局;同名不同值拆双档;单页专有留 $c- 局部。
  446. // ---- 心理(mind)维度专有族 ----
  447. $dim-mind-light: #FF8CB3; // mind 亮粉·渐变端(emotion-checkin + emotion-trend)
  448. $dim-mind-light-2: #FF8FB1; // mind 亮粉·副档(FamilyTianpanCard + family-dashboard,同角色不同值)
  449. $dim-mind-tint-2: #FFF0F3; // mind 粉浅底·副档(vs $dim-mind-tint #FFF0F5;FamilyTianpanCard + family-dashboard)
  450. $mind-accent: #FF6B35; // 情绪/成就强调橙(emotion-report + member-mind-detail + index.vue 的 $c-accent 同值)
  451. // ---- 智慧(wisdom)维度专有档(B-3 wisdom-detail 生态收敛时登记)----
  452. $dim-wisdom-light: #818CF8; // wisdom 亮档 indigo-400(12 文件;渐变端)
  453. $dim-wisdom-deep: #4F46E5; // wisdom 深档 indigo-600(6 文件;渐变尾;vs $dim-wisdom #6366F1 indigo-500)
  454. $dim-wisdom-ink: #3730A3; // wisdom 极深文字 indigo-800(3 文件)
  455. $dim-wisdom-tint-2:#EEF2FF; // wisdom 浅底·副档 indigo-50(8 文件;vs $dim-wisdom-tint #F0F0FF)
  456. $dim-wisdom-tint-3:#F0F4FF; // wisdom 浅底·三档 indigo-50 邻档(7 文件)
  457. $dim-wisdom-tint-4:#F8F9FF; // wisdom 浅底·四档 indigo 极浅(2 文件)
  458. $dim-wisdom-tint-5:#F9F9FF; // wisdom 浅底·五档 indigo 极浅邻档(4 文件)
  459. // ---- 身体(body)维度伴生档(B-2 body-detail 生态收敛时登记)----
  460. $dim-body-light: #FFB366; // body 亮档(diet/discover/health 等 10 文件;vs $dim-body #FF8C42)
  461. $tint-warm-soft: #FFF1E6; // 暖白浅底(diet 4 + health + body-detail index)
  462. $tint-warm-edge: #FFE4CC; // 暖色渐变缘(ai/chat + body-detail index)
  463. // ---- violet 伴生档($facade-violet 的亮阶与浅底)----
  464. $facade-violet-light: #A78BFA; // violet-400(duo-compatibility + emotion-checkin + member-mind-detail)
  465. $facade-violet-tint: #F5F0FF; // violet 浅底(emotion-checkin + innate-portrait + traditional-mirror)
  466. $facade-violet-deep: #7C3AED; // violet-600 深档(mind-detail index + tianpan/wishes 等 10 文件;vs $facade-violet #8B5CF6 violet-500)
  467. $facade-violet-light-2: #A855F7; // violet 亮档·副档(mind-detail index + membership/upgrade 渐变伴生;vs $facade-violet-light #A78BFA)
  468. $facade-violet-tint-2: #F5F3FF; // violet-50 浅底(mind-detail index + growth/index-home 等 6 文件;vs $facade-violet-tint #F5F0FF)
  469. $tint-purple-soft: #F3E8FF; // purple-100 浅底(mind-detail index + stats;紫色系浅底补档)
  470. // ---- 文字补档 ----
  471. $facade-text-deep-2: #444; // 深灰文字·副档(vs $facade-text-deep #555;innate-portrait + innate-trajectory + screening)
  472. // ---- tailwind gray 阶(全库高频复用,B 批 family-dashboard 收敛时登记)----
  473. $facade-fill-gray-50: #F9FAFB; // gray-50 页面浅灰底(6 文件)
  474. $facade-fill-gray-100: #F3F4F6; // gray-100 发丝分隔/浅填充(13 文件)
  475. $facade-gray-200: #E5E7EB; // gray-200 填充/描边兼用(18 文件)
  476. $facade-text-gray-400: #9CA3AF; // gray-400 弱文字(18 文件)
  477. $facade-text-gray-700: #374151; // gray-700 深文字(12 文件)
  478. // ---- 运势五级 ramp(mind-detail index + FamilyTianpanCard 共用,Material 色系)----
  479. $fortune-0-ink: #D32F2F; // 大凶(red-700)
  480. $fortune-0-tint: #FFEBEE; // red-50
  481. $fortune-1-ink: #E65100; // 凶(orange-900)
  482. $fortune-1-tint: #FFF3E0; // orange-50
  483. $fortune-2-ink: #F9A825; // 平(yellow-800)
  484. $fortune-2-tint: #FFFDE7; // yellow-50
  485. $fortune-3-ink: #7B1FA2; // 吉(purple-700)
  486. $fortune-3-tint: #F3E5F5; // purple-50
  487. $fortune-4-ink: #B71C1C; // 大吉(red-900)
  488. $fortune-4-tint: #FFCDD2; // red-100
  489. // ---- 洞察文案 ----
  490. $mind-insight-ink: #8B6914; // 洞察/宜忌文案棕金(mind-detail index + FamilyTianpanCard)
  491. // ---- 全库高频补档(B 批 emotion-report 收敛时登记)----
  492. $accent-gold: #FFD700; // 金(14 文件)
  493. $accent-gold-deep: #FFA500; // 金渐变伴生深档(9 文件;vs $accent-gold #FFD700 主档)
  494. $status-success-tint: #ECFDF5; // emerald-50(11 文件;vs $status-success-soft #D1FAE5 深档)
  495. $status-info-tint: #EFF6FF; // blue-50(3 文件)
  496. $status-danger-tint-2: #FEF2F2; // tailwind red-50(11 文件;vs $status-danger-tint #FFF5F5 自定义浅档)
  497. $facade-border-soft: #DDD; // 描边灰(46 文件)
  498. $app-ink-night: #1A1A2E; // 深夜蓝黑(17 文件)
  499. // ---- 封面渐变 / 提示条(B 批 articles 收敛时登记)----
  500. $accent-indigo: #667EEA; // 靛紫渐变起点(封面/卡片,37 文件)
  501. $accent-indigo-deep: #764BA2; // 靛紫渐变终点(26 文件)
  502. $accent-indigo-ink: #4338CA; // indigo-700 靛紫深文字(4 文件)
  503. $accent-indigo-tint: #E0E7FF; // indigo-100 靛紫浅底(7 文件)
  504. $accent-navy: #1E3A5F; // 深海军蓝渐变主色(4 文件;评分卡/引导条渐变)
  505. $tint-info-soft: #E8F4FD; // 信息蓝浅底(article-edit + articles)
  506. $hint-cream-bg: #FEF9E7; // 提示条奶油底(articles + shop/index)
  507. $hint-cream-border: #F0E6C0; // 提示条奶油描边(articles + shop/index)
  508. $hint-gold-ink: #B8860B; // 提示条金褐文字(8 文件)
  509. $facade-fill-page: #F8F8F8; // 页面灰底(33 文件;health-main 原 $c-fill-warm 同值收敛于此)
  510. // ---- 状态色渐变阶(B 批 soothe-toolbox 收敛时登记)----
  511. $status-success-tint-2: #F0FDF4; // green-50(13 文件;vs $status-success-tint #ECFDF5)
  512. $status-success-light: #A7F3D0; // green-200 薄荷渐变浅档(2 文件)
  513. $status-success-light-2:#6EE7B7; // green-300 薄荷渐变深档(3 文件)
  514. $status-warning-light: #FDE68A; // amber-200(11 文件;vs $status-warning-soft #FEF3C7)
  515. $tint-sky-soft: #F0F9FF; // sky-50 浅蓝底(7 文件)
  516. $status-info-deep: #2563EB; // blue-600 深信息蓝(9 文件;vs $status-info #3B82F6)
  517. $app-ink-night-2: #16213E; // 深夜蓝黑·中档(13 文件)
  518. $app-ink-night-3: #0F3460; // 深夜蓝黑·深档(2 文件)
  519. // ---- 状态色补档(与 §13 既有令牌同角色不同值,拆档保零观感)----
  520. $status-info: #3B82F6; // 信息蓝(vs $uni-info #0EA5E9;PsychCrisisBanner + emotion-report + emotion-trend + soothe-toolbox)
  521. $status-danger-tint: #FFF5F5; // red-50 浅底(vs $status-danger-soft #FEE2E2;PsychCrisisBanner + emotion-checkin + screening)
  522. $status-warning-2: #F59E0B; // amber-500 警示主色·副档(vs $status-warning #FBBF24 amber-400;PsychCrisisBanner + action-detail/ai 等 8+ 文件)
  523. $status-warning-tint:#FFFBEB; // amber-50 警示极浅底(vs $status-warning-soft #FEF3C7 amber-100;PsychCrisisBanner + action-detail/wealth 等 8+ 文件)
  524. // ---- 填充补档($facade-fill 系的加深/暖色/近白档)----
  525. $facade-fill-3: #EEEEEE; // 灰填充·深(vs $facade-fill #F0F0F0;articles + emotion-checkin + training)
  526. $facade-fill-warm-tint:#F8F6F0; // 暖灰浅底(vs $facade-fill-warm-gray #F8F4EF;duo-compatibility + innate-portrait + innate-trajectory + traditional-mirror)
  527. $facade-fill-ghost: #FAFAFA; // 近白填充(duo-compatibility + emotion-checkin + screening)
  528. $facade-fill-ghost-2: #F9F9F9; // 近白填充·副档(emotion-checkin + emotion-report + soothe-toolbox,同角色不同值)
  529. // ---- 旧蓝族(C-2 待翻转:原值令牌化保零观感,翻转移交 C-2 角色分流)----
  530. $brand-legacy-blue: #4A9BD7; // 旧蓝主色(16 文件;dimension-detail 渐变起点/百分位/序号徽章)
  531. $brand-legacy-blue-light:#63B3ED; // 旧蓝亮档(2 文件;旧蓝渐变终点伴生)
  532. $brand-legacy-blue-tint: #F5FAFE; // 旧蓝极浅底(22 文件;旧蓝系页面浅底)
  533. $brand-legacy-blue-select:#F0F8FF; // 旧蓝 select 浅底(旧蓝族选中态档;C-2 待翻转)
  534. $facade-fill-4: #E8E8E8; // 灰填充·深档(4 文件;vs $facade-fill-3 #EEEEEE)
  535. $status-danger-strong-2: #C62828; // red-800 深文字(16 文件;vs $status-danger-strong #B91C1C red-700)
  536. $status-info-soft: #DBEAFE; // blue-100 信息浅档(15 文件;vs $status-info-tint #EFF6FF blue-50)
  537. $facade-hairline: #E0E0E0; // 浅灰描边(26 文件高频)
  538. $facade-hairline-2: #EEE; // 边框/分隔灰·副档(41 文件;vs $facade-hairline #E0E0E0 深档)
  539. $status-success-soft-2: #DCFCE7; // green-100 浅档(15 文件;vs $status-success-soft #D1FAE5 emerald-100)
  540. $status-success-strong-2: #16A34A; // green-600 深文字(21 文件;vs $status-success-strong #065F46 emerald-800)
  541. $status-success-2: #22C55E; // green-500 成功主色·副档(13 文件;vs $status-success #10B981 emerald-500)
  542. $status-success-light-3: #34D399; // emerald-400 成功亮档·三档(20 文件;vs $status-success-light #A7F3D0 / -light-2 #6EE7B7)
  543. $status-info-light: #38BDF8; // sky-400 信息亮档(3 文件;vs $status-info #3B82F6 blue-500)
  544. $status-info-deep-2: #0284C7; // sky-600 信息深文字·副档(4 文件;vs $status-info-deep #2563EB blue-600)
  545. $status-info-deep-3: #1D4ED8; // blue-700 信息渐变深档(report-upload 对话卡;doa-stage-detail 同值待 D 批收敛)
  546. $status-danger-light: #F87171; // red-400 危险亮档(3 文件;vs $status-danger #EF4444 red-500)
  547. $facade-text-slate-deep: #475569; // slate-600 深灰蓝文字(16 文件;vs $facade-text-slate #6B7280 gray-500)
  548. $facade-fill-slate: #F1F5F9; // slate-100 浅灰蓝填充(36 文件;vs $facade-fill-gray-100 #F3F4F6 gray-100)
  549. // ---- pink 伴生族(relationship-questionnaire + contact-detail 等收敛时登记)----
  550. $accent-pink: #EC4899; // pink-500 主色(9 文件)
  551. $accent-pink-deep: #DB2777; // pink-700 深文字(4 文件)
  552. $accent-pink-tint: #FCE7F3; // pink-100 浅底(3 文件)
  553. $status-danger-2: #FF4D4F; // antd 红·副档(11 文件;vs $status-danger #EF4444)
  554. // ---- antd 色补档(wealth 子链收敛时登记)----
  555. $status-success-3: #52C41A; // antd green-500 成功主色·三档(12 文件;vs $status-success #10B981 / -2 #22C55E)
  556. $status-success-tint-3: #F6FFED; // antd green-1 成功极浅底·三档(8 文件)
  557. $status-danger-tint-3: #FFF1F0; // antd red-1 危险浅底·三档(3 文件)
  558. $status-warning-strong-2: #B45309; // amber-700 警示深文字·副档(9 文件;vs $status-warning-strong #92400E amber-800)
  559. $status-info-3: #1890FF; // antd blue-500 信息主色·三档(6 文件;vs $status-info #3B82F6)
  560. $status-info-tint-3: #E6F7FF; // antd blue-1 信息浅底·三档(5 文件)
  561. $brand-primary-2: #FA8C16; // 品牌橙·副档 antd orange(4 文件;vs $brand-primary #F97316)
  562. $brand-primary-tint-2:#FFF7E6; // 品牌橙浅底·副档 antd orange-1(15 文件;vs $uni-primary-pale #FFF7ED)