@neatui/css 3.17.0 → 4.0.1

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.
@@ -0,0 +1,144 @@
1
+ # NeatUI CSS 4.0 迁移指南
2
+
3
+ 4.0 收敛了颜色语法,并重建了字号与宽高刻度。迁移时必须按本指南逐项处理,不能只按类名表面含义替换。
4
+
5
+ ## 边框颜色前缀
6
+
7
+ 4.0 将边框颜色前缀从 `bk-` 收敛为 `b-`,不再生成 `bk-*` 兼容类:
8
+
9
+ | 3.x | 4.0 | CSS 属性 |
10
+ |---|---|---|
11
+ | `bk-line` | `b-line` | `border-color: var(--co-line)` |
12
+ | `bk-main` | `b-main` | `border-color: var(--co-main)` |
13
+ | `bk-main-o-mm` | `b-main-o-mm` | `border-color: var(--co-main-o-mm)` |
14
+ | `bk-main:hover` | `b-main:hover` | hover 边框颜色 |
15
+
16
+ `b-` 在 4.0 中统一承载边框语义:`b-solid / b-dashed / b-double / b-dotted` 表示样式,`b-xs / b-ss` 表示宽度,`b-line / b-main` 表示颜色。具体含义由后缀词元决定。
17
+
18
+ ## 尺寸迁移
19
+
20
+ 4.0 重建了字号与宽高刻度。迁移时必须先读取 3.x 类名对应的实际值,再选择 4.0 中相同或最接近的档位;不能按 `xs / sm / mm` 等名称直接替换。
21
+
22
+ 以下规则同时适用于响应式前缀,以及 `w / min-w / max-w / h / min-h / max-h` 六组属性。
23
+
24
+ ## 宽高旧值
25
+
26
+ 3.x 基础档从 `0em` 开始,每档增加 `2em`:
27
+
28
+ | 档位 | no | xs | ss | sm | sl | ms | mm | ml | ls | lm | ll | xl |
29
+ |---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
30
+ | 基础 | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 |
31
+ | `+` | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 | 23 |
32
+ | `*s` | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 |
33
+ | `*m` | 0 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 66 |
34
+ | `*l` | 0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 |
35
+
36
+ ## 宽高新值
37
+
38
+ 4.0 的 `*s / *m / *l` 表示分段,不再表示乘法,并且不再生成 `+`:
39
+
40
+ | 档位 | xs | ss | sm | sl | ms | mm | ml | ls | lm | ll | xl |
41
+ |---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
42
+ | 基础 | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 |
43
+ | `*s` | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
44
+ | `*m` | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 |
45
+ | `*l` | 42 | 46 | 50 | 54 | 58 | 62 | 66 | 70 | 74 | 78 | 82 |
46
+
47
+ 单位均为 `em`。`no` 仍为 `0`。
48
+
49
+ ## NeatUI 内部宽高迁移
50
+
51
+ 当前组件包使用到的旧值按下表迁移:
52
+
53
+ | 3.x 类名 | 旧值 | 4.0 类名 | 新值 | 结果 |
54
+ |---|---:|---|---:|---|
55
+ | `w/h-xs` | 2em | `w/h-sl` | 2em | 精确 |
56
+ | `w/h-ss` | 4em | `w/h-ls` | 4em | 精确 |
57
+ | `w/h-sm` | 6em | `w/h-xs*s` | 6em | 精确 |
58
+ | `w/h-ms` | 10em | `w/h-ms*s` | 10em | 精确 |
59
+ | `w/h-ms+` | 11em | `w/h-mm*s` | 11em | 精确 |
60
+ | `w/h-mm` | 12em | `w/h-ml*s` | 12em | 精确 |
61
+ | `w/h-ml+` | 15em | `w/h-ll*s` | 15em | 精确 |
62
+ | `w/h-ls` | 16em | `w/h-xl*s` | 16em | 精确 |
63
+ | `w/h-ls+` | 17em | `w/h-xs*m` | 18em | 最近档,增加1em |
64
+ | `w/h-ll` | 20em | `w/h-ss*m` | 20em | 精确 |
65
+ | `w/h-xl` | 22em | `w/h-sm*m` | 22em | 精确 |
66
+
67
+ 属性前缀应保持不变。例如:
68
+
69
+ ```text
70
+ min-h-ms 10em -> min-h-ms*s 10em
71
+ max-h-ls 16em -> max-h-xl*s 16em
72
+ mob:w-ll 20em -> mob:w-ss*m 20em
73
+ ```
74
+
75
+ ## 字号旧值与迁移
76
+
77
+ 3.x 字号是不规则序列;4.0 改为四段分级刻度。以下表格直接从 3.x 实际值映射到最终 4.0 档位,不经过 4.0 开发期间尚未大规模使用的中间刻度。
78
+
79
+ 4.0 完整字号值如下,单位均为 `rem`:
80
+
81
+ | 档位 | xs | ss | sm | sl | ms | mm | ml | ls | lm | ll | xl |
82
+ |---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
83
+ | 基础 | 0.6875 | 0.75 | 0.8125 | 0.875 | 0.9375 | 1 | 1.125 | 1.25 | 1.375 | 1.5 | 1.75 |
84
+ | `*s` | 2 | 2.25 | 2.5 | 2.75 | 3 | 3.25 | 3.5 | 3.75 | 4 | 4.25 | 4.5 |
85
+ | `*m` | 5 | 5.5 | 6 | 6.5 | 7 | 7.5 | 8 | 8.5 | 9 | 9.5 | 10 |
86
+ | `*l` | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
87
+
88
+ | 3.x 类名 | 旧值 | 4.0 类名 | 新值 | 结果 |
89
+ |---|---:|---|---:|---|
90
+ | `fs-xs` | 0.8rem | `fs-sm` | 0.8125rem | 近似,+0.0125rem |
91
+ | `fs-ss` | 0.9rem | `fs-sl` | 0.875rem | 近似,-0.025rem |
92
+ | `fs-sm` | 1rem | `fs-mm` | 1rem | 精确 |
93
+ | `fs-sl` | 1.1rem | `fs-ml` | 1.125rem | 近似,+0.025rem |
94
+ | `fs-ms` | 1.2rem | `fs-ls` | 1.25rem | 近似,+0.05rem |
95
+ | `fs-mm` | 1.4rem | `fs-lm` | 1.375rem | 近似,-0.025rem |
96
+ | `fs-ml` | 1.8rem | `fs-xl` | 1.75rem | 近似,-0.05rem |
97
+ | `fs-ls` | 2.2rem | `fs-ss*s` | 2.25rem | 近似,+0.05rem |
98
+ | `fs-lm` | 2.6rem | `fs-sm*s` | 2.5rem | 近似,-0.1rem |
99
+ | `fs-ll` | 3.2rem | `fs-mm*s` | 3.25rem | 近似,+0.05rem |
100
+ | `fs-xl` | 3.8rem | `fs-ls*s` | 3.75rem | 近似,-0.05rem |
101
+
102
+ 旧 `fs-*+` 已删除,逐项迁移如下:
103
+
104
+ | 3.x 类名 | 旧值 | 4.0 类名 | 新值 | 结果 |
105
+ |---|---:|---|---:|---|
106
+ | `fs-xs+` | 0.85rem | `fs-sl` | 0.875rem | 近似,+0.025rem |
107
+ | `fs-ss+` | 0.95rem | `fs-ms` | 0.9375rem | 近似,-0.0125rem |
108
+ | `fs-sm+` | 1.05rem | `fs-mm` | 1rem | 近似,-0.05rem |
109
+ | `fs-sl+` | 1.15rem | `fs-ml` | 1.125rem | 近似,-0.025rem |
110
+ | `fs-ms+` | 1.25rem | `fs-ls` | 1.25rem | 精确 |
111
+ | `fs-mm+` | 1.5rem | `fs-ll` | 1.5rem | 精确 |
112
+ | `fs-ml+` | 2rem | `fs-xs*s` | 2rem | 精确 |
113
+ | `fs-ls+` | 2.4rem | `fs-sm*s` | 2.5rem | 近似,+0.1rem |
114
+ | `fs-lm+` | 2.8rem | `fs-sl*s` | 2.75rem | 近似,-0.05rem |
115
+ | `fs-ll+` | 3.5rem | `fs-ml*s` | 3.5rem | 精确 |
116
+ | `fs-xl+` | 4.1rem | `fs-lm*s` | 4rem | 近似,-0.1rem |
117
+
118
+ 旧 `fs-*` 翻倍类也已删除,逐项迁移如下:
119
+
120
+ | 3.x 类名 | 旧值 | 4.0 类名 | 新值 | 结果 |
121
+ |---|---:|---|---:|---|
122
+ | `fs-xs*` | 1.6rem | `fs-ll` | 1.5rem | 近似,-0.1rem |
123
+ | `fs-ss*` | 1.8rem | `fs-xl` | 1.75rem | 近似,-0.05rem |
124
+ | `fs-sm*` | 2rem | `fs-xs*s` | 2rem | 精确 |
125
+ | `fs-sl*` | 2.2rem | `fs-ss*s` | 2.25rem | 近似,+0.05rem |
126
+ | `fs-ms*` | 2.4rem | `fs-sm*s` | 2.5rem | 近似,+0.1rem |
127
+ | `fs-mm*` | 2.8rem | `fs-sl*s` | 2.75rem | 近似,-0.05rem |
128
+ | `fs-ml*` | 3.6rem | `fs-ml*s` | 3.5rem | 近似,-0.1rem |
129
+ | `fs-ls*` | 4.4rem | `fs-xl*s` | 4.5rem | 近似,+0.1rem |
130
+ | `fs-lm*` | 5.2rem | `fs-xs*m` | 5rem | 近似,-0.2rem |
131
+ | `fs-ll*` | 6.4rem | `fs-sl*m` | 6.5rem | 近似,+0.1rem |
132
+ | `fs-xl*` | 7.6rem | `fs-mm*m` | 7.5rem | 近似,-0.1rem |
133
+
134
+ 无法精确匹配的字号应在视觉回归中确认,不要仅凭名称猜测。
135
+
136
+ ## 检查清单
137
+
138
+ 1. 搜索所有字号及宽高类,包括动态字符串和响应式前缀。
139
+ 2. 根据3.x表计算旧值。
140
+ 3. 优先选择4.0精确同值档位。
141
+ 4. 没有精确值时记录差值并进行视觉确认。
142
+ 5. 确认代码中不再使用宽高 `+`、旧字号 `+` 或旧字号翻倍 `*`。
143
+ 6. 编译 CSS,并验证基础、`*s`、`*m`、`*l` 及响应式选择器均正常生成。
144
+ 7. 确认正式代码、组件和文档中不再出现 `bk-*`。
package/README.md CHANGED
@@ -67,10 +67,18 @@
67
67
 
