@neatui/css 3.11.0 → 3.12.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/core/basic.scss CHANGED
@@ -1,4 +1,5 @@
1
1
  @use './media.scss' as *;
2
+ @use './vars.scss' as *;
2
3
 
3
4
  @mixin base($d: '') {
4
5
  .#{$d}w-auto {
@@ -23,41 +24,29 @@
23
24
 
24
25
  // BASE
25
26
  .#{$d}full,
26
- .#{$d}w-full,
27
- .#{$d}full-sub > *,
28
- .#{$d}w-full-sub > * {
27
+ .#{$d}w-full {
29
28
  width: 100%;
30
29
  }
31
30
  .#{$d}full,
32
- .#{$d}h-full,
33
- .#{$d}full-sub > *,
34
- .#{$d}h-full-sub > * {
31
+ .#{$d}h-full {
35
32
  height: 100%;
36
33
  }
37
34
 
38
35
  .#{$d}min-full,
39
- .#{$d}min-w-full,
40
- .#{$d}min-full-sub > *,
41
- .#{$d}min-w-full-sub > * {
36
+ .#{$d}min-w-full {
42
37
  min-width: 100%;
43
38
  }
44
39
  .#{$d}min-full,
45
- .#{$d}min-h-full,
46
- .#{$d}min-full-sub > *,
47
- .#{$d}min-h-full-sub > * {
40
+ .#{$d}min-h-full {
48
41
  min-height: 100%;
49
42
  }
50
43
 
51
44
  .#{$d}max-full,
52
- .#{$d}max-w-full,
53
- .#{$d}max-full-sub > *,
54
- .#{$d}max-w-full-sub > * {
45
+ .#{$d}max-w-full {
55
46
  max-width: 100%;
56
47
  }
57
48
  .#{$d}max-full,
58
- .#{$d}max-h-full,
59
- .#{$d}max-full-sub > *,
60
- .#{$d}max-h-full-sub > * {
49
+ .#{$d}max-h-full {
61
50
  max-height: 100%;
62
51
  }
63
52
 
@@ -86,45 +75,19 @@
86
75
  }
87
76
 
88
77
  // 顶部对齐
89
- .#{$d}vt,
90
- .#{$d}vt-sub > * {
78
+ .#{$d}vt {
91
79
  vertical-align: top;
92
80
  }
93
81
  // 上下居中
94
- .#{$d}vm,
95
- .#{$d}vm-sub > * {
82
+ .#{$d}vm {
96
83
  vertical-align: middle;
97
84
  }
98
85
 
99
86
  // 底部对齐
100
- .#{$d}vb,
101
- .#{$d}vb-sub > * {
87
+ .#{$d}vb {
102
88
  vertical-align: bottom;
103
89
  }
104
90
 
105
- // 横竖对齐
106
- .#{$d}avc {
107
- position: relative;
108
- display: table;
109
- width: 100%;
110
- height: 100%;
111
- top: 0;
112
- left: 0;
113
- text-align: center;
114
-
115
- & > * {
116
- width: 100%;
117
- height: 100%;
118
- display: table-cell;
119
- vertical-align: middle;
120
-
121
- & > * {
122
- display: inline-block;
123
- text-align: left;
124
- }
125
- }
126
- }
127
-
128
91
  /*定位*/
129
92
  .#{$d}pr,
130
93
  .#{$d}pr-sub > * {
@@ -143,32 +106,6 @@
143
106
  position: sticky;
144
107
  }
145
108
 
146
- /*浮动*/
147
- .#{$d}fl,
148
- .#{$d}fl-sub > * {
149
- float: left;
150
- }
151
- .#{$d}fr,
152
- .#{$d}fr-sub > * {
153
- float: right;
154
- }
155
- .#{$d}fn,
156
- .#{$d}fn-sub > * {
157
- float: none;
158
- }
159
-
160
- // 清除浮动
161
- .#{$d}cb,
162
- .#{$d}cb-sub > * {
163
- clear: both;
164
-
165
- &:after {
166
- display: table;
167
- content: '';
168
- clear: both;
169
- }
170
- }
171
-
172
109
  // 字体粗细
173
110
  .#{$d}bold {
174
111
  font-weight: bold;
@@ -182,16 +119,6 @@
182
119
  -moz-osx-font-smoothing: auto;
183
120
  }
184
121
  }
185
-
186
- // 宽度
187
- .#{$d}w#{$i*10} {
188
- width: $i * 10%;
189
- }
190
-
191
- // 缩小
192
- .#{$d}sr#{$i} {
193
- transform: scale(#{calc($i / 10)});
194
- }
195
122
  }
196
123
  .#{$d}fw0 {
197
124
  font-weight: normal;
@@ -209,9 +136,7 @@
209
136
  }
210
137
 
211
138
  // 块级
212
- .#{$d}b,
213
139
  .#{$d}block,
214
- .#{$d}b-sub > *,
215
140
  .#{$d}block-sub > * {
216
141
  display: block;
217
142
  }
@@ -221,21 +146,15 @@
221
146
  .#{$d}inline-block-sub > * {
222
147
  display: inline-block;
223
148
  }
224
- .#{$d}df,
225
149
  .#{$d}flex,
226
- .#{$d}df-sub > *,
227
150
  .#{$d}flex-sub > * {
228
151
  display: flex;
229
152
  }
230
- .#{$d}dif,
231
153
  .#{$d}inline-flex,
