xto-fronted 0.4.112 → 0.5.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.
Files changed (80) hide show
  1. package/dist/assets/404-BYUyVmEj.js +1 -0
  2. package/dist/assets/404-CcAc5uFh.css +1 -0
  3. package/dist/assets/index-4oN1au3P.css +1 -0
  4. package/dist/assets/index-BEwGthu5.js +1 -0
  5. package/dist/assets/{index-Dk64JJvN.js → index-BG5gsGCY.js} +1 -1
  6. package/dist/assets/index-BHABoX0X.css +1 -0
  7. package/dist/assets/index-BUqGJdah.css +1 -0
  8. package/dist/assets/index-BvN8lC5q.js +1 -0
  9. package/dist/assets/index-C6ibP7SB.css +1 -0
  10. package/dist/assets/index-CJGmoNxx.css +1 -0
  11. package/dist/assets/index-DPrbBY2e.css +1 -0
  12. package/dist/assets/index-DUV7VLAm.js +2 -0
  13. package/dist/assets/index-DcPnYH2c.js +1 -0
  14. package/dist/assets/index-DhwBftHU.css +1 -0
  15. package/dist/assets/{index-CEwTCJMr.js → index-oc3LDwZZ.js} +1 -1
  16. package/dist/assets/index-vuy5HH8m.js +1 -0
  17. package/dist/assets/{vue-vendor-gcK82_Kd.js → vue-vendor-sSbh4bdR.js} +1 -1
  18. package/dist/assets/xto-base-Bv2ek7Ha.css +1 -0
  19. package/dist/assets/{xto-base-wYW0Uxvr.js → xto-base-kM8Cl-e6.js} +1 -1
  20. package/dist/assets/xto-business-CW6DXcvI.css +1 -0
  21. package/dist/assets/{xto-core-DtPNWVUu.js → xto-core-DsKtn1lm.js} +1 -1
  22. package/dist/assets/{xto-data-2diO2SyB.js → xto-data-CDPTH0CA.js} +1 -1
  23. package/dist/assets/xto-data-CEFTtli6.css +1 -0
  24. package/dist/assets/xto-feedback-Di1AeKNY.css +1 -0
  25. package/dist/assets/xto-feedback-Dp_1dES5.js +1 -0
  26. package/dist/assets/xto-form-Bl3jCZ4e.js +1 -0
  27. package/dist/assets/xto-form-DC11rd9L.css +1 -0
  28. package/dist/assets/xto-layout-BR7iLA0e.css +1 -0
  29. package/dist/assets/xto-navigation-Bl-kwgN_.css +1 -0
  30. package/dist/assets/xto-navigation-Brox2Ork.js +1 -0
  31. package/dist/index.html +16 -16
  32. package/package.json +18 -19
  33. package/src/App.vue +9 -9
  34. package/src/assets/styles/_dark.scss +181 -181
  35. package/src/assets/styles/_reset.scss +14 -14
  36. package/src/assets/styles/_root.scss +153 -132
  37. package/src/assets/styles/_transition.scss +10 -10
  38. package/src/assets/styles/_variables.scss +26 -25
  39. package/src/assets/styles/index.scss +62 -62
  40. package/src/components/Layout/Footer.vue +1 -1
  41. package/src/components/Layout/Header.vue +69 -69
  42. package/src/components/Layout/MixTopMenu.vue +66 -66
  43. package/src/components/Layout/Sidebar.vue +6 -6
  44. package/src/components/Layout/SidebarMenuItem.vue +3 -3
  45. package/src/components/Layout/Tabs.vue +6 -6
  46. package/src/components/Layout/TopMenu.vue +66 -66
  47. package/src/components/Layout/index.vue +7 -7
  48. package/src/stores/app.ts +4 -4
  49. package/src/style.scss +14 -14
  50. package/src/views/dashboard/index.vue +54 -54
  51. package/src/views/error/403.vue +18 -18
  52. package/src/views/error/404.vue +23 -23
  53. package/src/views/login/index.vue +20 -20
  54. package/src/views/system/menu/index.vue +26 -26
  55. package/src/views/system/role/index.vue +27 -27
  56. package/src/views/system/user/index.vue +30 -30
  57. package/dist/assets/404-Cw_4ZCL6.css +0 -1
  58. package/dist/assets/404-G0TYnM2t.js +0 -1
  59. package/dist/assets/index-8nuVIlbv.css +0 -1
  60. package/dist/assets/index-BlRslYYI.css +0 -1
  61. package/dist/assets/index-Br0rA9ST.js +0 -1
  62. package/dist/assets/index-BudArKxR.css +0 -1
  63. package/dist/assets/index-CFhWBbxk.css +0 -1
  64. package/dist/assets/index-Cm58iTuj.js +0 -1
  65. package/dist/assets/index-Cno3g_Ca.js +0 -1
  66. package/dist/assets/index-Cpew6d-v.css +0 -1
  67. package/dist/assets/index-D1AzIZb6.js +0 -1
  68. package/dist/assets/index-DCn9x-He.js +0 -2
  69. package/dist/assets/index-rQHcgyhm.css +0 -1
  70. package/dist/assets/index-vfvEFrCH.css +0 -1
  71. package/dist/assets/xto-base-CL2NKZJJ.css +0 -1
  72. package/dist/assets/xto-business--V1F5Gwb.css +0 -1
  73. package/dist/assets/xto-data-Bi03KULC.css +0 -1
  74. package/dist/assets/xto-feedback-BOOXC1Ev.js +0 -1
  75. package/dist/assets/xto-feedback-Bxx38c3P.css +0 -1
  76. package/dist/assets/xto-form-BBugNbnQ.js +0 -1
  77. package/dist/assets/xto-form-Cu6q3VLG.css +0 -1
  78. package/dist/assets/xto-layout-BDD6sSlM.css +0 -1
  79. package/dist/assets/xto-navigation-D_LFy9y9.js +0 -1
  80. package/dist/assets/xto-navigation-XfpyMpEo.css +0 -1
