v-uni-app-ui 1.0.2 → 1.0.4

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 (31) hide show
  1. package/README.md +147 -0
  2. package/components/config/css/basic.scss +19 -0
  3. package/components/config/interface/basic-type.js +16 -0
  4. package/components/config/interface/components-interface.ts +0 -0
  5. package/components/config/interface/monitor/components/input-monitor.js +0 -0
  6. package/components/config/interface/monitor/property-monitor.ts +136 -0
  7. package/components/config/interface/props/basic-props.ts +88 -0
  8. package/components/config/interface/props/components/button-props.ts +85 -0
  9. package/components/config/interface/props/components/input-props.ts +69 -0
  10. package/components/config/interface/props/props-tools.ts +64 -0
  11. package/components/config/style/basic.js +346 -0
  12. package/components/config/style/component-registry.js +142 -0
  13. package/components/config/style/components/button-style.js +160 -0
  14. package/components/config/style/components/input-style.js +98 -0
  15. package/components/config/style/components-style.js +622 -0
  16. package/components/config/style/property-mapper.js +377 -0
  17. package/components/config/style/pseudo-processor.js +213 -0
  18. package/components/config.js +3 -3
  19. package/components/icon/iconfont.css +87 -0
  20. package/components/icon/iconfont.js +1 -0
  21. package/components/icon/iconfont.json +135 -0
  22. package/components/icon/iconfont.ttf +0 -0
  23. package/components/icon/iconfont.woff +0 -0
  24. package/components/icon/iconfont.woff2 +0 -0
  25. package/components/model/native/v-button/v-button.vue +81 -273
  26. package/components/model/native/v-input/v-input.vue +132 -321
  27. package/components/utils/event-modifiers.ts +139 -0
  28. package/components/utils/validator.ts +451 -0
  29. package/index.js +372 -0
  30. package/package.json +12 -4
  31. package/components/model/native/v-text-button/v-text-button.vue +0 -139