68
68
  - 分级字号:
69
69
 
70
- - `.fs-xxs` ~ `.fs-xxl`: 字体大小(从极小到极大)
71
- - `.fs-{size}+`: 增加字号(+0.05rem)
72
- - `.fs-{size}*`: 双倍字号
70
+ - `.fs-xs` ~ `.fs-xl`: 11档基础字号
71
+ - `.fs-{size}*s`: 展示字号段
72
+ - `.fs-{size}*m`: 大展示字号段
73
+ - `.fs-{size}*l`: 巨型字号段
73
74
  - `.fs-{size}-sub`: 子元素字号
75
+ - `.fs-case / .fs-note / .fs-desc / .fs-body / .fs-lead`: 语义字号
76
+ - `.fs-root`: 重置为 `1rem`
77
+ - `.fs++ / .fs--`: 相对当前上下文放大或缩小
78
+
79
+ 基础字号在根字号为 `16px` 时对应 `11 / 12 / 13 / 14 / 15 / 16 / 18 / 20 / 22 / 24 / 28px`;随后由 `fs-xs*s` 从 `2rem / 32px` 接续。完整刻度按 `1 / 2 / 4 / 8 / 16px` 分段递增。
80
+
81
+ 4.0 已移除 `fs-{size}+`、`fs-{size}*` 和宽高 `+` 语法,并将 `*s / *m / *l` 改为分段刻度;`fs++ / fs--` 是保留的上下文缩放语法。升级项目请先阅读 [4.0 尺寸迁移指南](./MIGRATION-4.0.md),按旧实际值选择新档位。
74
82
 
