Commit 893f3c79e762a19e4364964835ebd30cb466c848
1 parent
e8d6f885
refactor(css): refactored windicss to tailwindcss
Showing
16 changed files
with
1816 additions
and
42 deletions
Too many changes to show.
To preserve performance only 16 of 17 files are displayed.
.vscode/settings.json
CHANGELOG.zh_CN.md
build/vite/plugin/index.ts
... | ... | @@ -5,7 +5,6 @@ import vueJsx from '@vitejs/plugin-vue-jsx'; |
5 | 5 | import legacy from '@vitejs/plugin-legacy'; |
6 | 6 | |
7 | 7 | import purgeIcons from 'vite-plugin-purge-icons'; |
8 | -import windiCSS from 'vite-plugin-windicss'; | |
9 | 8 | |
10 | 9 | import { configHtmlPlugin } from './html'; |
11 | 10 | import { configPwaConfig } from './pwa'; |
... | ... | @@ -46,9 +45,6 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) { |
46 | 45 | // vite-plugin-svg-icons |
47 | 46 | vitePlugins.push(configSvgIconsPlugin(isBuild)); |
48 | 47 | |
49 | - // vite-plugin-windicss | |
50 | - vitePlugins.push(windiCSS()); | |
51 | - | |
52 | 48 | // vite-plugin-mock |
53 | 49 | VITE_USE_MOCK && vitePlugins.push(configMockPlugin(isBuild)); |
54 | 50 | ... | ... |
jest.config.mjs
... | ... | @@ -17,7 +17,6 @@ export default { |
17 | 17 | ], |
18 | 18 | transform: { |
19 | 19 | '^.+\\.tsx?$': 'ts-jest', |
20 | - '^.+\\.(vue)$': 'vue-jest', | |
21 | 20 | }, |
22 | 21 | transformIgnorePatterns: ['<rootDir>/tests/__mocks__/', '/node_modules/'], |
23 | 22 | // A map from regular expressions to module names that allow to stub out resources with a single module | ... | ... |
package.json
... | ... | @@ -87,9 +87,8 @@ |
87 | 87 | "@vitejs/plugin-vue": "^1.2.3", |
88 | 88 | "@vitejs/plugin-vue-jsx": "^1.1.5", |
89 | 89 | "@vue/compiler-sfc": "3.0.11", |
90 | - "@vue/test-utils": "^2.0.0-rc.6", | |
90 | + "@vue/test-utils": "^2.0.0-rc.7", | |
91 | 91 | "autoprefixer": "^10.2.6", |
92 | - "babel-jest": "^27.0.2", | |
93 | 92 | "commitizen": "^4.2.4", |
94 | 93 | "conventional-changelog-cli": "^2.1.1", |
95 | 94 | "cross-env": "^7.0.3", |
... | ... | @@ -109,6 +108,7 @@ |
109 | 108 | "jest": "^27.0.4", |
110 | 109 | "less": "^4.1.1", |
111 | 110 | "lint-staged": "^11.0.0", |
111 | + "npm-run-all": "^4.1.5", | |
112 | 112 | "postcss": "^8.3.5", |
113 | 113 | "prettier": "^2.3.1", |
114 | 114 | "pretty-quick": "^3.1.1", |
... | ... | @@ -118,10 +118,11 @@ |
118 | 118 | "stylelint-config-prettier": "^8.0.2", |
119 | 119 | "stylelint-config-standard": "^22.0.0", |
120 | 120 | "stylelint-order": "^4.1.0", |
121 | + "tailwindcss": "^2.2.2", | |
121 | 122 | "ts-jest": "^27.0.3", |
122 | 123 | "ts-node": "^10.0.0", |
123 | 124 | "typescript": "4.3.4", |
124 | - "vite": "2.3.7", | |
125 | + "vite": "2.3.8", | |
125 | 126 | "vite-plugin-compression": "^0.2.5", |
126 | 127 | "vite-plugin-html": "^2.0.7", |
127 | 128 | "vite-plugin-imagemin": "^0.3.2", |
... | ... | @@ -131,9 +132,7 @@ |
131 | 132 | "vite-plugin-style-import": "^1.0.0", |
132 | 133 | "vite-plugin-svg-icons": "^0.7.1", |
133 | 134 | "vite-plugin-theme": "^0.8.1", |
134 | - "vite-plugin-windicss": "^1.0.4", | |
135 | 135 | "vue-eslint-parser": "^7.6.0", |
136 | - "vue-jest": "^5.0.0-alpha.10", | |
137 | 136 | "vue-tsc": "^0.1.7" |
138 | 137 | }, |
139 | 138 | "resolutions": { | ... | ... |
postcss.config.js
src/design/tailwind.css
0 → 100644
1 | +/*! tailwindcss v2.2.0 | MIT License | https://tailwindcss.com */ | |
2 | + | |
3 | +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ | |
4 | + | |
5 | +/* | |
6 | +Document | |
7 | +======== | |
8 | +*/ | |
9 | + | |
10 | +/** | |
11 | +Use a better box model (opinionated). | |
12 | +*/ | |
13 | + | |
14 | +*, | |
15 | +::before, | |
16 | +::after { | |
17 | + box-sizing: border-box; | |
18 | +} | |
19 | + | |
20 | +/** | |
21 | +Use a more readable tab size (opinionated). | |
22 | +*/ | |
23 | + | |
24 | +html { | |
25 | + -moz-tab-size: 4; | |
26 | + -o-tab-size: 4; | |
27 | + tab-size: 4; | |
28 | +} | |
29 | + | |
30 | +/** | |
31 | +1. Correct the line height in all browsers. | |
32 | +2. Prevent adjustments of font size after orientation changes in iOS. | |
33 | +*/ | |
34 | + | |
35 | +html { | |
36 | + line-height: 1.15; | |
37 | + /* 1 */ | |
38 | + -webkit-text-size-adjust: 100%; | |
39 | + /* 2 */ | |
40 | +} | |
41 | + | |
42 | +/* | |
43 | +Sections | |
44 | +======== | |
45 | +*/ | |
46 | + | |
47 | +/** | |
48 | +Remove the margin in all browsers. | |
49 | +*/ | |
50 | + | |
51 | +body { | |
52 | + margin: 0; | |
53 | +} | |
54 | + | |
55 | +/** | |
56 | +Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) | |
57 | +*/ | |
58 | + | |
59 | +body { | |
60 | + font-family: system-ui, -apple-system, | |
61 | + /* Firefox supports this but not yet `system-ui` */ 'Segoe UI', Roboto, Helvetica, Arial, | |
62 | + sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'; | |
63 | +} | |
64 | + | |
65 | +/* | |
66 | +Grouping content | |
67 | +================ | |
68 | +*/ | |
69 | + | |
70 | +/** | |
71 | +1. Add the correct height in Firefox. | |
72 | +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) | |
73 | +*/ | |
74 | + | |
75 | +hr { | |
76 | + height: 0; | |
77 | + /* 1 */ | |
78 | + color: inherit; | |
79 | + /* 2 */ | |
80 | +} | |
81 | + | |
82 | +/* | |
83 | +Text-level semantics | |
84 | +==================== | |
85 | +*/ | |
86 | + | |
87 | +/** | |
88 | +Add the correct text decoration in Chrome, Edge, and Safari. | |
89 | +*/ | |
90 | + | |
91 | +abbr[title] { | |
92 | + -webkit-text-decoration: underline dotted; | |
93 | + text-decoration: underline dotted; | |
94 | +} | |
95 | + | |
96 | +/** | |
97 | +Add the correct font weight in Edge and Safari. | |
98 | +*/ | |
99 | + | |
100 | +b, | |
101 | +strong { | |
102 | + font-weight: bolder; | |
103 | +} | |
104 | + | |
105 | +/** | |
106 | +1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) | |
107 | +2. Correct the odd 'em' font sizing in all browsers. | |
108 | +*/ | |
109 | + | |
110 | +code, | |
111 | +kbd, | |
112 | +samp, | |
113 | +pre { | |
114 | + font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace; | |
115 | + /* 1 */ | |
116 | + font-size: 1em; | |
117 | + /* 2 */ | |
118 | +} | |
119 | + | |
120 | +/** | |
121 | +Add the correct font size in all browsers. | |
122 | +*/ | |
123 | + | |
124 | +small { | |
125 | + font-size: 80%; | |
126 | +} | |
127 | + | |
128 | +/** | |
129 | +Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. | |
130 | +*/ | |
131 | + | |
132 | +sub, | |
133 | +sup { | |
134 | + font-size: 75%; | |
135 | + line-height: 0; | |
136 | + position: relative; | |
137 | + vertical-align: baseline; | |
138 | +} | |
139 | + | |
140 | +sub { | |
141 | + bottom: -0.25em; | |
142 | +} | |
143 | + | |
144 | +sup { | |
145 | + top: -0.5em; | |
146 | +} | |
147 | + | |
148 | +/* | |
149 | +Tabular data | |
150 | +============ | |
151 | +*/ | |
152 | + | |
153 | +/** | |
154 | +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) | |
155 | +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) | |
156 | +*/ | |
157 | + | |
158 | +table { | |
159 | + text-indent: 0; | |
160 | + /* 1 */ | |
161 | + border-color: inherit; | |
162 | + /* 2 */ | |
163 | +} | |
164 | + | |
165 | +/* | |
166 | +Forms | |
167 | +===== | |
168 | +*/ | |
169 | + | |
170 | +/** | |
171 | +1. Change the font styles in all browsers. | |
172 | +2. Remove the margin in Firefox and Safari. | |
173 | +*/ | |
174 | + | |
175 | +button, | |
176 | +input, | |
177 | +optgroup, | |
178 | +select, | |
179 | +textarea { | |
180 | + font-family: inherit; | |
181 | + /* 1 */ | |
182 | + font-size: 100%; | |
183 | + /* 1 */ | |
184 | + line-height: 1.15; | |
185 | + /* 1 */ | |
186 | + margin: 0; | |
187 | + /* 2 */ | |
188 | +} | |
189 | + | |
190 | +/** | |
191 | +Remove the inheritance of text transform in Edge and Firefox. | |
192 | +1. Remove the inheritance of text transform in Firefox. | |
193 | +*/ | |
194 | + | |
195 | +button, | |
196 | +select { | |
197 | + /* 1 */ | |
198 | + text-transform: none; | |
199 | +} | |
200 | + | |
201 | +/** | |
202 | +Correct the inability to style clickable types in iOS and Safari. | |
203 | +*/ | |
204 | + | |
205 | +button, | |
206 | +[type='button'], | |
207 | +[type='reset'], | |
208 | +[type='submit'] { | |
209 | + -webkit-appearance: button; | |
210 | +} | |
211 | + | |
212 | +/** | |
213 | +Remove the inner border and padding in Firefox. | |
214 | +*/ | |
215 | + | |
216 | +::-moz-focus-inner { | |
217 | + border-style: none; | |
218 | + padding: 0; | |
219 | +} | |
220 | + | |
221 | +/** | |
222 | +Restore the focus styles unset by the previous rule. | |
223 | +*/ | |
224 | + | |
225 | +:-moz-focusring { | |
226 | + outline: 1px dotted ButtonText; | |
227 | +} | |
228 | + | |
229 | +/** | |
230 | +Remove the additional ':invalid' styles in Firefox. | |
231 | +See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 | |
232 | +*/ | |
233 | + | |
234 | +:-moz-ui-invalid { | |
235 | + box-shadow: none; | |
236 | +} | |
237 | + | |
238 | +/** | |
239 | +Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. | |
240 | +*/ | |
241 | + | |
242 | +legend { | |
243 | + padding: 0; | |
244 | +} | |
245 | + | |
246 | +/** | |
247 | +Add the correct vertical alignment in Chrome and Firefox. | |
248 | +*/ | |
249 | + | |
250 | +progress { | |
251 | + vertical-align: baseline; | |
252 | +} | |
253 | + | |
254 | +/** | |
255 | +Correct the cursor style of increment and decrement buttons in Safari. | |
256 | +*/ | |
257 | + | |
258 | +::-webkit-inner-spin-button, | |
259 | +::-webkit-outer-spin-button { | |
260 | + height: auto; | |
261 | +} | |
262 | + | |
263 | +/** | |
264 | +1. Correct the odd appearance in Chrome and Safari. | |
265 | +2. Correct the outline style in Safari. | |
266 | +*/ | |
267 | + | |
268 | +[type='search'] { | |
269 | + -webkit-appearance: textfield; | |
270 | + /* 1 */ | |
271 | + outline-offset: -2px; | |
272 | + /* 2 */ | |
273 | +} | |
274 | + | |
275 | +/** | |
276 | +Remove the inner padding in Chrome and Safari on macOS. | |
277 | +*/ | |
278 | + | |
279 | +::-webkit-search-decoration { | |
280 | + -webkit-appearance: none; | |
281 | +} | |
282 | + | |
283 | +/** | |
284 | +1. Correct the inability to style clickable types in iOS and Safari. | |
285 | +2. Change font properties to 'inherit' in Safari. | |
286 | +*/ | |
287 | + | |
288 | +::-webkit-file-upload-button { | |
289 | + -webkit-appearance: button; | |
290 | + /* 1 */ | |
291 | + font: inherit; | |
292 | + /* 2 */ | |
293 | +} | |
294 | + | |
295 | +/* | |
296 | +Interactive | |
297 | +=========== | |
298 | +*/ | |
299 | + | |
300 | +/* | |
301 | +Add the correct display in Chrome and Safari. | |
302 | +*/ | |
303 | + | |
304 | +summary { | |
305 | + display: list-item; | |
306 | +} | |
307 | + | |
308 | +/** | |
309 | + * Manually forked from SUIT CSS Base: https://github.com/suitcss/base | |
310 | + * A thin layer on top of normalize.css that provides a starting point more | |
311 | + * suitable for web applications. | |
312 | + */ | |
313 | + | |
314 | +/** | |
315 | + * Removes the default spacing and border for appropriate elements. | |
316 | + */ | |
317 | + | |
318 | +blockquote, | |
319 | +dl, | |
320 | +dd, | |
321 | +h1, | |
322 | +h2, | |
323 | +h3, | |
324 | +h4, | |
325 | +h5, | |
326 | +h6, | |
327 | +hr, | |
328 | +figure, | |
329 | +p, | |
330 | +pre { | |
331 | + margin: 0; | |
332 | +} | |
333 | + | |
334 | +button { | |
335 | + background-color: transparent; | |
336 | + background-image: none; | |
337 | +} | |
338 | + | |
339 | +/** | |
340 | + * Work around a Firefox/IE bug where the transparent `button` background | |
341 | + * results in a loss of the default `button` focus styles. | |
342 | + */ | |
343 | + | |
344 | +button:focus { | |
345 | + outline: 1px dotted; | |
346 | + outline: 5px auto -webkit-focus-ring-color; | |
347 | +} | |
348 | + | |
349 | +fieldset { | |
350 | + margin: 0; | |
351 | + padding: 0; | |
352 | +} | |
353 | + | |
354 | +ol, | |
355 | +ul { | |
356 | + list-style: none; | |
357 | + margin: 0; | |
358 | + padding: 0; | |
359 | +} | |
360 | + | |
361 | +/** | |
362 | + * Tailwind custom reset styles | |
363 | + */ | |
364 | + | |
365 | +/** | |
366 | + * 1. Use the user's configured `sans` font-family (with Tailwind's default | |
367 | + * sans-serif font stack as a fallback) as a sane default. | |
368 | + * 2. Use Tailwind's default "normal" line-height so the user isn't forced | |
369 | + * to override it to ensure consistency even when using the default theme. | |
370 | + */ | |
371 | + | |
372 | +html { | |
373 | + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, | |
374 | + 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', | |
375 | + 'Segoe UI Symbol', 'Noto Color Emoji'; | |
376 | + /* 1 */ | |
377 | + line-height: 1.5; | |
378 | + /* 2 */ | |
379 | +} | |
380 | + | |
381 | +/** | |
382 | + * Inherit font-family and line-height from `html` so users can set them as | |
383 | + * a class directly on the `html` element. | |
384 | + */ | |
385 | + | |
386 | +body { | |
387 | + font-family: inherit; | |
388 | + line-height: inherit; | |
389 | +} | |
390 | + | |
391 | +/** | |
392 | + * 1. Prevent padding and border from affecting element width. | |
393 | + * | |
394 | + * We used to set this in the html element and inherit from | |
395 | + * the parent element for everything else. This caused issues | |
396 | + * in shadow-dom-enhanced elements like <details> where the content | |
397 | + * is wrapped by a div with box-sizing set to `content-box`. | |
398 | + * | |
399 | + * https://github.com/mozdevs/cssremedy/issues/4 | |
400 | + * | |
401 | + * | |
402 | + * 2. Allow adding a border to an element by just adding a border-width. | |
403 | + * | |
404 | + * By default, the way the browser specifies that an element should have no | |
405 | + * border is by setting it's border-style to `none` in the user-agent | |
406 | + * stylesheet. | |
407 | + * | |
408 | + * In order to easily add borders to elements by just setting the `border-width` | |
409 | + * property, we change the default border-style for all elements to `solid`, and | |
410 | + * use border-width to hide them instead. This way our `border` utilities only | |
411 | + * need to set the `border-width` property instead of the entire `border` | |
412 | + * shorthand, making our border utilities much more straightforward to compose. | |
413 | + * | |
414 | + * https://github.com/tailwindcss/tailwindcss/pull/116 | |
415 | + */ | |
416 | + | |
417 | +*, | |
418 | +::before, | |
419 | +::after { | |
420 | + box-sizing: border-box; | |
421 | + /* 1 */ | |
422 | + border-width: 0; | |
423 | + /* 2 */ | |
424 | + border-style: solid; | |
425 | + /* 2 */ | |
426 | + border-color: currentColor; | |
427 | + /* 2 */ | |
428 | +} | |
429 | + | |
430 | +/* | |
431 | + * Ensure horizontal rules are visible by default | |
432 | + */ | |
433 | + | |
434 | +hr { | |
435 | + border-top-width: 1px; | |
436 | +} | |
437 | + | |
438 | +/** | |
439 | + * Undo the `border-style: none` reset that Normalize applies to images so that | |
440 | + * our `border-{width}` utilities have the expected effect. | |
441 | + * | |
442 | + * The Normalize reset is unnecessary for us since we default the border-width | |
443 | + * to 0 on all elements. | |
444 | + * | |
445 | + * https://github.com/tailwindcss/tailwindcss/issues/362 | |
446 | + */ | |
447 | + | |
448 | +img { | |
449 | + border-style: solid; | |
450 | +} | |
451 | + | |
452 | +textarea { | |
453 | + resize: vertical; | |
454 | +} | |
455 | + | |
456 | +input::-moz-placeholder, | |
457 | +textarea::-moz-placeholder { | |
458 | + opacity: 1; | |
459 | + color: #a1a1aa; | |
460 | +} | |
461 | + | |
462 | +input:-ms-input-placeholder, | |
463 | +textarea:-ms-input-placeholder { | |
464 | + opacity: 1; | |
465 | + color: #a1a1aa; | |
466 | +} | |
467 | + | |
468 | +input::placeholder, | |
469 | +textarea::placeholder { | |
470 | + opacity: 1; | |
471 | + color: #a1a1aa; | |
472 | +} | |
473 | + | |
474 | +button, | |
475 | +[role='button'] { | |
476 | + cursor: pointer; | |
477 | +} | |
478 | + | |
479 | +table { | |
480 | + border-collapse: collapse; | |
481 | +} | |
482 | + | |
483 | +h1, | |
484 | +h2, | |
485 | +h3, | |
486 | +h4, | |
487 | +h5, | |
488 | +h6 { | |
489 | + font-size: inherit; | |
490 | + font-weight: inherit; | |
491 | +} | |
492 | + | |
493 | +/** | |
494 | + * Reset links to optimize for opt-in styling instead of | |
495 | + * opt-out. | |
496 | + */ | |
497 | + | |
498 | +a { | |
499 | + color: inherit; | |
500 | + text-decoration: inherit; | |
501 | +} | |
502 | + | |
503 | +/** | |
504 | + * Reset form element properties that are easy to forget to | |
505 | + * style explicitly so you don't inadvertently introduce | |
506 | + * styles that deviate from your design system. These styles | |
507 | + * supplement a partial reset that is already applied by | |
508 | + * normalize.css. | |
509 | + */ | |
510 | + | |
511 | +button, | |
512 | +input, | |
513 | +optgroup, | |
514 | +select, | |
515 | +textarea { | |
516 | + padding: 0; | |
517 | + line-height: inherit; | |
518 | + color: inherit; | |
519 | +} | |
520 | + | |
521 | +/** | |
522 | + * Use the configured 'mono' font family for elements that | |
523 | + * are expected to be rendered with a monospace font, falling | |
524 | + * back to the system monospace stack if there is no configured | |
525 | + * 'mono' font family. | |
526 | + */ | |
527 | + | |
528 | +pre, | |
529 | +code, | |
530 | +kbd, | |
531 | +samp { | |
532 | + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', | |
533 | + 'Courier New', monospace; | |
534 | +} | |
535 | + | |
536 | +/** | |
537 | + * 1. Make replaced elements `display: block` by default as that's | |
538 | + * the behavior you want almost all of the time. Inspired by | |
539 | + * CSS Remedy, with `svg` added as well. | |
540 | + * | |
541 | + * https://github.com/mozdevs/cssremedy/issues/14 | |
542 | + * | |
543 | + * 2. Add `vertical-align: middle` to align replaced elements more | |
544 | + * sensibly by default when overriding `display` by adding a | |
545 | + * utility like `inline`. | |
546 | + * | |
547 | + * This can trigger a poorly considered linting error in some | |
548 | + * tools but is included by design. | |
549 | + * | |
550 | + * https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210 | |
551 | + */ | |
552 | + | |
553 | +img, | |
554 | +svg, | |
555 | +video, | |
556 | +canvas, | |
557 | +audio, | |
558 | +iframe, | |
559 | +embed, | |
560 | +object { | |
561 | + display: block; | |
562 | + /* 1 */ | |
563 | + vertical-align: middle; | |
564 | + /* 2 */ | |
565 | +} | |
566 | + | |
567 | +/** | |
568 | + * Constrain images and videos to the parent width and preserve | |
569 | + * their intrinsic aspect ratio. | |
570 | + * | |
571 | + * https://github.com/mozdevs/cssremedy/issues/14 | |
572 | + */ | |
573 | + | |
574 | +img, | |
575 | +video { | |
576 | + max-width: 100%; | |
577 | + height: auto; | |
578 | +} | |
579 | + | |
580 | +*, | |
581 | +::before, | |
582 | +::after { | |
583 | + --tw-translate-x: 0; | |
584 | + --tw-translate-y: 0; | |
585 | + --tw-rotate: 0; | |
586 | + --tw-skew-x: 0; | |
587 | + --tw-skew-y: 0; | |
588 | + --tw-scale-x: 1; | |
589 | + --tw-scale-y: 1; | |
590 | + --tw-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) | |
591 | + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) | |
592 | + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); | |
593 | + --tw-border-opacity: 1; | |
594 | + border-color: rgba(228, 228, 231, var(--tw-border-opacity)); | |
595 | + --tw-shadow: 0 0 #0000; | |
596 | + --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/); | |
597 | + --tw-ring-offset-width: 0px; | |
598 | + --tw-ring-offset-color: #fff; | |
599 | + --tw-ring-color: rgba(59, 130, 246, 0.5); | |
600 | + --tw-ring-offset-shadow: 0 0 #0000; | |
601 | + --tw-ring-shadow: 0 0 #0000; | |
602 | + --tw-blur: var(--tw-empty, /*!*/ /*!*/); | |
603 | + --tw-brightness: var(--tw-empty, /*!*/ /*!*/); | |
604 | + --tw-contrast: var(--tw-empty, /*!*/ /*!*/); | |
605 | + --tw-grayscale: var(--tw-empty, /*!*/ /*!*/); | |
606 | + --tw-hue-rotate: var(--tw-empty, /*!*/ /*!*/); | |
607 | + --tw-invert: var(--tw-empty, /*!*/ /*!*/); | |
608 | + --tw-saturate: var(--tw-empty, /*!*/ /*!*/); | |
609 | + --tw-sepia: var(--tw-empty, /*!*/ /*!*/); | |
610 | + --tw-drop-shadow: var(--tw-empty, /*!*/ /*!*/); | |
611 | + --tw-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) | |
612 | + var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); | |
613 | + --tw-backdrop-blur: var(--tw-empty, /*!*/ /*!*/); | |
614 | + --tw-backdrop-brightness: var(--tw-empty, /*!*/ /*!*/); | |
615 | + --tw-backdrop-contrast: var(--tw-empty, /*!*/ /*!*/); | |
616 | + --tw-backdrop-grayscale: var(--tw-empty, /*!*/ /*!*/); | |
617 | + --tw-backdrop-hue-rotate: var(--tw-empty, /*!*/ /*!*/); | |
618 | + --tw-backdrop-invert: var(--tw-empty, /*!*/ /*!*/); | |
619 | + --tw-backdrop-opacity: var(--tw-empty, /*!*/ /*!*/); | |
620 | + --tw-backdrop-saturate: var(--tw-empty, /*!*/ /*!*/); | |
621 | + --tw-backdrop-sepia: var(--tw-empty, /*!*/ /*!*/); | |
622 | + --tw-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) | |
623 | + var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) | |
624 | + var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) | |
625 | + var(--tw-backdrop-sepia); | |
626 | +} | |
627 | + | |
628 | +* > .enter-x:nth-child(1) { | |
629 | + transform: translateX(50px); | |
630 | +} | |
631 | + | |
632 | +* > .-enter-x:nth-child(1) { | |
633 | + transform: translateX(-50px); | |
634 | +} | |
635 | + | |
636 | +* > .enter-x:nth-child(1), | |
637 | +* > .-enter-x:nth-child(1) { | |
638 | + z-index: 9; | |
639 | + opacity: 0; | |
640 | + -webkit-animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
641 | + animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
642 | + -webkit-animation-fill-mode: forwards; | |
643 | + animation-fill-mode: forwards; | |
644 | + -webkit-animation-delay: 0.1s; | |
645 | + animation-delay: 0.1s; | |
646 | +} | |
647 | + | |
648 | +* > .enter-y:nth-child(1) { | |
649 | + transform: translateY(50px); | |
650 | +} | |
651 | + | |
652 | +* > .enter-y:nth-child(1), | |
653 | +* > .-enter-y:nth-child(1) { | |
654 | + z-index: 9; | |
655 | + opacity: 0; | |
656 | + -webkit-animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
657 | + animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
658 | + -webkit-animation-fill-mode: forwards; | |
659 | + animation-fill-mode: forwards; | |
660 | + -webkit-animation-delay: 0.1s; | |
661 | + animation-delay: 0.1s; | |
662 | +} | |
663 | + | |
664 | +* > .enter-x:nth-child(2) { | |
665 | + transform: translateX(50px); | |
666 | +} | |
667 | + | |
668 | +* > .-enter-x:nth-child(2) { | |
669 | + transform: translateX(-50px); | |
670 | +} | |
671 | + | |
672 | +* > .enter-x:nth-child(2), | |
673 | +* > .-enter-x:nth-child(2) { | |
674 | + z-index: 8; | |
675 | + opacity: 0; | |
676 | + -webkit-animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
677 | + animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
678 | + -webkit-animation-fill-mode: forwards; | |
679 | + animation-fill-mode: forwards; | |
680 | + -webkit-animation-delay: 0.2s; | |
681 | + animation-delay: 0.2s; | |
682 | +} | |
683 | + | |
684 | +* > .enter-y:nth-child(2) { | |
685 | + transform: translateY(50px); | |
686 | +} | |
687 | + | |
688 | +* > .enter-y:nth-child(2), | |
689 | +* > .-enter-y:nth-child(2) { | |
690 | + z-index: 8; | |
691 | + opacity: 0; | |
692 | + -webkit-animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
693 | + animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
694 | + -webkit-animation-fill-mode: forwards; | |
695 | + animation-fill-mode: forwards; | |
696 | + -webkit-animation-delay: 0.2s; | |
697 | + animation-delay: 0.2s; | |
698 | +} | |
699 | + | |
700 | +* > .enter-x:nth-child(3) { | |
701 | + transform: translateX(50px); | |
702 | +} | |
703 | + | |
704 | +* > .-enter-x:nth-child(3) { | |
705 | + transform: translateX(-50px); | |
706 | +} | |
707 | + | |
708 | +* > .enter-x:nth-child(3), | |
709 | +* > .-enter-x:nth-child(3) { | |
710 | + z-index: 7; | |
711 | + opacity: 0; | |
712 | + -webkit-animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
713 | + animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
714 | + -webkit-animation-fill-mode: forwards; | |
715 | + animation-fill-mode: forwards; | |
716 | + -webkit-animation-delay: 0.3s; | |
717 | + animation-delay: 0.3s; | |
718 | +} | |
719 | + | |
720 | +* > .enter-y:nth-child(3) { | |
721 | + transform: translateY(50px); | |
722 | +} | |
723 | + | |
724 | +* > .enter-y:nth-child(3), | |
725 | +* > .-enter-y:nth-child(3) { | |
726 | + z-index: 7; | |
727 | + opacity: 0; | |
728 | + -webkit-animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
729 | + animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
730 | + -webkit-animation-fill-mode: forwards; | |
731 | + animation-fill-mode: forwards; | |
732 | + -webkit-animation-delay: 0.3s; | |
733 | + animation-delay: 0.3s; | |
734 | +} | |
735 | + | |
736 | +* > .enter-x:nth-child(4) { | |
737 | + transform: translateX(50px); | |
738 | +} | |
739 | + | |
740 | +* > .-enter-x:nth-child(4) { | |
741 | + transform: translateX(-50px); | |
742 | +} | |
743 | + | |
744 | +* > .enter-x:nth-child(4), | |
745 | +* > .-enter-x:nth-child(4) { | |
746 | + z-index: 6; | |
747 | + opacity: 0; | |
748 | + -webkit-animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
749 | + animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
750 | + -webkit-animation-fill-mode: forwards; | |
751 | + animation-fill-mode: forwards; | |
752 | + -webkit-animation-delay: 0.4s; | |
753 | + animation-delay: 0.4s; | |
754 | +} | |
755 | + | |
756 | +* > .enter-y:nth-child(4) { | |
757 | + transform: translateY(50px); | |
758 | +} | |
759 | + | |
760 | +* > .enter-y:nth-child(4), | |
761 | +* > .-enter-y:nth-child(4) { | |
762 | + z-index: 6; | |
763 | + opacity: 0; | |
764 | + -webkit-animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
765 | + animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
766 | + -webkit-animation-fill-mode: forwards; | |
767 | + animation-fill-mode: forwards; | |
768 | + -webkit-animation-delay: 0.4s; | |
769 | + animation-delay: 0.4s; | |
770 | +} | |
771 | + | |
772 | +* > .enter-x:nth-child(5) { | |
773 | + transform: translateX(50px); | |
774 | +} | |
775 | + | |
776 | +* > .-enter-x:nth-child(5) { | |
777 | + transform: translateX(-50px); | |
778 | +} | |
779 | + | |
780 | +* > .enter-x:nth-child(5), | |
781 | +* > .-enter-x:nth-child(5) { | |
782 | + z-index: 5; | |
783 | + opacity: 0; | |
784 | + -webkit-animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
785 | + animation: enter-x-animation 0.4s ease-in-out 0.3s; | |
786 | + -webkit-animation-fill-mode: forwards; | |
787 | + animation-fill-mode: forwards; | |
788 | + -webkit-animation-delay: 0.5s; | |
789 | + animation-delay: 0.5s; | |
790 | +} | |
791 | + | |
792 | +* > .enter-y:nth-child(5) { | |
793 | + transform: translateY(50px); | |
794 | +} | |
795 | + | |
796 | +* > .enter-y:nth-child(5), | |
797 | +* > .-enter-y:nth-child(5) { | |
798 | + z-index: 5; | |
799 | + opacity: 0; | |
800 | + -webkit-animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
801 | + animation: enter-y-animation 0.4s ease-in-out 0.3s; | |
802 | + -webkit-animation-fill-mode: forwards; | |
803 | + animation-fill-mode: forwards; | |
804 | + -webkit-animation-delay: 0.5s; | |
805 | + animation-delay: 0.5s; | |
806 | +} | |
807 | + | |
808 | +@-webkit-keyframes enter-x-animation { | |
809 | + to { | |
810 | + opacity: 1; | |
811 | + transform: translateX(0); | |
812 | + } | |
813 | +} | |
814 | + | |
815 | +@keyframes enter-x-animation { | |
816 | + to { | |
817 | + opacity: 1; | |
818 | + transform: translateX(0); | |
819 | + } | |
820 | +} | |
821 | + | |
822 | +@-webkit-keyframes enter-y-animation { | |
823 | + to { | |
824 | + opacity: 1; | |
825 | + transform: translateY(0); | |
826 | + } | |
827 | +} | |
828 | + | |
829 | +@keyframes enter-y-animation { | |
830 | + to { | |
831 | + opacity: 1; | |
832 | + transform: translateY(0); | |
833 | + } | |
834 | +} | |
835 | + | |
836 | +.container { | |
837 | + width: 100%; | |
838 | +} | |
839 | + | |
840 | +@media (min-width: 576px) { | |
841 | + .container { | |
842 | + max-width: 576px; | |
843 | + } | |
844 | +} | |
845 | + | |
846 | +@media (min-width: 768px) { | |
847 | + .container { | |
848 | + max-width: 768px; | |
849 | + } | |
850 | +} | |
851 | + | |
852 | +@media (min-width: 992px) { | |
853 | + .container { | |
854 | + max-width: 992px; | |
855 | + } | |
856 | +} | |
857 | + | |
858 | +@media (min-width: 1200px) { | |
859 | + .container { | |
860 | + max-width: 1200px; | |
861 | + } | |
862 | +} | |
863 | + | |
864 | +@media (min-width: 1600px) { | |
865 | + .container { | |
866 | + max-width: 1600px; | |
867 | + } | |
868 | +} | |
869 | + | |
870 | +.visible { | |
871 | + visibility: visible; | |
872 | +} | |
873 | + | |
874 | +.invisible { | |
875 | + visibility: hidden; | |
876 | +} | |
877 | + | |
878 | +.static { | |
879 | + position: static; | |
880 | +} | |
881 | + | |
882 | +.fixed { | |
883 | + position: fixed; | |
884 | +} | |
885 | + | |
886 | +.absolute { | |
887 | + position: absolute; | |
888 | +} | |
889 | + | |
890 | +.relative { | |
891 | + position: relative; | |
892 | +} | |
893 | + | |
894 | +.inset-0 { | |
895 | + top: 0px; | |
896 | + right: 0px; | |
897 | + bottom: 0px; | |
898 | + left: 0px; | |
899 | +} | |
900 | + | |
901 | +.top-0 { | |
902 | + top: 0px; | |
903 | +} | |
904 | + | |
905 | +.left-1\/2 { | |
906 | + left: 50%; | |
907 | +} | |
908 | + | |
909 | +.left-5 { | |
910 | + left: 1.25rem; | |
911 | +} | |
912 | + | |
913 | +.top-5 { | |
914 | + top: 1.25rem; | |
915 | +} | |
916 | + | |
917 | +.bottom-5 { | |
918 | + bottom: 1.25rem; | |
919 | +} | |
920 | + | |
921 | +.top-4 { | |
922 | + top: 1rem; | |
923 | +} | |
924 | + | |
925 | +.right-4 { | |
926 | + right: 1rem; | |
927 | +} | |
928 | + | |
929 | +.top-3 { | |
930 | + top: 0.75rem; | |
931 | +} | |
932 | + | |
933 | +.right-7 { | |
934 | + right: 1.75rem; | |
935 | +} | |
936 | + | |
937 | +.m-3 { | |
938 | + margin: 0.75rem; | |
939 | +} | |
940 | + | |
941 | +.m-10 { | |
942 | + margin: 2.5rem; | |
943 | +} | |
944 | + | |
945 | +.m-4 { | |
946 | + margin: 1rem; | |
947 | +} | |
948 | + | |
949 | +.m-5 { | |
950 | + margin: 1.25rem; | |
951 | +} | |
952 | + | |
953 | +.mx-auto { | |
954 | + margin-left: auto; | |
955 | + margin-right: auto; | |
956 | +} | |
957 | + | |
958 | +.\!my-4 { | |
959 | + margin-top: 1rem !important; | |
960 | + margin-bottom: 1rem !important; | |
961 | +} | |
962 | + | |
963 | +.mx-4 { | |
964 | + margin-left: 1rem; | |
965 | + margin-right: 1rem; | |
966 | +} | |
967 | + | |
968 | +.my-4 { | |
969 | + margin-top: 1rem; | |
970 | + margin-bottom: 1rem; | |
971 | +} | |
972 | + | |
973 | +.my-auto { | |
974 | + margin-top: auto; | |
975 | + margin-bottom: auto; | |
976 | +} | |
977 | + | |
978 | +.\!my-2 { | |
979 | + margin-top: 0.5rem !important; | |
980 | + margin-bottom: 0.5rem !important; | |
981 | +} | |
982 | + | |
983 | +.mx-1 { | |
984 | + margin-left: 0.25rem; | |
985 | + margin-right: 0.25rem; | |
986 | +} | |
987 | + | |
988 | +.my-3 { | |
989 | + margin-top: 0.75rem; | |
990 | + margin-bottom: 0.75rem; | |
991 | +} | |
992 | + | |
993 | +.\!mx-auto { | |
994 | + margin-left: auto !important; | |
995 | + margin-right: auto !important; | |
996 | +} | |
997 | + | |
998 | +.mx-12 { | |
999 | + margin-left: 3rem; | |
1000 | + margin-right: 3rem; | |
1001 | +} | |
1002 | + | |
1003 | +.my-2 { | |
1004 | + margin-top: 0.5rem; | |
1005 | + margin-bottom: 0.5rem; | |
1006 | +} | |
1007 | + | |
1008 | +.my-5 { | |
1009 | + margin-top: 1.25rem; | |
1010 | + margin-bottom: 1.25rem; | |
1011 | +} | |
1012 | + | |
1013 | +.mx-2 { | |
1014 | + margin-left: 0.5rem; | |
1015 | + margin-right: 0.5rem; | |
1016 | +} | |
1017 | + | |
1018 | +.ml-1 { | |
1019 | + margin-left: 0.25rem; | |
1020 | +} | |
1021 | + | |
1022 | +.ml-2 { | |
1023 | + margin-left: 0.5rem; | |
1024 | +} | |
1025 | + | |
1026 | +.mr-2 { | |
1027 | + margin-right: 0.5rem; | |
1028 | +} | |
1029 | + | |
1030 | +.mr-1 { | |
1031 | + margin-right: 0.25rem; | |
1032 | +} | |
1033 | + | |
1034 | +.mt-1 { | |
1035 | + margin-top: 0.25rem; | |
1036 | +} | |
1037 | + | |
1038 | +.mt-2 { | |
1039 | + margin-top: 0.5rem; | |
1040 | +} | |
1041 | + | |
1042 | +.\!mt-4 { | |
1043 | + margin-top: 1rem !important; | |
1044 | +} | |
1045 | + | |
1046 | +.mb-1 { | |
1047 | + margin-bottom: 0.25rem; | |
1048 | +} | |
1049 | + | |
1050 | +.\!mr-4 { | |
1051 | + margin-right: 1rem !important; | |
1052 | +} | |
1053 | + | |
1054 | +.mt-4 { | |
1055 | + margin-top: 1rem; | |
1056 | +} | |
1057 | + | |
1058 | +.mb-4 { | |
1059 | + margin-bottom: 1rem; | |
1060 | +} | |
1061 | + | |
1062 | +.mt-5 { | |
1063 | + margin-top: 1.25rem; | |
1064 | +} | |
1065 | + | |
1066 | +.mt-10 { | |
1067 | + margin-top: 2.5rem; | |
1068 | +} | |
1069 | + | |
1070 | +.ml-4 { | |
1071 | + margin-left: 1rem; | |
1072 | +} | |
1073 | + | |
1074 | +.mr-5 { | |
1075 | + margin-right: 1.25rem; | |
1076 | +} | |
1077 | + | |
1078 | +.mr-4 { | |
1079 | + margin-right: 1rem; | |
1080 | +} | |
1081 | + | |
1082 | +.-mt-16 { | |
1083 | + margin-top: -4rem; | |
1084 | +} | |
1085 | + | |
1086 | +.mb-6 { | |
1087 | + margin-bottom: 1.5rem; | |
1088 | +} | |
1089 | + | |
1090 | +.mr-10 { | |
1091 | + margin-right: 2.5rem; | |
1092 | +} | |
1093 | + | |
1094 | +.mb-2 { | |
1095 | + margin-bottom: 0.5rem; | |
1096 | +} | |
1097 | + | |
1098 | +.mr-0 { | |
1099 | + margin-right: 0px; | |
1100 | +} | |
1101 | + | |
1102 | +.\!ml-4 { | |
1103 | + margin-left: 1rem !important; | |
1104 | +} | |
1105 | + | |
1106 | +.ml-5 { | |
1107 | + margin-left: 1.25rem; | |
1108 | +} | |
1109 | + | |
1110 | +.block { | |
1111 | + display: block; | |
1112 | +} | |
1113 | + | |
1114 | +.\!block { | |
1115 | + display: block !important; | |
1116 | +} | |
1117 | + | |
1118 | +.inline-block { | |
1119 | + display: inline-block; | |
1120 | +} | |
1121 | + | |
1122 | +.inline { | |
1123 | + display: inline; | |
1124 | +} | |
1125 | + | |
1126 | +.flex { | |
1127 | + display: flex; | |
1128 | +} | |
1129 | + | |
1130 | +.inline-flex { | |
1131 | + display: inline-flex; | |
1132 | +} | |
1133 | + | |
1134 | +.table { | |
1135 | + display: table; | |
1136 | +} | |
1137 | + | |
1138 | +.\!table { | |
1139 | + display: table !important; | |
1140 | +} | |
1141 | + | |
1142 | +.grid { | |
1143 | + display: grid; | |
1144 | +} | |
1145 | + | |
1146 | +.contents { | |
1147 | + display: contents; | |
1148 | +} | |
1149 | + | |
1150 | +.list-item { | |
1151 | + display: list-item; | |
1152 | +} | |
1153 | + | |
1154 | +.hidden { | |
1155 | + display: none; | |
1156 | +} | |
1157 | + | |
1158 | +.h-full { | |
1159 | + height: 100%; | |
1160 | +} | |
1161 | + | |
1162 | +.h-20 { | |
1163 | + height: 5rem; | |
1164 | +} | |
1165 | + | |
1166 | +.h-screen { | |
1167 | + height: 100vh; | |
1168 | +} | |
1169 | + | |
1170 | +.h-16 { | |
1171 | + height: 4rem; | |
1172 | +} | |
1173 | + | |
1174 | +.h-2\/5 { | |
1175 | + height: 40%; | |
1176 | +} | |
1177 | + | |
1178 | +.\!h-full { | |
1179 | + height: 100% !important; | |
1180 | +} | |
1181 | + | |
1182 | +.h-10 { | |
1183 | + height: 2.5rem; | |
1184 | +} | |
1185 | + | |
1186 | +.h-32 { | |
1187 | + height: 8rem; | |
1188 | +} | |
1189 | + | |
1190 | +.h-64 { | |
1191 | + height: 16rem; | |
1192 | +} | |
1193 | + | |
1194 | +.max-h-80 { | |
1195 | + max-height: 20rem; | |
1196 | +} | |
1197 | + | |
1198 | +.min-h-full { | |
1199 | + min-height: 100%; | |
1200 | +} | |
1201 | + | |
1202 | +.w-full { | |
1203 | + width: 100%; | |
1204 | +} | |
1205 | + | |
1206 | +.w-2\/3 { | |
1207 | + width: 66.666667%; | |
1208 | +} | |
1209 | + | |
1210 | +.w-1\/3 { | |
1211 | + width: 33.333333%; | |
1212 | +} | |
1213 | + | |
1214 | +.w-screen { | |
1215 | + width: 100vw; | |
1216 | +} | |
1217 | + | |
1218 | +.w-2\/5 { | |
1219 | + width: 40%; | |
1220 | +} | |
1221 | + | |
1222 | +.w-1\/2 { | |
1223 | + width: 50%; | |
1224 | +} | |
1225 | + | |
1226 | +.\!w-full { | |
1227 | + width: 100% !important; | |
1228 | +} | |
1229 | + | |
1230 | +.w-12 { | |
1231 | + width: 3rem; | |
1232 | +} | |
1233 | + | |
1234 | +.w-1\/4 { | |
1235 | + width: 25%; | |
1236 | +} | |
1237 | + | |
1238 | +.w-3\/4 { | |
1239 | + width: 75%; | |
1240 | +} | |
1241 | + | |
1242 | +.flex-1 { | |
1243 | + flex: 1 1 0%; | |
1244 | +} | |
1245 | + | |
1246 | +.flex-shrink { | |
1247 | + flex-shrink: 1; | |
1248 | +} | |
1249 | + | |
1250 | +.flex-grow-0 { | |
1251 | + flex-grow: 0; | |
1252 | +} | |
1253 | + | |
1254 | +.border-collapse { | |
1255 | + border-collapse: collapse; | |
1256 | +} | |
1257 | + | |
1258 | +.translate-x-1\/2 { | |
1259 | + --tw-translate-x: 50%; | |
1260 | + transform: var(--tw-transform); | |
1261 | +} | |
1262 | + | |
1263 | +.cursor-pointer { | |
1264 | + cursor: pointer; | |
1265 | +} | |
1266 | + | |
1267 | +.cursor-not-allowed { | |
1268 | + cursor: not-allowed; | |
1269 | +} | |
1270 | + | |
1271 | +.resize { | |
1272 | + resize: both; | |
1273 | +} | |
1274 | + | |
1275 | +.flex-col { | |
1276 | + flex-direction: column; | |
1277 | +} | |
1278 | + | |
1279 | +.flex-wrap { | |
1280 | + flex-wrap: wrap; | |
1281 | +} | |
1282 | + | |
1283 | +.items-center { | |
1284 | + align-items: center; | |
1285 | +} | |
1286 | + | |
1287 | +.justify-end { | |
1288 | + justify-content: flex-end; | |
1289 | +} | |
1290 | + | |
1291 | +.justify-center { | |
1292 | + justify-content: center; | |
1293 | +} | |
1294 | + | |
1295 | +.justify-between { | |
1296 | + justify-content: space-between; | |
1297 | +} | |
1298 | + | |
1299 | +.justify-around { | |
1300 | + justify-content: space-around; | |
1301 | +} | |
1302 | + | |
1303 | +.justify-evenly { | |
1304 | + justify-content: space-evenly; | |
1305 | +} | |
1306 | + | |
1307 | +.overflow-auto { | |
1308 | + overflow: auto; | |
1309 | +} | |
1310 | + | |
1311 | +.overflow-hidden { | |
1312 | + overflow: hidden; | |
1313 | +} | |
1314 | + | |
1315 | +.truncate { | |
1316 | + overflow: hidden; | |
1317 | + text-overflow: ellipsis; | |
1318 | + white-space: nowrap; | |
1319 | +} | |
1320 | + | |
1321 | +.rounded-md { | |
1322 | + border-radius: 0.375rem; | |
1323 | +} | |
1324 | + | |
1325 | +.border { | |
1326 | + border-width: 1px; | |
1327 | +} | |
1328 | + | |
1329 | +.\!border { | |
1330 | + border-width: 1px !important; | |
1331 | +} | |
1332 | + | |
1333 | +.border-t-0 { | |
1334 | + border-top-width: 0px; | |
1335 | +} | |
1336 | + | |
1337 | +.border-solid { | |
1338 | + border-style: solid; | |
1339 | +} | |
1340 | + | |
1341 | +.border-primary { | |
1342 | + --tw-border-opacity: 1; | |
1343 | + border-color: rgba(9, 96, 189, var(--tw-border-opacity)); | |
1344 | +} | |
1345 | + | |
1346 | +.bg-black { | |
1347 | + --tw-bg-opacity: 1; | |
1348 | + background-color: rgba(0, 0, 0, var(--tw-bg-opacity)); | |
1349 | +} | |
1350 | + | |
1351 | +.bg-gray-700 { | |
1352 | + --tw-bg-opacity: 1; | |
1353 | + background-color: rgba(63, 63, 70, var(--tw-bg-opacity)); | |
1354 | +} | |
1355 | + | |
1356 | +.bg-white { | |
1357 | + --tw-bg-opacity: 1; | |
1358 | + background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); | |
1359 | +} | |
1360 | + | |
1361 | +.p-2 { | |
1362 | + padding: 0.5rem; | |
1363 | +} | |
1364 | + | |
1365 | +.p-5 { | |
1366 | + padding: 1.25rem; | |
1367 | +} | |
1368 | + | |
1369 | +.p-4 { | |
1370 | + padding: 1rem; | |
1371 | +} | |
1372 | + | |
1373 | +.p-1 { | |
1374 | + padding: 0.25rem; | |
1375 | +} | |
1376 | + | |
1377 | +.p-3 { | |
1378 | + padding: 0.75rem; | |
1379 | +} | |
1380 | + | |
1381 | +.p-10 { | |
1382 | + padding: 2.5rem; | |
1383 | +} | |
1384 | + | |
1385 | +.px-4 { | |
1386 | + padding-left: 1rem; | |
1387 | + padding-right: 1rem; | |
1388 | +} | |
1389 | + | |
1390 | +.px-2 { | |
1391 | + padding-left: 0.5rem; | |
1392 | + padding-right: 0.5rem; | |
1393 | +} | |
1394 | + | |
1395 | +.py-1 { | |
1396 | + padding-top: 0.25rem; | |
1397 | + padding-bottom: 0.25rem; | |
1398 | +} | |
1399 | + | |
1400 | +.py-2 { | |
1401 | + padding-top: 0.5rem; | |
1402 | + padding-bottom: 0.5rem; | |
1403 | +} | |
1404 | + | |
1405 | +.py-1\.5 { | |
1406 | + padding-top: 0.375rem; | |
1407 | + padding-bottom: 0.375rem; | |
1408 | +} | |
1409 | + | |
1410 | +.py-5 { | |
1411 | + padding-top: 1.25rem; | |
1412 | + padding-bottom: 1.25rem; | |
1413 | +} | |
1414 | + | |
1415 | +.px-5 { | |
1416 | + padding-left: 1.25rem; | |
1417 | + padding-right: 1.25rem; | |
1418 | +} | |
1419 | + | |
1420 | +.py-8 { | |
1421 | + padding-top: 2rem; | |
1422 | + padding-bottom: 2rem; | |
1423 | +} | |
1424 | + | |
1425 | +.py-4 { | |
1426 | + padding-top: 1rem; | |
1427 | + padding-bottom: 1rem; | |
1428 | +} | |
1429 | + | |
1430 | +.pl-2 { | |
1431 | + padding-left: 0.5rem; | |
1432 | +} | |
1433 | + | |
1434 | +.pt-5 { | |
1435 | + padding-top: 1.25rem; | |
1436 | +} | |
1437 | + | |
1438 | +.pl-4 { | |
1439 | + padding-left: 1rem; | |
1440 | +} | |
1441 | + | |
1442 | +.pt-4 { | |
1443 | + padding-top: 1rem; | |
1444 | +} | |
1445 | + | |
1446 | +.text-center { | |
1447 | + text-align: center; | |
1448 | +} | |
1449 | + | |
1450 | +.text-right { | |
1451 | + text-align: right; | |
1452 | +} | |
1453 | + | |
1454 | +.text-4xl { | |
1455 | + font-size: 2.25rem; | |
1456 | + line-height: 2.5rem; | |
1457 | +} | |
1458 | + | |
1459 | +.text-5xl { | |
1460 | + font-size: 3rem; | |
1461 | + line-height: 1; | |
1462 | +} | |
1463 | + | |
1464 | +.text-3xl { | |
1465 | + font-size: 1.875rem; | |
1466 | + line-height: 2.25rem; | |
1467 | +} | |
1468 | + | |
1469 | +.text-2xl { | |
1470 | + font-size: 1.5rem; | |
1471 | + line-height: 2rem; | |
1472 | +} | |
1473 | + | |
1474 | +.text-lg { | |
1475 | + font-size: 1.125rem; | |
1476 | + line-height: 1.75rem; | |
1477 | +} | |
1478 | + | |
1479 | +.font-medium { | |
1480 | + font-weight: 500; | |
1481 | +} | |
1482 | + | |
1483 | +.font-normal { | |
1484 | + font-weight: 400; | |
1485 | +} | |
1486 | + | |
1487 | +.font-bold { | |
1488 | + font-weight: 700; | |
1489 | +} | |
1490 | + | |
1491 | +.uppercase { | |
1492 | + text-transform: uppercase; | |
1493 | +} | |
1494 | + | |
1495 | +.italic { | |
1496 | + font-style: italic; | |
1497 | +} | |
1498 | + | |
1499 | +.text-white { | |
1500 | + --tw-text-opacity: 1; | |
1501 | + color: rgba(255, 255, 255, var(--tw-text-opacity)); | |
1502 | +} | |
1503 | + | |
1504 | +.text-gray-300 { | |
1505 | + --tw-text-opacity: 1; | |
1506 | + color: rgba(212, 212, 216, var(--tw-text-opacity)); | |
1507 | +} | |
1508 | + | |
1509 | +.text-primary { | |
1510 | + --tw-text-opacity: 1; | |
1511 | + color: rgba(9, 96, 189, var(--tw-text-opacity)); | |
1512 | +} | |
1513 | + | |
1514 | +.underline { | |
1515 | + text-decoration: underline; | |
1516 | +} | |
1517 | + | |
1518 | +.shadow { | |
1519 | + --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); | |
1520 | + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), | |
1521 | + var(--tw-shadow); | |
1522 | +} | |
1523 | + | |
1524 | +.shadow-md { | |
1525 | + --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); | |
1526 | + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), | |
1527 | + var(--tw-shadow); | |
1528 | +} | |
1529 | + | |
1530 | +.blur { | |
1531 | + --tw-blur: blur(8px); | |
1532 | + filter: var(--tw-filter); | |
1533 | +} | |
1534 | + | |
1535 | +.transition { | |
1536 | + transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, | |
1537 | + transform, filter, -webkit-backdrop-filter; | |
1538 | + transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, | |
1539 | + transform, filter, backdrop-filter; | |
1540 | + transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, | |
1541 | + transform, filter, backdrop-filter, -webkit-backdrop-filter; | |
1542 | + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); | |
1543 | + transition-duration: 150ms; | |
1544 | +} | |
1545 | + | |
1546 | +.hover\:border-primary:hover { | |
1547 | + --tw-border-opacity: 1; | |
1548 | + border-color: rgba(9, 96, 189, var(--tw-border-opacity)); | |
1549 | +} | |
1550 | + | |
1551 | +@media (min-width: 576px) { | |
1552 | + .sm\:w-3\/4 { | |
1553 | + width: 75%; | |
1554 | + } | |
1555 | + | |
1556 | + .sm\:px-10 { | |
1557 | + padding-left: 2.5rem; | |
1558 | + padding-right: 2.5rem; | |
1559 | + } | |
1560 | + | |
1561 | + .sm\:px-8 { | |
1562 | + padding-left: 2rem; | |
1563 | + padding-right: 2rem; | |
1564 | + } | |
1565 | +} | |
1566 | + | |
1567 | +@media (min-width: 768px) { | |
1568 | + .md\:\!mx-4 { | |
1569 | + margin-left: 1rem !important; | |
1570 | + margin-right: 1rem !important; | |
1571 | + } | |
1572 | + | |
1573 | + .md\:\!my-0 { | |
1574 | + margin-top: 0px !important; | |
1575 | + margin-bottom: 0px !important; | |
1576 | + } | |
1577 | + | |
1578 | + .md\:mx-2 { | |
1579 | + margin-left: 0.5rem; | |
1580 | + margin-right: 0.5rem; | |
1581 | + } | |
1582 | + | |
1583 | + .md\:mx-16 { | |
1584 | + margin-left: 4rem; | |
1585 | + margin-right: 4rem; | |
1586 | + } | |
1587 | + | |
1588 | + .md\:mr-20 { | |
1589 | + margin-right: 5rem; | |
1590 | + } | |
1591 | + | |
1592 | + .md\:\!mt-0 { | |
1593 | + margin-top: 0px !important; | |
1594 | + } | |
1595 | + | |
1596 | + .md\:\!mr-4 { | |
1597 | + margin-right: 1rem !important; | |
1598 | + } | |
1599 | + | |
1600 | + .md\:ml-6 { | |
1601 | + margin-left: 1.5rem; | |
1602 | + } | |
1603 | + | |
1604 | + .md\:mt-0 { | |
1605 | + margin-top: 0px; | |
1606 | + } | |
1607 | + | |
1608 | + .md\:mr-10 { | |
1609 | + margin-right: 2.5rem; | |
1610 | + } | |
1611 | + | |
1612 | + .md\:block { | |
1613 | + display: block; | |
1614 | + } | |
1615 | + | |
1616 | + .md\:flex { | |
1617 | + display: flex; | |
1618 | + } | |
1619 | + | |
1620 | + .md\:h-4\/5 { | |
1621 | + height: 80%; | |
1622 | + } | |
1623 | + | |
1624 | + .md\:w-1\/3 { | |
1625 | + width: 33.333333%; | |
1626 | + } | |
1627 | + | |
1628 | + .md\:w-1\/4 { | |
1629 | + width: 25%; | |
1630 | + } | |
1631 | + | |
1632 | + .md\:\!w-1\/3 { | |
1633 | + width: 33.333333% !important; | |
1634 | + } | |
1635 | + | |
1636 | + .md\:text-lg { | |
1637 | + font-size: 1.125rem; | |
1638 | + line-height: 1.75rem; | |
1639 | + } | |
1640 | + | |
1641 | + .md\:opacity-100 { | |
1642 | + opacity: 1; | |
1643 | + } | |
1644 | +} | |
1645 | + | |
1646 | +@media (min-width: 992px) { | |
1647 | + .lg\:flex { | |
1648 | + display: flex; | |
1649 | + } | |
1650 | + | |
1651 | + .lg\:w-2\/4 { | |
1652 | + width: 50%; | |
1653 | + } | |
1654 | +} | |
1655 | + | |
1656 | +@media (min-width: 1200px) { | |
1657 | + .xl\:my-0 { | |
1658 | + margin-top: 0px; | |
1659 | + margin-bottom: 0px; | |
1660 | + } | |
1661 | + | |
1662 | + .xl\:ml-20 { | |
1663 | + margin-left: 5rem; | |
1664 | + } | |
1665 | + | |
1666 | + .xl\:flex { | |
1667 | + display: flex; | |
1668 | + } | |
1669 | + | |
1670 | + .xl\:hidden { | |
1671 | + display: none; | |
1672 | + } | |
1673 | + | |
1674 | + .xl\:h-auto { | |
1675 | + height: auto; | |
1676 | + } | |
1677 | + | |
1678 | + .xl\:w-6\/12 { | |
1679 | + width: 50%; | |
1680 | + } | |
1681 | + | |
1682 | + .xl\:w-auto { | |
1683 | + width: auto; | |
1684 | + } | |
1685 | + | |
1686 | + .xl\:w-1\/5 { | |
1687 | + width: 20%; | |
1688 | + } | |
1689 | + | |
1690 | + .xl\:w-4\/5 { | |
1691 | + width: 80%; | |
1692 | + } | |
1693 | + | |
1694 | + .xl\:flex-col { | |
1695 | + flex-direction: column; | |
1696 | + } | |
1697 | + | |
1698 | + .xl\:justify-start { | |
1699 | + justify-content: flex-start; | |
1700 | + } | |
1701 | + | |
1702 | + .xl\:p-4 { | |
1703 | + padding: 1rem; | |
1704 | + } | |
1705 | + | |
1706 | + .xl\:py-0 { | |
1707 | + padding-top: 0px; | |
1708 | + padding-bottom: 0px; | |
1709 | + } | |
1710 | + | |
1711 | + .xl\:text-left { | |
1712 | + text-align: left; | |
1713 | + } | |
1714 | + | |
1715 | + .xl\:text-xl { | |
1716 | + font-size: 1.25rem; | |
1717 | + line-height: 1.75rem; | |
1718 | + } | |
1719 | + | |
1720 | + .xl\:text-3xl { | |
1721 | + font-size: 1.875rem; | |
1722 | + line-height: 2.25rem; | |
1723 | + } | |
1724 | + | |
1725 | + .xl\:text-gray-600 { | |
1726 | + --tw-text-opacity: 1; | |
1727 | + color: rgba(82, 82, 91, var(--tw-text-opacity)); | |
1728 | + } | |
1729 | + | |
1730 | + .xl\:shadow-none { | |
1731 | + --tw-shadow: 0 0 #0000; | |
1732 | + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), | |
1733 | + var(--tw-shadow); | |
1734 | + } | |
1735 | +} | |
1736 | + | |
1737 | +@media (min-width: 1600px) { | |
1738 | + .\32xl\:text-3xl { | |
1739 | + font-size: 1.875rem; | |
1740 | + line-height: 2.25rem; | |
1741 | + } | |
1742 | +} | ... | ... |
src/main.ts
src/utils/mitt.ts
... | ... | @@ -27,6 +27,7 @@ export interface Emitter { |
27 | 27 | |
28 | 28 | emit<T = any>(type: EventType, event?: T): void; |
29 | 29 | emit(type: '*', event?: any): void; |
30 | + clear(): void; | |
30 | 31 | } |
31 | 32 | |
32 | 33 | /** |
... | ... | @@ -88,5 +89,12 @@ export default function mitt(all?: EventHandlerMap): Emitter { |
88 | 89 | handler(type, evt); |
89 | 90 | }); |
90 | 91 | }, |
92 | + | |
93 | + /** | |
94 | + * Clear all | |
95 | + */ | |
96 | + clear() { | |
97 | + this.all.clear(); | |
98 | + }, | |
91 | 99 | }; |
92 | 100 | } | ... | ... |
src/views/dashboard/analysis/components/GrowCard.vue
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | size="small" |
6 | 6 | :loading="$attrs.loading" |
7 | 7 | :title="item.title" |
8 | - class="md:w-1/4 w-full !md:mt-0 !mt-4" | |
9 | - :class="[index + 1 < 4 && '!md:mr-4']" | |
8 | + class="md:w-1/4 w-full md:!mt-0 !mt-4" | |
9 | + :class="[index + 1 < 4 && 'md:!mr-4']" | |
10 | 10 | :canExpan="false" |
11 | 11 | > |
12 | 12 | <template #extra> | ... | ... |
src/views/dashboard/analysis/index.vue
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | <div class="md:flex enter-y"> |
7 | 7 | <VisitRadar class="md:w-1/3 w-full" :loading="loading" /> |
8 | 8 | |
9 | - <VisitSource class="md:w-1/3 !md:mx-4 !md:my-0 !my-4 w-full" :loading="loading" /> | |
9 | + <VisitSource class="md:w-1/3 md:!mx-4 md:!my-0 !my-4 w-full" :loading="loading" /> | |
10 | 10 | <SalesProductPie class="md:w-1/3 w-full" :loading="loading" /> |
11 | 11 | </div> |
12 | 12 | </div> | ... | ... |
src/views/dashboard/workbench/components/ProjectCard.vue
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | </template> |
6 | 6 | |
7 | 7 | <template v-for="item in items" :key="item"> |
8 | - <CardGrid class="!md:w-1/3 !w-full"> | |
8 | + <CardGrid class="md:!w-1/3 !w-full"> | |
9 | 9 | <span class="flex"> |
10 | 10 | <Icon :icon="item.icon" :color="item.color" size="30" /> |
11 | 11 | <span class="text-lg ml-4">{{ item.title }}</span> | ... | ... |
src/views/dashboard/workbench/index.vue
... | ... | @@ -10,7 +10,11 @@ |
10 | 10 | <QuickNav :loading="loading" class="enter-y" /> |
11 | 11 | |
12 | 12 | <Card class="!my-4 enter-y" :loading="loading"> |
13 | - <img class="xl:h-50 h-30 mx-auto" src="../../../assets/svg/illustration.svg" /> | |
13 | + <img | |
14 | + style="height: 216px" | |
15 | + class="h-20 mx-auto" | |
16 | + src="../../../assets/svg/illustration.svg" | |
17 | + /> | |
14 | 18 | </Card> |
15 | 19 | |
16 | 20 | <SaleRadar :loading="loading" class="enter-y" /> | ... | ... |
src/views/sys/login/LoginForm.vue
... | ... | @@ -53,7 +53,7 @@ |
53 | 53 | {{ t('sys.login.mobileSignInFormTitle') }} |
54 | 54 | </Button> |
55 | 55 | </ACol> |
56 | - <ACol :md="8" :xs="24" class="!my-2 !md:my-0 xs:mx-0 md:mx-2"> | |
56 | + <ACol :md="8" :xs="24" class="!my-2 md:!my-0 xs:mx-0 md:mx-2"> | |
57 | 57 | <Button block @click="setLoginState(LoginStateEnum.QR_CODE)"> |
58 | 58 | {{ t('sys.login.qrSignInFormTitle') }} |
59 | 59 | </Button> | ... | ... |
stylelint.config.js
... | ... | @@ -18,7 +18,18 @@ module.exports = { |
18 | 18 | 'at-rule-no-unknown': [ |
19 | 19 | true, |
20 | 20 | { |
21 | - ignoreAtRules: ['function', 'if', 'each', 'include', 'mixin'], | |
21 | + ignoreAtRules: [ | |
22 | + 'tailwind', | |
23 | + 'apply', | |
24 | + 'variants', | |
25 | + 'responsive', | |
26 | + 'screen', | |
27 | + 'function', | |
28 | + 'if', | |
29 | + 'each', | |
30 | + 'include', | |
31 | + 'mixin', | |
32 | + ], | |
22 | 33 | }, |
23 | 34 | ], |
24 | 35 | 'no-empty-source': null, | ... | ... |
windi.config.ts renamed to tailwind.config.js
1 | -import lineClamp from 'windicss/plugin/line-clamp'; | |
2 | -import colors from 'windicss/colors'; | |
1 | +const colors = require('tailwindcss/colors'); | |
3 | 2 | |
4 | -import { defineConfig } from 'vite-plugin-windicss'; | |
5 | -import { primaryColor } from './build/config/themeConfig'; | |
6 | - | |
7 | -export default defineConfig({ | |
8 | - darkMode: 'class', | |
9 | - plugins: [lineClamp, createEnterPlugin()], | |
3 | +module.exports = { | |
4 | + mode: 'jit', | |
5 | + // darkMode: 'class', | |
6 | + plugins: [createEnterPlugin()], | |
7 | + purge: { | |
8 | + enabled: false, | |
9 | + content: ['./index.html', './src/**/*.{vue,ts,tsx}'], | |
10 | + }, | |
10 | 11 | theme: { |
11 | 12 | extend: { |
12 | - colors: { | |
13 | - ...colors, | |
14 | - primary: primaryColor, | |
13 | + zIndex: { | |
14 | + '-1': '-1', | |
15 | 15 | }, |
16 | - screens: { | |
17 | - sm: '576px', | |
18 | - md: '768px', | |
19 | - lg: '992px', | |
20 | - xl: '1200px', | |
21 | - '2xl': '1600px', | |
16 | + }, | |
17 | + colors: { | |
18 | + ...colors, | |
19 | + primary: { | |
20 | + DEFAULT: '#0960bd', | |
21 | + // dark: primaryColorDark, | |
22 | 22 | }, |
23 | 23 | }, |
24 | + screens: { | |
25 | + sm: '576px', | |
26 | + md: '768px', | |
27 | + lg: '992px', | |
28 | + xl: '1200px', | |
29 | + '2xl': '1600px', | |
30 | + }, | |
24 | 31 | }, |
25 | -}); | |
26 | - | |
32 | +}; | |
27 | 33 | /** |
28 | 34 | * Used for animation when the element is displayed |
29 | 35 | * @param maxOutput The larger the maxOutput output, the larger the generated css volume |
30 | 36 | */ |
31 | -function createEnterPlugin(maxOutput = 10) { | |
32 | - const createCss = (index: number, d = 'x') => { | |
37 | +function createEnterPlugin(maxOutput = 6) { | |
38 | + const createCss = (index, d = 'x') => { | |
33 | 39 | const upd = d.toUpperCase(); |
34 | 40 | return { |
35 | 41 | [`*> .enter-${d}:nth-child(${index})`]: { | ... | ... |