232
- .#{$d}dif-sub > *,
233
154
  .#{$d}inline-flex-sub > * {
234
155
  display: inline-flex;
235
156
  }
236
- .#{$d}di,
237
157
  .#{$d}inline,
238
- .#{$d}di-sub > *,
239
158
  .#{$d}inline-sub > * {
240
159
  display: inline;
241
160
  }
@@ -257,128 +176,6 @@
257
176
  white-space: nowrap;
258
177
  }
259
178
 
260
- // 是否穿透
261
- .#{$d}pe-auto {
262
- pointer-events: auto;
263
- }
264
- .#{$d}pe-none {
265
- pointer-events: none;
266
- }
267
-
268
- // 图层层级
269
- .#{$d}z-no {
270
- z-index: 0;
271
- }
272
- .#{$d}z-ss {
273
- z-index: 1;
274
- }
275
- .#{$d}z-sm {
276
- z-index: 2;
277
- }
278
- .#{$d}z-sl {
279
- z-index: 3;
280
- }
281
- .#{$d}z-ms {
282
- z-index: 4;
283
- }
284
- .#{$d}z-mm {
285
- z-index: 5;
286
- }
287
- .#{$d}z-ml {
288
- z-index: 6;
289
- }
290
- .#{$d}z-ls {
291
- z-index: 7;
292
- }
293
- .#{$d}z-lm {
294
- z-index: 8;
295
- }
296
- .#{$d}z-ll {
297
- z-index: 9;
298
- }
299
-
300
- // 不透明度
301
- .#{$d}o-no,
302
- .#{$d}o-no\:hover:hover {
303
- opacity: 0;
304
- }
305
- .#{$d}o-xs,
306
- .#{$d}o-xs\:hover:hover {
307
- opacity: 0.05;
308
- }
309
- .#{$d}o-ss,
310
- .#{$d}o-ss\:hover:hover {
311
- opacity: 0.1;
312
- }
313
- .#{$d}o-sm,
314
- .#{$d}o-sm\:hover:hover {
315
- opacity: 0.2;
316
- }
317
- .#{$d}o-sl,
318
- .#{$d}o-sl\:hover:hover {
319
- opacity: 0.3;
320
- }
321
- .#{$d}o-ms,
322
- .#{$d}o-ms\:hover:hover {
323
- opacity: 0.4;
324
- }
325
- .#{$d}o-mm,
326
- .#{$d}o-mm\:hover:hover {
327
- opacity: 0.5;
328
- }
329
- .#{$d}o-ml,
330
- .#{$d}o-ml\:hover:hover {
331
- opacity: 0.6;
332
- }
333
- .#{$d}o-ls,
334
- .#{$d}o-ls\:hover:hover {
335
- opacity: 0.7;
336
- }
337
- .#{$d}o-lm,
338
- .#{$d}o-lm\:hover:hover {
339
- opacity: 0.8;
340
- }
341
- .#{$d}o-ll,
342
- .#{$d}o-ll\:hover:hover {
343
- opacity: 0.9;
344
- }
345
- .#{$d}o-xl,
346
- .#{$d}o-xl\:hover:hover {
347
- opacity: 0.95;
348
- }
349
- .#{$d}o-xx,
350
- .#{$d}o-xx\:hover:hover {
351
- opacity: 1;
352
- }
353
-
354
- .#{$d}o-ss\+mm {
355
- opacity: 0.15;
356
- }
357
- .#{$d}o-sm\+mm {
358
- opacity: 0.25;
359
- }
360
- .#{$d}o-sl\+mm {
361
- opacity: 0.35;
362
- }
363
- .#{$d}o-ms\+mm {
364
- opacity: 0.45;
365
- }
366
- .#{$d}o-mm\+mm {
367
- opacity: 0.55;
368
- }
369
- .#{$d}o-ml\+mm {
370
- opacity: 0.65;
371
- }
372
- .#{$d}o-ls\+mm {
373
- opacity: 0.75;
374
- }
375
- .#{$d}o-lm\+mm {
376
- opacity: 0.85;
377
- }
378
- .#{$d}o-ll\+mm {
379
- opacity: 0.95;
380
- }
381
-
382
179
  .#{$d}upper {
383
180
  text-transform: uppercase;
384
181
  }
@@ -413,14 +210,13 @@ code,
413
210
  width: 100%;
414
211
  height: 100%;
415
212
  }
416
- }
417
213
 
418
- [layout='full'] {
419
214
  .box {
420
215
  width: 100%;
421
216
  max-width: 100%;
422
217
  }
423
218
  }
219
+
424
220
  // 容器
425
221
  .box,
