@neatui/css 3.0.0-beta.8 → 3.0.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.
Files changed (140) hide show
  1. package/components/anim/am-view-aa.scss +7 -11
  2. package/components/anim/am-view-ab.scss +7 -11
  3. package/components/anim/am-view-ad.scss +7 -11
  4. package/components/anim/am-view-ae.scss +7 -11
  5. package/components/anim/am-view-af.scss +4 -8
  6. package/components/anim/am-view-ag.scss +92 -1541
  7. package/components/anim/am-view-ah.scss +7 -11
  8. package/components/anim/am-view-ai.scss +7 -11
  9. package/components/anim/am-view-aj.scss +7 -11
  10. package/components/anim/am-view-ak.scss +7 -11
  11. package/components/anim/am-view-al.scss +7 -11
  12. package/components/anim/am-view-am.scss +7 -11
  13. package/components/anim/am-view-an.scss +7 -11
  14. package/components/anim/am-view-ao.scss +11 -15
  15. package/components/anim/am-view-ap.scss +7 -11
  16. package/components/anim/am-view-aq.scss +7 -11
  17. package/components/anim/am-view-ar.scss +7 -11
  18. package/components/anim/am-view-as.scss +8 -12
  19. package/components/anim/am-view-at.scss +8 -12
  20. package/components/anim/index.scss +22 -0
  21. package/components/btns/base.scss +2 -0
  22. package/components/btns/btns@a.scss +2 -1
  23. package/components/btns/index.scss +1 -0
  24. package/components/card/card@a.scss +10 -8
  25. package/components/card/card@b.scss +2 -0
  26. package/components/card/index.scss +2 -0
  27. package/components/form/base.scss +3 -0
  28. package/components/form/form@a/base.scss +1 -1
  29. package/components/form/form@a/checkbox.scss +1 -1
  30. package/components/form/form@a/date.scss +2 -2
  31. package/components/form/form@a/index.scss +9 -9
  32. package/components/form/form@a/input.scss +3 -4
  33. package/components/form/form@a/radio.scss +1 -1
  34. package/components/form/form@a/select.scss +2 -2
  35. package/components/form/form@a/switch.scss +0 -1
  36. package/components/form/form@a/textarea.scss +2 -3
  37. package/components/form/form@b/base.scss +1 -1
  38. package/components/form/form@b/checkbox.scss +0 -1
  39. package/components/form/form@b/date.scss +2 -2
  40. package/components/form/form@b/index.scss +9 -9
  41. package/components/form/form@b/input.scss +3 -4
  42. package/components/form/form@b/radio.scss +0 -1
  43. package/components/form/form@b/select.scss +2 -2
  44. package/components/form/form@b/switch.scss +0 -1
  45. package/components/form/form@b/textarea.scss +2 -3
  46. package/components/form/form@c/base.scss +1 -1
  47. package/components/form/form@c/checkbox.scss +0 -1
  48. package/components/form/form@c/date.scss +2 -2
  49. package/components/form/form@c/index.scss +9 -9
  50. package/components/form/form@c/input.scss +3 -4
  51. package/components/form/form@c/radio.scss +0 -1
  52. package/components/form/form@c/select.scss +2 -2
  53. package/components/form/form@c/switch.scss +0 -1
  54. package/components/form/form@c/textarea.scss +2 -2
  55. package/components/form/form@d/base.scss +1 -1
  56. package/components/form/form@d/checkbox.scss +0 -1
  57. package/components/form/form@d/date.scss +2 -2
  58. package/components/form/form@d/input.scss +3 -4
  59. package/components/form/form@d/radio.scss +0 -1
  60. package/components/form/form@d/select.scss +2 -2
  61. package/components/form/form@d/switch.scss +0 -1
  62. package/components/form/form@d/textarea.scss +2 -2
  63. package/components/form/index.scss +3 -0
  64. package/components/form/vars.scss +2 -0
  65. package/components/icon/index.scss +21 -0
  66. package/components/imgs/imgs@a.scss +1 -1
  67. package/components/imgs/index.scss +1 -0
  68. package/components/line/index.scss +2 -0
  69. package/components/list/index.scss +2 -0
  70. package/components/list/list@a.scss +2 -2
  71. package/components/list/list@b.scss +1 -1
  72. package/components/load/index.scss +8 -0
  73. package/components/menu/index.scss +1 -0
  74. package/components/navs/index.scss +2 -0
  75. package/components/note/index.scss +2 -0
  76. package/components/note/note@a.scss +2 -2
  77. package/components/note/note@b.scss +2 -2
  78. package/components/opts/index.scss +1 -0
  79. package/components/path/index.scss +1 -0
  80. package/components/path/path@a.scss +2 -0
  81. package/components/steps/index.scss +2 -0
  82. package/components/steps/steps@a.scss +5 -4
  83. package/components/steps/steps@v.scss +5 -5
  84. package/components/table/index.scss +3 -0
  85. package/components/table/table@b.scss +1 -1
  86. package/components/table/table@c.scss +1 -1
  87. package/components/tabs/index.scss +3 -0
  88. package/components/tabs/tabs@a.scss +3 -3
  89. package/components/tabs/tabs@b.scss +3 -3
  90. package/components/tabs/tabs@c.scss +3 -3
  91. package/components/tags/index.scss +2 -0
  92. package/components/tags/tags@a.scss +4 -4
  93. package/components/tags/tags@b.scss +4 -4
  94. package/components/tips/index.scss +1 -0
  95. package/components/tips/tips@a.scss +1 -1
  96. package/components/title/index.scss +2 -0
  97. package/core/{base.scss → basic.scss} +2 -0
  98. package/core/border.scss +6 -4
  99. package/core/cols.scss +1 -1
  100. package/core/cover.scss +6 -0
  101. package/core/flex.scss +1 -1
  102. package/core/grid.scss +251 -0
  103. package/core/media copy.scss +270 -0
  104. package/core/media.scss +1 -0
  105. package/core/neatui.core.scss.backup +34 -0
  106. package/core/reset.scss +0 -4
  107. package/core/scroll.scss +2 -0
  108. package/core/size.scss +1 -7
  109. package/core/theme-v2.scss +378 -0
  110. package/core/theme.scss +169 -126
  111. package/core/trim.scss +2 -0
  112. package/core/ux.scss +2 -0
  113. package/core/vars.scss +3 -0
  114. package/neatui.scss +54 -23
  115. package/package.json +1 -1
  116. package/components/anim/mcui@anim.scss +0 -22
  117. package/components/btns/mcui@btns.scss +0 -1
  118. package/components/card/mcui@card.scss +0 -2
  119. package/components/form/mcui@form.scss +0 -4
  120. package/components/icon/mcui@icon.scss +0 -21
  121. package/components/imgs/mcui@imgs.scss +0 -1
  122. package/components/line/mcui@line.scss +0 -2
  123. package/components/list/mcui@list.scss +0 -2
  124. package/components/load/mcui@load.scss +0 -8
  125. package/components/menu/mcui@menu.scss +0 -1
  126. package/components/navs/mcui@navs.scss +0 -2
  127. package/components/note/mcui@note.scss +0 -2
  128. package/components/opts/mcui@opts.scss +0 -1
  129. package/components/path/mcui@path.scss +0 -1
  130. package/components/steps/mcui@steps.scss +0 -2
  131. package/components/table/mcui@table.scss +0 -3
  132. package/components/tabs/mcui@tabs.scss +0 -3
  133. package/components/tags/mcui@tags.scss +0 -2
  134. package/components/tips/mcui@tips.scss +0 -1
  135. package/components/title/mcui@title.scss +0 -2
  136. package/core/neatui@core.scss +0 -30
  137. /package/components/chat/{mcui@chat.scss → index.scss} +0 -0
  138. /package/components/demo/{mcui@demo.scss → index.scss} +0 -0
  139. /package/components/grid/{mcui@grid.scss → index.scss} +0 -0
  140. /package/components/side/{mcui@side.scss → index.scss} +0 -0