75
83
  - 行高:
76
84
  - `.lh-no`: 无行高
@@ -130,16 +138,25 @@
130
138
 
131
139
  - `.b-solid`: 实线边框
132
140
  - `.b-dashed`: 虚线边框
141
+ - `.b-double`: 双线边框
133
142
  - `.b-dotted`: 点线边框
134
143
 
135
144
  - 边框宽度:
136
- - 全边框:`.b-no` ~ `.b-xl`(0px ~ 1rem)
137
- - 水平边框:`.bx-no` ~ `.bx-xl`
138
- - 垂直边框:`.by-no` ~ `.by-xl`
139
- - 顶部边框:`.bt-no` ~ `.bt-xl`
140
- - 右侧边框:`.br-no` ~ `.br-xl`
141
- - 底部边框:`.bb-no` ~ `.bb-xl`
142
- - 左侧边框:`.bl-no` ~ `.bl-xl`
145
+ - 全边框:`.b-no` ~ `.b-xx`(0px ~ 12px)
146
+ - 水平边框:`.bx-no` ~ `.bx-xx`
147
+ - 垂直边框:`.by-no` ~ `.by-xx`
148
+ - 顶部边框:`.bt-no` ~ `.bt-xx`
149
+ - 右侧边框:`.br-no` ~ `.br-xx`
150
+ - 底部边框:`.bb-no` ~ `.bb-xx`
151
+ - 左侧边框:`.bl-no` ~ `.bl-xx`
152
+
153
+ - 边框颜色:
154
+ - `.b-line`:线条色
155
+ - `.b-main`:主题主色
156
+ - `.b-risk`:危险色
157
+ - `.b-main-o-mm`:带透明度的主题主色
158
+
159
+ 4.0 已将旧的 `bk-*` 前缀收敛为 `b-*`,不再生成兼容类。`b-solid`、`b-xs`、`b-line` 分别表示边框样式、宽度和颜色。
143
160
 