426
222
  .box-base {
@@ -497,79 +293,34 @@ code,
497
293
  [ui-omit]:not([ui-omit~='1']) {
498
294
  display: -webkit-box;
499
295
  -webkit-box-orient: vertical;
296
+ -webkit-line-clamp: var(--line);
500
297
  }
501
298
  [ui-omit~='1'] {
502
299
  white-space: nowrap;
503
300
  }
504
301
  [ui-omit~='2'] {
505
- -webkit-line-clamp: 2;
302
+ --line: 2;
506
303
  }
507
304
  [ui-omit~='3'] {
508
- -webkit-line-clamp: 3;
305
+ --line: 3;
509
306
  }
510
307
  [ui-omit~='4'] {
511
- -webkit-line-clamp: 4;
308
+ --line: 4;
512
309
  }
513
310
  [ui-omit~='5'] {
514
- -webkit-line-clamp: 5;
311
+ --line: 5;
515
312
  }
516
313
  [ui-omit~='6'] {
517
- -webkit-line-clamp: 6;
314
+ --line: 6;
518
315
  }
519
316
  [ui-omit~='7'] {
520
- -webkit-line-clamp: 7;
317
+ --line: 7;
521
318
  }
522
319
  [ui-omit~='8'] {
523
- -webkit-line-clamp: 8;
320
+ --line: 8;
524
321
  }
525
322
  [ui-omit~='9'] {
526
- -webkit-line-clamp: 9;
527
- }
528
- // 等分
529
- .ew1,
530
- .ew1-sub > *,
531
- .ew1-sun > * > * {
532
- width: 100%;
533
- }
534
- .ew2,
535
- .ew2-sub > *,
536
- .ew2-sun > * > * {
537
- width: 50%;
538
- }
539
- .ew3,
540
- .ew3-sub > *,
541
- .ew3-sun > * > * {
542
- width: 33.333333%;
543
- }
544
- .ew4,
545
- .ew4-sub > *,
546
- .ew4-sun > * > * {
547
- width: 25%;
548
- }
549
- .ew5,
550
- .ew5-sub > *,
551
- .ew5-sun > * > * {
552
- width: 20%;
553
- }
554
- .ew6,
555
- .ew6-sub > *,
556
- .ew6-sun > * > * {
557
- width: 16.666666%;
558
- }
559
- .ew7,
560
- .ew7-sub > *,
561
- .ew7-sun > * > * {
562
- width: 14.285714%;
563
- }
564
- .ew8,
565
- .ew8-sub > *,
566
- .ew8-sun > * > * {
567
- width: 12.5%;
568
- }
569
- .ew9,
570
- .ew9-sub > *,
571
- .ew9-sun > * > * {
572
- width: 11.111111%;
323
+ --line: 9;
573
324
  }
574
325
 
575
326
  // 符号与单位
@@ -596,3 +347,27 @@ code,
596
347
  width: 1em;
597
348
  height: 1em;
598
349
  }
350
+
351
+ // 图层层级
352
+ $zv: 0;
353
+ @each $i in $grades {
354
+ .z-#{$i},
355
+ .z-#{$i}\:hover:hover {
356
+ z-index: $zv;
357
+ }
358
+ $zv: $zv + 1;
359
+ }
360
+
361
+ // 不透明度
362
+ $ov: 0;
363
+ @each $i in $grades {
364
+ .o-#{$i},
365
+ .o-#{$i}\:hover:hover {
366
+ opacity: $ov;
367
+ }
368
+ @if $ov < 0.1 or $ov >= 0.9 {
369
+ $ov: $ov + 0.05;
370
+ } @else {
371
+ $ov: $ov + 0.1;
372
+ }
373
+ }
package/core/border.scss CHANGED
@@ -1,4 +1,5 @@
1
1
  @use './media.scss' as *;
2
+ @use './vars.scss' as *;
2
3
 
3
4
  .b-solid {
4
5
  border-style: solid;
@@ -11,287 +12,37 @@
11
12
  }
12
13
 