@@ -0,0 +1,378 @@
1
+ @use 'sass:list';
2
+ @use 'sass:meta';
3
+ @use 'sass:map';
4
+ @use 'sass:color';
5
+ @use 'sass:string';
6
+
7
+ // 兜底
8
+ $theme: if(
9
+ meta.global-variable-exists(theme),
10
+ $theme,
11
+ (
12
+ _sys: (
13
+ main: #0889e4,
14
+ text: #000000,
15
+ fore: #ffffff,
16
+ back: #f5f5f5,
17
+ link: #d07950,
18
+ code: #e23861,
19
+ well: #4bbc73,
20
+ warn: #fb9a2a,
21
+ risk: #f95850,
22
+ info: #0889e4
23
+ )
24
+ )
25
+ ) !default;
26
+
27
+ // 检测
28
+ @if (meta.global-variable-exists(theme)) {
29
+ $fa: map.keys($theme);
30
+ $fk: list.nth($fa, 1);
31
+ @if (list.length($fa) == 1 and $fk == _sys) {
32
+ @warn '检测到您未定义主题色卡,请遵循 neatui 设计规范建立主题色卡;https://neatui.fekit.cn/#/docs/config';
33
+ @debug '尝试修复错误...';
34
+ @debug '创建系统默认色卡[theme=_sys]';
35
+ } @else {
36
+ @debug '检测到主题色卡[theme=#{$fk}]';
37
+ }
38
+
39
+ @each $var in $theme {
40
+ $n: list.nth($var, 1);
41
+ $s: list.nth($var, 2);
42
+ @if ($s and meta.type-of($s) == 'map') {
43
+ $baseColor: 'main', 'text', 'fore', 'back', 'link', 'code', 'well', 'warn', 'risk';
44
+ @each $baseColorItem in $baseColor {
45
+ @if (map.has-key($s, $baseColorItem)) {
46
+ } @else {
47
+ @warn '[theme=#{$n}]主题缺少一个关键的基础颜色#{$baseColorItem}';
48
+ }
49
+ }
50
+ } @else {
51
+ @debug '[theme=#{$n}]主题色卡配置错误';
52
+ }
53
+ }
54
+ }
55
+
56
+ // 扩展颜色
57
+ @each $i in $theme {
58
+ $n: list.nth($i, 1);
59
+ $s: list.nth($i, 2);
60
+ @if ($s and meta.type-of($s) == 'map') {
61
+ $m: (
62
+ none: transparent,
63
+ w: #ffffff,
64
+ b: #000000,
65
+ read: color.mix(map.get($s, 'text'), map.get($s, 'fore'), 85%),
66
+ desc: color.mix(map.get($s, 'text'), map.get($s, 'fore'), 55%),
67
+ note: color.mix(map.get($s, 'text'), map.get($s, 'fore'), 35%),
68
+ case: color.mix(map.get($s, 'text'), map.get($s, 'fore'), 20%),
69
+ line: color.mix(map.get($s, 'text'), map.get($s, 'fore'), 10%),
70
+ weak: color.mix(map.get($s, 'text'), map.get($s, 'fore'), 4%)
71
+ );
72
+ // 将扩展颜色加入放题色卡中
73
+ $theme: map.merge(
74
+ $theme,
75
+ (
76
+ $n: map.merge($m, $s)
77
+ )
78
+ );
79
+ }
80
+ }
81
+
82
+ // 主题
83
+ // @mixin theme($n: null) {
84
+ // $hasTheme: map.get($theme, $n);
85
+ // @if ($n != null) {
86
+ // @if ($hasTheme != null) {
87
+ // $t: $hasTheme;
88
+ // $first: list.nth(list.nth($theme, 1), 1);
89
+ // $n: $n;
90
+ // $s: #{list.nth(&, 1)};
91
+ // @if ($s == 'html' or $s == '' or $s == null) {
92
+ // @if ($n == $first) {
93
+ // @at-root html {
94
+ // @content;
95
+ // }
96
+ // } @else {
97
+ // @at-root [theme='#{$n}'] {
98
+ // @content;
99
+ // }
100
+ // }
101
+ // } @else {
102
+ // @if ($n == $first) {
103
+ // @content;
104
+ // } @else {
105
+ // [theme='#{$n}'] & {
106
+ // @content;
107
+ // }
108
+ // }
109
+ // }
110
+ // } @else {
111
+ // @warn '没有指定主题#{$hasTheme}';
112
+ // }
113
+ // } @else {
114
+ // $first: list.nth(list.nth($theme, 1), 1);
115
+ // @each $t in $theme {
116
+ // $n: list.nth($t, 1);
117
+ // $s: #{list.nth(&, 1)};
118
+
119
+ // @if ($s == 'html' or $s == ':root' or $s == '' or $s == null) {
120
+ // @if ($n == $first) {
121
+ // @at-root html {
122
+ // @content;
123
+ // }
124
+ // } @else {
125
+ // @at-root [theme='#{$n}'] {
126
+ // @content;
127
+ // }
128
+ // }
129
+ // } @else {
130
+ // @if ($n == $first) {
131
+ // @content;
132
+ // } @else {
133
+ // [theme='#{$n}'] & {
134
+ // @content;
135
+ // }
136
+ // }
137
+ // }
138
+ // }
139
+ // }
140
+ // }
141
+
142
+ // 颜色
143
+ // @function co($a: '') {
144
+ // @if (& != null) {
145
+ // $r: list.nth(list.nth(&, 1), 1);
146
+ // $n: string.slice($r, 8, -2);
147
+ // $s: map.get($theme, $n);
148
+ // @if ($s == null) {
149
+ // $n: list.nth(list.nth($theme, 1), 1);
150
+ // $s: list.nth(list.nth($theme, 1), 2);
151
+ // }
152
+ // @if ($s != null) {
153
+ // @if (map.has-key($s, $a)) {
154
+ // $a: map.get($s, $a);
155
+ // } @else {
156
+ // @debug '当前主题[theme=#{$n}]没有定义颜色名 #{$a}';
157
+ // }
158
+ // }
159
+ // @return $a;
160
+ // } @else {
161
+ // @return transparent;
162
+ // }
163
+ // }
164
+
165
+ // 变量
166
+ @mixin vars() {
167
+ $levels: xs, ss, sm, sl, ms, mm, ml, ls, lm, ll, xl;
168
+ $colors: main, text, well, warn, risk;
169
+
170
+ $f: list.nth(list.nth($theme, 1), 1);
171
+ @each $i in $theme {
172
+ $n: list.nth($i, 1);
173
+ $s: list.nth($i, 2);
174
+ @if ($n == $f) {
175
+ :root,
176
+ [theme~='#{$n}'] {
177
+ @each $c in $s {
178
+ $k: list.nth($c, 1);
179
+ $v: list.nth($c, 2);
180
+ --co-#{$k}: #{$v};
181
+
182
+ $ls: 0.05;
183
+ @each $l in $levels {
184
+ // 透明度
185
+ @if ($k != 'none') {
186
+ --co-#{$k}-#{$l}: #{rgba($v, $ls)};
187
+ @if ($k != 'w' and $k != 'b') {
188
+ --co-#{$k}-fore-#{$l}: #{color.mix($v, map.get($s, 'fore'), $ls * 100%)};
189
+ }
190
+ @if ($k == 'main' or $k == 'well' or $k == 'warn' or $k == 'risk') {
191
+ --co-#{$k}-text-#{$l}: #{color.mix($v, map.get($s, 'text'), $ls * 100%)};
192
+ }
193
+ }
194
+ @if ($ls <= 0.1 or $ls >= 0.8) {
195
+ $ls: $ls + 0.05;
196
+ } @else {
197
+ $ls: $ls + 0.1;
198
+ }
199
+ }
200
+ }
201
+ }
202
+ } @else {
203
+ [theme~='#{$n}'] {
204
+ @each $c in $s {
205
+ $k: list.nth($c, 1);
206
+ $v: list.nth($c, 2);
207
+ --co-#{$k}: #{$v};
208
+
209
+ $ls: 0.05;
210
+ @each $l in $levels {
211
+ // 透明度
212
+ @if ($k != 'none') {
213
+ --co-#{$k}-#{$l}: #{rgba($v, $ls)};
214
+
215
+ @if ($k != 'w' and $k != 'b') {
216
+ --co-#{$k}-fore-#{$l}: #{color.mix($v, map.get($s, 'fore'), $ls * 100%)};
217
+ }
218
+
219
+ @if ($k == 'main' or $k == 'well' or $k == 'warn' or $k == 'risk') {
220
+ --co-#{$k}-text-#{$l}: #{color.mix($v, map.get($s, 'text'), $ls * 100%)};
221
+ }
222
+ }
223
+ @if ($ls <= 0.1 or $ls >= 0.8) {
224
+ $ls: $ls + 0.05;
225
+ } @else {
226
+ $ls: $ls + 0.1;
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }
234
+
235
+ @include vars();
236
+
237
+ @mixin color() {
238
+ html,
239
+ [theme] {
240
+ color: var(--co-read);
241
+ fill: var(--co-read);
242
+ background-color: var(--co-back);
243
+ }
244
+
245
+ // 自动颜色
246
+ .co-auto,
247
+ .co-auto\:hover:hover,
248
+ .co-auto\:active:active {
249
+ color: currentColor !important;
250
+ fill: currentColor !important;
251
+ }
252
+
253
+ .bg-auto,
254
+ .bg-auto\:hover:hover,
255
+ .bg-auto\:active:active {
256
+ background-color: currentColor !important;
257
+ }
258
+ .bk-auto,
259
+ .bk-auto\:hover:hover,
260
+ .bk-auto\:active:active {
261
+ border-color: currentColor !important;
262
+ }
263
+
264
+ // 随机颜色
265
+ .bg-0 {
266
+ background-color: var(--co-main);
267
+ }
268
+
269
+ .bg-1 {
270
+ background-color: #0084ff;
271
+ }
272
+ .bg-2 {
273
+ background-color: #30d158;
274
+ }
275
+ .bg-3 {
276
+ background-color: #5e5ce6;
277
+ }
278
+ .bg-4 {
279
+ background-color: #ff9f0a;
280
+ }
281
+ .bg-5 {
282
+ background-color: #ff375f;
283
+ }
284
+ .bg-6 {
285
+ background-color: #af52de;
286
+ }
287
+ .bg-7 {
288
+ background-color: #ff453a;
289
+ }
290
+ .bg-8 {
291
+ background-color: #af52de;
292
+ }
293
+ .bg-9 {
294
+ background-color: #5ac8fa;
295
+ }
296
+ .bg-10 {
297
+ background-color: #ffcc00;
298
+ }
299
+ .bg-11 {
300
+ background-color: #8e8e93;
301
+ }
302
+ .bg-12 {
303
+ background-color: #bad80a;
304
+ }
305
+ .bg-13 {
306
+ background-color: #1d6fa3;
307
+ }
308
+ .bg-14 {
309
+ background-color: #fd6585;
310
+ }
311
+ .bg-15 {
312
+ background-color: #df5900;
313
+ }
314
+ .bg-16 {
315
+ background-color: #3388ff;
316
+ }
317
+ .bg-17 {
318
+ background-color: #623aa2;
319
+ }
320
+ .bg-18 {
321
+ background-color: #d939cd;
322
+ }
323
+ .bg-19 {
324
+ background-color: #f55555;
325
+ }
326
+ .bg-20 {
327
+ background-color: #bb4e75;
328
+ }
329
+
330
+ $f: list.nth(list.nth($theme, 1), 1);
331
+ @each $i in $theme {
332
+ $s: list.nth($i, 2);
333
+ @each $c in $s {
334
+ $n: list.nth($c, 1);
335
+ $v: list.nth($c, 2);
336
+ // @include color(list.nth($c, 1), list.nth($c, 2));
337
+ $levels: xs, ss, sm, sl, ms, mm, ml, ls, lm, ll, xl;
338
+
339
+ .co-#{$n},
340
+ .co-#{$n}\:hover:hover,
341
+ .co-#{$n}\:active:active {
342
+ color: var(--co-#{$n}) !important;
343
+ fill: var(--co-#{$n}) !important;
344
+ }
345
+ .bg-#{$n},
346
+ .bg-#{$n}\:hover:hover,
347
+ .bg-#{$n}\:active:active {
348
+ background-color: var(--co-#{$n}) !important;
349
+ }
350
+ .bk-#{$n},
351
+ .bk-#{$n}\:hover:hover,
352
+ .bk-#{$n}\:active:active {
353
+ border-color: var(--co-#{$n}) !important;
354
+ }
355
+
356
+ @each $i in $levels {
357
+ .co-#{$n}-#{$i},
358
+ .co-#{$n}-#{$i}\:hover:hover,
359
+ .co-#{$n}-#{$i}\:active:active {
360
+ color: var(--co-#{$n}-#{$i}) !important;
361
+ fill: var(--co-#{$n}-#{$i}) !important;
362
+ }
363
+ .bg-#{$n}-#{$i},
364
+ .bg-#{$n}-#{$i}\:hover:hover,
365
+ .bg-#{$n}-#{$i}\:active:active {
366
+ background-color: var(--co-#{$n}-#{$i}) !important;
367
+ }
368
+ .bk-#{$n}-#{$i},
369
+ .bk-#{$n}-#{$i}\:hover:hover,
370
+ .bk-#{$n}-#{$i}\:active:active {
371
+ border-color: var(--co-#{$n}-#{$i}) !important;
372
+ }
373
+ }
374
+ }
375
+ }
376
+ }
377
+
378
+ @include color();