144
161
  尺寸等级:
145
162
 
@@ -149,12 +166,13 @@
149
166
  - `sm`: 3px
150
167
  - `sl`: 4px
151
168
  - `ms`: 5px
152
- - `mm`: 0.5rem
153
- - `ml`: 0.6rem
154
- - `ls`: 0.7rem
155
- - `lm`: 0.8rem
156
- - `ll`: 0.9rem
157
- - `xl`: 1rem
169
+ - `mm`: 6px
170
+ - `ml`: 7px
171
+ - `ls`: 8px
172
+ - `lm`: 9px
173
+ - `ll`: 10px
174
+ - `xl`: 11px
175
+ - `xx`: 12px
158
176
 
159
177
  ### 5. 主题系统 (theme)
160
178
 
@@ -265,11 +265,12 @@ $cos: 'main', 'text', 'read', 'note', 'idle', 'case', 'line', 'info', 'well', 'w
265
265
  // 清理
266
266
  [ui-form-clean] {
267
267
  position: relative;
268
- display: none;
268
+ display: inline-block;
269
269
  right: 0;
270
270
  background: none;
271
271
  box-shadow: none;
272
- opacity: 0.6;
272
+ opacity: 0;
273
+ pointer-events: none;
273
274
 
274
275
  &::before {
275
276
  position: relative;
@@ -289,21 +290,11 @@ $cos: 'main', 'text', 'read', 'note', 'idle', 'case', 'line', 'info', 'well', 'w
289
290
  box-shadow: inset 0 0 0 1px currentColor;
290
291
  }
291
292
  }
292
- @keyframes am-form-clean {
293
- 0% {
294
- opacity: 0;
295
- transform: scale3d(0.5, 0.5, 1);
296
- }
297
- 100% {
298
- opacity: 1;
299
- transform: scale3d(1, 1, 1);
300
- }
301
- }
302
293
  [ui-form] {
303
294
  &:hover {
304
295
  [ui-form-clean] {
305
- display: inline-block;
306
- animation: am-form-clean 0.2s;
296
+ opacity: 0.6;
297
+ pointer-events: auto;
307
298
  }
308
299
  }
309
300
  }
@@ -25,6 +25,8 @@
25
25
  // 清理
