@mc-markets/ui 1.0.90 → 1.0.92

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 (68) hide show
  1. package/README.md +243 -40
  2. package/USAGE_GUIDE.md +339 -0
  3. package/dist/404.html +22 -22
  4. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.mjs +10 -11
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/resolver.d.ts +26 -0
  10. package/dist/resolver.d.ts.map +1 -0
  11. package/dist/style.css +1 -1
  12. package/package.json +8 -5
  13. package/packages/components/Alert/Alert.vue +139 -139
  14. package/packages/components/Banner/Banner.vue +299 -299
  15. package/packages/components/Breadcrumb/Breadcrumb.vue +113 -113
  16. package/packages/components/Breadcrumb/BreadcrumbSeparator.vue +31 -31
  17. package/packages/components/Button/Button.vue +17 -17
  18. package/packages/components/DatePicker/DatePicker.vue +85 -85
  19. package/packages/components/Dialog/Dialog.vue +61 -61
  20. package/packages/components/Empty/Empty.vue +73 -73
  21. package/packages/components/Form/Form.vue +30 -30
  22. package/packages/components/FormItem/FormItem.vue +19 -19
  23. package/packages/components/Icon/Icon.vue +210 -210
  24. package/packages/components/Input/Input.vue +15 -15
  25. package/packages/components/Message/Message.vue +503 -503
  26. package/packages/components/NotifiMessage/NotifiMessage.vue +293 -293
  27. package/packages/components/Notification/Notification.vue +19 -19
  28. package/packages/components/Option/Option.vue +13 -13
  29. package/packages/components/OptionGroup/OptionGroup.vue +13 -13
  30. package/packages/components/Pagination/Pagination.vue +61 -61
  31. package/packages/components/Radio/Radio.vue +67 -67
  32. package/packages/components/RadioButton/RadioButton.vue +110 -110
  33. package/packages/components/RadioGroup/RadioGroup.vue +155 -155
  34. package/packages/components/Select/Select.vue +22 -22
  35. package/packages/components/Switch/Switch.vue +47 -47
  36. package/packages/components/TabCard/TabCard.vue +107 -107
  37. package/packages/components/TabCard/TabCardItem.vue +105 -105
  38. package/packages/components/Table/Table.vue +17 -17
  39. package/packages/components/Table/TableColumn.vue +20 -20
  40. package/packages/components/Tabs/TabPane.vue +79 -79
  41. package/packages/components/Tabs/Tabs.vue +267 -267
  42. package/packages/components/Tag/Tag.vue +208 -211
  43. package/packages/components/Tooltip/Tooltip.vue +58 -58
  44. package/packages/hooks/useClassName.js +23 -23
  45. package/packages/resolver.js +179 -0
  46. package/packages/styles/README.md +129 -129
  47. package/packages/styles/colorfont/iconfont.css +1 -0
  48. package/packages/styles/components/button.scss +121 -121
  49. package/packages/styles/components/checkbox.scss +18 -18
  50. package/packages/styles/components/dialog.scss +47 -47
  51. package/packages/styles/components/form.scss +18 -18
  52. package/packages/styles/components/input.scss +14 -14
  53. package/packages/styles/components/select.scss +62 -62
  54. package/packages/styles/components/table.scss +37 -37
  55. package/packages/styles/components/tabs.scss +76 -76
  56. package/packages/styles/components/tag.scss +142 -142
  57. package/packages/styles/font/iconfont.scss +363 -363
  58. package/packages/styles/index.scss +94 -94
  59. package/packages/styles/variables/border-mode.css +6 -6
  60. package/packages/styles/variables/color-modes-dark.css +143 -143
  61. package/packages/styles/variables/index.scss +5 -5
  62. package/packages/styles/variables/primitives-style.css +112 -112
  63. package/packages/styles/variables/radius-mode.css +14 -14
  64. package/packages/styles/variables/spacing-mode.css +20 -20
  65. package/packages/styles/variables/typography-desktop.css +40 -40
  66. package/packages/styles/variables/typography-mobile.css +40 -40
  67. package/packages/utils/classNames.js +23 -23
  68. package/packages/utils/styleUtils.js +105 -105
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @mc-markets/ui 组件解析器
3
+ * 用于 unplugin-vue-components 和 unplugin-auto-import
4
+ *
5
+ * 支持自动导入组件和 API
6
+ */
7
+
8
+ /**
9
+ * 组件解析器
10
+ * @param {Object} options - 配置选项
11
+ * @param {string} options.prefix - 组件前缀,默认 'm'
12
+ * @param {boolean} options.importStyle - 是否自动导入样式,默认 true
13
+ * @returns {Object} 解析器配置
14
+ */
15
+ export function McMarketsUIResolver(options = {}) {
16
+ const {
17
+ prefix = 'm',
18
+ importStyle = true
19
+ } = options
20
+
21
+ return {
22
+ type: 'component',
23
+ resolve: (name) => {
24
+ // 只处理指定前缀的组件
25
+ const prefixPattern = new RegExp(`^${prefix}(?:-|[A-Z])`, 'i')
26
+ if (!prefixPattern.test(name)) {
27
+ return
28
+ }
29
+
30
+ // 组件名映射表(处理特殊命名)
31
+ const componentMap = {
32
+ // 自定义组件
33
+ 'MIcon': 'Icon',
34
+ 'MButton': 'Button',
35
+ 'MInput': 'Input',
36
+ 'MForm': 'Form',
37
+ 'MFormItem': 'FormItem',
38
+ 'MTooltip': 'Tooltip',
39
+ 'MSelect': 'Select',
40
+ 'MOption': 'Option',
41
+ 'MOptionGroup': 'OptionGroup',
42
+ 'MPagination': 'Pagination',
43
+ 'MRadio': 'Radio',
44
+ 'MRadioGroup': 'RadioGroup',
45
+ 'MRadioButton': 'RadioButton',
46
+ 'MSwitch': 'Switch',
47
+ 'MTag': 'Tag',
48
+ 'MAlert': 'Alert',
49
+ 'MDialog': 'Dialog',
50
+ 'MNotification': 'Notification',
51
+ 'MMessage': 'Message',
52
+ 'MNotifiMessage': 'NotifiMessage',
53
+ 'MDatePicker': 'DatePicker',
54
+ 'MEmpty': 'Empty',
55
+ 'MTable': 'Table',
56
+ 'MTableColumn': 'TableColumn',
57
+ 'MBanner': 'Banner',
58
+ 'MTabs': 'Tabs',
59
+ 'MTabPane': 'TabPane',
60
+ 'MTabCard': 'TabCard',
61
+ 'MTabCardItem': 'TabCardItem',
62
+ 'MBreadcrumb': 'Breadcrumb',
63
+ 'MBreadcrumbSeparator': 'BreadcrumbSeparator',
64
+ }
65
+
66
+ // 检查是否是已定义的组件
67
+ const componentName = componentMap[name]
68
+
69
+ if (componentName) {
70
+ // 返回组件导入配置
71
+ return {
72
+ name,
73
+ from: '@mc-markets/ui',
74
+ // 可选:自动导入样式
75
+ sideEffects: importStyle ? '@mc-markets/ui/dist/style.css' : undefined
76
+ }
77
+ }
78
+
79
+ // 如果不是自定义组件,可能是 Element Plus 组件(通过 m- 前缀)
80
+ // 这些会通过库的智能注册机制自动处理
81
+ if (name.startsWith('M')) {
82
+ return {
83
+ name,
84
+ from: '@mc-markets/ui',
85
+ sideEffects: importStyle ? '@mc-markets/ui/dist/style.css' : undefined
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+ /**
93
+ * API 自动导入配置
94
+ * 用于 unplugin-auto-import
95
+ */
96
+ export function getMcMarketsUIImports() {
97
+ return {
98
+ '@mc-markets/ui': [
99
+ // 组件
100
+ 'MIcon',
101
+ 'MButton',
102
+ 'MInput',
103
+ 'MForm',
104
+ 'MFormItem',
105
+ 'MTooltip',
106
+ 'MSelect',
107
+ 'MOption',
108
+ 'MOptionGroup',
109
+ 'MPagination',
110
+ 'MRadio',
111
+ 'MRadioGroup',
112
+ 'MRadioButton',
113
+ 'MSwitch',
114
+ 'MTag',
115
+ 'MAlert',
116
+ 'MDialog',
117
+ 'MNotification',
118
+ 'MMessage',
119
+ 'MNotifiMessage',
120
+ 'MDatePicker',
121
+ 'MEmpty',
122
+ 'MTable',
123
+ 'MTableColumn',
124
+ 'MBanner',
125
+ 'MTabs',
126
+ 'MTabPane',
127
+ 'MTabCard',
128
+ 'MTabCardItem',
129
+ 'MBreadcrumb',
130
+
131
+ // API 方法
132
+ 'Message',
133
+ 'NotifiMessage',
134
+ 'MMessageBox',
135
+
136
+ // 工具函数
137
+ 'addOverrideClass',
138
+ 'addComponentOverride',
139
+ 'applyGlobalOverride',
140
+ 'forceRefreshStyles',
141
+ 'createOverrideComponent',
142
+ 'checkComponentRegistration',
143
+
144
+ // Element Plus 转换组件
145
+ 'MButtonGroup',
146
+ 'MCarousel',
147
+ 'MCarouselItem',
148
+ 'MCascader',
149
+ 'MCascaderPanel',
150
+ 'MCheckTag',
151
+ 'MCalendar',
152
+ 'MTimePicker',
153
+ 'MDateTimePicker',
154
+ 'MColorPicker',
155
+ 'MTransfer',
156
+ 'MTree',
157
+ 'MTreeSelect',
158
+ 'MUpload',
159
+ 'MImage',
160
+ 'MImageViewer',
161
+ 'MBacktop',
162
+ 'MInfiniteScroll',
163
+ 'MAffix',
164
+ 'MScrollbar',
165
+ 'MResult',
166
+ 'MSkeleton',
167
+ 'MLoading',
168
+ 'MSpinner',
169
+ 'MProgress',
170
+ 'MBadge',
171
+ 'MAvatar',
172
+ 'MConfigProvider'
173
+ ]
174
+ }
175
+ }
176
+
177
+ // 默认导出解析器
178
+ export default McMarketsUIResolver
179
+
@@ -1,129 +1,129 @@
1
- # 样式覆盖说明
2
-
3
- ## 🎨 完全覆盖 Element Plus 样式
4
-
5
- 本组件库通过多层策略确保样式能够**完全覆盖** Element Plus 的默认样式:
6
-
7
- ### 📋 覆盖策略
8
-
9
- #### 1. **CSS 变量覆盖**
10
- 通过 `@forward` 指令在编译时覆盖 Element Plus 的 SCSS 变量:
11
- ```scss
12
- @forward 'element-plus/theme-chalk/src/common/var.scss' with (
13
- $colors: (
14
- 'primary': ( 'base': #FFD905 ),
15
- // ... 其他颜色配置
16
- )
17
- );
18
- ```
19
-
20
- #### 2. **组件级样式覆盖**
21
- 针对每个组件创建专门的覆盖样式文件:
22
- - `components/button.scss` - Button 组件样式
23
- - `components/select.scss` - Select 组件样式
24
- - `components/table.scss` - Table 组件样式
25
- - 等等...
26
-
27
- #### 3. **强制覆盖样式**
28
- 通过 `components/override.scss` 使用 `!important` 和高权重选择器:
29
- ```scss
30
- .mc-ui-override .el-button {
31
- height: 40px !important;
32
- padding: 8px 16px !important;
33
- // ... 其他强制样式
34
- }
35
- ```
36
-
37
- #### 4. **PostCSS 优先级增强**
38
- 自动为样式选择器添加高权重前缀:
39
- ```javascript
40
- // 自动将 .el-button 转换为 .mc-ui-override .el-button
41
- ```
42
-
43
- #### 5. **JavaScript 运行时覆盖**
44
- 通过 `styleUtils.js` 在运行时动态添加覆盖类:
45
- ```javascript
46
- import { applyGlobalOverride } from '@mc-markets/ui';
47
- applyGlobalOverride(); // 全局应用样式覆盖
48
- ```
49
-
50
- ### 🚀 使用方法
51
-
52
- #### 自动模式(推荐)
53
- ```javascript
54
- import McUI from '@mc-markets/ui';
55
- import '@mc-markets/ui/styles/index';
56
-
57
- app.use(McUI); // 自动应用样式覆盖
58
- ```
59
-
60
- #### 手动模式
61
- ```javascript
62
- import { applyGlobalOverride, forceRefreshStyles } from '@mc-markets/ui';
63
-
64
- // 应用全局覆盖
65
- applyGlobalOverride();
66
-
67
- // 强制刷新特定组件样式
68
- forceRefreshStyles('.el-button');
69
- ```
70
-
71
- #### 组件级覆盖
72
- ```javascript
73
- import { addOverrideClass } from '@mc-markets/ui';
74
-
75
- // 在组件挂载后添加覆盖类
76
- mounted() {
77
- addOverrideClass(this.$el);
78
- }
79
- ```
80
-
81
- ### 🎯 覆盖优先级
82
-
83
- 样式覆盖按以下优先级生效(从低到高):
84
-
85
- 1. **Element Plus 默认样式** (最低优先级)
86
- 2. **CSS 变量覆盖**
87
- 3. **组件样式文件**
88
- 4. **PostCSS 权重增强**
89
- 5. **强制覆盖样式 (!important)** (最高优先级)
90
-
91
- ### 📝 自定义样式
92
-
93
- 如需进一步自定义样式,建议按以下顺序:
94
-
95
- 1. **优先使用 CSS 变量**:
96
- ```scss
97
- :root {
98
- --bg-brand: #your-color;
99
- --text-primary: #your-text-color;
100
- }
101
- ```
102
-
103
- 2. **组件级覆盖**:
104
- ```scss
105
- .mc-ui-override .el-button {
106
- // 你的自定义样式
107
- }
108
- ```
109
-
110
- 3. **使用 !important**(最后手段):
111
- ```scss
112
- .el-button {
113
- color: red !important;
114
- }
115
- ```
116
-
117
- ### 🔧 调试技巧
118
-
119
- 1. **检查覆盖类**:确保元素包含 `mc-ui-override` 类
120
- 2. **查看样式优先级**:使用浏览器开发工具检查样式覆盖情况
121
- 3. **强制刷新**:调用 `forceRefreshStyles()` 重新应用覆盖
122
- 4. **全局覆盖**:确保 `document.body` 包含 `mc-ui-override` 类
123
-
124
- ### ⚠️ 注意事项
125
-
126
- - 样式覆盖会在组件库初始化时自动应用
127
- - 动态添加的 Element Plus 组件会被自动检测并应用覆盖
128
- - 如果样式仍未生效,请检查 CSS 加载顺序
129
- - 建议在应用根组件中引入样式文件以确保正确的加载顺序
1
+ # 样式覆盖说明
2
+
3
+ ## 🎨 完全覆盖 Element Plus 样式
4
+
5
+ 本组件库通过多层策略确保样式能够**完全覆盖** Element Plus 的默认样式:
6
+
7
+ ### 📋 覆盖策略
8
+
9
+ #### 1. **CSS 变量覆盖**
10
+ 通过 `@forward` 指令在编译时覆盖 Element Plus 的 SCSS 变量:
11
+ ```scss
12
+ @forward 'element-plus/theme-chalk/src/common/var.scss' with (
13
+ $colors: (
14
+ 'primary': ( 'base': #FFD905 ),
15
+ // ... 其他颜色配置
16
+ )
17
+ );
18
+ ```
19
+
20
+ #### 2. **组件级样式覆盖**
21
+ 针对每个组件创建专门的覆盖样式文件:
22
+ - `components/button.scss` - Button 组件样式
23
+ - `components/select.scss` - Select 组件样式
24
+ - `components/table.scss` - Table 组件样式
25
+ - 等等...
26
+
27
+ #### 3. **强制覆盖样式**
28
+ 通过 `components/override.scss` 使用 `!important` 和高权重选择器:
29
+ ```scss
30
+ .mc-ui-override .el-button {
31
+ height: 40px !important;
32
+ padding: 8px 16px !important;
33
+ // ... 其他强制样式
34
+ }
35
+ ```
36
+
37
+ #### 4. **PostCSS 优先级增强**
38
+ 自动为样式选择器添加高权重前缀:
39
+ ```javascript
40
+ // 自动将 .el-button 转换为 .mc-ui-override .el-button
41
+ ```
42
+
43
+ #### 5. **JavaScript 运行时覆盖**
44
+ 通过 `styleUtils.js` 在运行时动态添加覆盖类:
45
+ ```javascript
46
+ import { applyGlobalOverride } from '@mc-markets/ui';
47
+ applyGlobalOverride(); // 全局应用样式覆盖
48
+ ```
49
+
50
+ ### 🚀 使用方法
51
+
52
+ #### 自动模式(推荐)
53
+ ```javascript
54
+ import McUI from '@mc-markets/ui';
55
+ import '@mc-markets/ui/styles/index';
56
+
57
+ app.use(McUI); // 自动应用样式覆盖
58
+ ```
59
+
60
+ #### 手动模式
61
+ ```javascript
62
+ import { applyGlobalOverride, forceRefreshStyles } from '@mc-markets/ui';
63
+
64
+ // 应用全局覆盖
65
+ applyGlobalOverride();
66
+
67
+ // 强制刷新特定组件样式
68
+ forceRefreshStyles('.el-button');
69
+ ```
70
+
71
+ #### 组件级覆盖
72
+ ```javascript
73
+ import { addOverrideClass } from '@mc-markets/ui';
74
+
75
+ // 在组件挂载后添加覆盖类
76
+ mounted() {
77
+ addOverrideClass(this.$el);
78
+ }
79
+ ```
80
+
81
+ ### 🎯 覆盖优先级
82
+
83
+ 样式覆盖按以下优先级生效(从低到高):
84
+
85
+ 1. **Element Plus 默认样式** (最低优先级)
86
+ 2. **CSS 变量覆盖**
87
+ 3. **组件样式文件**
88
+ 4. **PostCSS 权重增强**
89
+ 5. **强制覆盖样式 (!important)** (最高优先级)
90
+
91
+ ### 📝 自定义样式
92
+
93
+ 如需进一步自定义样式,建议按以下顺序:
94
+
95
+ 1. **优先使用 CSS 变量**:
96
+ ```scss
97
+ :root {
98
+ --bg-brand: #your-color;
99
+ --text-primary: #your-text-color;
100
+ }
101
+ ```
102
+
103
+ 2. **组件级覆盖**:
104
+ ```scss
105
+ .mc-ui-override .el-button {
106
+ // 你的自定义样式
107
+ }
108
+ ```
109
+
110
+ 3. **使用 !important**(最后手段):
111
+ ```scss
112
+ .el-button {
113
+ color: red !important;
114
+ }
115
+ ```
116
+
117
+ ### 🔧 调试技巧
118
+
119
+ 1. **检查覆盖类**:确保元素包含 `mc-ui-override` 类
120
+ 2. **查看样式优先级**:使用浏览器开发工具检查样式覆盖情况
121
+ 3. **强制刷新**:调用 `forceRefreshStyles()` 重新应用覆盖
122
+ 4. **全局覆盖**:确保 `document.body` 包含 `mc-ui-override` 类
123
+
124
+ ### ⚠️ 注意事项
125
+
126
+ - 样式覆盖会在组件库初始化时自动应用
127
+ - 动态添加的 Element Plus 组件会被自动检测并应用覆盖
128
+ - 如果样式仍未生效,请检查 CSS 加载顺序
129
+ - 建议在应用根组件中引入样式文件以确保正确的加载顺序
@@ -5,6 +5,7 @@
5
5
  url('./iconfont.woff2?t=1759051846956') format('woff2'),
6
6
  url('./iconfont.woff?t=1759051846956') format('woff'),
7
7
  url('./iconfont.ttf?t=1759051846956') format('truetype');
8
+ font-display: swap;
8
9
  }
9
10
 
10
11
  .colorfont {
@@ -1,121 +1,121 @@
1
- .mc-ui-override {
2
- .el-button {
3
- --el-button-font-weight: 600;
4
- --el-button-border-color: var(--bg-quaternary);
5
- --el-button-bg-color: var(--bg-quaternary);
6
- --el-button-text-color: var(--text-primary);
7
- --el-button-disabled-text-color: var(--text-quaternary);
8
- --el-button-disabled-bg-color: color-mix(
9
- in srgb,
10
- var(--bg-tertiary-hover) 50%,
11
- transparent
12
- );
13
- --el-button-disabled-border-color: var(--el-button-disabled-bg-color);
14
- --el-button-divide-border-color: rgba(255, 255, 255, 0.5);
15
- --el-button-hover-text-color: var(--text-primary);
16
- --el-button-hover-bg-color: var(--bg-tertiary-hover);
17
- --el-button-hover-border-color: var(--bg-tertiary);
18
- --el-button-active-text-color: var(--text-primary);
19
- --el-button-active-border-color: var(--bg-tertiary);
20
- --el-button-active-bg-color: var(--bg-tertiary);
21
- --el-button-outline-color: var(--bg-tertiary);
22
- --el-button-hover-link-text-color: var(--text-brand);
23
- --el-button-active-color: var(--text-primary);
24
- height: 40px;
25
- padding: 8px 16px;
26
-
27
- &.is-plain {
28
- --el-button-hover-text-color: var(--text-primary);
29
- --el-button-hover-bg-color: var(--bg-brand-secondary);
30
- --el-button-hover-border-color: var(--border-brand-hover);
31
-
32
- border-color: var(--border-brand);
33
- background-color: transparent;
34
-
35
- &.is-disabled {
36
- background-color: transparent;
37
- border-color: color-mix(in srgb, var(--bg-brand) 50%, transparent);
38
- color: var(--el-button-hover-text-color);
39
- }
40
- }
41
-
42
- &.el-button--large {
43
- height: 48px;
44
- padding: 12px 20px;
45
- }
46
- &.el-button--small {
47
- height: 32px;
48
- padding: 5px 12px;
49
- font-size: 14px;
50
- }
51
-
52
- &.el-button--text {
53
- height: 20px;
54
- padding: 0;
55
- line-height: 20px;
56
- }
57
-
58
- &.el-button--primary {
59
- --el-button-text-color: var(--text-quaternary);
60
- --el-button-outline-color: var(--text-quaternary);
61
- --el-button-active-color: var(--bg-brand-hover);
62
- --el-button-hover-text-color: var(--text-quaternary);
63
- --el-button-hover-link-text-color: var(--text-quaternary);
64
- --el-button-hover-bg-color: var(--bg-brand-hover);
65
- --el-button-hover-border-color: var(--bg-brand-hover);
66
- --el-button-active-text-color: var(--text-quaternary);
67
- --el-button-active-bg-color: var(--bg-brand-hover);
68
- --el-button-active-border-color: var(--bg-brand-hover);
69
- --el-button-disabled-text-color: var(--text-quaternary);
70
- --el-button-disabled-bg-color: color-mix(
71
- in srgb,
72
- var(--bg-brand) 50%,
73
- transparent
74
- );
75
- --el-button-disabled-border-color: color-mix(
76
- in srgb,
77
- var(--bg-brand) 50%,
78
- transparent
79
- );
80
-
81
- background-color: var(--bg-brand);
82
- border-color: var(--bg-brand);
83
-
84
- &.is-disabled {
85
- --el-button-disabled-text-color: var(--text-quaternary);
86
- background-color: color-mix(in srgb, var(--bg-brand) 50%, transparent);
87
- border-color: transparent;
88
- }
89
- }
90
-
91
- &.is-circle {
92
- width: 40px;
93
- }
94
-
95
- &:hover {
96
- color: var(--el-button-hover-text-color);
97
- border-color: var(--el-button-hover-border-color);
98
- background-color: var(--el-button-hover-bg-color);
99
- }
100
-
101
- &.is-text,&.is-link{
102
- color: var(--text-brand);
103
- border: 0 solid transparent;
104
- background-color: transparent;
105
- &:hover {
106
- color: var(--text-brand-hover);
107
- border: 0 solid transparent;
108
- background-color: transparent;
109
- }
110
- &.is-disabled {
111
- color: color-mix(in srgb, var(--bg-brand) 50%, transparent);
112
- border: 0 solid transparent;
113
- background-color: transparent;
114
- }
115
- }
116
-
117
- [class*="el-icon"] + span {
118
- margin-left: 5px;
119
- }
120
- }
121
- }
1
+ .mc-ui-override {
2
+ .el-button {
3
+ --el-button-font-weight: 600;
4
+ --el-button-border-color: var(--bg-quaternary);
5
+ --el-button-bg-color: var(--bg-quaternary);
6
+ --el-button-text-color: var(--text-primary);
7
+ --el-button-disabled-text-color: var(--text-quaternary);
8
+ --el-button-disabled-bg-color: color-mix(
9
+ in srgb,
10
+ var(--bg-tertiary-hover) 50%,
11
+ transparent
12
+ );
13
+ --el-button-disabled-border-color: var(--el-button-disabled-bg-color);
14
+ --el-button-divide-border-color: rgba(255, 255, 255, 0.5);
15
+ --el-button-hover-text-color: var(--text-primary);
16
+ --el-button-hover-bg-color: var(--bg-tertiary-hover);
17
+ --el-button-hover-border-color: var(--bg-tertiary);
18
+ --el-button-active-text-color: var(--text-primary);
19
+ --el-button-active-border-color: var(--bg-tertiary);
20
+ --el-button-active-bg-color: var(--bg-tertiary);
21
+ --el-button-outline-color: var(--bg-tertiary);
22
+ --el-button-hover-link-text-color: var(--text-brand);
23
+ --el-button-active-color: var(--text-primary);
24
+ height: 40px;
25
+ padding: 8px 16px;
26
+
27
+ &.is-plain {
28
+ --el-button-hover-text-color: var(--text-primary);
29
+ --el-button-hover-bg-color: var(--bg-brand-secondary);
30
+ --el-button-hover-border-color: var(--border-brand-hover);
31
+
32
+ border-color: var(--border-brand);
33
+ background-color: transparent;
34
+
35
+ &.is-disabled {
36
+ background-color: transparent;
37
+ border-color: color-mix(in srgb, var(--bg-brand) 50%, transparent);
38
+ color: var(--el-button-hover-text-color);
39
+ }
40
+ }
41
+
42
+ &.el-button--large {
43
+ height: 48px;
44
+ padding: 12px 20px;
45
+ }
46
+ &.el-button--small {
47
+ height: 32px;
48
+ padding: 5px 12px;
49
+ font-size: 14px;
50
+ }
51
+
52
+ &.el-button--text {
53
+ height: 20px;
54
+ padding: 0;
55
+ line-height: 20px;
56
+ }
57
+
58
+ &.el-button--primary {
59
+ --el-button-text-color: var(--text-quaternary);
60
+ --el-button-outline-color: var(--text-quaternary);
61
+ --el-button-active-color: var(--bg-brand-hover);
62
+ --el-button-hover-text-color: var(--text-quaternary);
63
+ --el-button-hover-link-text-color: var(--text-quaternary);
64
+ --el-button-hover-bg-color: var(--bg-brand-hover);
65
+ --el-button-hover-border-color: var(--bg-brand-hover);
66
+ --el-button-active-text-color: var(--text-quaternary);
67
+ --el-button-active-bg-color: var(--bg-brand-hover);
68
+ --el-button-active-border-color: var(--bg-brand-hover);
69
+ --el-button-disabled-text-color: var(--text-quaternary);
70
+ --el-button-disabled-bg-color: color-mix(
71
+ in srgb,
72
+ var(--bg-brand) 50%,
73
+ transparent
74
+ );
75
+ --el-button-disabled-border-color: color-mix(
76
+ in srgb,
77
+ var(--bg-brand) 50%,
78
+ transparent
79
+ );
80
+
81
+ background-color: var(--bg-brand);
82
+ border-color: var(--bg-brand);
83
+
84
+ &.is-disabled {
85
+ --el-button-disabled-text-color: var(--text-quaternary);
86
+ background-color: color-mix(in srgb, var(--bg-brand) 50%, transparent);
87
+ border-color: transparent;
88
+ }
89
+ }
90
+
91
+ &.is-circle {
92
+ width: 40px;
93
+ }
94
+
95
+ &:hover {
96
+ color: var(--el-button-hover-text-color);
97
+ border-color: var(--el-button-hover-border-color);
98
+ background-color: var(--el-button-hover-bg-color);
99
+ }
100
+
101
+ &.is-text,&.is-link{
102
+ color: var(--text-brand);
103
+ border: 0 solid transparent;
104
+ background-color: transparent;
105
+ &:hover {
106
+ color: var(--text-brand-hover);
107
+ border: 0 solid transparent;
108
+ background-color: transparent;
109
+ }
110
+ &.is-disabled {
111
+ color: color-mix(in srgb, var(--bg-brand) 50%, transparent);
112
+ border: 0 solid transparent;
113
+ background-color: transparent;
114
+ }
115
+ }
116
+
117
+ [class*="el-icon"] + span {
118
+ margin-left: 5px;
119
+ }
120
+ }
121
+ }