13
14
  @mixin border($media: '') {
14
- .#{$media}b-no {
15
- border-width: 0px;
16
- }
17
- .#{$media}b-xs {
18
- border-width: 1px;
19
- }
20
- .#{$media}b-ss {
21
- border-width: 2px;
22
- }
23
- .#{$media}b-sm {
24
- border-width: 3px;
25
- }
26
- .#{$media}b-sl {
27
- border-width: 4px;
28
- }
29
- .#{$media}b-ms {
30
- border-width: 5px;
31
- }
32
- .#{$media}b-mm {
33
- border-width: 0.5rem;
34
- }
35
- .#{$media}b-ml {
36
- border-width: 0.6rem;
37
- }
38
- .#{$media}b-ls {
39
- border-width: 0.7rem;
40
- }
41
- .#{$media}b-lm {
42
- border-width: 0.8rem;
43
- }
44
- .#{$media}b-ll {
45
- border-width: 0.9rem;
46
- }
47
- .#{$media}b-xl {
48
- border-width: 1rem;
49
- }
50
-
51
- .#{$media}bx-no {
52
- border-left-width: 0px;
53
- border-right-width: 0px;
54
- }
55
- .#{$media}bx-xs {
56
- border-left-width: 1px;
57
- border-right-width: 1px;
58
- }
59
- .#{$media}bx-ss {
60
- border-left-width: 2px;
61
- border-right-width: 2px;
62
- }
63
- .#{$media}bx-sm {
64
- border-left-width: 3px;
65
- border-right-width: 3px;
66
- }
67
- .#{$media}bx-sl {
68
- border-left-width: 4px;
69
- border-right-width: 4px;
70
- }
71
- .#{$media}bx-ms {
72
- border-left-width: 5px;
73
- border-right-width: 5px;
74
- }
75
- .#{$media}bx-mm {
76
- border-left-width: 0.5rem;
77
- border-right-width: 0.5rem;
78
- }
79
- .#{$media}bx-ml {
80
- border-left-width: 0.6rem;
81
- border-right-width: 0.6rem;
82
- }
83
- .#{$media}bx-ls {
84
- border-left-width: 0.7rem;
85
- border-right-width: 0.7rem;
86
- }
87
- .#{$media}bx-lm {
88
- border-left-width: 0.8rem;
89
- border-right-width: 0.8rem;
90
- }
91
- .#{$media}bx-ll {
92
- border-left-width: 0.9rem;
93
- border-right-width: 0.9rem;
94
- }
95
- .#{$media}bx-xl {
96
- border-left-width: 1rem;
97
- border-right-width: 1rem;
98
- }
99
-
100
- .#{$media}by-no {
101
- border-top-width: 0px;
102
- border-bottom-width: 0px;
103
- }
104
- .#{$media}by-xs {
105
- border-top-width: 1px;
106
- border-bottom-width: 1px;
107
- }
108
- .#{$media}by-ss {
109
- border-top-width: 2px;
110
- border-bottom-width: 2px;
111
- }
112
- .#{$media}by-sm {
113
- border-top-width: 3px;
114
- border-bottom-width: 3px;
115
- }
116
- .#{$media}by-sl {
117
- border-top-width: 4px;
118
- border-bottom-width: 4px;
119
- }
120
- .#{$media}by-ms {
121
- border-top-width: 5px;
122
- border-bottom-width: 5px;
123
- }
124
- .#{$media}by-mm {
125
- border-top-width: 0.5rem;
126
- border-bottom-width: 0.5rem;
127
- }
128
- .#{$media}by-ml {
129
- border-top-width: 0.6rem;
130
- border-bottom-width: 0.6rem;
131
- }
132
- .#{$media}by-ls {
133
- border-top-width: 0.7rem;
134
- border-bottom-width: 0.7rem;
135
- }
136
- .#{$media}by-lm {
137
- border-top-width: 0.8rem;
138
- border-bottom-width: 0.8rem;
139
- }
140
- .#{$media}by-ll {
141
- border-top-width: 0.9rem;
142
- border-bottom-width: 0.9rem;
143
- }
144
- .#{$media}by-xl {
145
- border-top-width: 1rem;
146
- border-bottom-width: 1rem;
147
- }
148
-
149
- .#{$media}bt-no {
150
- border-top-width: 0px;
151
- }
152
- .#{$media}bt-xs {
153
- border-top-width: 1px;
154
- }
155
- .#{$media}bt-ss {
156
- border-top-width: 2px;
157
- }
158
- .#{$media}bt-sm {
159
- border-top-width: 3px;
160
- }
161
- .#{$media}bt-sl {
162
- border-top-width: 4px;
163
- }
164
- .#{$media}bt-ms {
165
- border-top-width: 5px;
166
- }
167
- .#{$media}bt-mm {
168
- border-top-width: 0.5rem;
169
- }
170
- .#{$media}bt-ml {
171
- border-top-width: 0.6rem;
172
- }
173
- .#{$media}bt-ls {
174
- border-top-width: 0.7rem;
175
- }
176
- .#{$media}bt-lm {
177
- border-top-width: 0.8rem;
178
- }
179
- .#{$media}bt-ll {
180
- border-top-width: 0.9rem;
181
- }
182
- .#{$media}bt-xl {
183
- border-top-width: 1rem;
184
- }
185
-
186
- .#{$media}br-no {
187
- border-right-width: 0px;
188
- }
189
- .#{$media}br-xs {
190
- border-right-width: 1px;
191
- }
192
- .#{$media}br-ss {
193
- border-right-width: 2px;
194
- }
195
- .#{$media}br-sm {
196
- border-right-width: 3px;
197
- }
198
- .#{$media}br-sl {
199
- border-right-width: 4px;
200
- }
201
- .#{$media}br-ms {
202
- border-right-width: 5px;
203
- }
204
- .#{$media}br-mm {
205
- border-right-width: 0.5rem;
206
- }
207
- .#{$media}br-ml {
208
- border-right-width: 0.6rem;
209
- }
210
- .#{$media}br-ls {
211
- border-right-width: 0.7rem;
212
- }
213
- .#{$media}br-lm {
214
- border-right-width: 0.8rem;
215
- }
216
- .#{$media}br-ll {
217
- border-right-width: 0.9rem;
218
- }
219
- .#{$media}br-xl {
220
- border-right-width: 1rem;
221
- }
222
-
223
- .#{$media}bb-no {
224
- border-bottom-width: 0px;
225
- }
226
- .#{$media}bb-xs {
227
- border-bottom-width: 1px;
228
- }
229
- .#{$media}bb-ss {
230
- border-bottom-width: 2px;
231
- }
232
- .#{$media}bb-sm {
233
- border-bottom-width: 3px;
234
- }
235
- .#{$media}bb-sl {
236
- border-bottom-width: 4px;
237
- }
238
- .#{$media}bb-ms {
239
- border-bottom-width: 5px;
240
- }
241
- .#{$media}bb-mm {
242
- border-bottom-width: 0.5rem;
243
- }
244
- .#{$media}bb-ml {
245
- border-bottom-width: 0.6rem;
246
- }
247
- .#{$media}bb-ls {
248
- border-bottom-width: 0.7rem;
249
- }
250
- .#{$media}bb-lm {
251
- border-bottom-width: 0.8rem;
252
- }
253
- .#{$media}bb-ll {
254
- border-bottom-width: 0.9rem;
255
- }
256
- .#{$media}bb-xl {
257
- border-bottom-width: 1rem;
258
- }
259
-
260
- .#{$media}bl-no {
261
- border-left-width: 0px;
262
- }
263
- .#{$media}bl-xs {
264
- border-left-width: 1px;
265
- }
266
- .#{$media}bl-ss {
267
- border-left-width: 2px;
268
- }
269
- .#{$media}bl-sm {
270
- border-left-width: 3px;
271
- }
272
- .#{$media}bl-sl {
273
- border-left-width: 4px;
274
- }
275
- .#{$media}bl-ms {
276
- border-left-width: 5px;
277
- }
278
- .#{$media}bl-mm {
279
- border-left-width: 0.5rem;
280
- }
281
- .#{$media}bl-ml {
282
- border-left-width: 0.6rem;
283
- }
284
- .#{$media}bl-ls {
285
- border-left-width: 0.7rem;
286
- }
287
- .#{$media}bl-lm {
288
- border-left-width: 0.8rem;
289
- }
290
- .#{$media}bl-ll {
291
- border-left-width: 0.9rem;
292
- }
293
- .#{$media}bl-xl {
294
- border-left-width: 1rem;
15
+ // 第1层:四个方向(优先级最低)
16
+ $bv: 0;
17
+ @each $i in $grades {
18
+ .#{$media}b-#{$i} {
19
+ border-width: #{$bv}px;
20
+ }
21
+ $bv: $bv + 1;
22
+ }
23
+
24
+ // 第2层:双方向(中等优先级)
25
+ $bv: 0;
26
+ @each $i in $grades {
27
+ .#{$media}bx-#{$i} {
28
+ border-left-width: #{$bv}px;
29
+ border-right-width: #{$bv}px;
30
+ }
31
+ .#{$media}by-#{$i} {
32
+ border-top-width: #{$bv}px;
33
+ border-bottom-width: #{$bv}px;
34
+ }
35
+ $bv: $bv + 1;
36
+ }
37
+
38
+ // 第3层:单方向(优先级最高)
39
+ $bv: 0;
40
+ @each $i in $grades {
41
+ .#{$media}bt-#{$i} { border-top-width: #{$bv}px; }
42
+ .#{$media}br-#{$i} { border-right-width: #{$bv}px; }
43
+ .#{$media}bb-#{$i} { border-bottom-width: #{$bv}px; }
44
+ .#{$media}bl-#{$i} { border-left-width: #{$bv}px; }
45
+ $bv: $bv + 1;
295
46
  }