26
26
  [ui-form-clean] {
27
27
  display: inline-block;
28
+ opacity: 0.6;
29
+ pointer-events: auto;
28
30
 
29
31
  color: var(--co-case);
30
32
  background:
@@ -1,23 +1,35 @@
1
- [ui-load='@h'],
1
+ [ui-load="@h"],
2
2
  .ui-load-h {
3
3
  @keyframes ui-load-h {
4
4
  0%,
5
5
  20% {
6
- background: radial-gradient(circle at 15% 50%, currentColor 12%, transparent 13%);
6
+ background: radial-gradient(
7
+ circle at 15% 50%,
8
+ currentColor 12%,
9
+ transparent 13%
10
+ );
7
11
  }
8
12
  21%,
9
13
  25% {
10
14
  }
11
15
  25%,
12
16
  40% {
13
- background: radial-gradient(circle at 50% 50%, currentColor 17%, transparent 18%);
17
+ background: radial-gradient(
18
+ circle at 50% 50%,
19
+ currentColor 17%,
20
+ transparent 18%
21
+ );
14
22
  }
15
23
  41%,
16
24
  45% {
17
25
  }
18
26
  45%,
19
27
  60% {
20
- background: radial-gradient(circle at 85% 50%, currentColor 12%, transparent 13%);
28
+ background: radial-gradient(
29
+ circle at 85% 50%,
30
+ currentColor 12%,
31
+ transparent 13%
32
+ );
21
33
  }
22
34
  61%,
23
35
  100% {
@@ -29,19 +41,22 @@
29
41
  display: inline-block;
30
42
  width: 1em;
31
43
  height: 1em;
32
- background: radial-gradient(circle at 15% 50%, rgba(var(--co-text), 0.2) 12%, transparent 13%),
33
- radial-gradient(circle at 50% 50%, rgba(var(--co-text), 0.2) 14%, transparent 15%), radial-gradient(circle at 85% 50%, rgba(var(--co-text), 0.2) 9%, transparent 10%);
44
+ background:
45
+ radial-gradient(circle at 15% 50%, currentColor 12%, transparent 13%),
46
+ radial-gradient(circle at 50% 50%, currentColor 14%, transparent 15%),
47
+ radial-gradient(circle at 85% 50%, currentColor 9%, transparent 10%);
34
48
 
35
49
  &::after {
36
50
  position: absolute;
37
51
  display: block;
38
- content: '';
52
+ content: "";
39
53
  width: 100%;
40
54
  height: 100%;
41
55
  left: 0;
42
56
  top: 0;
43
- color: var(--co-text);
44
- animation: ui-load-h 1s cubic-bezier(0.72, 0.115, 0.355, 0.88) infinite both;
57
+ color: currentColor;
58
+ animation: ui-load-h 1s cubic-bezier(0.72, 0.115, 0.355, 0.88) infinite
59
+ both;
45
60
  }
46
61
  }
47
62
  }
package/core/basic.scss CHANGED
@@ -206,7 +206,13 @@ code,
206
206
 
207
207
  [layout="full"] {
208
208
  &,
209
- body {
209
+ body,
210
+ #app,
211
+ #root,
212
+ #__nuxt,
213
+ #__next,
214
+ #svelte,
215
+ app-root {
210
216
  width: 100%;
211
217
  height: 100%;
212
218
  }
@@ -258,21 +264,6 @@ code,
258
264
  }
259
265
  }
260
266
 
261
- .bk {
262
- &-solid {
263
- border-style: solid;
264
- }
265
- &-dashed {
266
- border-style: dashed;
267
- }
268
- &-double {
269
- border-style: double;
270
- }
271
- &-dotted {
272
- border-style: dotted;
273
- }
274
- }
275
-
276
267
  // 省略号
277
268
  [ui-omit] {
278
269
  overflow: hidden;
package/core/border.scss CHANGED
@@ -7,6 +7,9 @@
7
7
  .b-dashed {
8
8
  border-style: dashed;
9
9
  }
10
+ .b-double {
11
+ border-style: double;
12
+ }
10
13
  .b-dotted {
11
14
  border-style: dotted;
12
15
  }
package/core/flex.scss CHANGED
@@ -192,7 +192,7 @@
192
192
 
193
193
  [ui-flex~='#{$med}col'] {
194
194
  flex-direction: column;
195
- [ui-flex~='#{$med}reverse'] {
195
+ &[ui-flex~='#{$med}reverse'] {
196
196
  flex-direction: column-reverse;
197
197
  }
198
198
  }
package/core/media.scss CHANGED
@@ -92,7 +92,7 @@ $level: (
92
92
  }
93
93
  }
94
94
  }
95
- } @else if ($p == '>pad' or $p == '>dpc-l') {
95
+ } @else if ($p == '>pad') {
96
96
  @media screen and (min-width: 1280px) {
97
97
  @if ($this == '') {
98
98
  @content;
package/core/shadow.scss CHANGED
@@ -1,89 +0,0 @@
1
- // 阴影
2
- $cos: main, read, case, line, back;
3
- $szs: xs, ss, sm, sl, ms, mm, ml, ls, lm, ll;
4
-
5
- div {
6
- width: 5em;
7
- height: 2em;
8
- margin: 1em;
9
- background: #f0f0f0;
10
- }
11
-
12
- .bs {
13
- box-shadow: inset 0 0 0 1px currentColor;
14
- }
15
-
16
- .bs-x {
17
- box-shadow:
18
- inset 1px 0 0 0 currentColor,
19
- inset -1px 0 0 0 currentColor;
20
- }
21
-
22
- .bs-y {
23
- box-shadow:
24
- inset 0 1px 0 0 currentColor,
25
- inset 0 -1px 0 0 currentColor;
26
- }
27
-
28
- .bs-l {
29
- box-shadow: inset 1px 0 0 0 currentColor;
30
- }
31
-
32
- .bs-r {
33
- box-shadow: inset -1px 0 0 0 currentColor;
34
- }
35
-
36
- .bs-t {
37
- box-shadow: inset 0 1px 0 0 currentColor;
38
- }
39
-
40
- .bs-b {
41
- box-shadow: inset 0 -1px 0 0 currentColor;
42
- }
43
-
44
- /* 主题色 */
45
- .bs-xs-main {
46
- @include theme {
47
- box-shadow: inset 0 0 0 1px var(--co-main);
48
- }
49
- }
50
-
51
- .bs-x-xs-main {
52
- @include theme {
53
- box-shadow:
54
- inset 1px 0 0 0 var(--co-main),
55
- inset -1px 0 0 0 var(--co-main);
56
- }
57
- }
58
-
59
- .bs-y-xs-main {
60
- @include theme {
61
- box-shadow:
62
- inset 0 1px 0 0 var(--co-main),
63
- inset 0 -1px 0 0 var(--co-main);
64
- }
65
- }
66
-
67
- .bs-l-xs-main {
68
- @include theme {
69
- box-shadow: inset 1px 0 0 0 var(--co-main);
70
- }
71
- }
72
-
73
- .bs-r-xs-main {
74
- @include theme {
75
- box-shadow: inset -1px 0 0 0 var(--co-main);
76
- }
77
- }
78
-
79
- .bs-t-xs-main {
80
- @include theme {
81
- box-shadow: inset 0 1px 0 0 var(--co-main);
82
- }
83
- }
84
-
85
- .bs-b-xs-main {
86
- @include theme {
87
- box-shadow: inset 0 -1px 0 0 var(--co-main);
88
- }
89
- }
package/core/size.scss CHANGED
@@ -2,9 +2,9 @@
2
2
  * 模块:字号
3
3
  * 模块类型:b(基础模块)
4
4
  * 精度:11档 (xs ss sm sl ms mm ml ls lm ll xl)
5
- * 分级:3 (s/m/l)
5
+ * 分级:4段 (base/*s/*m/*l)
6
6
  * 适配:桌面 | 平板 | 移动
7
- * 版本:v0.0.2
7
+ * 版本:v0.0.3
8
8
  * 备注:s->Small 小,m->Middle 中,l->Large 大;x->Extra
9
9
  */
10
10
 
@@ -26,8 +26,11 @@
26
26
 
27
27
  // 分级字号
28
28
  @mixin randSize($d: '') {
29
- $rank: 'xs', 'ss', 'sm', 'sl', 'ms', 'mm', 'ml', 'ls', 'lm', 'll', 'xl';
30
- // 分级字号
29
+ $base-sizes: ('xs' 0.6875rem), ('ss' 0.75rem), ('sm' 0.8125rem), ('sl' 0.875rem), ('ms' 0.9375rem), ('mm' 1rem), ('ml' 1.125rem), ('ls' 1.25rem), ('lm' 1.375rem), ('ll' 1.5rem), ('xl' 1.75rem);
30
+ $display-sizes: ('xs\\*s' 2rem), ('ss\\*s' 2.25rem), ('sm\\*s' 2.5rem), ('sl\\*s' 2.75rem), ('ms\\*s' 3rem), ('mm\\*s' 3.25rem), ('ml\\*s' 3.5rem), ('ls\\*s' 3.75rem), ('lm\\*s' 4rem), ('ll\\*s' 4.25rem), ('xl\\*s' 4.5rem),
31
+ ('xs\\*m' 5rem), ('ss\\*m' 5.5rem), ('sm\\*m' 6rem), ('sl\\*m' 6.5rem), ('ms\\*m' 7rem), ('mm\\*m' 7.5rem), ('ml\\*m' 8rem), ('ls\\*m' 8.5rem), ('lm\\*m' 9rem), ('ll\\*m' 9.5rem), ('xl\\*m' 10rem),
32
+ ('xs\\*l' 11rem), ('ss\\*l' 12rem), ('sm\\*l' 13rem), ('sl\\*l' 14rem), ('ms\\*l' 15rem), ('mm\\*l' 16rem), ('ml\\*l' 17rem), ('ls\\*l' 18rem), ('lm\\*l' 19rem), ('ll\\*l' 20rem), ('xl\\*l' 21rem);
33
+
31
34
  .#{$d}fs-no {
32
35
  font-size: 0rem;
33
36
  }
@@ -35,54 +38,49 @@
35
38
  line-height: 0;
36
39
  }
37
40
 
38
- $sz: 0.7;
39
- $add: 0.05;
40
- @each $k in $rank {
41
- @if ($sz<1.2) {
42
- $sz: $sz + 0.1;
43
- } @else if ($sz<1.4) {
44
- $sz: $sz + 0.2;
45
- $add: 0.1;
46
- } @else if($sz<2.4) {
47
- $sz: $sz + 0.4;
48
- $add: 0.2;
49
- } @else if($sz<3.4) {
50
- $sz: $sz + 0.6;
51
- $add: 0.3;
52
- } @else {
53
- $sz: $sz + 0.8;
54
- $add: 0.4;
55
- }
56
-
41
+ @each $k, $sz in $base-sizes {
57
42
  .#{$d}fs-#{$k},
58
43
  .#{$d}fs-#{$k}-sub > *,
59
44
  .#{$d}fs-#{$k}-sub\:sta > *::before,
60
45
  .#{$d}fs-#{$k}-sub\:end > *::after,
61
46
  .#{$d}fs-#{$k}\:sta::before,
62
47
  .#{$d}fs-#{$k}\:end::after {
63
- font-size: #{$sz}rem;
64
- }
65
- // 加0.05
66
- .#{$d}fs-#{$k}\+,
67
- .#{$d}fs-#{$k}-sub\+ > *,
68
- .#{$d}fs-#{$k}\+\:sta::before,
69
- .#{$d}fs-#{$k}\+\:end::after,
70
- .#{$d}fs-#{$k}-sub\+\:sta > *::before,
71
- .#{$d}fs-#{$k}-sub\+\:end > *::after {
72
- font-size: #{$sz + $add}rem;
48
+ font-size: $sz;
73
49
  }
50
+ }
74
51
 
75
- // 双倍
76
- .#{$d}fs-#{$k}\*,
77
- .#{$d}fs-#{$k}-sub\* > *,
78
- .#{$d}fs-#{$k}\*\:sta::before,
79
- .#{$d}fs-#{$k}\*\:end::after,
80
- .#{$d}fs-#{$k}-sub\*\:sta > *::before,
81
- .#{$d}fs-#{$k}-sub\*\:end > *::after {
82
- font-size: #{$sz * 2}rem;
52
+ @each $k, $sz in $display-sizes {
53
+ .#{$d}fs-#{$k} {
54
+ font-size: $sz;
83
55
  }
84
56
  }
85
57
 
58
+ .#{$d}fs-case {
59
+ font-size: 0.625rem;
60
+ }
61
+ .#{$d}fs-note {
62
+ font-size: 0.75rem;
63
+ }
64
+ .#{$d}fs-desc {
65
+ font-size: 0.875rem;
66
+ }
67
+ .#{$d}fs-body {
68
+ font-size: 1rem;
69
+ }
70
+ .#{$d}fs-lead {
71
+ font-size: 1.125rem;
72
+ }
73
+
74
+ .#{$d}fs-root {
75
+ font-size: 1rem;
76
+ }
77
+ .#{$d}fs\+\+ {
78
+ font-size: 1.0625em;
79
+ }
80
+ .#{$d}fs-- {
81
+ font-size: 0.9375em;
82
+ }
83
+
86
84
  .#{$d}lh-no {
