@tzk-design-vue2/shared 1.0.2 → 1.2.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.
- package/README.md +4 -4
- package/index.js +1 -1
- package/package.json +1 -1
- package/styles/index.scss +9 -0
- package/styles/{mixins.less → mixins.scss} +38 -34
- package/styles/variables/color.scss +54 -0
- package/styles/variables/common.scss +64 -0
- package/styles/variables/spacing.scss +38 -0
- package/styles/variables/typography.scss +35 -0
- package/styles/index.less +0 -9
- package/styles/variables/color.less +0 -54
- package/styles/variables/common.less +0 -64
- package/styles/variables/spacing.less +0 -38
- package/styles/variables/typography.less +0 -35
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ pnpm add @tzk-design-vue2/shared
|
|
|
27
27
|
|
|
28
28
|
```less
|
|
29
29
|
// 在你的 Less 文件中导入
|
|
30
|
-
@import '@tzk-design-vue2/shared/styles/variables.
|
|
30
|
+
@import '@tzk-design-vue2/shared/styles/variables.scss';
|
|
31
31
|
|
|
32
32
|
.my-component {
|
|
33
33
|
color: @primary-color;
|
|
@@ -48,9 +48,9 @@ const result = utils.someFunction();
|
|
|
48
48
|
|
|
49
49
|
### 样式资源
|
|
50
50
|
|
|
51
|
-
- `styles/variables.
|
|
52
|
-
- `styles/mixins.
|
|
53
|
-
- `styles/common.
|
|
51
|
+
- `styles/variables.scss` - Less 变量
|
|
52
|
+
- `styles/mixins.scss` - Less 混入
|
|
53
|
+
- `styles/common.scss` - 通用样式
|
|
54
54
|
|
|
55
55
|
### 工具函数
|
|
56
56
|
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Sass Mixins
|
|
3
3
|
* 常用样式混入
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
@import './variables/color.
|
|
7
|
-
@import './variables/typography.
|
|
8
|
-
@import './variables/spacing.
|
|
9
|
-
@import './variables/common.
|
|
6
|
+
@import './variables/color.scss';
|
|
7
|
+
@import './variables/typography.scss';
|
|
8
|
+
@import './variables/spacing.scss';
|
|
9
|
+
@import './variables/common.scss';
|
|
10
10
|
|
|
11
11
|
// ========== 清除浮动 ==========
|
|
12
|
-
|
|
12
|
+
@mixin clearfix {
|
|
13
13
|
&::after {
|
|
14
14
|
content: '';
|
|
15
15
|
display: table;
|
|
@@ -18,48 +18,48 @@
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// ========== 文本溢出省略 ==========
|
|
21
|
-
|
|
21
|
+
@mixin ellipsis {
|
|
22
22
|
overflow: hidden;
|
|
23
23
|
text-overflow: ellipsis;
|
|
24
24
|
white-space: nowrap;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
@mixin multi-ellipsis($lines: 2) {
|
|
28
28
|
display: -webkit-box;
|
|
29
29
|
overflow: hidden;
|
|
30
30
|
text-overflow: ellipsis;
|
|
31
|
-
-webkit-line-clamp:
|
|
31
|
+
-webkit-line-clamp: $lines;
|
|
32
32
|
/* autoprefixer: ignore next */
|
|
33
33
|
-webkit-box-orient: vertical;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
// ========== Flex 布局 ==========
|
|
37
|
-
|
|
37
|
+
@mixin flex-center {
|
|
38
38
|
display: flex;
|
|
39
39
|
align-items: center;
|
|
40
40
|
justify-content: center;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
@mixin flex-between {
|
|
44
44
|
display: flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: space-between;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
@mixin flex-start {
|
|
50
50
|
display: flex;
|
|
51
51
|
align-items: center;
|
|
52
52
|
justify-content: flex-start;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
@mixin flex-end {
|
|
56
56
|
display: flex;
|
|
57
57
|
align-items: center;
|
|
58
58
|
justify-content: flex-end;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
// ========== 绝对定位居中 ==========
|
|
62
|
-
|
|
62
|
+
@mixin absolute-center {
|
|
63
63
|
position: absolute;
|
|
64
64
|
top: 50%;
|
|
65
65
|
left: 50%;
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
// ========== 1px 边框 ==========
|
|
70
|
-
|
|
70
|
+
@mixin hairline($direction: all, $color: $border-color-base, $radius: 0) {
|
|
71
71
|
position: relative;
|
|
72
72
|
|
|
73
73
|
&::after {
|
|
@@ -77,60 +77,64 @@
|
|
|
77
77
|
left: 0;
|
|
78
78
|
width: 200%;
|
|
79
79
|
height: 200%;
|
|
80
|
-
border: 0 solid
|
|
80
|
+
border: 0 solid $color;
|
|
81
81
|
transform: scale(0.5);
|
|
82
82
|
transform-origin: 0 0;
|
|
83
83
|
box-sizing: border-box;
|
|
84
84
|
pointer-events: none;
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
@if $direction == all {
|
|
87
87
|
border-width: 2rpx;
|
|
88
|
-
border-radius:
|
|
88
|
+
border-radius: $radius * 2;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
@if $direction == top {
|
|
92
92
|
border-top-width: 2rpx;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
@if $direction == right {
|
|
96
96
|
border-right-width: 2rpx;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
@if $direction == bottom {
|
|
100
100
|
border-bottom-width: 2rpx;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
@if $direction == left {
|
|
104
104
|
border-left-width: 2rpx;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
// ========== 安全区域 ==========
|
|
110
|
-
|
|
111
|
-
padding-top: calc(
|
|
112
|
-
padding-top: calc(
|
|
110
|
+
@mixin safe-area-top($padding: 0) {
|
|
111
|
+
padding-top: calc(#{$padding} + constant(safe-area-inset-top));
|
|
112
|
+
padding-top: calc(#{$padding} + env(safe-area-inset-top));
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
padding-bottom: calc(
|
|
117
|
-
padding-bottom: calc(
|
|
115
|
+
@mixin safe-area-bottom($padding: 0) {
|
|
116
|
+
padding-bottom: calc(#{$padding} + constant(safe-area-inset-bottom));
|
|
117
|
+
padding-bottom: calc(#{$padding} + env(safe-area-inset-bottom));
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
// ========== 禁用状态 ==========
|
|
121
|
-
|
|
122
|
-
opacity:
|
|
121
|
+
@mixin disabled {
|
|
122
|
+
opacity: $opacity-disabled;
|
|
123
123
|
cursor: not-allowed;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
// ========== 点击态 ==========
|
|
127
|
-
|
|
127
|
+
@mixin active-opacity($opacity: 0.6) {
|
|
128
128
|
&:active {
|
|
129
|
-
opacity:
|
|
129
|
+
opacity: $opacity;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
// ========== 过渡动画 ==========
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
@mixin transition(
|
|
135
|
+
$property: all,
|
|
136
|
+
$duration: $animation-duration-base,
|
|
137
|
+
$timing: $animation-timing-function-ease
|
|
138
|
+
) {
|
|
139
|
+
transition: $property $duration $timing;
|
|
136
140
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 色彩系统 Token
|
|
3
|
+
* 参考 NutUI 设计规范
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ========== 品牌色 ==========
|
|
7
|
+
$primary-color: #fa2c19; // 主色
|
|
8
|
+
$primary-color-light: #ff6034; // 浅主色
|
|
9
|
+
$primary-color-dark: #d81e06; // 深主色
|
|
10
|
+
|
|
11
|
+
// ========== 功能色 ==========
|
|
12
|
+
$success-color: #1ba784; // 成功
|
|
13
|
+
$warning-color: #ff8800; // 警告
|
|
14
|
+
$danger-color: #fa2c19; // 危险
|
|
15
|
+
$info-color: #3460fa; // 信息
|
|
16
|
+
|
|
17
|
+
// ========== 中性色 ==========
|
|
18
|
+
$gray-1: #f7f8fa; // 浅灰色-1
|
|
19
|
+
$gray-2: #f2f3f5; // 浅灰色-2
|
|
20
|
+
$gray-3: #e5e6eb; // 浅灰色-3
|
|
21
|
+
$gray-4: #dcdee3; // 浅灰色-4
|
|
22
|
+
$gray-5: #c5c6cc; // 灰色-5
|
|
23
|
+
$gray-6: #a8abb2; // 灰色-6
|
|
24
|
+
$gray-7: #888b94; // 深灰色-7
|
|
25
|
+
$gray-8: #6c6f7a; // 深灰色-8
|
|
26
|
+
$gray-9: #494d56; // 深灰色-9
|
|
27
|
+
$gray-10: #1a1c24; // 深灰色-10
|
|
28
|
+
|
|
29
|
+
// ========== 文本色 ==========
|
|
30
|
+
$text-color-primary: #1a1c24; // 主要文本
|
|
31
|
+
$text-color-secondary: #494d56; // 次要文本
|
|
32
|
+
$text-color-tertiary: #888b94; // 三级文本
|
|
33
|
+
$text-color-disabled: #c5c6cc; // 禁用文本
|
|
34
|
+
$text-color-inverse: #ffffff; // 反色文本
|
|
35
|
+
|
|
36
|
+
// ========== 背景色 ==========
|
|
37
|
+
$bg-color-page: #f7f8fa; // 页面背景
|
|
38
|
+
$bg-color-container: #ffffff; // 容器背景
|
|
39
|
+
$bg-color-overlay: rgba(0, 0, 0, 0.7); // 遮罩背景
|
|
40
|
+
$bg-color-disabled: #f2f3f5; // 禁用背景
|
|
41
|
+
|
|
42
|
+
// ========== 边框色 ==========
|
|
43
|
+
$border-color-base: #e5e6eb; // 基础边框
|
|
44
|
+
$border-color-light: #f2f3f5; // 浅色边框
|
|
45
|
+
$border-color-dark: #dcdee3; // 深色边框
|
|
46
|
+
|
|
47
|
+
// ========== 链接色 ==========
|
|
48
|
+
$link-color: #3460fa; // 链接颜色
|
|
49
|
+
$link-hover-color: #5a7eff; // 链接悬停颜色
|
|
50
|
+
$link-active-color: #2347d9; // 链接激活颜色
|
|
51
|
+
|
|
52
|
+
// ========== 白色和黑色 ==========
|
|
53
|
+
$white: #ffffff;
|
|
54
|
+
$black: #000000;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 通用变量 Token
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// ========== 圆角 ==========
|
|
6
|
+
$border-radius-none: 0;
|
|
7
|
+
$border-radius-sm: 4rpx; // 2px
|
|
8
|
+
$border-radius-base: 8rpx; // 4px
|
|
9
|
+
$border-radius-md: 12rpx; // 6px
|
|
10
|
+
$border-radius-lg: 16rpx; // 8px
|
|
11
|
+
$border-radius-xl: 24rpx; // 12px
|
|
12
|
+
$border-radius-2xl: 32rpx; // 16px
|
|
13
|
+
$border-radius-round: 9999rpx; // 圆形
|
|
14
|
+
$border-radius-circle: 50%; // 圆形百分比
|
|
15
|
+
|
|
16
|
+
// ========== 边框宽度 ==========
|
|
17
|
+
$border-width-none: 0;
|
|
18
|
+
$border-width-thin: 1rpx; // 0.5px
|
|
19
|
+
$border-width-base: 2rpx; // 1px
|
|
20
|
+
$border-width-thick: 4rpx; // 2px
|
|
21
|
+
|
|
22
|
+
// ========== 阴影 ==========
|
|
23
|
+
$box-shadow-none: none;
|
|
24
|
+
$box-shadow-sm: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
|
|
25
|
+
$box-shadow-base: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
|
26
|
+
$box-shadow-md: 0 8rpx 24rpx rgba(0, 0, 0, 0.1);
|
|
27
|
+
$box-shadow-lg: 0 12rpx 32rpx rgba(0, 0, 0, 0.12);
|
|
28
|
+
$box-shadow-xl: 0 16rpx 48rpx rgba(0, 0, 0, 0.15);
|
|
29
|
+
|
|
30
|
+
// ========== 层级 (z-index) ==========
|
|
31
|
+
$z-index-base: 1;
|
|
32
|
+
$z-index-dropdown: 1000;
|
|
33
|
+
$z-index-sticky: 1020;
|
|
34
|
+
$z-index-fixed: 1030;
|
|
35
|
+
$z-index-modal-backdrop: 1040;
|
|
36
|
+
$z-index-modal: 1050;
|
|
37
|
+
$z-index-popover: 1060;
|
|
38
|
+
$z-index-tooltip: 1070;
|
|
39
|
+
$z-index-toast: 1080;
|
|
40
|
+
|
|
41
|
+
// ========== 动画时长 ==========
|
|
42
|
+
$animation-duration-fast: 150ms;
|
|
43
|
+
$animation-duration-base: 300ms;
|
|
44
|
+
$animation-duration-slow: 500ms;
|
|
45
|
+
|
|
46
|
+
// ========== 动画曲线 ==========
|
|
47
|
+
$animation-timing-function-ease: ease;
|
|
48
|
+
$animation-timing-function-ease-in: ease-in;
|
|
49
|
+
$animation-timing-function-ease-out: ease-out;
|
|
50
|
+
$animation-timing-function-ease-in-out: ease-in-out;
|
|
51
|
+
$animation-timing-function-linear: linear;
|
|
52
|
+
|
|
53
|
+
// ========== 透明度 ==========
|
|
54
|
+
$opacity-disabled: 0.4;
|
|
55
|
+
$opacity-loading: 0.6;
|
|
56
|
+
$opacity-overlay: 0.7;
|
|
57
|
+
|
|
58
|
+
// ========== 组件尺寸 ==========
|
|
59
|
+
$height-xs: 48rpx; // 24px
|
|
60
|
+
$height-sm: 56rpx; // 28px
|
|
61
|
+
$height-base: 64rpx; // 32px
|
|
62
|
+
$height-md: 80rpx; // 40px
|
|
63
|
+
$height-lg: 96rpx; // 48px
|
|
64
|
+
$height-xl: 112rpx; // 56px
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 间距系统 Token
|
|
3
|
+
* 基础单位: 4px (8rpx)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ========== 基础间距单位 ==========
|
|
7
|
+
$spacing-unit: 8rpx; // 4px
|
|
8
|
+
|
|
9
|
+
// ========== Padding ==========
|
|
10
|
+
$padding-xs: 8rpx; // 4px
|
|
11
|
+
$padding-sm: 16rpx; // 8px
|
|
12
|
+
$padding-base: 24rpx; // 12px
|
|
13
|
+
$padding-md: 32rpx; // 16px
|
|
14
|
+
$padding-lg: 48rpx; // 24px
|
|
15
|
+
$padding-xl: 64rpx; // 32px
|
|
16
|
+
$padding-2xl: 96rpx; // 48px
|
|
17
|
+
|
|
18
|
+
// ========== Margin ==========
|
|
19
|
+
$margin-xs: 8rpx; // 4px
|
|
20
|
+
$margin-sm: 16rpx; // 8px
|
|
21
|
+
$margin-base: 24rpx; // 12px
|
|
22
|
+
$margin-md: 32rpx; // 16px
|
|
23
|
+
$margin-lg: 48rpx; // 24px
|
|
24
|
+
$margin-xl: 64rpx; // 32px
|
|
25
|
+
$margin-2xl: 96rpx; // 48px
|
|
26
|
+
|
|
27
|
+
// ========== 组件内边距 ==========
|
|
28
|
+
$padding-h-xs: 16rpx; // 水平内边距-xs
|
|
29
|
+
$padding-h-sm: 24rpx; // 水平内边距-sm
|
|
30
|
+
$padding-h-base: 32rpx; // 水平内边距-base
|
|
31
|
+
$padding-h-md: 40rpx; // 水平内边距-md
|
|
32
|
+
$padding-h-lg: 48rpx; // 水平内边距-lg
|
|
33
|
+
|
|
34
|
+
$padding-v-xs: 8rpx; // 垂直内边距-xs
|
|
35
|
+
$padding-v-sm: 16rpx; // 垂直内边距-sm
|
|
36
|
+
$padding-v-base: 24rpx; // 垂直内边距-base
|
|
37
|
+
$padding-v-md: 32rpx; // 垂直内边距-md
|
|
38
|
+
$padding-v-lg: 40rpx; // 垂直内边距-lg
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 字体系统 Token
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// ========== 字体族 ==========
|
|
6
|
+
$font-family-base:
|
|
7
|
+
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans',
|
|
8
|
+
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
9
|
+
$font-family-number: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
10
|
+
|
|
11
|
+
// ========== 字号 ==========
|
|
12
|
+
$font-size-xs: 20rpx; // 10px
|
|
13
|
+
$font-size-sm: 24rpx; // 12px
|
|
14
|
+
$font-size-base: 28rpx; // 14px
|
|
15
|
+
$font-size-md: 32rpx; // 16px
|
|
16
|
+
$font-size-lg: 36rpx; // 18px
|
|
17
|
+
$font-size-xl: 40rpx; // 20px
|
|
18
|
+
$font-size-2xl: 48rpx; // 24px
|
|
19
|
+
$font-size-3xl: 56rpx; // 28px
|
|
20
|
+
$font-size-4xl: 64rpx; // 32px
|
|
21
|
+
|
|
22
|
+
// ========== 字重 ==========
|
|
23
|
+
$font-weight-light: 300;
|
|
24
|
+
$font-weight-normal: 400;
|
|
25
|
+
$font-weight-medium: 500;
|
|
26
|
+
$font-weight-semibold: 600;
|
|
27
|
+
$font-weight-bold: 700;
|
|
28
|
+
|
|
29
|
+
// ========== 行高 ==========
|
|
30
|
+
$line-height-xs: 1.2;
|
|
31
|
+
$line-height-sm: 1.4;
|
|
32
|
+
$line-height-base: 1.5;
|
|
33
|
+
$line-height-md: 1.6;
|
|
34
|
+
$line-height-lg: 1.8;
|
|
35
|
+
$line-height-xl: 2;
|
package/styles/index.less
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 色彩系统 Token
|
|
3
|
-
* 参考 NutUI 设计规范
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// ========== 品牌色 ==========
|
|
7
|
-
@primary-color: #fa2c19; // 主色
|
|
8
|
-
@primary-color-light: #ff6034; // 浅主色
|
|
9
|
-
@primary-color-dark: #d81e06; // 深主色
|
|
10
|
-
|
|
11
|
-
// ========== 功能色 ==========
|
|
12
|
-
@success-color: #1ba784; // 成功
|
|
13
|
-
@warning-color: #ff8800; // 警告
|
|
14
|
-
@danger-color: #fa2c19; // 危险
|
|
15
|
-
@info-color: #3460fa; // 信息
|
|
16
|
-
|
|
17
|
-
// ========== 中性色 ==========
|
|
18
|
-
@gray-1: #f7f8fa; // 浅灰色-1
|
|
19
|
-
@gray-2: #f2f3f5; // 浅灰色-2
|
|
20
|
-
@gray-3: #e5e6eb; // 浅灰色-3
|
|
21
|
-
@gray-4: #dcdee3; // 浅灰色-4
|
|
22
|
-
@gray-5: #c5c6cc; // 灰色-5
|
|
23
|
-
@gray-6: #a8abb2; // 灰色-6
|
|
24
|
-
@gray-7: #888b94; // 深灰色-7
|
|
25
|
-
@gray-8: #6c6f7a; // 深灰色-8
|
|
26
|
-
@gray-9: #494d56; // 深灰色-9
|
|
27
|
-
@gray-10: #1a1c24; // 深灰色-10
|
|
28
|
-
|
|
29
|
-
// ========== 文本色 ==========
|
|
30
|
-
@text-color-primary: #1a1c24; // 主要文本
|
|
31
|
-
@text-color-secondary: #494d56; // 次要文本
|
|
32
|
-
@text-color-tertiary: #888b94; // 三级文本
|
|
33
|
-
@text-color-disabled: #c5c6cc; // 禁用文本
|
|
34
|
-
@text-color-inverse: #ffffff; // 反色文本
|
|
35
|
-
|
|
36
|
-
// ========== 背景色 ==========
|
|
37
|
-
@bg-color-page: #f7f8fa; // 页面背景
|
|
38
|
-
@bg-color-container: #ffffff; // 容器背景
|
|
39
|
-
@bg-color-overlay: rgba(0, 0, 0, 0.7); // 遮罩背景
|
|
40
|
-
@bg-color-disabled: #f2f3f5; // 禁用背景
|
|
41
|
-
|
|
42
|
-
// ========== 边框色 ==========
|
|
43
|
-
@border-color-base: #e5e6eb; // 基础边框
|
|
44
|
-
@border-color-light: #f2f3f5; // 浅色边框
|
|
45
|
-
@border-color-dark: #dcdee3; // 深色边框
|
|
46
|
-
|
|
47
|
-
// ========== 链接色 ==========
|
|
48
|
-
@link-color: #3460fa; // 链接颜色
|
|
49
|
-
@link-hover-color: #5a7eff; // 链接悬停颜色
|
|
50
|
-
@link-active-color: #2347d9; // 链接激活颜色
|
|
51
|
-
|
|
52
|
-
// ========== 白色和黑色 ==========
|
|
53
|
-
@white: #ffffff;
|
|
54
|
-
@black: #000000;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 通用变量 Token
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
// ========== 圆角 ==========
|
|
6
|
-
@border-radius-none: 0;
|
|
7
|
-
@border-radius-sm: 4rpx; // 2px
|
|
8
|
-
@border-radius-base: 8rpx; // 4px
|
|
9
|
-
@border-radius-md: 12rpx; // 6px
|
|
10
|
-
@border-radius-lg: 16rpx; // 8px
|
|
11
|
-
@border-radius-xl: 24rpx; // 12px
|
|
12
|
-
@border-radius-2xl: 32rpx; // 16px
|
|
13
|
-
@border-radius-round: 9999rpx; // 圆形
|
|
14
|
-
@border-radius-circle: 50%; // 圆形百分比
|
|
15
|
-
|
|
16
|
-
// ========== 边框宽度 ==========
|
|
17
|
-
@border-width-none: 0;
|
|
18
|
-
@border-width-thin: 1rpx; // 0.5px
|
|
19
|
-
@border-width-base: 2rpx; // 1px
|
|
20
|
-
@border-width-thick: 4rpx; // 2px
|
|
21
|
-
|
|
22
|
-
// ========== 阴影 ==========
|
|
23
|
-
@box-shadow-none: none;
|
|
24
|
-
@box-shadow-sm: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
|
|
25
|
-
@box-shadow-base: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
|
26
|
-
@box-shadow-md: 0 8rpx 24rpx rgba(0, 0, 0, 0.1);
|
|
27
|
-
@box-shadow-lg: 0 12rpx 32rpx rgba(0, 0, 0, 0.12);
|
|
28
|
-
@box-shadow-xl: 0 16rpx 48rpx rgba(0, 0, 0, 0.15);
|
|
29
|
-
|
|
30
|
-
// ========== 层级 (z-index) ==========
|
|
31
|
-
@z-index-base: 1;
|
|
32
|
-
@z-index-dropdown: 1000;
|
|
33
|
-
@z-index-sticky: 1020;
|
|
34
|
-
@z-index-fixed: 1030;
|
|
35
|
-
@z-index-modal-backdrop: 1040;
|
|
36
|
-
@z-index-modal: 1050;
|
|
37
|
-
@z-index-popover: 1060;
|
|
38
|
-
@z-index-tooltip: 1070;
|
|
39
|
-
@z-index-toast: 1080;
|
|
40
|
-
|
|
41
|
-
// ========== 动画时长 ==========
|
|
42
|
-
@animation-duration-fast: 150ms;
|
|
43
|
-
@animation-duration-base: 300ms;
|
|
44
|
-
@animation-duration-slow: 500ms;
|
|
45
|
-
|
|
46
|
-
// ========== 动画曲线 ==========
|
|
47
|
-
@animation-timing-function-ease: ease;
|
|
48
|
-
@animation-timing-function-ease-in: ease-in;
|
|
49
|
-
@animation-timing-function-ease-out: ease-out;
|
|
50
|
-
@animation-timing-function-ease-in-out: ease-in-out;
|
|
51
|
-
@animation-timing-function-linear: linear;
|
|
52
|
-
|
|
53
|
-
// ========== 透明度 ==========
|
|
54
|
-
@opacity-disabled: 0.4;
|
|
55
|
-
@opacity-loading: 0.6;
|
|
56
|
-
@opacity-overlay: 0.7;
|
|
57
|
-
|
|
58
|
-
// ========== 组件尺寸 ==========
|
|
59
|
-
@height-xs: 48rpx; // 24px
|
|
60
|
-
@height-sm: 56rpx; // 28px
|
|
61
|
-
@height-base: 64rpx; // 32px
|
|
62
|
-
@height-md: 80rpx; // 40px
|
|
63
|
-
@height-lg: 96rpx; // 48px
|
|
64
|
-
@height-xl: 112rpx; // 56px
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 间距系统 Token
|
|
3
|
-
* 基础单位: 4px (8rpx)
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// ========== 基础间距单位 ==========
|
|
7
|
-
@spacing-unit: 8rpx; // 4px
|
|
8
|
-
|
|
9
|
-
// ========== Padding ==========
|
|
10
|
-
@padding-xs: 8rpx; // 4px
|
|
11
|
-
@padding-sm: 16rpx; // 8px
|
|
12
|
-
@padding-base: 24rpx; // 12px
|
|
13
|
-
@padding-md: 32rpx; // 16px
|
|
14
|
-
@padding-lg: 48rpx; // 24px
|
|
15
|
-
@padding-xl: 64rpx; // 32px
|
|
16
|
-
@padding-2xl: 96rpx; // 48px
|
|
17
|
-
|
|
18
|
-
// ========== Margin ==========
|
|
19
|
-
@margin-xs: 8rpx; // 4px
|
|
20
|
-
@margin-sm: 16rpx; // 8px
|
|
21
|
-
@margin-base: 24rpx; // 12px
|
|
22
|
-
@margin-md: 32rpx; // 16px
|
|
23
|
-
@margin-lg: 48rpx; // 24px
|
|
24
|
-
@margin-xl: 64rpx; // 32px
|
|
25
|
-
@margin-2xl: 96rpx; // 48px
|
|
26
|
-
|
|
27
|
-
// ========== 组件内边距 ==========
|
|
28
|
-
@padding-h-xs: 16rpx; // 水平内边距-xs
|
|
29
|
-
@padding-h-sm: 24rpx; // 水平内边距-sm
|
|
30
|
-
@padding-h-base: 32rpx; // 水平内边距-base
|
|
31
|
-
@padding-h-md: 40rpx; // 水平内边距-md
|
|
32
|
-
@padding-h-lg: 48rpx; // 水平内边距-lg
|
|
33
|
-
|
|
34
|
-
@padding-v-xs: 8rpx; // 垂直内边距-xs
|
|
35
|
-
@padding-v-sm: 16rpx; // 垂直内边距-sm
|
|
36
|
-
@padding-v-base: 24rpx; // 垂直内边距-base
|
|
37
|
-
@padding-v-md: 32rpx; // 垂直内边距-md
|
|
38
|
-
@padding-v-lg: 40rpx; // 垂直内边距-lg
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 字体系统 Token
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
// ========== 字体族 ==========
|
|
6
|
-
@font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
7
|
-
'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
|
|
8
|
-
'Noto Color Emoji';
|
|
9
|
-
@font-family-number: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
10
|
-
|
|
11
|
-
// ========== 字号 ==========
|
|
12
|
-
@font-size-xs: 20rpx; // 10px
|
|
13
|
-
@font-size-sm: 24rpx; // 12px
|
|
14
|
-
@font-size-base: 28rpx; // 14px
|
|
15
|
-
@font-size-md: 32rpx; // 16px
|
|
16
|
-
@font-size-lg: 36rpx; // 18px
|
|
17
|
-
@font-size-xl: 40rpx; // 20px
|
|
18
|
-
@font-size-2xl: 48rpx; // 24px
|
|
19
|
-
@font-size-3xl: 56rpx; // 28px
|
|
20
|
-
@font-size-4xl: 64rpx; // 32px
|
|
21
|
-
|
|
22
|
-
// ========== 字重 ==========
|
|
23
|
-
@font-weight-light: 300;
|
|
24
|
-
@font-weight-normal: 400;
|
|
25
|
-
@font-weight-medium: 500;
|
|
26
|
-
@font-weight-semibold: 600;
|
|
27
|
-
@font-weight-bold: 700;
|
|
28
|
-
|
|
29
|
-
// ========== 行高 ==========
|
|
30
|
-
@line-height-xs: 1.2;
|
|
31
|
-
@line-height-sm: 1.4;
|
|
32
|
-
@line-height-base: 1.5;
|
|
33
|
-
@line-height-md: 1.6;
|
|
34
|
-
@line-height-lg: 1.8;
|
|
35
|
-
@line-height-xl: 2;
|