296
47
  }
297
48
 
package/core/cols.scss CHANGED
@@ -47,39 +47,6 @@
47
47
  }
48
48
  }
49
49
 
50
- // 两种模块 普通模式和flex模式,普通模式废弃!
51
- // [ui-row~='float'] {
52
- // & {
53
- // display: block;
54
- // }
55
-
56
- // // 清除浮动
57
- // &::after {
58
- // content: '';
59
- // display: table;
60
- // clear: both;
61
- // }
62
-
63
- // & > * {
64
- // position: relative;
65
- // height:100%;
66
- // }
67
-
68
- // // 向左浮动(默认)
69
- // & > *,
70
- // &[ui-row~='fl'] > * {
71
- // float: left;
72
- // }
73
- // // 向右浮动
74
- // &[ui-row~='fr'] > * {
75
- // float: right;
76
- // }
77
- // // 不要浮动
78
- // &[ui-row~='fn'] > * {
79
- // float: none !important;
80
- // }
81
- // }
82
-
83
50
  // 表格使用栅格
84
51
  tr[ui-row] {
85
52
  display: table-row;
package/core/cover.scss CHANGED
@@ -2,7 +2,6 @@ $sz: no, xs, ss, sm, ms, mm, ml, ls, lm, ll, xl;
2
2
 
3
3
  [ui-cover] {
4
4
  position: relative;
5
- // width: 100%;
6
5
  height: 0;
7
6
  box-sizing: content-box;
8
7
  padding-top: 100%;
@@ -73,7 +72,6 @@ $sz: no, xs, ss, sm, ms, mm, ml, ls, lm, ll, xl;
73
72
  }
74
73
  }
75
74
 
76
- $base_br: 0;
77
75
  $base_max: 100%;
78
76
  $base_min: 100%;
79
77
  @each $s in $sz {
@@ -88,13 +86,4 @@ $base_min: 100%;
88
86
  padding-top: $base_min;
89
87
  }
90
88
  $base_min: ($base_min - 5);
91
-
92
- // 圆角
93
- // [ui-cover~='br:#{$s}'] {
94
- // border-radius: #{$base_br}em;
95
- // & > * {
96
- // border-radius: #{$base_br * 0.5}em;
97
- // }
98
- // }
99
- $base_br: $base_br + 0.1;
100
89
  }
package/core/reset.scss CHANGED
@@ -32,10 +32,7 @@ ul {
32
32
  }
33
33
 