@@ -0,0 +1,346 @@
1
+ export const styleConfig = {
2
+ // 基础样式配置
3
+ basic: {
4
+ // 背景颜色 - 按功能分类
5
+ backgroundColor: {
6
+ // 状态类背景色
7
+ default: '#307fff',
8
+ delete: '#ff5e5e',
9
+ success: '#31d283',
10
+ info: '#888888',
11
+ warning: '#fba000',
12
+ reversal: '#ffffff',
13
+ disabled: '#f5f5f5',
14
+
15
+ // 布局背景色
16
+ page: '#f8f8f8', // 页面背景
17
+ card: '#ffffff', // 卡片背景
18
+ section: '#fafafa', // 区域背景
19
+ mask: 'rgba(0, 0, 0, 0.5)', // 遮罩层背景
20
+
21
+ // 交互状态背景色
22
+ hover: '#f0f7ff', // 悬停背景
23
+ active: '#e6f0ff', // 激活背景
24
+ selected: '#307fff', // 选中背景
25
+ focus: 'rgba(48, 127, 255, 0.1)' // 聚焦背景
26
+ },
27
+
28
+ // 字体颜色 - 按语义分类
29
+ fontColor: {
30
+ // 状态类文字色
31
+ default: '#307fff',
32
+ delete: '#ff5e5e',
33
+ success: '#31d283',
34
+ info: '#888888',
35
+ warning: '#fba000',
36
+ reversal: '#ffffff',
37
+ disabled: '#cccccc',
38
+
39
+ // 层级文字色
40
+ primary: '#222222', // 主要文字
41
+ secondary: '#666666', // 次要文字
42
+ tertiary: '#969696', // 辅助文字
43
+ placeholder: '#cccccc', // 占位文字
44
+ description: '#888888', // 描述文字
45
+
46
+ // 特殊文字色
47
+ link: '#307fff', // 链接文字
48
+ error: '#ff5e5e', // 错误文字
49
+ warningText: '#fba000', // 警告文字
50
+ successText: '#31d283' // 成功文字
51
+ },
52
+
53
+ // 字体大小
54
+ fontSize: {
55
+ // 标题类
56
+ extraLargeTitle: '48rpx',
57
+ largeTitle: '42.5rpx',
58
+ mediumTitle: '34.5rpx',
59
+ smallTitle: '31.5rpx',
60
+ extraSmallTitle: '28rpx',
61
+
62
+ // 正文类
63
+ extraLargeText: '32rpx',
64
+ largeText: '29.5rpx',
65
+ mediumText: '25.5rpx',
66
+ smallText: '22.5rpx',
67
+ extraSmallText: '20rpx',
68
+
69
+ // 特殊类
70
+ message: '20.5rpx',
71
+ hint: '18.5rpx',
72
+ caption: '16rpx',
73
+ footnote: '14rpx'
74
+ },
75
+
76
+ // 字体其他属性
77
+ fontOther: {
78
+ fontFamily: "'Noto Sans CJK', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
79
+ fontWeight: {
80
+ thin: 100,
81
+ light: 300,
82
+ regular: 400,
83
+ medium: 500,
84
+ bold: 700,
85
+ black: 900
86
+ },
87
+ lineHeight: {
88
+ tight: 1.2,
89
+ normal: 1.5,
90
+ relaxed: 1.75,
91
+ loose: 2
92
+ }
93
+ },
94
+
95
+ // 文字间距
96
+ letterSpacing: {
97
+ tight: '-0.5rpx',
98
+ normal: '0rpx',
99
+ wide: '0.5rpx',
100
+ extraWide: '1rpx'
101
+ },
102
+
103
+ // 边框设置
104
+ border: {
105
+ // 边框颜色
106
+ color: {
107
+ default: '#307fff',
108
+ delete: '#ff5e5e',
109
+ success: '#31d283',
110
+ info: '#888888',
111
+ warning: '#fba000',
112
+ divider: '#e0e0e0', // 分割线
113
+ light: '#f0f0f0', // 浅色边框
114
+ dark: '#d9d9d9', // 深色边框
115
+ primary: '#d0d0d0' // 主要边框颜色
116
+ },
117
+
118
+ // 边框宽度
119
+ width: {
120
+ primary: '1rpx', //主要宽度
121
+ secondary: '2rpx', //次要宽度
122
+ medium: '3rpx', //中等
123
+ thick: '7.5rpx' //粗
124
+ },
125
+
126
+ // 边框样式
127
+ style: {
128
+ solid: 'solid',
129
+ dashed: 'dashed',
130
+ dotted: 'dotted'
131
+ }
132
+ },
133
+
134
+ // 圆角设置
135
+ borderRadius: {
136
+ default: '8rpx',
137
+ none: '0',
138
+ extraSmall: '4rpx',
139
+ small: '8rpx',
140
+ medium: '12rpx',
141
+ large: '16rpx',
142
+ extraLarge: '24rpx',
143
+ full: '9999rpx',
144
+ circle: '35rpx'
145
+ },
146
+
147
+ // 透明度
148
+ opacity: {
149
+ // 交互状态
150
+ hover: 0.9,
151
+ active: 0.8,
152
+ click: 0.8,
153
+ disabled: 0.6,
154
+
155
+ // 视觉层次
156
+ subtle: 0.3,
157
+ medium: 0.5,
158
+ strong: 0.7,
159
+
160
+ // 组件
161
+ toast: 0.95,
162
+ mask: 0.4,
163
+ border: 0.3,
164
+ overlay: 0.2
165
+ },
166
+
167
+ // 间距系统
168
+ spacing: {
169
+ // 基础间距
170
+ extraSmall: '4rpx',
171
+ small: '8rpx',
172
+ medium: '12rpx',
173
+ large: '16rpx',
174
+ extraLarge: '24rpx',
175
+ extraExtraLarge: '32rpx',
176
+ superLarge: '48rpx',
177
+
178
+ // 布局间距
179
+ pagePadding: '32rpx',
180
+ cardPadding: '24rpx',
181
+ sectionPadding: '16rpx',
182
+ itemSpacing: '12rpx'
183
+ },
184
+
185
+ // 阴影系统
186
+ shadow: {
187
+ // 层级阴影
188
+ none: 'none',
189
+ small: '0 2rpx 8rpx rgba(0, 0, 0, 0.1)',
190
+ medium: '0 4rpx 12rpx rgba(0, 0, 0, 0.15)',
191
+ large: '0 8rpx 24rpx rgba(0, 0, 0, 0.2)',
192
+ extraLarge: '0 12rpx 48rpx rgba(0, 0, 0, 0.25)',
193
+
194
+ // 特殊阴影
195
+ focus: '0 0 0 3rpx rgba(48, 127, 255, 0.2)',
196
+ inset: 'inset 0 2rpx 4rpx rgba(0, 0, 0, 0.1)',
197
+
198
+ // 颜色阴影
199
+ default: '0 4rpx 12rpx rgba(48, 127, 255, 0.3)',
200
+ success: '0 4rpx 12rpx rgba(49, 210, 131, 0.3)',
201
+ warning: '0 4rpx 12rpx rgba(251, 160, 0, 0.3)',
202
+ info: '0 4rpx 12rpx rgba(0, 0, 0, 0.3)',
203
+ delete: '0 4rpx 12rpx rgba(255, 94, 94, 0.3)'
204
+ },
205
+
206
+ // 动画时长
207
+ animation: {
208
+ duration: {
209
+ instant: '100ms',
210
+ fast: '200ms',
211
+ normal: '300ms',
212
+ slow: '500ms',
213
+ verySlow: '800ms'
214
+ },
215
+ easing: {
216
+ linear: 'linear',
217
+ easeInOut: 'ease-in-out',
218
+ easeOut: 'ease-out',
219
+ easeIn: 'ease-in',
220
+ easeOutCubic: 'cubic-bezier(0.33, 1, 0.68, 1)',
221
+ easeInOutCubic: 'cubic-bezier(0.65, 0, 0.35, 1)',
222
+ easeOutBack: 'cubic-bezier(0.34, 1.56, 0.64, 1)',
223
+ easeInOutBack: 'cubic-bezier(0.68, -0.6, 0.32, 1.6)'
224
+ },
225
+ transition: {
226
+ default: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)'
227
+ },
228
+ },
229
+
230
+ // z-index层级
231
+ zIndex: {
232
+ base: 0,
233
+ content: 10,
234
+ overlay: 100,
235
+ modal: 1000,
236
+ toast: 1100,
237
+ tooltip: 1200,
238
+ dropdown: 1300,
239
+ notification: 1400
240
+ }
241
+ },
242
+
243
+ // 暗黑模式配置
244
+ darkMode: {
245
+ backgroundColor: {
246
+ default: '#307fff',
247
+ delete: '#ff5e5e',
248
+ success: '#31d283',
249
+ info: '#888888',
250
+ warning: '#fba000',
251
+ reversal: '#1a1a1a',
252
+ disabled: '#2a2a2a',
253
+ page: '#121212',
254
+ card: '#1e1e1e',
255
+ section: '#2a2a2a',
256
+ mask: 'rgba(0, 0, 0, 0.7)',
257
+ hover: 'rgba(48, 127, 255, 0.2)',
258
+ active: 'rgba(48, 127, 255, 0.3)',
259
+ selected: '#307fff',
260
+ focus: 'rgba(48, 127, 255, 0.1)'
261
+ },
262
+ fontColor: {
263
+ default: '#307fff',
264
+ delete: '#ff5e5e',
265
+ success: '#31d283',
266
+ info: '#888888',
267
+ warning: '#fba000',
268
+ reversal: '#ffffff',
269
+ disabled: '#555555',
270
+ primary: '#ffffff',
271
+ secondary: '#cccccc',
272
+ tertiary: '#999999',
273
+ placeholder: '#666666',
274
+ description: '#888888',
275
+ link: '#307fff',
276
+ error: '#ff5e5e',
277
+ warningText: '#fba000',
278
+ successText: '#31d283'
279
+ },
280
+ border: {
281
+ color: {
282
+ default: '#307fff',
283
+ delete: '#ff5e5e',
284
+ success: '#31d283',
285
+ info: '#888888',
286
+ warning: '#fba000',
287
+ divider: '#333333',
288
+ light: '#2a2a2a',
289
+ dark: '#444444'
290
+ }
291
+ }
292
+ },
293
+
294
+ // 响应式断点(基于rpx)
295
+ breakpoints: {
296
+ mobile: '768rpx',
297
+ tablet: '1024rpx',
298
+ desktop: '1280rpx',
299
+ wide: '1440rpx'
300
+ },
301
+
302
+ // 组件特定配置
303
+ components: {
304
+ VButton: {
305
+ height: {
306
+ small: '50rpx',
307
+ medium: '60rpx',
308
+ large: '70rpx'
309
+ },
310
+ padding: {
311
+ small: '14rpx 10rpx',
312
+ medium: '15rpx 15rpx',
313
+ large: '20rpx 20rpx'
314
+ },
315
+ plain: {
316
+ backgroundColor: 'transparent',
317
+ borderWidth: '1rpx'
318
+ },
319
+ text: {
320
+ backgroundColor: 'transparent',
321
+ borderWidth: '0'
322
+ },
323
+ shape: {
324
+ default: {
325
+ width: "1rpx",
326
+ style: 'solid'
327
+ },
328
+ none: {
329
+ width: "1rpx",
330
+ style: 'solid'
331
+ },
332
+ circle: {
333
+ width: "1rpx",
334
+ style: 'solid'
335
+ }
336
+ }
337
+ },
338
+ VInput: {
339
+ height: {
340
+ small: '50rpx',
341
+ medium: '60rpx',
342
+ large: '70rpx'
343
+ },
344
+ }
345
+ }
346
+ };
@@ -0,0 +1,142 @@
1
+ import {
2
+ styleConfig
3
+ } from './basic.js'
4
+
5
+ // 导入组件样式配置
6
+ import ButtonStyleConfig from '@/components/config/style/components/button-style.js'
7
+ import InputStyleConfig from '@/components/config/style/components/input-style.js'
8
+ /**
9
+ * 默认组件样式配置
10
+ */
11
+ const DefaultStyleConfig = {}
12
+
13
+ /**
14
+ * 组件样式注册表
15
+ */
16
+ const ComponentStyleRegistry = {
17
+ button: ButtonStyleConfig,
18
+ input: InputStyleConfig,
19
+ default: DefaultStyleConfig
20
+ }
21
+
22
+ /**
23
+ * 获取组件样式配置(合并默认配置)
24
+ * @param {string} componentName 组件名称
25
+ * @returns {Object} 组件样式配置
26
+ */
27
+ export function getComponentStyleConfig(componentName) {
28
+ const config = ComponentStyleRegistry[componentName] || ComponentStyleRegistry.default
29
+
30
+ // 如果组件配置有默认样式,确保返回的是包含默认配置的对象
31
+ if (config) {
32
+ // 复制配置,确保不修改原始配置
33
+ const mergedConfig = {
34
+ ...config
35
+ }
36
+
37
+ // 如果组件有自己的默认配置,将其合并到根级别
38
+ if (mergedConfig.default) {
39
+ // 注意:这里不直接合并,因为default可能在特定场景下使用
40
+ // 保持原有结构,PropertyMapper会处理default配置
41
+ }
42
+
43
+ return mergedConfig
44
+ }
45
+
46
+ return config
47
+ }
48
+
49
+ /**
50
+ * 注册组件样式配置
51
+ * @param {string} componentName 组件名称
52
+ * @param {Object} styleConfig 样式配置
53
+ * @param {boolean} mergeWithDefault 是否与现有默认配置合并
54
+ */
55
+ export function registerComponentStyle(componentName, styleConfig, mergeWithDefault = true) {
56
+ if (!ComponentStyleRegistry[componentName]) {
57
+ ComponentStyleRegistry[componentName] = {}
58
+ }
59
+
60
+ if (mergeWithDefault) {
61
+ // 深度合并配置,包括默认配置
62
+ ComponentStyleRegistry[componentName] = deepMerge(
63
+ ComponentStyleRegistry[componentName],
64
+ styleConfig
65
+ )
66
+ } else {
67
+ // 直接覆盖
68
+ ComponentStyleRegistry[componentName] = styleConfig
69
+ }
70
+ }
71
+
72
+ /**
73
+ * 检查组件是否已注册样式
74
+ * @param {string} componentName 组件名称
75
+ * @returns {boolean}
76
+ */
77
+ export function hasComponentStyle(componentName) {
78
+ return !!ComponentStyleRegistry[componentName]
79
+ }
80
+
81
+ /**
82
+ * 获取所有已注册的组件名称
83
+ * @returns {string[]}
84
+ */
85
+ export function getRegisteredComponents() {
86
+ return Object.keys(ComponentStyleRegistry).filter(name => name !== 'default')
87
+ }
88
+
89
+ /**
90
+ * 深度合并对象
91
+ */
92
+ function deepMerge(target, source) {
93
+ const result = {
94
+ ...target
95
+ }
96
+
97
+ for (const key in source) {
98
+ if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
99
+ if (target[key] && typeof target[key] === 'object') {
100
+ result[key] = deepMerge(target[key], source[key])
101
+ } else {
102
+ result[key] = source[key]
103
+ }
104
+ } else {
105
+ result[key] = source[key]
106
+ }
107
+ }
108
+
109
+ return result
110
+ }
111
+
112
+ /**
113
+ * 设置组件的默认样式配置
114
+ * @param {string} componentName 组件名称
115
+ * @param {Object} defaultConfig 默认样式配置
116
+ */
117
+ export function setComponentDefaultConfig(componentName, defaultConfig) {
118
+ if (!ComponentStyleRegistry[componentName]) {
119
+ ComponentStyleRegistry[componentName] = {}
120
+ }
121
+
122
+ // 将默认配置合并到组件配置的default属性中
123
+ ComponentStyleRegistry[componentName].default = deepMerge(
124
+ ComponentStyleRegistry[componentName].default || {},
125
+ defaultConfig
126
+ )
127
+ }
128
+
129
+ // 导出注册表
130
+ export {
131
+ ComponentStyleRegistry
132
+ }
133
+
134
+ // 默认导出
135
+ export default {
136
+ getComponentStyleConfig,
137
+ registerComponentStyle,
138
+ hasComponentStyle,
139
+ getRegisteredComponents,
140
+ setComponentDefaultConfig,
141
+ ComponentStyleRegistry
142
+ }
@@ -0,0 +1,160 @@
1
+ import {
2
+ styleConfig
3
+ } from "@/components/config/style/basic.js"
4
+ export default {
5
+ size: {
6
+ 'small': {
7
+ height: styleConfig.components.VButton.height.small,
8
+ padding: styleConfig.components.VButton.padding.small,
9
+ fontSize: styleConfig.basic.fontSize.smallText,
10
+ },
11
+ 'medium': {
12
+ height: styleConfig.components.VButton.height.medium,
13
+ padding: styleConfig.components.VButton.padding.medium,
14
+ fontSize: styleConfig.basic.fontSize.mediumText,
15
+ },
16
+ 'large': {
17
+ height: styleConfig.components.VButton.height.large,
18
+ padding: styleConfig.components.VButton.padding.large,
19
+ fontSize: styleConfig.basic.fontSize.largeText,
20
+ },
21
+ },
22
+ type: {
23
+ 'default': {
24
+ backgroundColor: styleConfig.basic.backgroundColor.default,
25
+ color: styleConfig.basic.fontColor.reversal,
26
+ borderColor: styleConfig.basic.border.color.default
27
+ },
28
+ 'success': {
29
+ backgroundColor: styleConfig.basic.backgroundColor.success,
30
+ color: styleConfig.basic.fontColor.reversal,
31
+ borderColor: styleConfig.basic.border.color.success
32
+ },
33
+ 'warning': {
34
+ backgroundColor: styleConfig.basic.backgroundColor.warning,
35
+ color: styleConfig.basic.fontColor.reversal,
36
+ borderColor: styleConfig.basic.border.color.warning
37
+ },
38
+ 'info': {
39
+ backgroundColor: styleConfig.basic.backgroundColor.info,
40
+ color: styleConfig.basic.fontColor.reversal,
41
+ borderColor: styleConfig.basic.border.color.info
42
+ },
43
+ 'delete': {
44
+ backgroundColor: styleConfig.basic.backgroundColor.delete,
45
+ color: styleConfig.basic.fontColor.reversal,
46
+ borderColor: styleConfig.basic.border.color.delete
47
+ },
48
+
49
+ // 镂空类型
50
+ 'default-plain': {
51
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
52
+ color: styleConfig.basic.fontColor.default,
53
+ borderColor: styleConfig.basic.border.color.default,
54
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
55
+ },
56
+ 'success-plain': {
57
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
58
+ color: styleConfig.basic.fontColor.success,
59
+ borderColor: styleConfig.basic.border.color.success,
60
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
61
+ },
62
+ 'warning-plain': {
63
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
64
+ color: styleConfig.basic.fontColor.warning,
65
+ borderColor: styleConfig.basic.border.color.warning,
66
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
67
+ },
68
+ 'delete-plain': {
69
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
70
+ color: styleConfig.basic.fontColor.delete,
71
+ borderColor: styleConfig.basic.border.color.delete,
72
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
73
+ },
74
+ 'info-plain': {
75
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
76
+ color: styleConfig.basic.fontColor.info,
77
+ borderColor: styleConfig.basic.border.color.info,
78
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
79
+ },
80
+ //文本
81
+ 'default-text': {
82
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
83
+ color: styleConfig.basic.fontColor.default,
84
+ borderColor: styleConfig.basic.border.color.default,
85
+ borderWidth: styleConfig.components.VButton.text.borderWidth
86
+ },
87
+ 'success-text': {
88
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
89
+ color: styleConfig.basic.fontColor.success,
90
+ borderColor: styleConfig.basic.border.color.success,
91
+ borderWidth: styleConfig.components.VButton.text.borderWidth
92
+ },
93
+ 'warning-text': {
94
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
95
+ color: styleConfig.basic.fontColor.warning,
96
+ borderColor: styleConfig.basic.border.color.warning,
97
+ borderWidth: styleConfig.components.VButton.text.borderWidth
98
+ },
99
+ 'delete-text': {
100
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
101
+ color: styleConfig.basic.fontColor.delete,
102
+ borderColor: styleConfig.basic.border.color.delete,
103
+ borderWidth: styleConfig.components.VButton.text.borderWidth
104
+ },
105
+ 'info-text': {
106
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
107
+ color: styleConfig.basic.fontColor.info,
108
+ borderColor: styleConfig.basic.border.color.info,
109
+ borderWidth: styleConfig.components.VButton.text.borderWidth
110
+ }
111
+ },
112
+ shape: {
113
+ 'default': {
114
+ borderWidth: styleConfig.components.VButton.shape.default.width,
115
+ borderStyle: styleConfig.components.VButton.shape.default.style,
116
+ borderRadius: styleConfig.basic.borderRadius.default
117
+ },
118
+ 'none': {
119
+ borderWidth: styleConfig.components.VButton.shape.none.width,
120
+ borderStyle: styleConfig.components.VButton.shape.none.style,
121
+ borderRadius: styleConfig.basic.borderRadius.none
122
+ },
123
+ 'circle': {
124
+ borderWidth: styleConfig.components.VButton.shape.circle.width,
125
+ borderStyle: styleConfig.components.VButton.shape.circle.style,
126
+ borderRadius: styleConfig.basic.borderRadius.circle
127
+ }
128
+ },
129
+ default: {
130
+ cursor: 'pointer',
131
+ transition: styleConfig.basic.animation.transition.default,
132
+ display: 'inline-flex',
133
+ alignItems: 'center',
134
+ justifyContent: 'center',
135
+ _pseudo: {
136
+ '--hover': {
137
+ opacity: styleConfig.basic.opacity.hover,
138
+ boxShadow: {
139
+ type: {
140
+ default: styleConfig.basic.shadow.default,
141
+ success: styleConfig.basic.shadow.success,
142
+ warning: styleConfig.basic.shadow.warning,
143
+ info: styleConfig.basic.shadow.info,
144
+ delete: styleConfig.basic.shadow.delete,
145
+
146
+ 'default-text': styleConfig.basic.shadow.none,
147
+ 'success-text': styleConfig.basic.shadow.none,
148
+ 'warning-text': styleConfig.basic.shadow.none,
149
+ 'delete-text': styleConfig.basic.shadow.none,
150
+ 'info-text': styleConfig.basic.shadow.none,
151
+ },
152
+ }
153
+ },
154
+ '--active': {
155
+ opacity: styleConfig.basic.opacity.active,
156
+ boxShadow: styleConfig.basic.shadow.none
157
+ }
158
+ }
159
+ },
160
+ }