@zhang_jifan/fanui 2.1.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/ACCESSIBILITY.md +61 -0
- package/CHANGELOG.md +112 -0
- package/COMMERCIAL-LICENSE.md +71 -0
- package/DESIGN-SYSTEM.md +294 -0
- package/LICENSE +661 -0
- package/README.md +348 -0
- package/USAGE.md +1926 -0
- package/_index.scss +20 -0
- package/dist/fanui.cjs +15 -0
- package/dist/fanui.css +28209 -0
- package/dist/fanui.d.ts +353 -0
- package/dist/fanui.esm.js +71 -0
- package/dist/fanui.js +4782 -0
- package/dist/fanui.min.css +1 -0
- package/dist/fanui.mjs +71 -0
- package/dist/modules/fanui-advanced.css +830 -0
- package/dist/modules/fanui-advanced.min.css +129 -0
- package/dist/modules/fanui-alert.css +575 -0
- package/dist/modules/fanui-alert.min.css +122 -0
- package/dist/modules/fanui-badge.css +426 -0
- package/dist/modules/fanui-badge.min.css +77 -0
- package/dist/modules/fanui-base.css +1394 -0
- package/dist/modules/fanui-base.min.css +236 -0
- package/dist/modules/fanui-blog.css +762 -0
- package/dist/modules/fanui-blog.min.css +108 -0
- package/dist/modules/fanui-button.css +526 -0
- package/dist/modules/fanui-button.min.css +56 -0
- package/dist/modules/fanui-card.css +291 -0
- package/dist/modules/fanui-card.min.css +52 -0
- package/dist/modules/fanui-choice.css +539 -0
- package/dist/modules/fanui-choice.min.css +83 -0
- package/dist/modules/fanui-dashboard.css +1057 -0
- package/dist/modules/fanui-dashboard.min.css +160 -0
- package/dist/modules/fanui-data.css +687 -0
- package/dist/modules/fanui-data.min.css +125 -0
- package/dist/modules/fanui-feedback.css +432 -0
- package/dist/modules/fanui-feedback.min.css +79 -0
- package/dist/modules/fanui-form.css +779 -0
- package/dist/modules/fanui-form.min.css +123 -0
- package/dist/modules/fanui-glass.css +497 -0
- package/dist/modules/fanui-glass.min.css +46 -0
- package/dist/modules/fanui-input-plus.css +799 -0
- package/dist/modules/fanui-input-plus.min.css +124 -0
- package/dist/modules/fanui-interactive.css +960 -0
- package/dist/modules/fanui-interactive.min.css +138 -0
- package/dist/modules/fanui-layout.css +4399 -0
- package/dist/modules/fanui-layout.min.css +1172 -0
- package/dist/modules/fanui-marketing.css +1125 -0
- package/dist/modules/fanui-marketing.min.css +144 -0
- package/dist/modules/fanui-nav.css +458 -0
- package/dist/modules/fanui-nav.min.css +76 -0
- package/dist/modules/fanui-overlay.css +547 -0
- package/dist/modules/fanui-overlay.min.css +91 -0
- package/dist/modules/fanui-table.css +290 -0
- package/dist/modules/fanui-table.min.css +62 -0
- package/dist/modules/fanui-tabs.css +333 -0
- package/dist/modules/fanui-tabs.min.css +58 -0
- package/dist/modules/fanui-themes.css +2728 -0
- package/dist/modules/fanui-themes.min.css +40 -0
- package/dist/modules/fanui-tokens.css +587 -0
- package/dist/modules/fanui-tokens.min.css +3 -0
- package/dist/modules/fanui-utilities.css +6557 -0
- package/dist/modules/fanui-utilities.min.css +1762 -0
- package/dist/modules/sizes.json +103 -0
- package/docs/MIGRATION-v2.md +179 -0
- package/examples/01-script-tag.html +149 -0
- package/examples/02-react/README.md +39 -0
- package/examples/02-react/index.html +12 -0
- package/examples/02-react/package.json +20 -0
- package/examples/02-react/src/App.jsx +108 -0
- package/examples/02-react/src/main.jsx +13 -0
- package/examples/02-react/src/useFanUI.js +87 -0
- package/examples/02-react/vite.config.js +6 -0
- package/examples/03-vue3/README.md +67 -0
- package/examples/03-vue3/index.html +12 -0
- package/examples/03-vue3/package.json +19 -0
- package/examples/03-vue3/src/App.vue +93 -0
- package/examples/03-vue3/src/main.js +8 -0
- package/examples/03-vue3/src/useFanUI.js +85 -0
- package/examples/03-vue3/vite.config.js +6 -0
- package/examples/04-vue2-cdn.html +93 -0
- package/examples/README.md +34 -0
- package/package.json +127 -0
- package/src/_functions.scss +319 -0
- package/src/_mixins.scss +1202 -0
- package/src/_tokens.scss +180 -0
- package/src/_variables.scss +491 -0
- package/src/base/_animations.scss +210 -0
- package/src/base/_reset.scss +359 -0
- package/src/base/_rtl.scss +133 -0
- package/src/base/_typography.scss +353 -0
- package/src/components/_advanced.scss +763 -0
- package/src/components/_alert.scss +322 -0
- package/src/components/_badge.scss +279 -0
- package/src/components/_blog.scss +693 -0
- package/src/components/_button.scss +351 -0
- package/src/components/_capabilities.scss +463 -0
- package/src/components/_card.scss +281 -0
- package/src/components/_choice.scss +444 -0
- package/src/components/_dashboard.scss +950 -0
- package/src/components/_data.scss +618 -0
- package/src/components/_feedback.scss +403 -0
- package/src/components/_form.scss +408 -0
- package/src/components/_glass.scss +374 -0
- package/src/components/_input-plus.scss +730 -0
- package/src/components/_interactive.scss +885 -0
- package/src/components/_marketing.scss +982 -0
- package/src/components/_nav.scss +480 -0
- package/src/components/_overlay.scss +517 -0
- package/src/components/_table.scss +276 -0
- package/src/components/_tabs.scss +338 -0
- package/src/fanui.d.ts +353 -0
- package/src/fanui.js +4782 -0
- package/src/fanui.scss +79 -0
- package/src/glass/_switches.scss +36 -0
- package/src/glass/_tokens.scss +259 -0
- package/src/layout/_container.scss +111 -0
- package/src/layout/_flex.scss +164 -0
- package/src/layout/_grid.scss +180 -0
- package/src/themes/_accents.scss +201 -0
- package/src/themes/_palettes.scss +180 -0
- package/src/utilities/_borders.scss +104 -0
- package/src/utilities/_display.scss +145 -0
- package/src/utilities/_effects.scss +210 -0
- package/src/utilities/_sizing.scss +123 -0
- package/src/utilities/_spacing.scss +118 -0
- package/src/utilities/_texture.scss +323 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
.fanui-avatar{--fanui-avatar-size:40px;--fanui-avatar-radius:50%;position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--fanui-avatar-size);height:var(--fanui-avatar-size);font-size:calc(var(--fanui-avatar-size) * 0.4);font-weight:600;line-height:1;color:var(--fanui-color-text-inverse);background-color:var(--fanui-primary);border-radius:var(--fanui-avatar-radius);overflow:hidden;user-select:none;box-sizing:border-box}
|
|
2
|
+
.fanui-avatar>img,.fanui-avatar>video{width:100%;height:100%;object-fit:cover;display:block}
|
|
3
|
+
.fanui-avatar__icon{display:inline-flex;font-size:1.1em}
|
|
4
|
+
.fanui-avatar__text{font-size:0.85em;letter-spacing:0.02em}
|
|
5
|
+
.fanui-avatar--xs{--fanui-avatar-size:24px;font-size:11px}
|
|
6
|
+
.fanui-avatar--sm{--fanui-avatar-size:32px;font-size:13px}
|
|
7
|
+
.fanui-avatar--md{--fanui-avatar-size:40px}
|
|
8
|
+
.fanui-avatar--lg{--fanui-avatar-size:48px}
|
|
9
|
+
.fanui-avatar--xl{--fanui-avatar-size:64px;font-size:22px}
|
|
10
|
+
.fanui-avatar--2xl{--fanui-avatar-size:80px;font-size:28px}
|
|
11
|
+
.fanui-avatar--square{--fanui-avatar-radius:var(--fanui-radius-base)}
|
|
12
|
+
.fanui-avatar--rounded{--fanui-avatar-radius:var(--fanui-radius-lg)}
|
|
13
|
+
.fanui-avatar--bordered{border:2px solid var(--fanui-color-surface);box-shadow:var(--fanui-shadow-sm)}
|
|
14
|
+
.fanui-avatar--primary{background-color:var(--fanui-primary,#0e7490);color:var(--fanui-primary-fg,#ffffff)}
|
|
15
|
+
.fanui-avatar--accent{background-color:var(--fanui-accent,#7c3aed);color:var(--fanui-accent-fg,#ffffff)}
|
|
16
|
+
.fanui-avatar--success{background-color:var(--fanui-success,#047857);color:var(--fanui-success-fg,#ffffff)}
|
|
17
|
+
.fanui-avatar--warning{background-color:var(--fanui-warning,#b45309);color:var(--fanui-warning-fg,#ffffff)}
|
|
18
|
+
.fanui-avatar--danger{background-color:var(--fanui-danger,#b91c1c);color:var(--fanui-danger-fg,#ffffff)}
|
|
19
|
+
.fanui-avatar--info{background-color:var(--fanui-info,#0369a1);color:var(--fanui-info-fg,#ffffff)}
|
|
20
|
+
.fanui-avatar--neutral{background-color:var(--fanui-color-surface-sunken);color:var(--fanui-color-text-muted)}
|
|
21
|
+
.fanui-avatar__status{position:absolute;right:0;bottom:0;width:28%;height:28%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--fanui-color-surface);background-color:var(--fanui-color-text-subtle);box-sizing:content-box}
|
|
22
|
+
.fanui-avatar__status--online{background-color:var(--fanui-success)}
|
|
23
|
+
.fanui-avatar__status--busy{background-color:var(--fanui-danger)}
|
|
24
|
+
.fanui-avatar__status--away{background-color:var(--fanui-warning)}
|
|
25
|
+
.fanui-avatar__status--offline{background-color:var(--fanui-color-text-subtle)}
|
|
26
|
+
.fanui-avatar-group{display:inline-flex;align-items:center}
|
|
27
|
+
.fanui-avatar-group>.fanui-avatar{margin-inline-start:-10px;border:2px solid var(--fanui-color-surface);transition:transform 150ms cubic-bezier(0.4,0,0.2,1) 0s,z-index 150ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
28
|
+
.fanui-avatar-group>.fanui-avatar:first-child{margin-inline-start:0}
|
|
29
|
+
.fanui-avatar-group>.fanui-avatar:hover{transform:translateY(-2px);z-index:2}
|
|
30
|
+
.fanui-avatar-group--sm>.fanui-avatar{margin-inline-start:-8px}
|
|
31
|
+
.fanui-avatar-group--lg>.fanui-avatar{margin-inline-start:-12px}
|
|
32
|
+
.fanui-avatar-group__more{background-color:var(--fanui-color-surface-sunken) !important;color:var(--fanui-color-text-muted) !important;font-size:12px}
|
|
33
|
+
.fanui-avatar-media{display:flex;align-items:center;gap:var(--fanui-space-3);min-width:0}
|
|
34
|
+
.fanui-avatar-media__body{min-width:0}
|
|
35
|
+
.fanui-avatar-media__title{font-size:var(--fanui-font-size-base);font-weight:500;color:var(--fanui-color-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
36
|
+
.fanui-avatar-media__desc{font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
37
|
+
.fanui-list-group{display:flex;flex-direction:column;padding:0;margin:0;list-style:none;background-color:var(--fanui-color-surface);border:1px solid var(--fanui-color-border);border-radius:var(--fanui-radius-lg);overflow:hidden}
|
|
38
|
+
.fanui-list-group--flush{border:0;border-radius:0;background:transparent}
|
|
39
|
+
.fanui-list-group--separated{gap:var(--fanui-space-2);border:0;background:transparent;overflow:visible}
|
|
40
|
+
.fanui-list-item{display:flex;align-items:center;gap:var(--fanui-space-3);padding:var(--fanui-space-3) var(--fanui-space-4);font-size:var(--fanui-font-size-base);color:var(--fanui-color-text);background-color:transparent;border-bottom:1px solid var(--fanui-color-border);text-decoration:none;box-sizing:border-box;transition:background-color 150ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
41
|
+
.fanui-list-item:last-child{border-bottom:0}
|
|
42
|
+
.fanui-list-item--interactive{cursor:pointer}
|
|
43
|
+
.fanui-list-item--interactive:hover{background-color:var(--fanui-color-hover);text-decoration:none}
|
|
44
|
+
.fanui-list-item--interactive:active{background-color:var(--fanui-color-active)}
|
|
45
|
+
.fanui-list-item--interactive:focus-visible{outline:0;box-shadow:0 0 0 var(--fanui-focus-ring-offset,1px) var(--fanui-color-surface,#fff),0 0 0 calc(var(--fanui-focus-ring-offset,1px) + var(--fanui-focus-ring-width,3px)) var(--fanui-focus-ring-color,rgba(14,116,144,0.3))}@media (forced-colors:active){.fanui-list-item--interactive:focus-visible{outline:2px solid transparent;outline-offset:2px}}
|
|
46
|
+
.fanui-list-item.is-active,.fanui-list-item--active{background-color:var(--fanui-primary-soft);color:var(--fanui-primary);border-color:var(--fanui-primary-border,var(--fanui-primary));--fanui-color-text-subtle:var(--fanui-primary-ink,var(--fanui-color-text-muted))}
|
|
47
|
+
.fanui-list-item.is-disabled{opacity:0.55;pointer-events:none}
|
|
48
|
+
.fanui-list-group--separated .fanui-list-item{border:1px solid var(--fanui-color-border);border-radius:var(--fanui-radius-md);background-color:var(--fanui-color-surface)}
|
|
49
|
+
.fanui-list-item__icon{flex:0 0 auto;display:inline-flex;width:20px;justify-content:center;color:var(--fanui-color-text-muted)}
|
|
50
|
+
.fanui-list-item__body{flex:1 1 auto;min-width:0}
|
|
51
|
+
.fanui-list-item__title{font-weight:500;color:var(--fanui-color-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
52
|
+
.fanui-list-item__desc{margin-top:2px;font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
|
|
53
|
+
.fanui-list-item__meta{flex:0 0 auto;font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-subtle);white-space:nowrap}
|
|
54
|
+
.fanui-list-item__action{flex:0 0 auto;margin-inline-start:auto}
|
|
55
|
+
.fanui-list-item--sm{padding:6px 12px;font-size:var(--fanui-font-size-sm)}
|
|
56
|
+
.fanui-list-item--lg{padding:var(--fanui-space-4) var(--fanui-space-5)}
|
|
57
|
+
.fanui-list-header{padding:var(--fanui-space-3) var(--fanui-space-4);font-size:var(--fanui-font-size-xs);font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--fanui-color-text-subtle);background-color:var(--fanui-color-surface-sunken);border-bottom:1px solid var(--fanui-color-border)}
|
|
58
|
+
.fanui-descriptions{display:grid;gap:var(--fanui-space-3) var(--fanui-space-6);font-size:var(--fanui-font-size-base)}
|
|
59
|
+
.fanui-descriptions__item{min-width:0}
|
|
60
|
+
.fanui-descriptions__label{margin-bottom:2px;font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-muted)}
|
|
61
|
+
.fanui-descriptions__value{color:var(--fanui-color-text-strong);word-break:break-word}
|
|
62
|
+
.fanui-descriptions--2{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
63
|
+
.fanui-descriptions--3{grid-template-columns:repeat(3,minmax(0,1fr))}
|
|
64
|
+
.fanui-descriptions--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:767.95px){.fanui-descriptions--3,.fanui-descriptions--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:575.95px){.fanui-descriptions--2,.fanui-descriptions--3,.fanui-descriptions--4{grid-template-columns:minmax(0,1fr)}}
|
|
65
|
+
.fanui-descriptions--inline{display:flex;flex-wrap:wrap;gap:var(--fanui-space-5);grid-template-columns:none}
|
|
66
|
+
.fanui-descriptions--inline .fanui-descriptions__item{display:flex;gap:8px}
|
|
67
|
+
.fanui-descriptions--inline .fanui-descriptions__label{margin-bottom:0}
|
|
68
|
+
.fanui-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fanui-space-1);padding:0;margin:0;list-style:none}
|
|
69
|
+
.fanui-pagination__item{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;font-size:var(--fanui-font-size-base);font-weight:500;color:var(--fanui-color-text);text-decoration:none;background-color:transparent;border:1px solid var(--fanui-color-border);border-radius:var(--fanui-radius-base);cursor:pointer;box-sizing:border-box;user-select:none;font-variant-numeric:tabular-nums;transition:color 150ms cubic-bezier(0.4,0,0.2,1) 0s,background-color 150ms cubic-bezier(0.4,0,0.2,1) 0s,border-color 150ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
70
|
+
.fanui-pagination__item:hover:not(.is-disabled):not([aria-disabled=true]):not(.is-active){color:var(--fanui-primary);border-color:var(--fanui-primary);background-color:var(--fanui-primary-soft);text-decoration:none}
|
|
71
|
+
.fanui-pagination__item:focus-visible{outline:0;box-shadow:0 0 0 var(--fanui-focus-ring-offset,1px) var(--fanui-color-surface,#fff),0 0 0 calc(var(--fanui-focus-ring-offset,1px) + var(--fanui-focus-ring-width,3px)) var(--fanui-focus-ring-color,rgba(14,116,144,0.3))}@media (forced-colors:active){.fanui-pagination__item:focus-visible{outline:2px solid transparent;outline-offset:2px}}
|
|
72
|
+
.fanui-pagination__item.is-active,.fanui-pagination__item[aria-current=page]{color:var(--fanui-primary-fg);background-color:var(--fanui-primary);border-color:var(--fanui-primary)}
|
|
73
|
+
.fanui-pagination__item.is-disabled,.fanui-pagination__item[aria-disabled=true]{color:var(--fanui-color-disabled-text);cursor:not-allowed;pointer-events:none}
|
|
74
|
+
.fanui-pagination__item--ellipsis{border-color:transparent;background:transparent;color:var(--fanui-color-text-subtle);cursor:default;pointer-events:none}
|
|
75
|
+
.fanui-pagination__item--icon{padding:0}
|
|
76
|
+
.fanui-pagination__info{margin-inline-start:var(--fanui-space-3);font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-muted)}
|
|
77
|
+
.fanui-pagination--borderless .fanui-pagination__item{border-color:transparent}
|
|
78
|
+
.fanui-pagination--pill .fanui-pagination__item{border-radius:9999px}
|
|
79
|
+
.fanui-pagination--sm .fanui-pagination__item{min-width:26px;height:26px;font-size:var(--fanui-font-size-sm)}
|
|
80
|
+
.fanui-pagination--lg .fanui-pagination__item{min-width:38px;height:38px;font-size:var(--fanui-font-size-md)}
|
|
81
|
+
.fanui-pagination--center{justify-content:center}
|
|
82
|
+
.fanui-pagination--end{justify-content:flex-end}
|
|
83
|
+
.fanui-pagination--simple{gap:var(--fanui-space-2)}
|
|
84
|
+
.fanui-pagination--simple .fanui-pagination__item{border-color:transparent}
|
|
85
|
+
.fanui-pagination-page-size{display:inline-flex;align-items:center;gap:var(--fanui-space-2);font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-muted)}
|
|
86
|
+
.fanui-pagination-page-size .fanui-select{width:auto;min-width:72px}
|
|
87
|
+
.fanui-steps{--fanui-step-dot:28px;display:flex;align-items:flex-start;width:100%;list-style:none;margin:0;padding:0}
|
|
88
|
+
.fanui-steps__item{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--fanui-space-2)}
|
|
89
|
+
.fanui-steps__item:not(:last-child)::after{content:"";position:absolute;top:calc(var(--fanui-step-dot) / 2);left:calc(50% + var(--fanui-step-dot) / 2 + 6px);right:calc(-50% + var(--fanui-step-dot) / 2 + 6px);height:2px;background-color:var(--fanui-color-border);transition:background-color 200ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
90
|
+
.fanui-steps__item.is-done:not(:last-child)::after{background-color:var(--fanui-primary)}
|
|
91
|
+
.fanui-steps__dot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--fanui-step-dot);height:var(--fanui-step-dot);font-size:var(--fanui-font-size-sm);font-weight:600;line-height:1;color:var(--fanui-color-text-muted);background-color:var(--fanui-color-surface);border:2px solid var(--fanui-color-border-strong);border-radius:50%;box-sizing:border-box;z-index:1;transition:color 200ms cubic-bezier(0.4,0,0.2,1) 0s,background-color 200ms cubic-bezier(0.4,0,0.2,1) 0s,border-color 200ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
92
|
+
.fanui-steps__title{font-size:var(--fanui-font-size-base);font-weight:500;color:var(--fanui-color-text-muted);transition:color 200ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
93
|
+
.fanui-steps__desc{font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-subtle);line-height:1.5}
|
|
94
|
+
.fanui-steps__item.is-active .fanui-steps__dot{color:var(--fanui-primary-fg);background-color:var(--fanui-primary);border-color:var(--fanui-primary);box-shadow:0 0 0 4px var(--fanui-primary-soft)}
|
|
95
|
+
.fanui-steps__item.is-active .fanui-steps__title{color:var(--fanui-color-text-strong);font-weight:600}
|
|
96
|
+
.fanui-steps__item.is-done .fanui-steps__dot{color:var(--fanui-primary-fg);background-color:var(--fanui-primary);border-color:var(--fanui-primary)}
|
|
97
|
+
.fanui-steps__item.is-done .fanui-steps__title{color:var(--fanui-color-text)}
|
|
98
|
+
.fanui-steps__item.is-error .fanui-steps__dot{color:var(--fanui-danger-fg);background-color:var(--fanui-danger);border-color:var(--fanui-danger)}
|
|
99
|
+
.fanui-steps__item.is-error .fanui-steps__title{color:var(--fanui-danger)}
|
|
100
|
+
.fanui-steps--simple .fanui-steps__item:not(:last-child)::after{left:calc(var(--fanui-step-dot) / 2 + 8px);right:calc(-50% + var(--fanui-step-dot) / 2 + 12px)}
|
|
101
|
+
.fanui-steps--navigation{gap:var(--fanui-space-3);align-items:stretch}
|
|
102
|
+
.fanui-steps--navigation .fanui-steps__item{flex-direction:row;align-items:flex-start;text-align:start;gap:var(--fanui-space-3);padding:var(--fanui-space-3);border:1px solid var(--fanui-color-border);border-radius:var(--fanui-radius-md);cursor:pointer}
|
|
103
|
+
.fanui-steps--navigation .fanui-steps__item::after{display:none}
|
|
104
|
+
.fanui-steps--navigation .fanui-steps__item:hover{border-color:var(--fanui-primary)}
|
|
105
|
+
.fanui-steps--navigation .fanui-steps__item.is-active{border-color:var(--fanui-primary);background-color:var(--fanui-primary-soft)}
|
|
106
|
+
.fanui-steps--navigation .fanui-steps__dot{margin-top:1px}
|
|
107
|
+
.fanui-steps--vertical{flex-direction:column;gap:0}
|
|
108
|
+
.fanui-steps--vertical .fanui-steps__item{flex-direction:row;align-items:flex-start;text-align:start;gap:var(--fanui-space-3);padding-bottom:var(--fanui-space-5);flex:0 0 auto}
|
|
109
|
+
.fanui-steps--vertical .fanui-steps__item:not(:last-child)::after{top:calc(var(--fanui-step-dot) + 4px);left:calc(var(--fanui-step-dot) / 2 - 1px);right:auto;bottom:4px;width:2px;height:auto}
|
|
110
|
+
.fanui-steps--vertical .fanui-steps__item:last-child{padding-bottom:0}
|
|
111
|
+
.fanui-steps--vertical .fanui-steps__body{text-align:start}
|
|
112
|
+
.fanui-steps__body{min-width:0}
|
|
113
|
+
.fanui-timeline{position:relative;list-style:none;margin:0;padding:0}
|
|
114
|
+
.fanui-timeline__item{position:relative;display:flex;gap:var(--fanui-space-4);padding-bottom:var(--fanui-space-5)}
|
|
115
|
+
.fanui-timeline__item:last-child{padding-bottom:0}
|
|
116
|
+
.fanui-timeline__item:not(:last-child)::before{content:"";position:absolute;top:18px;bottom:0;left:6px;width:2px;background-color:var(--fanui-color-border)}
|
|
117
|
+
.fanui-timeline__dot{position:relative;flex:0 0 auto;width:14px;height:14px;margin-top:4px;background-color:var(--fanui-color-surface);border:2px solid var(--fanui-color-border-strong);border-radius:50%;box-sizing:border-box;z-index:1}
|
|
118
|
+
.fanui-timeline__dot--primary{background-color:var(--fanui-primary);border-color:var(--fanui-primary)}
|
|
119
|
+
.fanui-timeline__dot--success{background-color:var(--fanui-success);border-color:var(--fanui-success)}
|
|
120
|
+
.fanui-timeline__dot--warning{background-color:var(--fanui-warning);border-color:var(--fanui-warning)}
|
|
121
|
+
.fanui-timeline__dot--danger{background-color:var(--fanui-danger);border-color:var(--fanui-danger)}
|
|
122
|
+
.fanui-timeline__body{flex:1 1 auto;min-width:0}
|
|
123
|
+
.fanui-timeline__time{font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-subtle);font-variant-numeric:tabular-nums}
|
|
124
|
+
.fanui-timeline__title{font-size:var(--fanui-font-size-base);font-weight:600;color:var(--fanui-color-text-strong)}
|
|
125
|
+
.fanui-timeline__desc{margin-top:4px;font-size:var(--fanui-font-size-base);line-height:1.6;color:var(--fanui-color-text-muted)}
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
/* fanUI v2.1.0 · module: feedback(独立产物,自带令牌) */
|
|
2
|
+
.fanui-progress {
|
|
3
|
+
--fanui-progress-h: 8px;
|
|
4
|
+
--fanui-progress-radius: var(--fanui-radius-full);
|
|
5
|
+
--fanui-progress-track: var(--fanui-color-surface-sunken);
|
|
6
|
+
--fanui-progress-bar: var(--fanui-primary);
|
|
7
|
+
position: relative;
|
|
8
|
+
display: flex;
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: var(--fanui-progress-h);
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
background-color: var(--fanui-progress-track);
|
|
13
|
+
border-radius: var(--fanui-progress-radius);
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
}
|
|
16
|
+
.fanui-progress__bar {
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: flex-end;
|
|
20
|
+
width: 0;
|
|
21
|
+
height: 100%;
|
|
22
|
+
background-color: var(--fanui-progress-bar);
|
|
23
|
+
border-radius: inherit;
|
|
24
|
+
transition: width 300ms cubic-bezier(0, 0, 0.2, 1) 0s;
|
|
25
|
+
}
|
|
26
|
+
.fanui-progress__label {
|
|
27
|
+
padding: 0 6px;
|
|
28
|
+
font-size: 10px;
|
|
29
|
+
font-weight: 600;
|
|
30
|
+
line-height: 1;
|
|
31
|
+
color: var(--fanui-color-text-inverse);
|
|
32
|
+
white-space: nowrap;
|
|
33
|
+
}
|
|
34
|
+
.fanui-progress--xs {
|
|
35
|
+
--fanui-progress-h: 3px;
|
|
36
|
+
}
|
|
37
|
+
.fanui-progress--sm {
|
|
38
|
+
--fanui-progress-h: 5px;
|
|
39
|
+
}
|
|
40
|
+
.fanui-progress--lg {
|
|
41
|
+
--fanui-progress-h: 12px;
|
|
42
|
+
}
|
|
43
|
+
.fanui-progress--xl {
|
|
44
|
+
--fanui-progress-h: 18px;
|
|
45
|
+
}
|
|
46
|
+
.fanui-progress--striped .fanui-progress__bar {
|
|
47
|
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
|
|
48
|
+
background-size: 1rem 1rem;
|
|
49
|
+
}
|
|
50
|
+
.fanui-progress--animated .fanui-progress__bar {
|
|
51
|
+
animation: fanui-progress-stripes 1s linear infinite;
|
|
52
|
+
}
|
|
53
|
+
.fanui-progress--indeterminate .fanui-progress__bar {
|
|
54
|
+
position: absolute;
|
|
55
|
+
top: 0;
|
|
56
|
+
bottom: 0;
|
|
57
|
+
width: 35%;
|
|
58
|
+
animation: fanui-progress-indeterminate 1.6s cubic-bezier(0.4, 0, 0.2, 1) infinite;
|
|
59
|
+
}
|
|
60
|
+
.fanui-progress--primary {
|
|
61
|
+
--fanui-progress-bar: var(--fanui-primary, #0e7490);
|
|
62
|
+
}
|
|
63
|
+
.fanui-progress--accent {
|
|
64
|
+
--fanui-progress-bar: var(--fanui-accent, #7c3aed);
|
|
65
|
+
}
|
|
66
|
+
.fanui-progress--success {
|
|
67
|
+
--fanui-progress-bar: var(--fanui-success, #047857);
|
|
68
|
+
}
|
|
69
|
+
.fanui-progress--warning {
|
|
70
|
+
--fanui-progress-bar: var(--fanui-warning, #b45309);
|
|
71
|
+
}
|
|
72
|
+
.fanui-progress--danger {
|
|
73
|
+
--fanui-progress-bar: var(--fanui-danger, #b91c1c);
|
|
74
|
+
}
|
|
75
|
+
.fanui-progress--info {
|
|
76
|
+
--fanui-progress-bar: var(--fanui-info, #0369a1);
|
|
77
|
+
}
|
|
78
|
+
.fanui-progress--neutral {
|
|
79
|
+
--fanui-progress-bar: var(--fanui-color-text-muted);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.fanui-progress-line {
|
|
83
|
+
display: flex;
|
|
84
|
+
align-items: center;
|
|
85
|
+
gap: var(--fanui-space-3);
|
|
86
|
+
}
|
|
87
|
+
.fanui-progress-line .fanui-progress {
|
|
88
|
+
flex: 1 1 auto;
|
|
89
|
+
}
|
|
90
|
+
.fanui-progress-line__text {
|
|
91
|
+
flex: 0 0 auto;
|
|
92
|
+
min-width: 40px;
|
|
93
|
+
font-size: var(--fanui-font-size-sm);
|
|
94
|
+
color: var(--fanui-color-text-muted);
|
|
95
|
+
text-align: end;
|
|
96
|
+
font-variant-numeric: tabular-nums;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.fanui-progress-ring {
|
|
100
|
+
--fanui-ring-size: 56px;
|
|
101
|
+
--fanui-ring-width: 6px;
|
|
102
|
+
--fanui-ring-value: 0;
|
|
103
|
+
--fanui-ring-color: var(--fanui-primary);
|
|
104
|
+
position: relative;
|
|
105
|
+
display: inline-flex;
|
|
106
|
+
align-items: center;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
width: var(--fanui-ring-size);
|
|
109
|
+
height: var(--fanui-ring-size);
|
|
110
|
+
border-radius: 50%;
|
|
111
|
+
background: conic-gradient(var(--fanui-ring-color) calc(var(--fanui-ring-value) * 1%), var(--fanui-color-surface-sunken) 0);
|
|
112
|
+
}
|
|
113
|
+
.fanui-progress-ring::before {
|
|
114
|
+
content: "";
|
|
115
|
+
position: absolute;
|
|
116
|
+
inset: var(--fanui-ring-width);
|
|
117
|
+
border-radius: 50%;
|
|
118
|
+
background-color: var(--fanui-color-surface);
|
|
119
|
+
}
|
|
120
|
+
.fanui-progress-ring__text {
|
|
121
|
+
position: relative;
|
|
122
|
+
font-size: var(--fanui-font-size-sm);
|
|
123
|
+
font-weight: 600;
|
|
124
|
+
color: var(--fanui-color-text-strong);
|
|
125
|
+
font-variant-numeric: tabular-nums;
|
|
126
|
+
}
|
|
127
|
+
.fanui-progress-ring--sm {
|
|
128
|
+
--fanui-ring-size: 40px;
|
|
129
|
+
--fanui-ring-width: 4px;
|
|
130
|
+
}
|
|
131
|
+
.fanui-progress-ring--lg {
|
|
132
|
+
--fanui-ring-size: 80px;
|
|
133
|
+
--fanui-ring-width: 8px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.fanui-spinner {
|
|
137
|
+
--fanui-spinner-size: 20px;
|
|
138
|
+
--fanui-spinner-width: 2px;
|
|
139
|
+
--fanui-spinner-color: currentColor;
|
|
140
|
+
display: inline-block;
|
|
141
|
+
width: var(--fanui-spinner-size);
|
|
142
|
+
height: var(--fanui-spinner-size);
|
|
143
|
+
border: var(--fanui-spinner-width) solid rgba(100, 116, 139, 0.25);
|
|
144
|
+
border-top-color: var(--fanui-spinner-color);
|
|
145
|
+
border-radius: 50%;
|
|
146
|
+
animation: fanui-spin 720ms linear infinite;
|
|
147
|
+
box-sizing: border-box;
|
|
148
|
+
flex: 0 0 auto;
|
|
149
|
+
}
|
|
150
|
+
.fanui-spinner--primary {
|
|
151
|
+
--fanui-spinner-color: var(--fanui-primary, #0e7490);
|
|
152
|
+
}
|
|
153
|
+
.fanui-spinner--accent {
|
|
154
|
+
--fanui-spinner-color: var(--fanui-accent, #7c3aed);
|
|
155
|
+
}
|
|
156
|
+
.fanui-spinner--success {
|
|
157
|
+
--fanui-spinner-color: var(--fanui-success, #047857);
|
|
158
|
+
}
|
|
159
|
+
.fanui-spinner--warning {
|
|
160
|
+
--fanui-spinner-color: var(--fanui-warning, #b45309);
|
|
161
|
+
}
|
|
162
|
+
.fanui-spinner--danger {
|
|
163
|
+
--fanui-spinner-color: var(--fanui-danger, #b91c1c);
|
|
164
|
+
}
|
|
165
|
+
.fanui-spinner--info {
|
|
166
|
+
--fanui-spinner-color: var(--fanui-info, #0369a1);
|
|
167
|
+
}
|
|
168
|
+
.fanui-spinner--xs {
|
|
169
|
+
--fanui-spinner-size: 12px;
|
|
170
|
+
--fanui-spinner-width: 2px;
|
|
171
|
+
}
|
|
172
|
+
.fanui-spinner--sm {
|
|
173
|
+
--fanui-spinner-size: 16px;
|
|
174
|
+
--fanui-spinner-width: 2px;
|
|
175
|
+
}
|
|
176
|
+
.fanui-spinner--lg {
|
|
177
|
+
--fanui-spinner-size: 28px;
|
|
178
|
+
--fanui-spinner-width: 3px;
|
|
179
|
+
}
|
|
180
|
+
.fanui-spinner--xl {
|
|
181
|
+
--fanui-spinner-size: 40px;
|
|
182
|
+
--fanui-spinner-width: 4px;
|
|
183
|
+
}
|
|
184
|
+
.fanui-spinner--dots {
|
|
185
|
+
width: auto;
|
|
186
|
+
height: auto;
|
|
187
|
+
border: 0;
|
|
188
|
+
animation: none;
|
|
189
|
+
display: inline-flex;
|
|
190
|
+
gap: 5px;
|
|
191
|
+
}
|
|
192
|
+
.fanui-spinner--dots::before, .fanui-spinner--dots::after,
|
|
193
|
+
.fanui-spinner--dots > i {
|
|
194
|
+
content: "";
|
|
195
|
+
display: block;
|
|
196
|
+
width: 6px;
|
|
197
|
+
height: 6px;
|
|
198
|
+
border-radius: 50%;
|
|
199
|
+
background-color: var(--fanui-spinner-color);
|
|
200
|
+
animation: fanui-bounce 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
|
|
201
|
+
}
|
|
202
|
+
.fanui-spinner--dots::after {
|
|
203
|
+
animation-delay: 0.15s;
|
|
204
|
+
}
|
|
205
|
+
.fanui-spinner--dots > i {
|
|
206
|
+
animation-delay: 0.3s;
|
|
207
|
+
}
|
|
208
|
+
.fanui-spinner--pulse {
|
|
209
|
+
border: 0;
|
|
210
|
+
animation: fanui-pulse 1.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
|
|
211
|
+
background-color: var(--fanui-spinner-color);
|
|
212
|
+
border-radius: 50%;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.fanui-loading {
|
|
216
|
+
position: relative;
|
|
217
|
+
}
|
|
218
|
+
.fanui-loading__mask {
|
|
219
|
+
position: absolute;
|
|
220
|
+
inset: 0;
|
|
221
|
+
z-index: 10;
|
|
222
|
+
display: flex;
|
|
223
|
+
flex-direction: column;
|
|
224
|
+
align-items: center;
|
|
225
|
+
justify-content: center;
|
|
226
|
+
gap: var(--fanui-space-3);
|
|
227
|
+
color: var(--fanui-color-text-muted);
|
|
228
|
+
font-size: var(--fanui-font-size-sm);
|
|
229
|
+
background-color: rgba(255, 255, 255, 0.72);
|
|
230
|
+
backdrop-filter: blur(1px);
|
|
231
|
+
border-radius: inherit;
|
|
232
|
+
}
|
|
233
|
+
:root[data-fanui-theme=dark] .fanui-loading__mask {
|
|
234
|
+
background-color: rgba(2, 6, 23, 0.62);
|
|
235
|
+
}
|
|
236
|
+
.fanui-loading.is-loading {
|
|
237
|
+
pointer-events: none;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.fanui-skeleton {
|
|
241
|
+
--fanui-skeleton-bg: var(--fanui-color-surface-sunken);
|
|
242
|
+
--fanui-skeleton-shine: rgba(255, 255, 255, 0.55);
|
|
243
|
+
display: block;
|
|
244
|
+
width: 100%;
|
|
245
|
+
height: 1em;
|
|
246
|
+
border-radius: var(--fanui-radius-base);
|
|
247
|
+
background-color: var(--fanui-skeleton-bg);
|
|
248
|
+
background-image: linear-gradient(90deg, transparent 0%, var(--fanui-skeleton-shine) 50%, transparent 100%);
|
|
249
|
+
background-size: 200% 100%;
|
|
250
|
+
background-repeat: no-repeat;
|
|
251
|
+
animation: fanui-skeleton-shimmer 1.6s ease-in-out infinite;
|
|
252
|
+
}
|
|
253
|
+
:root[data-fanui-theme=dark] .fanui-skeleton {
|
|
254
|
+
--fanui-skeleton-shine: rgba(255, 255, 255, 0.08);
|
|
255
|
+
}
|
|
256
|
+
.fanui-skeleton--text {
|
|
257
|
+
height: 1em;
|
|
258
|
+
border-radius: var(--fanui-radius-sm);
|
|
259
|
+
}
|
|
260
|
+
.fanui-skeleton--title {
|
|
261
|
+
height: 1.4em;
|
|
262
|
+
width: 40%;
|
|
263
|
+
border-radius: var(--fanui-radius-sm);
|
|
264
|
+
}
|
|
265
|
+
.fanui-skeleton--circle {
|
|
266
|
+
width: 40px;
|
|
267
|
+
height: 40px;
|
|
268
|
+
border-radius: 50%;
|
|
269
|
+
flex: 0 0 auto;
|
|
270
|
+
}
|
|
271
|
+
.fanui-skeleton--rect {
|
|
272
|
+
height: 120px;
|
|
273
|
+
border-radius: var(--fanui-radius-md);
|
|
274
|
+
}
|
|
275
|
+
.fanui-skeleton--button {
|
|
276
|
+
height: 32px;
|
|
277
|
+
width: 88px;
|
|
278
|
+
border-radius: var(--fanui-radius-base);
|
|
279
|
+
}
|
|
280
|
+
.fanui-skeleton--w-25 {
|
|
281
|
+
width: 25%;
|
|
282
|
+
}
|
|
283
|
+
.fanui-skeleton--w-50 {
|
|
284
|
+
width: 50%;
|
|
285
|
+
}
|
|
286
|
+
.fanui-skeleton--w-75 {
|
|
287
|
+
width: 75%;
|
|
288
|
+
}
|
|
289
|
+
.fanui-skeleton--w-100 {
|
|
290
|
+
width: 100%;
|
|
291
|
+
}
|
|
292
|
+
.fanui-skeleton--no-anim {
|
|
293
|
+
animation: none;
|
|
294
|
+
background-image: none;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.fanui-skeleton-group {
|
|
298
|
+
display: flex;
|
|
299
|
+
flex-direction: column;
|
|
300
|
+
gap: var(--fanui-space-2);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.fanui-skeleton-media {
|
|
304
|
+
display: flex;
|
|
305
|
+
gap: var(--fanui-space-3);
|
|
306
|
+
align-items: flex-start;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.fanui-empty {
|
|
310
|
+
display: flex;
|
|
311
|
+
flex-direction: column;
|
|
312
|
+
align-items: center;
|
|
313
|
+
justify-content: center;
|
|
314
|
+
gap: var(--fanui-space-3);
|
|
315
|
+
padding: var(--fanui-space-12) var(--fanui-space-5);
|
|
316
|
+
text-align: center;
|
|
317
|
+
color: var(--fanui-color-text-muted);
|
|
318
|
+
}
|
|
319
|
+
.fanui-empty__icon {
|
|
320
|
+
display: flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
justify-content: center;
|
|
323
|
+
width: 64px;
|
|
324
|
+
height: 64px;
|
|
325
|
+
margin-bottom: var(--fanui-space-1);
|
|
326
|
+
font-size: 28px;
|
|
327
|
+
color: var(--fanui-color-text-subtle);
|
|
328
|
+
background-color: var(--fanui-color-surface-sunken);
|
|
329
|
+
border-radius: 50%;
|
|
330
|
+
}
|
|
331
|
+
.fanui-empty__title {
|
|
332
|
+
margin: 0;
|
|
333
|
+
font-size: var(--fanui-font-size-md);
|
|
334
|
+
font-weight: 600;
|
|
335
|
+
color: var(--fanui-color-text-strong);
|
|
336
|
+
}
|
|
337
|
+
.fanui-empty__desc {
|
|
338
|
+
margin: 0;
|
|
339
|
+
max-width: 380px;
|
|
340
|
+
font-size: var(--fanui-font-size-base);
|
|
341
|
+
line-height: 1.6;
|
|
342
|
+
color: var(--fanui-color-text-muted);
|
|
343
|
+
}
|
|
344
|
+
.fanui-empty__actions {
|
|
345
|
+
display: flex;
|
|
346
|
+
align-items: center;
|
|
347
|
+
gap: var(--fanui-space-3);
|
|
348
|
+
margin-top: var(--fanui-space-2);
|
|
349
|
+
}
|
|
350
|
+
.fanui-empty--sm {
|
|
351
|
+
padding: var(--fanui-space-6) var(--fanui-space-4);
|
|
352
|
+
}
|
|
353
|
+
.fanui-empty--inline {
|
|
354
|
+
flex-direction: row;
|
|
355
|
+
justify-content: flex-start;
|
|
356
|
+
text-align: start;
|
|
357
|
+
padding: var(--fanui-space-4);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
.fanui-result {
|
|
361
|
+
display: flex;
|
|
362
|
+
flex-direction: column;
|
|
363
|
+
align-items: center;
|
|
364
|
+
gap: var(--fanui-space-3);
|
|
365
|
+
padding: var(--fanui-space-12) var(--fanui-space-5);
|
|
366
|
+
text-align: center;
|
|
367
|
+
}
|
|
368
|
+
.fanui-result__icon {
|
|
369
|
+
display: flex;
|
|
370
|
+
align-items: center;
|
|
371
|
+
justify-content: center;
|
|
372
|
+
width: 56px;
|
|
373
|
+
height: 56px;
|
|
374
|
+
font-size: 26px;
|
|
375
|
+
border-radius: 50%;
|
|
376
|
+
color: var(--fanui-color-surface);
|
|
377
|
+
background-color: var(--fanui-color-text-muted);
|
|
378
|
+
}
|
|
379
|
+
.fanui-result__title {
|
|
380
|
+
font-size: var(--fanui-font-size-xl);
|
|
381
|
+
font-weight: 600;
|
|
382
|
+
color: var(--fanui-color-text-strong);
|
|
383
|
+
}
|
|
384
|
+
.fanui-result__desc {
|
|
385
|
+
max-width: 440px;
|
|
386
|
+
font-size: var(--fanui-font-size-base);
|
|
387
|
+
color: var(--fanui-color-text-muted);
|
|
388
|
+
}
|
|
389
|
+
.fanui-result--primary .fanui-result__icon {
|
|
390
|
+
background-color: var(--fanui-primary, #0e7490);
|
|
391
|
+
}
|
|
392
|
+
.fanui-result--accent .fanui-result__icon {
|
|
393
|
+
background-color: var(--fanui-accent, #7c3aed);
|
|
394
|
+
}
|
|
395
|
+
.fanui-result--success .fanui-result__icon {
|
|
396
|
+
background-color: var(--fanui-success, #047857);
|
|
397
|
+
}
|
|
398
|
+
.fanui-result--warning .fanui-result__icon {
|
|
399
|
+
background-color: var(--fanui-warning, #b45309);
|
|
400
|
+
}
|
|
401
|
+
.fanui-result--danger .fanui-result__icon {
|
|
402
|
+
background-color: var(--fanui-danger, #b91c1c);
|
|
403
|
+
}
|
|
404
|
+
.fanui-result--info .fanui-result__icon {
|
|
405
|
+
background-color: var(--fanui-info, #0369a1);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.fanui-top-progress {
|
|
409
|
+
position: fixed;
|
|
410
|
+
top: 0;
|
|
411
|
+
left: 0;
|
|
412
|
+
right: 0;
|
|
413
|
+
height: 2px;
|
|
414
|
+
z-index: var(--fanui-z-toast, 1090);
|
|
415
|
+
background-color: transparent;
|
|
416
|
+
overflow: hidden;
|
|
417
|
+
opacity: 0;
|
|
418
|
+
transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
|
|
419
|
+
}
|
|
420
|
+
.fanui-top-progress.is-active {
|
|
421
|
+
opacity: 1;
|
|
422
|
+
}
|
|
423
|
+
.fanui-top-progress.is-active::after {
|
|
424
|
+
content: "";
|
|
425
|
+
position: absolute;
|
|
426
|
+
top: 0;
|
|
427
|
+
bottom: 0;
|
|
428
|
+
width: 40%;
|
|
429
|
+
background-color: var(--fanui-primary);
|
|
430
|
+
border-radius: 9999px;
|
|
431
|
+
animation: fanui-progress-indeterminate 1.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
|
|
432
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
.fanui-progress{--fanui-progress-h:8px;--fanui-progress-radius:var(--fanui-radius-full);--fanui-progress-track:var(--fanui-color-surface-sunken);--fanui-progress-bar:var(--fanui-primary);position:relative;display:flex;width:100%;height:var(--fanui-progress-h);overflow:hidden;background-color:var(--fanui-progress-track);border-radius:var(--fanui-progress-radius);box-sizing:border-box}
|
|
2
|
+
.fanui-progress__bar{display:flex;align-items:center;justify-content:flex-end;width:0;height:100%;background-color:var(--fanui-progress-bar);border-radius:inherit;transition:width 300ms cubic-bezier(0,0,0.2,1) 0s}
|
|
3
|
+
.fanui-progress__label{padding:0 6px;font-size:10px;font-weight:600;line-height:1;color:var(--fanui-color-text-inverse);white-space:nowrap}
|
|
4
|
+
.fanui-progress--xs{--fanui-progress-h:3px}
|
|
5
|
+
.fanui-progress--sm{--fanui-progress-h:5px}
|
|
6
|
+
.fanui-progress--lg{--fanui-progress-h:12px}
|
|
7
|
+
.fanui-progress--xl{--fanui-progress-h:18px}
|
|
8
|
+
.fanui-progress--striped .fanui-progress__bar{background-image:linear-gradient(45deg,rgba(255,255,255,0.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.2) 50%,rgba(255,255,255,0.2) 75%,transparent 75%,transparent);background-size:1rem 1rem}
|
|
9
|
+
.fanui-progress--animated .fanui-progress__bar{animation:fanui-progress-stripes 1s linear infinite}
|
|
10
|
+
.fanui-progress--indeterminate .fanui-progress__bar{position:absolute;top:0;bottom:0;width:35%;animation:fanui-progress-indeterminate 1.6s cubic-bezier(0.4,0,0.2,1) infinite}
|
|
11
|
+
.fanui-progress--primary{--fanui-progress-bar:var(--fanui-primary,#0e7490)}
|
|
12
|
+
.fanui-progress--accent{--fanui-progress-bar:var(--fanui-accent,#7c3aed)}
|
|
13
|
+
.fanui-progress--success{--fanui-progress-bar:var(--fanui-success,#047857)}
|
|
14
|
+
.fanui-progress--warning{--fanui-progress-bar:var(--fanui-warning,#b45309)}
|
|
15
|
+
.fanui-progress--danger{--fanui-progress-bar:var(--fanui-danger,#b91c1c)}
|
|
16
|
+
.fanui-progress--info{--fanui-progress-bar:var(--fanui-info,#0369a1)}
|
|
17
|
+
.fanui-progress--neutral{--fanui-progress-bar:var(--fanui-color-text-muted)}
|
|
18
|
+
.fanui-progress-line{display:flex;align-items:center;gap:var(--fanui-space-3)}
|
|
19
|
+
.fanui-progress-line .fanui-progress{flex:1 1 auto}
|
|
20
|
+
.fanui-progress-line__text{flex:0 0 auto;min-width:40px;font-size:var(--fanui-font-size-sm);color:var(--fanui-color-text-muted);text-align:end;font-variant-numeric:tabular-nums}
|
|
21
|
+
.fanui-progress-ring{--fanui-ring-size:56px;--fanui-ring-width:6px;--fanui-ring-value:0;--fanui-ring-color:var(--fanui-primary);position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--fanui-ring-size);height:var(--fanui-ring-size);border-radius:50%;background:conic-gradient(var(--fanui-ring-color) calc(var(--fanui-ring-value) * 1%),var(--fanui-color-surface-sunken) 0)}
|
|
22
|
+
.fanui-progress-ring::before{content:"";position:absolute;inset:var(--fanui-ring-width);border-radius:50%;background-color:var(--fanui-color-surface)}
|
|
23
|
+
.fanui-progress-ring__text{position:relative;font-size:var(--fanui-font-size-sm);font-weight:600;color:var(--fanui-color-text-strong);font-variant-numeric:tabular-nums}
|
|
24
|
+
.fanui-progress-ring--sm{--fanui-ring-size:40px;--fanui-ring-width:4px}
|
|
25
|
+
.fanui-progress-ring--lg{--fanui-ring-size:80px;--fanui-ring-width:8px}
|
|
26
|
+
.fanui-spinner{--fanui-spinner-size:20px;--fanui-spinner-width:2px;--fanui-spinner-color:currentColor;display:inline-block;width:var(--fanui-spinner-size);height:var(--fanui-spinner-size);border:var(--fanui-spinner-width) solid rgba(100,116,139,0.25);border-top-color:var(--fanui-spinner-color);border-radius:50%;animation:fanui-spin 720ms linear infinite;box-sizing:border-box;flex:0 0 auto}
|
|
27
|
+
.fanui-spinner--primary{--fanui-spinner-color:var(--fanui-primary,#0e7490)}
|
|
28
|
+
.fanui-spinner--accent{--fanui-spinner-color:var(--fanui-accent,#7c3aed)}
|
|
29
|
+
.fanui-spinner--success{--fanui-spinner-color:var(--fanui-success,#047857)}
|
|
30
|
+
.fanui-spinner--warning{--fanui-spinner-color:var(--fanui-warning,#b45309)}
|
|
31
|
+
.fanui-spinner--danger{--fanui-spinner-color:var(--fanui-danger,#b91c1c)}
|
|
32
|
+
.fanui-spinner--info{--fanui-spinner-color:var(--fanui-info,#0369a1)}
|
|
33
|
+
.fanui-spinner--xs{--fanui-spinner-size:12px;--fanui-spinner-width:2px}
|
|
34
|
+
.fanui-spinner--sm{--fanui-spinner-size:16px;--fanui-spinner-width:2px}
|
|
35
|
+
.fanui-spinner--lg{--fanui-spinner-size:28px;--fanui-spinner-width:3px}
|
|
36
|
+
.fanui-spinner--xl{--fanui-spinner-size:40px;--fanui-spinner-width:4px}
|
|
37
|
+
.fanui-spinner--dots{width:auto;height:auto;border:0;animation:none;display:inline-flex;gap:5px}
|
|
38
|
+
.fanui-spinner--dots::before,.fanui-spinner--dots::after,.fanui-spinner--dots>i{content:"";display:block;width:6px;height:6px;border-radius:50%;background-color:var(--fanui-spinner-color);animation:fanui-bounce 1.2s cubic-bezier(0.4,0,0.2,1) infinite}
|
|
39
|
+
.fanui-spinner--dots::after{animation-delay:0.15s}
|
|
40
|
+
.fanui-spinner--dots>i{animation-delay:0.3s}
|
|
41
|
+
.fanui-spinner--pulse{border:0;animation:fanui-pulse 1.4s cubic-bezier(0.4,0,0.2,1) infinite;background-color:var(--fanui-spinner-color);border-radius:50%}
|
|
42
|
+
.fanui-loading{position:relative}
|
|
43
|
+
.fanui-loading__mask{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--fanui-space-3);color:var(--fanui-color-text-muted);font-size:var(--fanui-font-size-sm);background-color:rgba(255,255,255,0.72);backdrop-filter:blur(1px);border-radius:inherit}
|
|
44
|
+
:root[data-fanui-theme=dark] .fanui-loading__mask{background-color:rgba(2,6,23,0.62)}
|
|
45
|
+
.fanui-loading.is-loading{pointer-events:none}
|
|
46
|
+
.fanui-skeleton{--fanui-skeleton-bg:var(--fanui-color-surface-sunken);--fanui-skeleton-shine:rgba(255,255,255,0.55);display:block;width:100%;height:1em;border-radius:var(--fanui-radius-base);background-color:var(--fanui-skeleton-bg);background-image:linear-gradient(90deg,transparent 0%,var(--fanui-skeleton-shine) 50%,transparent 100%);background-size:200% 100%;background-repeat:no-repeat;animation:fanui-skeleton-shimmer 1.6s ease-in-out infinite}
|
|
47
|
+
:root[data-fanui-theme=dark] .fanui-skeleton{--fanui-skeleton-shine:rgba(255,255,255,0.08)}
|
|
48
|
+
.fanui-skeleton--text{height:1em;border-radius:var(--fanui-radius-sm)}
|
|
49
|
+
.fanui-skeleton--title{height:1.4em;width:40%;border-radius:var(--fanui-radius-sm)}
|
|
50
|
+
.fanui-skeleton--circle{width:40px;height:40px;border-radius:50%;flex:0 0 auto}
|
|
51
|
+
.fanui-skeleton--rect{height:120px;border-radius:var(--fanui-radius-md)}
|
|
52
|
+
.fanui-skeleton--button{height:32px;width:88px;border-radius:var(--fanui-radius-base)}
|
|
53
|
+
.fanui-skeleton--w-25{width:25%}
|
|
54
|
+
.fanui-skeleton--w-50{width:50%}
|
|
55
|
+
.fanui-skeleton--w-75{width:75%}
|
|
56
|
+
.fanui-skeleton--w-100{width:100%}
|
|
57
|
+
.fanui-skeleton--no-anim{animation:none;background-image:none}
|
|
58
|
+
.fanui-skeleton-group{display:flex;flex-direction:column;gap:var(--fanui-space-2)}
|
|
59
|
+
.fanui-skeleton-media{display:flex;gap:var(--fanui-space-3);align-items:flex-start}
|
|
60
|
+
.fanui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--fanui-space-3);padding:var(--fanui-space-12) var(--fanui-space-5);text-align:center;color:var(--fanui-color-text-muted)}
|
|
61
|
+
.fanui-empty__icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--fanui-space-1);font-size:28px;color:var(--fanui-color-text-subtle);background-color:var(--fanui-color-surface-sunken);border-radius:50%}
|
|
62
|
+
.fanui-empty__title{margin:0;font-size:var(--fanui-font-size-md);font-weight:600;color:var(--fanui-color-text-strong)}
|
|
63
|
+
.fanui-empty__desc{margin:0;max-width:380px;font-size:var(--fanui-font-size-base);line-height:1.6;color:var(--fanui-color-text-muted)}
|
|
64
|
+
.fanui-empty__actions{display:flex;align-items:center;gap:var(--fanui-space-3);margin-top:var(--fanui-space-2)}
|
|
65
|
+
.fanui-empty--sm{padding:var(--fanui-space-6) var(--fanui-space-4)}
|
|
66
|
+
.fanui-empty--inline{flex-direction:row;justify-content:flex-start;text-align:start;padding:var(--fanui-space-4)}
|
|
67
|
+
.fanui-result{display:flex;flex-direction:column;align-items:center;gap:var(--fanui-space-3);padding:var(--fanui-space-12) var(--fanui-space-5);text-align:center}
|
|
68
|
+
.fanui-result__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;font-size:26px;border-radius:50%;color:var(--fanui-color-surface);background-color:var(--fanui-color-text-muted)}
|
|
69
|
+
.fanui-result__title{font-size:var(--fanui-font-size-xl);font-weight:600;color:var(--fanui-color-text-strong)}
|
|
70
|
+
.fanui-result__desc{max-width:440px;font-size:var(--fanui-font-size-base);color:var(--fanui-color-text-muted)}
|
|
71
|
+
.fanui-result--primary .fanui-result__icon{background-color:var(--fanui-primary,#0e7490)}
|
|
72
|
+
.fanui-result--accent .fanui-result__icon{background-color:var(--fanui-accent,#7c3aed)}
|
|
73
|
+
.fanui-result--success .fanui-result__icon{background-color:var(--fanui-success,#047857)}
|
|
74
|
+
.fanui-result--warning .fanui-result__icon{background-color:var(--fanui-warning,#b45309)}
|
|
75
|
+
.fanui-result--danger .fanui-result__icon{background-color:var(--fanui-danger,#b91c1c)}
|
|
76
|
+
.fanui-result--info .fanui-result__icon{background-color:var(--fanui-info,#0369a1)}
|
|
77
|
+
.fanui-top-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:var(--fanui-z-toast,1090);background-color:transparent;overflow:hidden;opacity:0;transition:opacity 150ms cubic-bezier(0.4,0,0.2,1) 0s}
|
|
78
|
+
.fanui-top-progress.is-active{opacity:1}
|
|
79
|
+
.fanui-top-progress.is-active::after{content:"";position:absolute;top:0;bottom:0;width:40%;background-color:var(--fanui-primary);border-radius:9999px;animation:fanui-progress-indeterminate 1.4s cubic-bezier(0.4,0,0.2,1) infinite}
|