34
34
  body {
35
- font-family:
36
- PingFang SC,
37
- Microsoft YaHei,
38
- sans-serif;
35
+ font-family: PingFang SC, Microsoft YaHei, sans-serif;
39
36
  line-height: 1.75;
40
37
 
41
38
  &.sharp {
@@ -68,9 +65,7 @@ textarea:-webkit-autofill:focus,
68
65
  select:-webkit-autofill,
69
66
  select:-webkit-autofill:hover,
70
67
  select:-webkit-autofill:focus {
71
- transition:
72
- background-color 1s 500000s,
73
- color 1s 500000s;
68
+ transition: background-color 1s 500000s, color 1s 500000s;
74
69
  }
75
70
  html input:-internal-autofill-selected {
76
71
  background-color: transparent !important;
@@ -85,12 +80,8 @@ option,
85
80
  label,
86
81
  fieldset,
87
82
  legend {
88
- font-family: inherit;
89
- font-style: inherit;
90
- font-weight: inherit;
91
- font-size: inherit;
83
+ font: inherit;
92
84
  color: inherit;
93
- line-height: inherit;
94
85
  }
95
86
 
96
87
  h1,
@@ -161,7 +152,7 @@ sup {
161
152
  @media screen and (max-width: 1024px) {
162
153
  * {
163
154
  -webkit-touch-callout: none;
164
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
155
+ -webkit-tap-highlight-color: transparent;
165
156
  }
166
157
  }
167
158
 
package/core/theme.scss CHANGED
@@ -142,10 +142,10 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
142
142
  // @TODO 最新版本规划
143
143
  --co-#{$k}-o-#{$l}: #{rgba($v, $ls)};
144
144
 
145
- // @if not list.index($exclude-keys, $k) {
146
- --co-#{$k}-w-#{$l}: #{mix-int($v, map.get($s, 'fore'), $ls * 100%)};
147
- --co-#{$k}-b-#{$l}: #{mix-int($v, map.get($s, 'text'), $ls * 100%)};
148
- // }
145
+ @if not list.index($exclude-keys, $k) {
146
+ --co-#{$k}-w-#{$l}: #{mix-int($v, map.get($s, 'fore'), $ls * 100%)};
147
+ --co-#{$k}-b-#{$l}: #{mix-int($v, map.get($s, 'text'), $ls * 100%)};
148
+ }
149
149
  }
150
150
 
151
151
  @if ($ls == 0.035) {
@@ -218,40 +218,62 @@ $exclude-keys: (w, b, fore, back, desc, note, case, deep, code, link);
218
218
  @each $i in $levels {
219
219
  .co-#{$n}-o-#{$i},
220
220
  .co-#{$n}-o-#{$i}\:hover:hover,
221
- .co-#{$n}-o-#{$i}\:active:active,
222
- .co-#{$n}-w-#{$i},
223
- .co-#{$n}-w-#{$i}\:hover:hover,
224
- .co-#{$n}-w-#{$i}\:active:active,
225
- .co-#{$n}-b-#{$i},
226
- .co-#{$n}-b-#{$i}\:hover:hover,
227
- .co-#{$n}-b-#{$i}\:active:active {
221
+ .co-#{$n}-o-#{$i}\:active:active {
228
222
  color: var(--co-#{$n}-o-#{$i}) !important;
229
223
  fill: var(--co-#{$n}-o-#{$i}) !important;
230
224
  }
231
225
 
232
226
  .bg-#{$n}-o-#{$i},
233
227
  .bg-#{$n}-o-#{$i}\:hover:hover,
234
- .bg-#{$n}-o-#{$i}\:active:active,
235
- .bg-#{$n}-w-#{$i},
236
- .bg-#{$n}-w-#{$i}\:hover:hover,
237
- .bg-#{$n}-w-#{$i}\:active:active,
238
- .bg-#{$n}-b-#{$i},
239
- .bg-#{$n}-b-#{$i}\:hover:hover,
240
- .bg-#{$n}-b-#{$i}\:active:active {
228
+ .bg-#{$n}-o-#{$i}\:active:active {
241
229
  background-color: var(--co-#{$n}-o-#{$i}) !important;
242
230
  }
243
231
 
244
232
  .bk-#{$n}-o-#{$i},
245
233
  .bk-#{$n}-o-#{$i}\:hover:hover,
246
- .bk-#{$n}-o-#{$i}\:active:active,
247
- .bk-#{$n}-w-#{$i},
248
- .bk-#{$n}-w-#{$i}\:hover:hover,
249
- .bk-#{$n}-w-#{$i}\:active:active,
250
- .bk-#{$n}-b-#{$i},
251
- .bk-#{$n}-b-#{$i}\:hover:hover,
252
- .bk-#{$n}-b-#{$i}\:active:active {
234
+ .bk-#{$n}-o-#{$i}\:active:active {
253
235
  border-color: var(--co-#{$n}-o-#{$i}) !important;
254
236
  }
237
+
238
+ @if not list.index($exclude-keys, $n) {
239
+ .co-#{$n}-w-#{$i},
240
+ .co-#{$n}-w-#{$i}\:hover:hover,
241
+ .co-#{$n}-w-#{$i}\:active:active {
242
+ color: var(--co-#{$n}-w-#{$i}) !important;
243
+ fill: var(--co-#{$n}-w-#{$i}) !important;
244
+ }
245
+
246
+ .co-#{$n}-b-#{$i},
247
+ .co-#{$n}-b-#{$i}\:hover:hover,
248
+ .co-#{$n}-b-#{$i}\:active:active {
249
+ color: var(--co-#{$n}-b-#{$i}) !important;
250
+ fill: var(--co-#{$n}-b-#{$i}) !important;
251
+ }
252
+
253
+ .bg-#{$n}-w-#{$i},
254
+ .bg-#{$n}-w-#{$i}\:hover:hover,
255
+ .bg-#{$n}-w-#{$i}\:active:active {
256
+ background-color: var(--co-#{$n}-w-#{$i}) !important;
257
+ }
258
+
259
+ .bg-#{$n}-b-#{$i},
260
+ .bg-#{$n}-b-#{$i}\:hover:hover,
261
+ .bg-#{$n}-b-#{$i}\:active:active {
262
+ background-color: var(--co-#{$n}-b-#{$i}) !important;
263
+ }
264
+
265
+ .bk-#{$n}-w-#{$i},
266
+ .bk-#{$n}-w-#{$i}\:hover:hover,
267
+ .bk-#{$n}-w-#{$i}\:active:active {
268
+ border-color: var(--co-#{$n}-w-#{$i}) !important;
269
+ }
270
+
271
+ .bk-#{$n}-b-#{$i},
272
+ .bk-#{$n}-b-#{$i}\:hover:hover,
273
+ .bk-#{$n}-b-#{$i}\:active:active {
274
+ border-color: var(--co-#{$n}-b-#{$i}) !important;
275
+ }
276
+ }
255
277
  }
256
278
  }
257
279
  }
package/core/vars.scss CHANGED
@@ -1 +1,2 @@
1
- $sz: no, xs, ss, sm, ms, mm, ml, ls, lm, ll, xl;
1
+ // 分级
2
+ $grades: no, xs, ss, sm, sl, ms, mm, ml, ls, lm, ll, xl, xx;
package/package.json CHANGED
@@ -1,11 +1,24 @@
1
1
  {
2
2
  "name": "@neatui/css",
3
- "version": "3.11.0",
3
+ "version": "3.12.0",
4
4
  "description": "neatui",
5
5
  "main": "./neatui.scss",
6
6
  "license": "MIT",
7
7
  "author": "xiaojunbo",
8
+ "scripts": {
9
+ "build": "yarn build:scss && yarn build:optimize && yarn build:minify",
10
+ "build:scss": "sass neatui.scss dist/neatui.css --no-source-map",
11
+ "build:optimize": "postcss dist/neatui.css -o dist/neatui.css --no-map",
12
+ "build:minify": "cleancss -o dist/neatui.min.css dist/neatui.css"
13
+ },
8
14
  "peerDependencies": {},
9
- "devDependencies": {},
15
+ "devDependencies": {
16
+ "sass": "^1.80.7",
17
+ "postcss": "^8.4.49",
18
+ "postcss-cli": "^11.0.0",
19
+ "postcss-merge-rules": "^7.0.4",
20
+ "cssnano": "^7.0.6",
21
+ "clean-css-cli": "^5.6.3"
22
+ },
10
23
  "dependencies": {}
11
24
  }
@@ -0,0 +1,20 @@
1
+ module.exports = {
2
+ plugins: [
3
+ require('cssnano')({
4
+ preset: ['default', {
5
+ mergeLonghand: true,
6
+ mergeRules: true,
7
+ discardComments: {
8
+ removeAll: false
9
+ },
10
+ normalizeWhitespace: false,
11
+ colormin: true,
12
+ minifySelectors: true,
13
+ minifyParams: true,
14
+ uniqueSelectors: true,
15
+ reduceIdents: false,
16
+ discardUnused: false
17
+ }]
18
+ })
19
+ ]
20
+ };
package/core/cols@v2.scss DELETED
@@ -1,128 +0,0 @@
1
- @use 'sass:list';
2
- @use 'sass:math';
3
-
4
- @mixin cols($cols: 24, $base: 160, $space: 1) {
5
- $level: (
6
- mob-s: 320px,
7
- mob-m: 480px,
8
- mob-l: 640px,
9
- pad-s: 800px,
10
- pad-m: 960px,
11
- pad-l: 1120px,
12
- dpc-s: 1280px,
13
- dpc-m: 1440px,
14
- dpc-l: 1600px
15
- );
16
-
17
- [ui-row] {
18
- & {
19
- display: flex;
20
- flex-direction: row;
21
- flex-wrap: wrap;
22
- & > * {
23
- position: relative;
24
- }
25
- }
26
-
27
- // 间距
28
- &[ui-row~='space'] {
29
- margin: -1rem;
30
- & > * {
31
- padding: 1rem;
32
- }
33
- }
34
-
35
- @include mob {
36
- // 间距
37
- &[ui-row~='space'] {
38
- margin: -0.5rem;
39
- & > * {
40
- padding: 0.5rem;
41
- }
42
- }
43
- }
44
-
45
- // 撑满
46
- &[ui-row~=':full'] {
47
- & > * > * {
48
- height: 100%;
49
- }
50
- }
51
-
52
- // 用于容器需要居中对齐
53
- &[ui-row~='inline'] {
54
- display: inline-flex;
55
- }
56
- // 反向
57
- &[ui-row~='reverse'] {
58
- flex-direction: row-reverse;
59
- }
60
- }
61
-
62
- // 表格使用栅格
63
- tr[ui-row] {
64
- display: table-row;
65
- }
66
- td,
67
- th {
68
- &[ui-col] {
69
- display: table-cell;
70
- }
71
- }
72
-
73
- // 响应断点
74
- $level: 'mob-s', 'mob-m', 'mob-l', 'pad-s', 'pad-m', 'pad-l', 'dpc-s', 'dpc-m', 'dpc-l';
75
- $level2: 'mob', '', '', 'pad', '', '', 'dpc', '', '';
76
-
77
- @each $i in $level {
78
- $d: list.nth($level2, list.index($level, $i));
79
- // 遍历断点
80
- $base: $base + 160;
81
- // 基础
82
- @if ($i == 'mob-s') {
83
- @for $n from 0 through $cols {
84
- // 宽度
85
- $w: calc(math.floor(calc(100% / $cols * $n) * 100000) / 100000);
86
- [ui-row~='mob-#{$n}'] > *,
87
- [ui-row~='#{$i}-#{$n}'] > *,
88
- [ui-row] [ui-col~='mob-#{$n}'],
89
- [ui-row] [ui-col~='#{$i}-#{$n}'] {
90
- width: #{$w};
91
- }
92
- }
93
- } @else {
94
- @media (min-width: #{$base}px) {
95
- @for $n from 0 through $cols {
96
- // 宽度
97
- $w: calc((math.floor((calc(100% / $cols) * $n) * 100000) / 100000));
98
- @if ($d != '') {
99
- // 三端
100
- [ui-row~='#{$d}-#{$n}'] > *,
101
- [ui-row] [ui-col~='#{$d}-#{$n}'],
102
- // 细分三端
103
- [ui-row~='#{$i}-#{$n}'] > *,
104
- [ui-row] [ui-col~='#{$i}-#{$n}'] {
105
- width: #{$w};
106
- }
107
- } @else {
108
- [ui-row~='#{$i}-#{$n}'] > *,
109
- [ui-row] [ui-col~='#{$i}-#{$n}'] {
110
- width: #{$w};
111
- }
112
- }
113
- }
114
- }
115
- }
116
- }
117
-
118
- // 自动
119
- [ui-row~='mob-auto'],
120
- [ui-row~='pad-auto'],
121
- [ui-row~='dpc-auto'] {
122
- justify-content: space-between;
123
- & > * {
124
- flex-grow: 1;
125
- }
126
- }
127
- }
128
- @include cols();
@@ -1,105 +0,0 @@
1
- /*
2
- * 模块:字号
3
- * 模块类型:b(基础模块)
4
- * 精度:9 +
5
- * 分级:3 +
6
- * 适配:桌面 | 平析 | 移动
7
- * 兼容:
8
- * 版本:v0.0.1
9
- * 备注:s->Small 小,m->Middle 中,l->Large 大;x->Extra 特大
10
- */
11
-
12
- // 全局字号
13
- // @mixin baseSize($sz: 13) {
14
- // $size: 'xs', 's', 'm', 'l', 'xl';
15
-
16
- // @each $i in $size {
17
- // [size='#{$i}'],
18
- // [ui-size='#{$i}'] {
19
- // $s: index($size, $i) + $sz;
20
- // font-size: #{$s}px;
21
- // }
22
- // }
23
- // }
24
-
25
- // 分级字号
26
- @mixin randSize($d: '') {
27
- $rank: 'xs', 'ss', 'sm', 'sl', 'ms', 'mm', 'ml', 'ls', 'lm', 'll', 'xl';
28
- // 分级字号
29
- .#{$d}fs-no {
30
- font-size: 0rem;
31
- }
32
- .#{$d}lh-no {
33
- line-height: 0;
34
- }
35
-
36
- $sz: 0.2;
37
-
38
- @each $k in $rank {
39
- .#{$d}lh-#{$k} {
40
- line-height: #{$sz * 5};
41
- }
42
-
43
- @if ($sz<0.2) {
44
- $sz: $sz + 0.01;
45
- } @else if ($sz<.28) {
46
- $sz: $sz + 0.02;
47
- } @else if($sz<.4) {
48
- $sz: $sz + 0.04;
49
- } @else if($sz<.6) {
50
- $sz: $sz + 0.06;
51
- } @else {
52
- $sz: $sz + 0.08;
53
- }
54
-
55
- .#{$d}fs-#{$k},
56
- .#{$d}fs-#{$k}-sub > *,
57
- .#{$d}fs-#{$k}-sub\:sta > *::before,
58
- .#{$d}fs-#{$k}-sub\:end > *::after,
59
- .#{$d}fs-#{$k}\:sta::before,
60
- .#{$d}fs-#{$k}\:end::after {
61
- font-size: #{$sz}rem;
62
- }
63
- }
64
-
65
- // 标题
66
- $hsz: 1;
67
-
68
- h1,
69
- .h1 {
70
- font-size: 2em;
71
- }
72
- h2,
73
- .h2 {
74
- font-size: 1.6em;
75
- }
76
- h3,
77
- .h3 {
78
- font-size: 1.4em;
79
- }
80
- h4,
81
- .h4 {
82
- font-size: 1.2em;
83
- }
84
- h5,
85
- .h5 {
86
- font-size: 1.1em;
87
- }
88
- h6,
89
- .h6 {
90
- font-size: 1em;
91
- }
92
- }
93
-
94
- // 桌面
95
- @include randSize();
96
-
97
- // 平板
98
- @media screen and (max-width: 1024px) {
99
- @include randSize('pad\\:');
100
- }
101
-
102
- // 移动
103
- @media screen and (max-width: 767px) {
104
- @include randSize('mob\\:');
105
- }
package/core/var.scss DELETED
@@ -1,2 +0,0 @@
1
- $sz: 'xs', 's', 'm', 'l', 'xl';
2
- $co: 'main', 'vice', 'text', 'fore', 'back', 'link', 'code', 'well', 'warn', 'risk';