87
85
  line-height: 0;
88
86
  }
package/core/theme.scss CHANGED
@@ -126,7 +126,10 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
126
126
  $s: list.nth($i, 2);
127
127
 
128
128
  // 动态选择器:首个主题多一个 :root
129
- $scope: if($n == $f, ':root', '[theme~="#{$n}"]');
129
+ $scope: '[theme~="#{$n}"]';
130
+ @if $n == $f {
131
+ $scope: ':root';
132
+ }
130
133
  #{$scope} {
131
134
  @each $c in $s {
132
135
  $k: list.nth($c, 1);
@@ -186,9 +189,9 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
186
189
  .bg-auto\:active:active {
187
190
  background-color: currentColor !important;
188
191
  }
189
- .bk-auto,
190
- .bk-auto\:hover:hover,
191
- .bk-auto\:active:active {
192
+ .b-auto,
193
+ .b-auto\:hover:hover,
194
+ .b-auto\:active:active {
192
195
  border-color: currentColor !important;
193
196
  }
194
197
 
@@ -209,9 +212,9 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
209
212
  background-color: var(--co-#{$n}) !important;
210
213
  }
211
214
 
212
- .bk-#{$n},
213
- .bk-#{$n}\:hover:hover,
214
- .bk-#{$n}\:active:active {
215
+ .b-#{$n},
216
+ .b-#{$n}\:hover:hover,
217
+ .b-#{$n}\:active:active {
215
218
  border-color: var(--co-#{$n}) !important;
216
219
  }
217
220
 
@@ -229,9 +232,9 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
229
232
  background-color: var(--co-#{$n}-o-#{$i}) !important;
230
233
  }
231
234
 
232
- .bk-#{$n}-o-#{$i},
233
- .bk-#{$n}-o-#{$i}\:hover:hover,
234
- .bk-#{$n}-o-#{$i}\:active:active {
235
+ .b-#{$n}-o-#{$i},
236
+ .b-#{$n}-o-#{$i}\:hover:hover,
237
+ .b-#{$n}-o-#{$i}\:active:active {
235
238
  border-color: var(--co-#{$n}-o-#{$i}) !important;
236
239
  }
237
240
 
@@ -262,15 +265,15 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
262
265
  background-color: var(--co-#{$n}-b-#{$i}) !important;
263
266
  }
264
267
 
265
- .bk-#{$n}-w-#{$i},
266
- .bk-#{$n}-w-#{$i}\:hover:hover,
267
- .bk-#{$n}-w-#{$i}\:active:active {
268
+ .b-#{$n}-w-#{$i},
269
+ .b-#{$n}-w-#{$i}\:hover:hover,
270
+ .b-#{$n}-w-#{$i}\:active:active {
268
271
  border-color: var(--co-#{$n}-w-#{$i}) !important;
269
272
  }
270
273
 
271
- .bk-#{$n}-b-#{$i},
272
- .bk-#{$n}-b-#{$i}\:hover:hover,
273
- .bk-#{$n}-b-#{$i}\:active:active {
274
+ .b-#{$n}-b-#{$i},
275
+ .b-#{$n}-b-#{$i}\:hover:hover,
276
+ .b-#{$n}-b-#{$i}\:active:active {
274
277
  border-color: var(--co-#{$n}-b-#{$i}) !important;
275
278
  }
276
279
  }