@@ -13,7 +13,7 @@
13
13
  html {
14
14
  width: 100%;
15
15
  height: 100%;
16
- font-size: var(--font-size-base);
16
+ font-size: var(--xto-font-size-base, 14px);
17
17
  -webkit-text-size-adjust: 100%;
18
18
  -webkit-tap-highlight-color: transparent;
19
19
  text-rendering: optimizeLegibility;
@@ -24,11 +24,11 @@ html {
24
24
  body {
25
25
  width: 100%;
26
26
  height: 100%;
27
- font-family: var(--font-family);
28
- font-size: var(--font-size-base);
27
+ font-family: var(--xto-font-family, 'Inter', 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif);
28
+ font-size: var(--xto-font-size-base, 14px);
29
29
  line-height: 1.5;
30
- color: var(--color-text-primary);
31
- background-color: var(--bg-color-page);
30
+ color: var(--xto-color-text-primary, #1F2937);
31
+ background-color: var(--xto-bg-color-page, #F9FAFB);
32
32
  }
33
33
 
34
34
  #app {
@@ -37,13 +37,13 @@ body {
37
37
  }
38
38
 
39
39
  a {
40
- color: var(--color-primary);
40
+ color: var(--xto-color-primary, #4F46E5);
41
41
  text-decoration: none;
42
42
  cursor: pointer;
43
- transition: color var(--transition-duration-fast);
43
+ transition: color var(--xto-transition-duration-fast, 150ms);
44
44
 
45
45
  &:hover {
46
- color: var(--color-primary-light-3);
46
+ color: var(--xto-color-primary-light-3, #7578F3);
47
47
  }
48
48
  }
49
49
 
@@ -92,7 +92,7 @@ h5,
92
92
  h6 {
93
93
  margin: 0;
94
94
  font-weight: 500;
95
- color: var(--color-text-primary);
95
+ color: var(--xto-color-text-primary, #1F2937);
96
96
  }
97
97
 
98
98
  p {
@@ -106,21 +106,21 @@ p {
106
106
  }
107
107
 
108
108
  ::-webkit-scrollbar-track {
109
- background-color: var(--color-fill-light);
109
+ background-color: var(--xto-fill-color-light, #F9FAFB);
110
110
  border-radius: 3px;
111
111
  }
112
112
 
113
113
  ::-webkit-scrollbar-thumb {
114
- background-color: var(--color-border);
114
+ background-color: var(--xto-border-color, #D1D5DB);
115
115
  border-radius: 3px;
116
116
 
117
117
  &:hover {
118
- background-color: var(--color-text-secondary);
118
+ background-color: var(--xto-color-text-secondary, #6B7280);
119
119
  }
120
120
  }
121
121
 
122
122
  // 选中文本样式
123
123
  ::selection {
124
- background-color: var(--color-primary-light-8);
125
- color: var(--color-primary);
124
+ background-color: var(--xto-color-primary-light-8, #D4D7FE);
125
+ color: var(--xto-color-primary, #4F46E5);
126
126
  }
@@ -1,112 +1,115 @@
1
1
  // ==============================================
2
- // CSS Variables - 企业级配色方案
3
- // 参考:阿里 Ant Design Pro、腾讯云控制台
2
+ // CSS Variables - XTO UI Design Token System
3
+ // Indigo palette with --xto-* namespace
4
4
  // ==============================================
5
5
 
6
6
  :root {
7
- // 主色调 - 科技蓝系(深邃、专业)
8
- --color-primary: #1677ff;
9
- --color-primary-light-1: #4096ff;
10
- --color-primary-light-2: #69b1ff;
11
- --color-primary-light-3: #91caff;
12
- --color-primary-light-4: #bae0ff;
13
- --color-primary-light-5: #e6f4ff;
14
- --color-primary-light-6: #f0f8ff;
15
- --color-primary-dark-1: #0958d9;
16
- --color-primary-dark-2: #003eb3;
17
- --color-primary-dark-3: #002c8c;
7
+ // 主色调 - Indigo 系(深邃、专业)
8
+ --xto-color-primary: #4F46E5;
9
+ --xto-color-primary-light-1: #5B54E8;
10
+ --xto-color-primary-light-2: #6B63EB;
11
+ --xto-color-primary-light-3: #7C73EE;
12
+ --xto-color-primary-light-4: #8B83F1;
13
+ --xto-color-primary-light-5: #A5A4F4;
14
+ --xto-color-primary-light-6: #BFBDF7;
15
+ --xto-color-primary-light-7: #D4D3F9;
16
+ --xto-color-primary-light-8: #E0DFFB;
17
+ --xto-color-primary-light-9: #EEF2FF;
18
+ --xto-color-primary-dark-1: #4338CA;
19
+ --xto-color-primary-dark-2: #3730A3;
20
+ --xto-color-primary-dark-3: #312E81;
18
21
 
19
22
  // 功能色 - 精致调和
20
- --color-success: #52c41a;
21
- --color-success-light: #b7eb8f;
22
- --color-success-lighter: #f6ffed;
23
- --color-success-dark: #389e0d;
24
-
25
- --color-warning: #faad14;
26
- --color-warning-light: #ffe58f;
27
- --color-warning-lighter: #fffbe6;
28
- --color-warning-dark: #d48806;
29
-
30
- --color-danger: #ff4d4f;
31
- --color-danger-light: #ffa39e;
32
- --color-danger-lighter: #fff2f0;
33
- --color-danger-dark: #cf1322;
34
-
35
- --color-info: #1677ff;
36
- --color-info-light: #91caff;
37
- --color-info-lighter: #e6f4ff;
38
- --color-info-dark: #0958d9;
23
+ --xto-color-success: #10B981;
24
+ --xto-color-success-light: #6EE7B7;
25
+ --xto-color-success-lighter: #ECFDF5;
26
+ --xto-color-success-dark: #059669;
27
+
28
+ --xto-color-warning: #F59E0B;
29
+ --xto-color-warning-light: #FCD34D;
30
+ --xto-color-warning-lighter: #FFFBEB;
31
+ --xto-color-warning-dark: #D97706;
32
+
33
+ --xto-color-danger: #EF4444;
34
+ --xto-color-danger-light: #FCA5A5;
35
+ --xto-color-danger-lighter: #FEF2F2;
36
+ --xto-color-danger-dark: #DC2626;
37
+
38
+ --xto-color-info: #6B7280;
39
+ --xto-color-info-light: #9CA3AF;
40
+ --xto-color-info-lighter: #F3F4F6;
41
+ --xto-color-info-dark: #4B5563;
39
42
 
40
43
  // 文字颜色 - 层次分明
41
- --color-text-primary: #1f1f1f;
42
- --color-text-regular: #424242;
43
- --color-text-secondary: #757575;
44
- --color-text-placeholder: #9e9e9e;
45
- --color-text-disabled: #bdbdbd;
44
+ --xto-color-text-primary: #1F2937;
45
+ --xto-color-text-regular: #4B5563;
46
+ --xto-color-text-secondary: #6B7280;
47
+ --xto-color-text-placeholder: #9CA3AF;
48
+ --xto-color-text-disabled: #D1D5DB;
46
49
 
47
50
  // 边框颜色 - 克制淡雅
48
- --color-border: #d9d9d9;
49
- --color-border-light: #e8e8e8;
50
- --color-border-lighter: #f0f0f0;
51
- --color-border-extra-light: #f5f5f5;
52
- --color-border-dark: #bfbfbf;
51
+ --xto-border-color: #D1D5DB;
52
+ --xto-border-color-light: #E5E7EB;
53
+ --xto-border-color-lighter: #F3F4F6;
54
+ --xto-border-color-extra-light: #F9FAFB;
55
+ --xto-border-color-dark: #9CA3AF;
53
56
 
54
57
  // 填充颜色 - 背景层次
55
- --color-fill: #f5f5f5;
56
- --color-fill-light: #fafafa;
57
- --color-fill-lighter: #ffffff;
58
- --color-fill-blank: #ffffff;
59
- --color-fill-dark: #e8e8e8;
58
+ --xto-fill-color: #F3F4F6;
59
+ --xto-fill-color-light: #F9FAFB;
60
+ --xto-fill-color-lighter: #FFFFFF;
61
+ --xto-fill-color-blank: #FFFFFF;
62
+ --xto-fill-color-dark: #E5E7EB;
60
63
 
61
64
  // 背景颜色 - 页面层级
62
- --bg-color: #ffffff;
63
- --bg-color-page: #f0f2f5;
64
- --bg-color-component: #ffffff;
65
- --bg-color-overlay: #ffffff;
66
- --bg-color-spotlight: #e6f4ff;
65
+ --xto-bg-color: #FFFFFF;
66
+ --xto-bg-color-page: #F9FAFB;
67
+ --xto-bg-color-component: #FFFFFF;
68
+ --xto-bg-color-overlay: #FFFFFF;
69
+ --xto-bg-color-spotlight: #EEF2FF;
67
70
 
68
71
  // 盒子阴影 - 精致层次
69
- --box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
70
- 0 3px 6px -4px rgba(0, 0, 0, 0.12),
71
- 0 9px 28px 8px rgba(0, 0, 0, 0.05);
72
- --box-shadow-light: 0 1px 2px 0 rgba(0, 0, 0, 0.03),
73
- 0 1px 6px -1px rgba(0, 0, 0, 0.02),
74
- 0 2px 4px 0 rgba(0, 0, 0, 0.02);
75
- --box-shadow-lighter: 0 1px 4px rgba(0, 0, 0, 0.04);
76
- --box-shadow-dark: 0 6px 16px -8px rgba(0, 0, 0, 0.08),
77
- 0 9px 28px 8px rgba(0, 0, 0, 0.05),
78
- 0 12px 48px 16px rgba(0, 0, 0, 0.03);
79
- --box-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.1);
80
- --box-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.12);
72
+ --xto-shadow-subtle: 0 1px 2px 0 rgba(0, 0, 0, 0.03),
73
+ 0 1px 6px -1px rgba(0, 0, 0, 0.02),
74
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02);
75
+ --xto-shadow-base: 0 1px 4px rgba(0, 0, 0, 0.04);
76
+ --xto-shadow-elevated: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
77
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
78
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
79
+ --xto-shadow-prominent: 0 6px 16px -8px rgba(0, 0, 0, 0.08),
80
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05),
81
+ 0 12px 48px 16px rgba(0, 0, 0, 0.03);
82
+ --xto-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.1);
83
+ --xto-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.12);
81
84
 
82
85
  // 字体 - 企业级字体栈
83
- --font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
86
+ --xto-font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
84
87
  'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
85
- --font-family-code: 'IBM Plex Mono', 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono',
88
+ --xto-font-family-code: 'IBM Plex Mono', 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono',
86
89
  Consolas, 'Courier New', monospace;
87
- --font-size-base: 14px;
88
- --font-size-small: 12px;
89
- --font-size-large: 16px;
90
- --font-size-extra-large: 20px;
91
- --font-size-title: 24px;
92
- --font-size-hero: 38px;
93
- --font-line-height: 1.5714285714285714;
90
+ --xto-font-size-base: 14px;
91
+ --xto-font-size-small: 12px;
92
+ --xto-font-size-large: 16px;
93
+ --xto-font-size-extra-large: 20px;
94
+ --xto-font-size-title: 24px;
95
+ --xto-font-size-hero: 38px;
96
+ --xto-font-line-height: 1.5714285714285714;
94
97
 
95
98
  // 圆角 - 精致圆润
96
- --border-radius-base: 6px;
97
- --border-radius-small: 4px;
98
- --border-radius-large: 8px;
99
- --border-radius-extra-large: 12px;
100
- --border-radius-round: 24px;
101
- --border-radius-circle: 50%;
99
+ --xto-border-radius-base: 6px;
100
+ --xto-border-radius-small: 4px;
101
+ --xto-border-radius-large: 8px;
102
+ --xto-border-radius-extra-large: 12px;
103
+ --xto-border-radius-round: 24px;
104
+ --xto-border-radius-circle: 50%;
102
105
 
103
106
  // 间距 - 8px 基础网格
104
- --spacing-xs: 4px;
105
- --spacing-sm: 8px;
106
- --spacing-md: 16px;
107
- --spacing-lg: 24px;
108
- --spacing-xl: 32px;
109
- --spacing-xxl: 48px;
107
+ --xto-spacing-xs: 4px;
108
+ --xto-spacing-sm: 8px;
109
+ --xto-spacing-md: 16px;
110
+ --xto-spacing-lg: 24px;
111
+ --xto-spacing-xl: 32px;
112
+ --xto-spacing-xxl: 48px;
110
113
 
111
114
  // 尺寸 - 组件规格
112
115
  --component-size-large: 40px;
@@ -114,11 +117,11 @@
114
117
  --component-size-small: 24px;
115
118
 
116
119
  // 过渡 - 流畅动效
117
- --transition-duration: 0.2s;
118
- --transition-duration-fast: 0.1s;
119
- --transition-duration-slow: 0.3s;
120
- --transition-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
121
- --transition-easing-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
120
+ --xto-transition-duration: 0.2s;
121
+ --xto-transition-duration-fast: 0.1s;
122
+ --xto-transition-duration-slow: 0.3s;
123
+ --xto-transition-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
124
+ --xto-transition-easing-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
122
125
 
123
126
  // z-index - 层级管理
124
127
  --z-index-dropdown: 1000;
@@ -137,48 +140,66 @@
137
140
  --footer-height: 32px;
138
141
 
139
142
  // 特殊效果
140
- --gradient-primary: linear-gradient(135deg, #1677ff 0%, #4096ff 100%);
141
- --gradient-hero: linear-gradient(135deg, #002c8c 0%, #1677ff 50%, #4096ff 100%);
142
- --gradient-card: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 100%);
143
- --gradient-mask: linear-gradient(180deg, rgba(0, 44, 140, 0.03) 0%, rgba(0, 0, 0, 0) 100%);
143
+ --xto-gradient-primary: linear-gradient(135deg, #4F46E5 0%, #6366F1 100%);
144
+ --xto-gradient-hero: linear-gradient(135deg, #312E81 0%, #4F46E5 50%, #6366F1 100%);
145
+ --xto-gradient-card: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 100%);
146
+ --xto-gradient-mask: linear-gradient(180deg, rgba(79, 70, 229, 0.03) 0%, rgba(0, 0, 0, 0) 100%);
144
147
  }
145
148
 
146
149
  // 暗色主题 - 深邃科技感
147
- .dark {
148
- --color-text-primary: #ffffff;
149
- --color-text-regular: #e0e0e0;
150
- --color-text-secondary: #a6a6a6;
151
- --color-text-placeholder: #737373;
152
- --color-text-disabled: #5c5c5c;
153
-
154
- --color-border: #434343;
155
- --color-border-light: #363636;
156
- --color-border-lighter: #2a2a2a;
157
- --color-border-extra-light: #1f1f1f;
158
- --color-border-dark: #5c5c5c;
159
-
160
- --color-fill: #262626;
161
- --color-fill-light: #1f1f1f;
162
- --color-fill-lighter: #141414;
163
- --color-fill-blank: #141414;
164
- --color-fill-dark: #363636;
165
-
166
- --bg-color: #141414;
167
- --bg-color-page: #0a0a0a;
168
- --bg-color-component: #1f1f1f;
169
- --bg-color-overlay: #1f1f1f;
170
- --bg-color-spotlight: #111d2c;
171
-
172
- --box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.32),
173
- 0 3px 6px -4px rgba(0, 0, 0, 0.48),
174
- 0 9px 28px 8px rgba(0, 0, 0, 0.2);
175
- --box-shadow-light: 0 1px 2px 0 rgba(0, 0, 0, 0.16),
176
- 0 1px 6px -1px rgba(0, 0, 0, 0.12),
177
- 0 2px 4px 0 rgba(0, 0, 0, 0.08);
178
- --box-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.32);
179
- --box-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.48);
180
-
181
- --gradient-primary: linear-gradient(135deg, #1677ff 0%, #4096ff 100%);
182
- --gradient-hero: linear-gradient(135deg, #002c8c 0%, #0958d9 50%, #1677ff 100%);
183
- --gradient-card: linear-gradient(180deg, rgba(20, 20, 20, 0) 0%, rgba(20, 20, 20, 0.8) 100%);
184
- }
150
+ html.dark {
151
+ --xto-color-primary: #818CF8;
152
+ --xto-color-primary-light-1: #9BA3FA;
153
+ --xto-color-primary-light-2: #B5BAFB;
154
+ --xto-color-primary-light-3: #C7CAFC;
155
+ --xto-color-primary-light-4: #D5D7FD;
156
+ --xto-color-primary-light-5: #E0E2FE;
157
+ --xto-color-primary-light-6: #EBECFE;
158
+ --xto-color-primary-light-7: #F0F1FE;
159
+ --xto-color-primary-light-8: #F5F5FE;
160
+ --xto-color-primary-light-9: #FAFAFF;
161
+ --xto-color-primary-dark-1: #6366F1;
162
+ --xto-color-primary-dark-2: #4F46E5;
163
+ --xto-color-primary-dark-3: #4338CA;
164
+
165
+ --xto-color-text-primary: #F9FAFB;
166
+ --xto-color-text-regular: #E5E7EB;
167
+ --xto-color-text-secondary: #9CA3AF;
168
+ --xto-color-text-placeholder: #6B7280;
169
+ --xto-color-text-disabled: #4B5563;
170
+
171
+ --xto-border-color: #374151;
172
+ --xto-border-color-light: #1F2937;
173
+ --xto-border-color-lighter: #111827;
174
+ --xto-border-color-extra-light: #030712;
175
+ --xto-border-color-dark: #4B5563;
176
+
177
+ --xto-fill-color: #1F2937;
178
+ --xto-fill-color-light: #111827;
179
+ --xto-fill-color-lighter: #030712;
180
+ --xto-fill-color-blank: #030712;
181
+ --xto-fill-color-dark: #374151;
182
+
183
+ --xto-bg-color: #111827;
184
+ --xto-bg-color-page: #030712;
185
+ --xto-bg-color-component: #1F2937;
186
+ --xto-bg-color-overlay: #1F2937;
187
+ --xto-bg-color-spotlight: #1E1B4B;
188
+
189
+ --xto-shadow-subtle: 0 1px 2px 0 rgba(0, 0, 0, 0.16),
190
+ 0 1px 6px -1px rgba(0, 0, 0, 0.12),
191
+ 0 2px 4px 0 rgba(0, 0, 0, 0.08);
192
+ --xto-shadow-base: 0 1px 4px rgba(0, 0, 0, 0.2);
193
+ --xto-shadow-elevated: 0 6px 16px 0 rgba(0, 0, 0, 0.32),
194
+ 0 3px 6px -4px rgba(0, 0, 0, 0.48),
195
+ 0 9px 28px 8px rgba(0, 0, 0, 0.2);
196
+ --xto-shadow-prominent: 0 6px 16px -8px rgba(0, 0, 0, 0.32),
197
+ 0 9px 28px 8px rgba(0, 0, 0, 0.2),
198
+ 0 12px 48px 16px rgba(0, 0, 0, 0.12);
199
+ --xto-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.32);
200
+ --xto-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.48);
201
+
202
+ --xto-gradient-primary: linear-gradient(135deg, #818CF8 0%, #6366F1 100%);
203
+ --xto-gradient-hero: linear-gradient(135deg, #4338CA 0%, #4F46E5 50%, #818CF8 100%);
204
+ --xto-gradient-card: linear-gradient(180deg, rgba(17, 24, 39, 0) 0%, rgba(17, 24, 39, 0.8) 100%);
205
+ }
@@ -5,7 +5,7 @@
5
5
  // 淡入淡出
6
6
  .fade-enter-active,
7
7
  .fade-leave-active {
8
- transition: opacity var(--transition-duration);
8
+ transition: opacity var(--xto-transition-duration-fast, 150ms);
9
9
  }
10
10
 
11
11
  .fade-enter-from,
@@ -16,7 +16,7 @@
16
16
  // 淡入淡出 + 缩放
17
17
  .fade-scale-enter-active,
18
18
  .fade-scale-leave-active {
19
- transition: all var(--transition-duration);
19
+ transition: all var(--xto-transition-duration-fast, 150ms);
20
20
  }
21
21
 
22
22
  .fade-scale-enter-from,
@@ -28,7 +28,7 @@
28
28
  // 淡入淡出 + 滑动
29
29
  .fade-transform-enter-active,
30
30
  .fade-transform-leave-active {
31
- transition: all var(--transition-duration-fast);
31
+ transition: all var(--xto-transition-duration-fast, 150ms);
32
32
  }
33
33
 
34
34
  .fade-transform-enter-from {
@@ -44,7 +44,7 @@
44
44
  // 向下滑入
45
45
  .slide-down-enter-active,
46
46
  .slide-down-leave-active {
47
- transition: all var(--transition-duration);
47
+ transition: all var(--xto-transition-duration-fast, 150ms);
48
48
  }
49
49
 
50
50
  .slide-down-enter-from,
@@ -56,7 +56,7 @@
56
56
  // 向上滑入
57
57
  .slide-up-enter-active,
58
58
  .slide-up-leave-active {
59
- transition: all var(--transition-duration);
59
+ transition: all var(--xto-transition-duration-fast, 150ms);
60
60
  }
61
61
 
62
62
  .slide-up-enter-from,
@@ -68,7 +68,7 @@
68
68
  // 向左滑入
69
69
  .slide-left-enter-active,
70
70
  .slide-left-leave-active {
71
- transition: all var(--transition-duration);
71
+ transition: all var(--xto-transition-duration-fast, 150ms);
72
72
  }
73
73
 
74
74
  .slide-left-enter-from,
@@ -80,7 +80,7 @@
80
80
  // 向右滑入
81
81
  .slide-right-enter-active,
82
82
  .slide-right-leave-active {
83
- transition: all var(--transition-duration);
83
+ transition: all var(--xto-transition-duration-fast, 150ms);
84
84
  }
85
85
 
86
86
  .slide-right-enter-from,
@@ -92,7 +92,7 @@
92
92
  // 缩放
93
93
  .zoom-enter-active,
94
94
  .zoom-leave-active {
95
- transition: all var(--transition-duration);
95
+ transition: all var(--xto-transition-duration-fast, 150ms);
96
96
  }
97
97
 
98
98
  .zoom-enter-from,
@@ -104,7 +104,7 @@
104
104
  // 列表动画
105
105
  .list-enter-active,
106
106
  .list-leave-active {
107
- transition: all var(--transition-duration);
107
+ transition: all var(--xto-transition-duration-fast, 150ms);
108
108
  }
109
109
 
110
110
  .list-enter-from,
@@ -115,5 +115,5 @@
115
115
 
116
116
  // 侧边栏折叠动画
117
117
  .collapse-transition {
118
- transition: width var(--transition-duration), padding var(--transition-duration);
118
+ transition: width var(--xto-transition-duration-fast, 150ms), padding var(--xto-transition-duration-fast, 150ms);
119
119
  }
@@ -1,39 +1,40 @@
1
+ // Design tokens aligned with @xto/core theme system
1
2
  // ==============================================
2
3
  // SCSS Variables - 用于样式计算
3
4
  // ==============================================
4
5
 
5
- // 主题色 - 科技蓝
6
- $color-primary: #1677ff;
7
- $color-primary-light: #4096ff;
8
- $color-primary-lighter: #91caff;
9
- $color-primary-dark: #0958d9;
10
- $color-primary-darker: #003eb3;
6
+ // 主题色 - Indigo
7
+ $color-primary: #4F46E5;
8
+ $color-primary-light: #6366F1;
9
+ $color-primary-lighter: #818CF8;
10
+ $color-primary-dark: #4338CA;
11
+ $color-primary-darker: #3730A3;
11
12
 
12
13
  // 功能色
13
- $color-success: #52c41a;
14
- $color-warning: #faad14;
15
- $color-danger: #ff4d4f;
16
- $color-info: #1677ff;
14
+ $color-success: #10B981;
15
+ $color-warning: #F59E0B;
16
+ $color-danger: #EF4444;
17
+ $color-info: #6B7280;
17
18
 
18
19
  // 文字颜色
19
- $color-text-primary: #1f1f1f;
20
- $color-text-regular: #424242;
21
- $color-text-secondary: #757575;
22
- $color-text-placeholder: #9e9e9e;
20
+ $color-text-primary: #1F2937;
21
+ $color-text-regular: #4B5563;
22
+ $color-text-secondary: #6B7280;
23
+ $color-text-placeholder: #9CA3AF;
23
24
 
24
25
  // 边框颜色
25
- $color-border: #d9d9d9;
26
- $color-border-light: #e8e8e8;
27
- $color-border-lighter: #f0f0f0;
26
+ $color-border: #D1D5DB;
27
+ $color-border-light: #E5E7EB;
28
+ $color-border-lighter: #F3F4F6;
28
29
 
29
30
  // 背景颜色
30
- $bg-color: #ffffff;
31
- $bg-color-page: #f0f2f5;
32
- $bg-color-component: #ffffff;
31
+ $bg-color: #FFFFFF;
32
+ $bg-color-page: #F9FAFB;
33
+ $bg-color-component: #FFFFFF;
33
34
 
34
35
  // 字体
35
- $font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
36
- $font-family-code: 'IBM Plex Mono', 'SF Mono', Monaco, Consolas, monospace;
36
+ $font-family: 'Inter', 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
37
+ $font-family-code: 'JetBrains Mono', 'SF Mono', Monaco, Consolas, monospace;
37
38
  $font-size-base: 14px;
38
39
  $font-size-small: 12px;
39
40
  $font-size-large: 16px;
@@ -63,8 +64,8 @@ $footer-height: 32px;
63
64
 
64
65
  // 过渡
65
66
  $transition-duration: 0.2s;
66
- $transition-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
67
+ $transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
67
68
 
68
69
  // 阴影
69
- $box-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.1);
70
- $box-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.12);
70
+ $box-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.05);
71
+ $box-shadow-card-hover: 0 4px 12px rgba(0, 0, 0, 0.1);