@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.
Files changed (127) hide show
  1. package/ACCESSIBILITY.md +61 -0
  2. package/CHANGELOG.md +112 -0
  3. package/COMMERCIAL-LICENSE.md +71 -0
  4. package/DESIGN-SYSTEM.md +294 -0
  5. package/LICENSE +661 -0
  6. package/README.md +348 -0
  7. package/USAGE.md +1926 -0
  8. package/_index.scss +20 -0
  9. package/dist/fanui.cjs +15 -0
  10. package/dist/fanui.css +28209 -0
  11. package/dist/fanui.d.ts +353 -0
  12. package/dist/fanui.esm.js +71 -0
  13. package/dist/fanui.js +4782 -0
  14. package/dist/fanui.min.css +1 -0
  15. package/dist/fanui.mjs +71 -0
  16. package/dist/modules/fanui-advanced.css +830 -0
  17. package/dist/modules/fanui-advanced.min.css +129 -0
  18. package/dist/modules/fanui-alert.css +575 -0
  19. package/dist/modules/fanui-alert.min.css +122 -0
  20. package/dist/modules/fanui-badge.css +426 -0
  21. package/dist/modules/fanui-badge.min.css +77 -0
  22. package/dist/modules/fanui-base.css +1394 -0
  23. package/dist/modules/fanui-base.min.css +236 -0
  24. package/dist/modules/fanui-blog.css +762 -0
  25. package/dist/modules/fanui-blog.min.css +108 -0
  26. package/dist/modules/fanui-button.css +526 -0
  27. package/dist/modules/fanui-button.min.css +56 -0
  28. package/dist/modules/fanui-card.css +291 -0
  29. package/dist/modules/fanui-card.min.css +52 -0
  30. package/dist/modules/fanui-choice.css +539 -0
  31. package/dist/modules/fanui-choice.min.css +83 -0
  32. package/dist/modules/fanui-dashboard.css +1057 -0
  33. package/dist/modules/fanui-dashboard.min.css +160 -0
  34. package/dist/modules/fanui-data.css +687 -0
  35. package/dist/modules/fanui-data.min.css +125 -0
  36. package/dist/modules/fanui-feedback.css +432 -0
  37. package/dist/modules/fanui-feedback.min.css +79 -0
  38. package/dist/modules/fanui-form.css +779 -0
  39. package/dist/modules/fanui-form.min.css +123 -0
  40. package/dist/modules/fanui-glass.css +497 -0
  41. package/dist/modules/fanui-glass.min.css +46 -0
  42. package/dist/modules/fanui-input-plus.css +799 -0
  43. package/dist/modules/fanui-input-plus.min.css +124 -0
  44. package/dist/modules/fanui-interactive.css +960 -0
  45. package/dist/modules/fanui-interactive.min.css +138 -0
  46. package/dist/modules/fanui-layout.css +4399 -0
  47. package/dist/modules/fanui-layout.min.css +1172 -0
  48. package/dist/modules/fanui-marketing.css +1125 -0
  49. package/dist/modules/fanui-marketing.min.css +144 -0
  50. package/dist/modules/fanui-nav.css +458 -0
  51. package/dist/modules/fanui-nav.min.css +76 -0
  52. package/dist/modules/fanui-overlay.css +547 -0
  53. package/dist/modules/fanui-overlay.min.css +91 -0
  54. package/dist/modules/fanui-table.css +290 -0
  55. package/dist/modules/fanui-table.min.css +62 -0
  56. package/dist/modules/fanui-tabs.css +333 -0
  57. package/dist/modules/fanui-tabs.min.css +58 -0
  58. package/dist/modules/fanui-themes.css +2728 -0
  59. package/dist/modules/fanui-themes.min.css +40 -0
  60. package/dist/modules/fanui-tokens.css +587 -0
  61. package/dist/modules/fanui-tokens.min.css +3 -0
  62. package/dist/modules/fanui-utilities.css +6557 -0
  63. package/dist/modules/fanui-utilities.min.css +1762 -0
  64. package/dist/modules/sizes.json +103 -0
  65. package/docs/MIGRATION-v2.md +179 -0
  66. package/examples/01-script-tag.html +149 -0
  67. package/examples/02-react/README.md +39 -0
  68. package/examples/02-react/index.html +12 -0
  69. package/examples/02-react/package.json +20 -0
  70. package/examples/02-react/src/App.jsx +108 -0
  71. package/examples/02-react/src/main.jsx +13 -0
  72. package/examples/02-react/src/useFanUI.js +87 -0
  73. package/examples/02-react/vite.config.js +6 -0
  74. package/examples/03-vue3/README.md +67 -0
  75. package/examples/03-vue3/index.html +12 -0
  76. package/examples/03-vue3/package.json +19 -0
  77. package/examples/03-vue3/src/App.vue +93 -0
  78. package/examples/03-vue3/src/main.js +8 -0
  79. package/examples/03-vue3/src/useFanUI.js +85 -0
  80. package/examples/03-vue3/vite.config.js +6 -0
  81. package/examples/04-vue2-cdn.html +93 -0
  82. package/examples/README.md +34 -0
  83. package/package.json +127 -0
  84. package/src/_functions.scss +319 -0
  85. package/src/_mixins.scss +1202 -0
  86. package/src/_tokens.scss +180 -0
  87. package/src/_variables.scss +491 -0
  88. package/src/base/_animations.scss +210 -0
  89. package/src/base/_reset.scss +359 -0
  90. package/src/base/_rtl.scss +133 -0
  91. package/src/base/_typography.scss +353 -0
  92. package/src/components/_advanced.scss +763 -0
  93. package/src/components/_alert.scss +322 -0
  94. package/src/components/_badge.scss +279 -0
  95. package/src/components/_blog.scss +693 -0
  96. package/src/components/_button.scss +351 -0
  97. package/src/components/_capabilities.scss +463 -0
  98. package/src/components/_card.scss +281 -0
  99. package/src/components/_choice.scss +444 -0
  100. package/src/components/_dashboard.scss +950 -0
  101. package/src/components/_data.scss +618 -0
  102. package/src/components/_feedback.scss +403 -0
  103. package/src/components/_form.scss +408 -0
  104. package/src/components/_glass.scss +374 -0
  105. package/src/components/_input-plus.scss +730 -0
  106. package/src/components/_interactive.scss +885 -0
  107. package/src/components/_marketing.scss +982 -0
  108. package/src/components/_nav.scss +480 -0
  109. package/src/components/_overlay.scss +517 -0
  110. package/src/components/_table.scss +276 -0
  111. package/src/components/_tabs.scss +338 -0
  112. package/src/fanui.d.ts +353 -0
  113. package/src/fanui.js +4782 -0
  114. package/src/fanui.scss +79 -0
  115. package/src/glass/_switches.scss +36 -0
  116. package/src/glass/_tokens.scss +259 -0
  117. package/src/layout/_container.scss +111 -0
  118. package/src/layout/_flex.scss +164 -0
  119. package/src/layout/_grid.scss +180 -0
  120. package/src/themes/_accents.scss +201 -0
  121. package/src/themes/_palettes.scss +180 -0
  122. package/src/utilities/_borders.scss +104 -0
  123. package/src/utilities/_display.scss +145 -0
  124. package/src/utilities/_effects.scss +210 -0
  125. package/src/utilities/_sizing.scss +123 -0
  126. package/src/utilities/_spacing.scss +118 -0
  127. package/src/utilities/_texture.scss +323 -0
@@ -0,0 +1,587 @@
1
+ /* fanUI v2.1.0 · module: tokens(独立产物,自带令牌) */
2
+ :root {
3
+ --fanui-primary-50: #ecfeff;
4
+ --fanui-primary-100: #cffafe;
5
+ --fanui-primary-200: #a5f3fc;
6
+ --fanui-primary-300: #67e8f9;
7
+ --fanui-primary-400: #22d3ee;
8
+ --fanui-primary-500: #06b6d4;
9
+ --fanui-primary-600: #0891b2;
10
+ --fanui-primary-700: #0e7490;
11
+ --fanui-primary-800: #155e75;
12
+ --fanui-primary-900: #164e63;
13
+ --fanui-primary-950: #083344;
14
+ --fanui-accent-50: #f5f3ff;
15
+ --fanui-accent-100: #ede9fe;
16
+ --fanui-accent-200: #ddd6fe;
17
+ --fanui-accent-300: #c4b5fd;
18
+ --fanui-accent-400: #a78bfa;
19
+ --fanui-accent-500: #8b5cf6;
20
+ --fanui-accent-600: #7c3aed;
21
+ --fanui-accent-700: #6d28d9;
22
+ --fanui-accent-800: #5b21b6;
23
+ --fanui-accent-900: #4c1d95;
24
+ --fanui-accent-950: #2e1065;
25
+ --fanui-success-50: #ecfdf5;
26
+ --fanui-success-100: #d1fae5;
27
+ --fanui-success-200: #a7f3d0;
28
+ --fanui-success-300: #6ee7b7;
29
+ --fanui-success-400: #34d399;
30
+ --fanui-success-500: #10b981;
31
+ --fanui-success-600: #059669;
32
+ --fanui-success-700: #047857;
33
+ --fanui-success-800: #065f46;
34
+ --fanui-success-900: #064e3b;
35
+ --fanui-success-950: #022c22;
36
+ --fanui-warning-50: #fffbeb;
37
+ --fanui-warning-100: #fef3c7;
38
+ --fanui-warning-200: #fde68a;
39
+ --fanui-warning-300: #fcd34d;
40
+ --fanui-warning-400: #fbbf24;
41
+ --fanui-warning-500: #f59e0b;
42
+ --fanui-warning-600: #d97706;
43
+ --fanui-warning-700: #b45309;
44
+ --fanui-warning-800: #92400e;
45
+ --fanui-warning-900: #78350f;
46
+ --fanui-warning-950: #451a03;
47
+ --fanui-danger-50: #fef2f2;
48
+ --fanui-danger-100: #fee2e2;
49
+ --fanui-danger-200: #fecaca;
50
+ --fanui-danger-300: #fca5a5;
51
+ --fanui-danger-400: #f87171;
52
+ --fanui-danger-500: #ef4444;
53
+ --fanui-danger-600: #dc2626;
54
+ --fanui-danger-700: #b91c1c;
55
+ --fanui-danger-800: #991b1b;
56
+ --fanui-danger-900: #7f1d1d;
57
+ --fanui-danger-950: #450a0a;
58
+ --fanui-info-50: #f0f9ff;
59
+ --fanui-info-100: #e0f2fe;
60
+ --fanui-info-200: #bae6fd;
61
+ --fanui-info-300: #7dd3fc;
62
+ --fanui-info-400: #38bdf8;
63
+ --fanui-info-500: #0ea5e9;
64
+ --fanui-info-600: #0284c7;
65
+ --fanui-info-700: #0369a1;
66
+ --fanui-info-800: #075985;
67
+ --fanui-info-900: #0c4a6e;
68
+ --fanui-info-950: #082f49;
69
+ --fanui-neutral-0: #ffffff;
70
+ --fanui-neutral-50: #f8fafc;
71
+ --fanui-neutral-100: #f1f5f9;
72
+ --fanui-neutral-200: #e2e8f0;
73
+ --fanui-neutral-300: #cbd5e1;
74
+ --fanui-neutral-400: #94a3b8;
75
+ --fanui-neutral-500: #64748b;
76
+ --fanui-neutral-600: #475569;
77
+ --fanui-neutral-700: #334155;
78
+ --fanui-neutral-800: #1e293b;
79
+ --fanui-neutral-900: #0f172a;
80
+ --fanui-neutral-950: #020617;
81
+ --fanui-color-bg: #f1f5f9;
82
+ --fanui-color-bg-subtle: #f8fafc;
83
+ --fanui-color-surface: #ffffff;
84
+ --fanui-color-surface-raised: #ffffff;
85
+ --fanui-color-surface-sunken: #f1f5f9;
86
+ --fanui-color-overlay: #ffffff;
87
+ --fanui-color-text: #0f172a;
88
+ --fanui-color-text-strong: #020617;
89
+ --fanui-color-text-muted: #475569;
90
+ --fanui-color-text-subtle: #5b6b80;
91
+ --fanui-color-text-inverse: #ffffff;
92
+ --fanui-color-border: #e2e8f0;
93
+ --fanui-color-border-subtle: #f1f5f9;
94
+ --fanui-color-border-strong: #cbd5e1;
95
+ --fanui-color-hover: #f1f5f9;
96
+ --fanui-color-active: #e2e8f0;
97
+ --fanui-color-disabled-bg: #f1f5f9;
98
+ --fanui-color-disabled-text: #5b6b80;
99
+ --fanui-glass-intensity: 1;
100
+ --fanui-glass-blur-base: 22px;
101
+ --fanui-glass-blur-mode-k: 1;
102
+ --fanui-glass-tint-base: 0.3;
103
+ --fanui-glass-tint-k: 0.24;
104
+ --fanui-glass-tint-rgb: 255, 255, 255;
105
+ --fanui-glass-sat-k: 70%;
106
+ --fanui-glass-bri-k: 8%;
107
+ --fanui-glass-sheen-a: 0.16;
108
+ --fanui-glass-border-rgb: 255, 255, 255;
109
+ --fanui-glass-border-a: 0.4;
110
+ --fanui-glass-border-k: 0.3;
111
+ --fanui-glass-edge-hi-a: 0.55;
112
+ --fanui-glass-edge-lo-a: 0.06;
113
+ --fanui-glass-edge-angle: 150deg;
114
+ --fanui-glass-edge-alpha: 1;
115
+ --fanui-glass-specular-rgb: 255, 255, 255;
116
+ --fanui-glass-specular-a: 0.55;
117
+ --fanui-glass-specular-alpha: 1;
118
+ --fanui-glass-specular-size-base: 140px;
119
+ --fanui-glass-specular-size-k: 160px;
120
+ --fanui-glass-shadow-rgb: 2, 6, 23;
121
+ --fanui-glass-shadow-a: 0.14;
122
+ --fanui-glass-shadow-k: 0.10;
123
+ --fanui-glass-shadow-y-k: 8px;
124
+ --fanui-glass-shadow-blur-k: 30px;
125
+ --fanui-glass-shadow-spread-k: -12px;
126
+ --fanui-glass-inner-hi: 0.42;
127
+ --fanui-glass-divider-rgb: 15, 23, 42;
128
+ --fanui-glass-divider-a: 0.08;
129
+ --fanui-glass-text-shadow: 0 1px 1px rgba(15, 23, 42, 0.05);
130
+ --fanui-glass-mx: 30%;
131
+ --fanui-glass-my: 0%;
132
+ --fanui-glass-surface-rgb: 255, 255, 255;
133
+ --fanui-glass-border-solid-rgb: 226, 232, 240;
134
+ --fanui-glass-fallback-bg: var(--fanui-color-surface);
135
+ --fanui-glass-filter: blur(calc(22px * var(--fanui-glass-intensity) * 1))
136
+ saturate(calc(100% + 70% * var(--fanui-glass-intensity)))
137
+ brightness(calc(100% + 8% * var(--fanui-glass-intensity)));
138
+ --fanui-glass-bg: rgba(
139
+ 255, 255, 255,
140
+ calc(0.3 + 0.24 * var(--fanui-glass-intensity))
141
+ );
142
+ --fanui-glass-sheen: linear-gradient(
143
+ 180deg,
144
+ rgba(255, 255, 255, calc(0.16 * var(--fanui-glass-intensity))) 0%,
145
+ rgba(255, 255, 255, 0) 46%
146
+ );
147
+ --fanui-glass-border-width: 1px;
148
+ --fanui-glass-border: rgba(255, 255, 255, calc(0.4 + 0.3 * var(--fanui-glass-intensity)));
149
+ --fanui-glass-edge-width: calc(1px + 0.5px * var(--fanui-glass-intensity));
150
+ --fanui-glass-edge-hi: rgba(255, 255, 255, calc(0.55 * min(1, var(--fanui-glass-intensity))));
151
+ --fanui-glass-edge-lo: rgba(255, 255, 255, calc(0.06 * var(--fanui-glass-intensity)));
152
+ --fanui-glass-specular: rgba(
153
+ 255,
154
+ 255,
155
+ 255,
156
+ calc(0.55 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha))
157
+ );
158
+ --fanui-glass-specular-size: calc(140px + 160px * var(--fanui-glass-intensity));
159
+ --fanui-glass-layer: radial-gradient(
160
+ var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx, 30%) var(--fanui-glass-my, 0%),
161
+ var(--fanui-glass-specular),
162
+ transparent 70%
163
+ ),
164
+ var(--fanui-glass-sheen);
165
+ --fanui-glass-shadow:
166
+ 0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity))
167
+ calc(-12px * var(--fanui-glass-intensity))
168
+ rgba(2, 6, 23, calc(0.14 + 0.10 * var(--fanui-glass-intensity))),
169
+ inset 0 1px 0 rgba(255, 255, 255, calc(0.42 * min(1, var(--fanui-glass-intensity))));
170
+ --fanui-glass-divider: rgba(15, 23, 42, calc(0.08 * var(--fanui-glass-intensity)));
171
+ --fanui-font-sans: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
172
+ --fanui-font-serif: Georgia, Cambria, Times New Roman, Songti SC, SimSun, serif;
173
+ --fanui-font-mono: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, Courier New, monospace;
174
+ --fanui-font-base: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
175
+ --fanui-font-size-xs: 0.75rem;
176
+ --fanui-font-size-xs-px: 12px;
177
+ --fanui-font-size-sm: 0.8125rem;
178
+ --fanui-font-size-sm-px: 13px;
179
+ --fanui-font-size-base: 0.875rem;
180
+ --fanui-font-size-base-px: 14px;
181
+ --fanui-font-size-md: 1rem;
182
+ --fanui-font-size-md-px: 16px;
183
+ --fanui-font-size-lg: 1.125rem;
184
+ --fanui-font-size-lg-px: 18px;
185
+ --fanui-font-size-xl: 1.25rem;
186
+ --fanui-font-size-xl-px: 20px;
187
+ --fanui-font-size-2xl: 1.5rem;
188
+ --fanui-font-size-2xl-px: 24px;
189
+ --fanui-font-size-3xl: 1.875rem;
190
+ --fanui-font-size-3xl-px: 30px;
191
+ --fanui-font-size-4xl: 2.25rem;
192
+ --fanui-font-size-4xl-px: 36px;
193
+ --fanui-font-size-5xl: 3rem;
194
+ --fanui-font-size-5xl-px: 48px;
195
+ --fanui-font-size-6xl: 3.75rem;
196
+ --fanui-font-size-6xl-px: 60px;
197
+ --fanui-line-height-none: 1;
198
+ --fanui-line-height-tight: 1.25;
199
+ --fanui-line-height-snug: 1.375;
200
+ --fanui-line-height-normal: 1.5;
201
+ --fanui-line-height-base: 1.5715;
202
+ --fanui-line-height-relaxed: 1.625;
203
+ --fanui-line-height-loose: 2;
204
+ --fanui-font-weight-light: 300;
205
+ --fanui-font-weight-normal: 400;
206
+ --fanui-font-weight-medium: 500;
207
+ --fanui-font-weight-semibold: 600;
208
+ --fanui-font-weight-bold: 700;
209
+ --fanui-font-weight-extrabold: 800;
210
+ --fanui-tracking-tighter: -0.05em;
211
+ --fanui-tracking-tight: -0.025em;
212
+ --fanui-tracking-normal: 0;
213
+ --fanui-tracking-wide: 0.025em;
214
+ --fanui-tracking-wider: 0.05em;
215
+ --fanui-tracking-widest: 0.1em;
216
+ --fanui-space-0: 0;
217
+ --fanui-space-1: 4px;
218
+ --fanui-space-2: 8px;
219
+ --fanui-space-3: 12px;
220
+ --fanui-space-4: 16px;
221
+ --fanui-space-5: 20px;
222
+ --fanui-space-6: 24px;
223
+ --fanui-space-7: 28px;
224
+ --fanui-space-8: 32px;
225
+ --fanui-space-10: 40px;
226
+ --fanui-space-12: 48px;
227
+ --fanui-space-16: 64px;
228
+ --fanui-space-20: 80px;
229
+ --fanui-space-24: 96px;
230
+ --fanui-space-auto: auto;
231
+ --fanui-radius-none: 0;
232
+ --fanui-radius-sm: 2px;
233
+ --fanui-radius-base: 6px;
234
+ --fanui-radius-md: 8px;
235
+ --fanui-radius-lg: 12px;
236
+ --fanui-radius-xl: 16px;
237
+ --fanui-radius-2xl: 24px;
238
+ --fanui-radius-full: 9999px;
239
+ --fanui-radius: 6px;
240
+ --fanui-shadow-none: none;
241
+ --fanui-shadow-xs: 0 1px 2px 0 rgba(15, 23, 42, 0.05);
242
+ --fanui-shadow-sm: 0 1px 3px 0 rgba(15, 23, 42, 0.1), 0 1px 2px -1px rgba(15, 23, 42, 0.1);
243
+ --fanui-shadow-base: 0 4px 6px -1px rgba(15, 23, 42, 0.1), 0 2px 4px -2px rgba(15, 23, 42, 0.06);
244
+ --fanui-shadow-md: 0 6px 12px -2px rgba(15, 23, 42, 0.12), 0 3px 6px -3px rgba(15, 23, 42, 0.08);
245
+ --fanui-shadow-lg: 0 12px 20px -4px rgba(15, 23, 42, 0.14), 0 4px 8px -4px rgba(15, 23, 42, 0.08);
246
+ --fanui-shadow-xl: 0 20px 32px -8px rgba(15, 23, 42, 0.18), 0 8px 16px -8px rgba(15, 23, 42, 0.1);
247
+ --fanui-shadow-2xl: 0 32px 64px -16px rgba(15, 23, 42, 0.24);
248
+ --fanui-shadow-inner: inset 0 2px 4px 0 rgba(15, 23, 42, 0.06);
249
+ --fanui-z-dropdown: 1000;
250
+ --fanui-z-sticky: 1020;
251
+ --fanui-z-fixed: 1030;
252
+ --fanui-z-backdrop: 1040;
253
+ --fanui-z-offcanvas: 1050;
254
+ --fanui-z-modal: 1060;
255
+ --fanui-z-popover: 1070;
256
+ --fanui-z-tooltip: 1080;
257
+ --fanui-z-toast: 1090;
258
+ --fanui-duration-instant: 100ms;
259
+ --fanui-duration-fast: 150ms;
260
+ --fanui-duration-base: 200ms;
261
+ --fanui-duration-slow: 300ms;
262
+ --fanui-duration-slower: 500ms;
263
+ --fanui-ease-linear: linear;
264
+ --fanui-ease-in: cubic-bezier(0.4, 0, 1, 1);
265
+ --fanui-ease-out: cubic-bezier(0, 0, 0.2, 1);
266
+ --fanui-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
267
+ --fanui-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
268
+ --fanui-ease-base: cubic-bezier(0.4, 0, 0.2, 1);
269
+ --fanui-control-h-xs: 24px;
270
+ --fanui-control-h-sm: 28px;
271
+ --fanui-control-h-md: 32px;
272
+ --fanui-control-h-base: 36px;
273
+ --fanui-control-h-lg: 40px;
274
+ --fanui-control-h-xl: 48px;
275
+ --fanui-control-h: 36px;
276
+ --fanui-control-px: 14px;
277
+ --fanui-control-font-size: 14px;
278
+ --fanui-control-radius: 6px;
279
+ --fanui-border-width: 1px;
280
+ --fanui-border-width-thick: 2px;
281
+ --fanui-grid-columns: 12;
282
+ --fanui-grid-gutter-x: 24px;
283
+ --fanui-grid-gutter-y: 0;
284
+ --fanui-gutter-x: 24px;
285
+ --fanui-gutter-y: 0;
286
+ --fanui-backdrop-bg: rgba(15, 23, 42, 0.55);
287
+ --fanui-backdrop-blur: 2px;
288
+ --fanui-focus-ring-color: var(--fanui-primary-ring);
289
+ --fanui-focus-ring-width: 3px;
290
+ --fanui-focus-ring-offset: 1px;
291
+ --fanui-bp-xs: 0;
292
+ --fanui-bp-sm: 576px;
293
+ --fanui-bp-md: 768px;
294
+ --fanui-bp-lg: 992px;
295
+ --fanui-bp-xl: 1200px;
296
+ --fanui-bp-xxl: 1400px;
297
+ --fanui-container-max-sm: 540px;
298
+ --fanui-container-max-md: 720px;
299
+ --fanui-container-max-lg: 960px;
300
+ --fanui-container-max-xl: 1140px;
301
+ --fanui-container-max-xxl: 1320px;
302
+ --fanui-container-px: 16px;
303
+ }
304
+
305
+ [data-fanui-theme=dark],
306
+ :root[data-fanui-theme=dark] {
307
+ --fanui-color-bg: #020617;
308
+ --fanui-color-bg-subtle: #0f172a;
309
+ --fanui-color-surface: #0f172a;
310
+ --fanui-color-surface-raised: #1e293b;
311
+ --fanui-color-surface-sunken: #020617;
312
+ --fanui-color-overlay: #1e293b;
313
+ --fanui-color-text: #e8edf5;
314
+ --fanui-color-text-strong: #ffffff;
315
+ --fanui-color-text-muted: #94a3b8;
316
+ --fanui-color-text-subtle: #8592a6;
317
+ --fanui-color-text-inverse: #020617;
318
+ --fanui-color-border: #2b3648;
319
+ --fanui-color-border-subtle: #222c3c;
320
+ --fanui-color-border-strong: #3d4a60;
321
+ --fanui-color-hover: #1d2736;
322
+ --fanui-color-active: #26313f;
323
+ --fanui-color-disabled-bg: #1a2332;
324
+ --fanui-color-disabled-text: #8592a6;
325
+ --fanui-backdrop-bg: rgba(2, 6, 23, 0.68);
326
+ --fanui-glass-intensity: 1;
327
+ --fanui-glass-blur-base: 24px;
328
+ --fanui-glass-blur-mode-k: 1.09;
329
+ --fanui-glass-tint-base: 0.46;
330
+ --fanui-glass-tint-k: 0.28;
331
+ --fanui-glass-tint-rgb: 12, 19, 33;
332
+ --fanui-glass-sat-k: 56%;
333
+ --fanui-glass-bri-k: 10%;
334
+ --fanui-glass-sheen-a: 0.09;
335
+ --fanui-glass-border-rgb: 255, 255, 255;
336
+ --fanui-glass-border-a: 0.16;
337
+ --fanui-glass-border-k: 0.16;
338
+ --fanui-glass-edge-hi-a: 0.26;
339
+ --fanui-glass-edge-lo-a: 0.05;
340
+ --fanui-glass-edge-angle: 150deg;
341
+ --fanui-glass-edge-alpha: 1;
342
+ --fanui-glass-specular-rgb: 255, 255, 255;
343
+ --fanui-glass-specular-a: 0.15;
344
+ --fanui-glass-specular-alpha: 1;
345
+ --fanui-glass-specular-size-base: 140px;
346
+ --fanui-glass-specular-size-k: 160px;
347
+ --fanui-glass-shadow-rgb: 2, 6, 23;
348
+ --fanui-glass-shadow-a: 0.45;
349
+ --fanui-glass-shadow-k: 0.10;
350
+ --fanui-glass-shadow-y-k: 8px;
351
+ --fanui-glass-shadow-blur-k: 30px;
352
+ --fanui-glass-shadow-spread-k: -12px;
353
+ --fanui-glass-inner-hi: 0.14;
354
+ --fanui-glass-divider-rgb: 255, 255, 255;
355
+ --fanui-glass-divider-a: 0.1;
356
+ --fanui-glass-text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
357
+ --fanui-glass-mx: 30%;
358
+ --fanui-glass-my: 0%;
359
+ --fanui-glass-surface-rgb: 15, 23, 42;
360
+ --fanui-glass-border-solid-rgb: 43, 54, 72;
361
+ --fanui-glass-fallback-bg: var(--fanui-color-surface);
362
+ --fanui-glass-filter: blur(calc(24px * var(--fanui-glass-intensity) * 1.09))
363
+ saturate(calc(100% + 56% * var(--fanui-glass-intensity)))
364
+ brightness(calc(100% + 10% * var(--fanui-glass-intensity)));
365
+ --fanui-glass-bg: rgba(
366
+ 12, 19, 33,
367
+ calc(0.46 + 0.28 * var(--fanui-glass-intensity))
368
+ );
369
+ --fanui-glass-sheen: linear-gradient(
370
+ 180deg,
371
+ rgba(255, 255, 255, calc(0.09 * var(--fanui-glass-intensity))) 0%,
372
+ rgba(255, 255, 255, 0) 46%
373
+ );
374
+ --fanui-glass-border-width: 1px;
375
+ --fanui-glass-border: rgba(255, 255, 255, calc(0.16 + 0.16 * var(--fanui-glass-intensity)));
376
+ --fanui-glass-edge-width: calc(1px + 0.5px * var(--fanui-glass-intensity));
377
+ --fanui-glass-edge-hi: rgba(255, 255, 255, calc(0.26 * min(1, var(--fanui-glass-intensity))));
378
+ --fanui-glass-edge-lo: rgba(255, 255, 255, calc(0.05 * var(--fanui-glass-intensity)));
379
+ --fanui-glass-specular: rgba(
380
+ 255,
381
+ 255,
382
+ 255,
383
+ calc(0.15 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha))
384
+ );
385
+ --fanui-glass-specular-size: calc(140px + 160px * var(--fanui-glass-intensity));
386
+ --fanui-glass-layer: radial-gradient(
387
+ var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx, 30%) var(--fanui-glass-my, 0%),
388
+ var(--fanui-glass-specular),
389
+ transparent 70%
390
+ ),
391
+ var(--fanui-glass-sheen);
392
+ --fanui-glass-shadow:
393
+ 0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity))
394
+ calc(-12px * var(--fanui-glass-intensity))
395
+ rgba(2, 6, 23, calc(0.45 + 0.10 * var(--fanui-glass-intensity))),
396
+ inset 0 1px 0 rgba(255, 255, 255, calc(0.14 * min(1, var(--fanui-glass-intensity))));
397
+ --fanui-glass-divider: rgba(255, 255, 255, calc(0.1 * var(--fanui-glass-intensity)));
398
+ }
399
+
400
+ @media (prefers-color-scheme: dark) {
401
+ [data-fanui-theme=auto],
402
+ :root[data-fanui-theme=auto] {
403
+ --fanui-color-bg: #020617;
404
+ --fanui-color-bg-subtle: #0f172a;
405
+ --fanui-color-surface: #0f172a;
406
+ --fanui-color-surface-raised: #1e293b;
407
+ --fanui-color-surface-sunken: #020617;
408
+ --fanui-color-overlay: #1e293b;
409
+ --fanui-color-text: #e8edf5;
410
+ --fanui-color-text-strong: #ffffff;
411
+ --fanui-color-text-muted: #94a3b8;
412
+ --fanui-color-text-subtle: #8592a6;
413
+ --fanui-color-text-inverse: #020617;
414
+ --fanui-color-border: #2b3648;
415
+ --fanui-color-border-subtle: #222c3c;
416
+ --fanui-color-border-strong: #3d4a60;
417
+ --fanui-color-hover: #1d2736;
418
+ --fanui-color-active: #26313f;
419
+ --fanui-color-disabled-bg: #1a2332;
420
+ --fanui-color-disabled-text: #8592a6;
421
+ --fanui-backdrop-bg: rgba(2, 6, 23, 0.68);
422
+ --fanui-glass-intensity: 1;
423
+ --fanui-glass-blur-base: 24px;
424
+ --fanui-glass-blur-mode-k: 1.09;
425
+ --fanui-glass-tint-base: 0.46;
426
+ --fanui-glass-tint-k: 0.28;
427
+ --fanui-glass-tint-rgb: 12, 19, 33;
428
+ --fanui-glass-sat-k: 56%;
429
+ --fanui-glass-bri-k: 10%;
430
+ --fanui-glass-sheen-a: 0.09;
431
+ --fanui-glass-border-rgb: 255, 255, 255;
432
+ --fanui-glass-border-a: 0.16;
433
+ --fanui-glass-border-k: 0.16;
434
+ --fanui-glass-edge-hi-a: 0.26;
435
+ --fanui-glass-edge-lo-a: 0.05;
436
+ --fanui-glass-edge-angle: 150deg;
437
+ --fanui-glass-edge-alpha: 1;
438
+ --fanui-glass-specular-rgb: 255, 255, 255;
439
+ --fanui-glass-specular-a: 0.15;
440
+ --fanui-glass-specular-alpha: 1;
441
+ --fanui-glass-specular-size-base: 140px;
442
+ --fanui-glass-specular-size-k: 160px;
443
+ --fanui-glass-shadow-rgb: 2, 6, 23;
444
+ --fanui-glass-shadow-a: 0.45;
445
+ --fanui-glass-shadow-k: 0.10;
446
+ --fanui-glass-shadow-y-k: 8px;
447
+ --fanui-glass-shadow-blur-k: 30px;
448
+ --fanui-glass-shadow-spread-k: -12px;
449
+ --fanui-glass-inner-hi: 0.14;
450
+ --fanui-glass-divider-rgb: 255, 255, 255;
451
+ --fanui-glass-divider-a: 0.1;
452
+ --fanui-glass-text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
453
+ --fanui-glass-mx: 30%;
454
+ --fanui-glass-my: 0%;
455
+ --fanui-glass-surface-rgb: 15, 23, 42;
456
+ --fanui-glass-border-solid-rgb: 43, 54, 72;
457
+ --fanui-glass-fallback-bg: var(--fanui-color-surface);
458
+ --fanui-glass-filter: blur(calc(24px * var(--fanui-glass-intensity) * 1.09))
459
+ saturate(calc(100% + 56% * var(--fanui-glass-intensity)))
460
+ brightness(calc(100% + 10% * var(--fanui-glass-intensity)));
461
+ --fanui-glass-bg: rgba(
462
+ 12, 19, 33,
463
+ calc(0.46 + 0.28 * var(--fanui-glass-intensity))
464
+ );
465
+ --fanui-glass-sheen: linear-gradient(
466
+ 180deg,
467
+ rgba(255, 255, 255, calc(0.09 * var(--fanui-glass-intensity))) 0%,
468
+ rgba(255, 255, 255, 0) 46%
469
+ );
470
+ --fanui-glass-border-width: 1px;
471
+ --fanui-glass-border: rgba(255, 255, 255, calc(0.16 + 0.16 * var(--fanui-glass-intensity)));
472
+ --fanui-glass-edge-width: calc(1px + 0.5px * var(--fanui-glass-intensity));
473
+ --fanui-glass-edge-hi: rgba(255, 255, 255, calc(0.26 * min(1, var(--fanui-glass-intensity))));
474
+ --fanui-glass-edge-lo: rgba(255, 255, 255, calc(0.05 * var(--fanui-glass-intensity)));
475
+ --fanui-glass-specular: rgba(
476
+ 255,
477
+ 255,
478
+ 255,
479
+ calc(0.15 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha))
480
+ );
481
+ --fanui-glass-specular-size: calc(140px + 160px * var(--fanui-glass-intensity));
482
+ --fanui-glass-layer: radial-gradient(
483
+ var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx, 30%) var(--fanui-glass-my, 0%),
484
+ var(--fanui-glass-specular),
485
+ transparent 70%
486
+ ),
487
+ var(--fanui-glass-sheen);
488
+ --fanui-glass-shadow:
489
+ 0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity))
490
+ calc(-12px * var(--fanui-glass-intensity))
491
+ rgba(2, 6, 23, calc(0.45 + 0.10 * var(--fanui-glass-intensity))),
492
+ inset 0 1px 0 rgba(255, 255, 255, calc(0.14 * min(1, var(--fanui-glass-intensity))));
493
+ --fanui-glass-divider: rgba(255, 255, 255, calc(0.1 * var(--fanui-glass-intensity)));
494
+ }
495
+ }
496
+ :root[data-fanui-theme=light] {
497
+ --fanui-color-bg: #f1f5f9;
498
+ --fanui-color-bg-subtle: #f8fafc;
499
+ --fanui-color-surface: #ffffff;
500
+ --fanui-color-surface-raised: #ffffff;
501
+ --fanui-color-surface-sunken: #f1f5f9;
502
+ --fanui-color-overlay: #ffffff;
503
+ --fanui-color-text: #0f172a;
504
+ --fanui-color-text-strong: #020617;
505
+ --fanui-color-text-muted: #475569;
506
+ --fanui-color-text-subtle: #5b6b80;
507
+ --fanui-color-text-inverse: #ffffff;
508
+ --fanui-color-border: #e2e8f0;
509
+ --fanui-color-border-subtle: #f1f5f9;
510
+ --fanui-color-border-strong: #cbd5e1;
511
+ --fanui-color-hover: #f1f5f9;
512
+ --fanui-color-active: #e2e8f0;
513
+ --fanui-color-disabled-bg: #f1f5f9;
514
+ --fanui-color-disabled-text: #5b6b80;
515
+ --fanui-glass-intensity: 1;
516
+ --fanui-glass-blur-base: 22px;
517
+ --fanui-glass-blur-mode-k: 1;
518
+ --fanui-glass-tint-base: 0.3;
519
+ --fanui-glass-tint-k: 0.24;
520
+ --fanui-glass-tint-rgb: 255, 255, 255;
521
+ --fanui-glass-sat-k: 70%;
522
+ --fanui-glass-bri-k: 8%;
523
+ --fanui-glass-sheen-a: 0.16;
524
+ --fanui-glass-border-rgb: 255, 255, 255;
525
+ --fanui-glass-border-a: 0.4;
526
+ --fanui-glass-border-k: 0.3;
527
+ --fanui-glass-edge-hi-a: 0.55;
528
+ --fanui-glass-edge-lo-a: 0.06;
529
+ --fanui-glass-edge-angle: 150deg;
530
+ --fanui-glass-edge-alpha: 1;
531
+ --fanui-glass-specular-rgb: 255, 255, 255;
532
+ --fanui-glass-specular-a: 0.55;
533
+ --fanui-glass-specular-alpha: 1;
534
+ --fanui-glass-specular-size-base: 140px;
535
+ --fanui-glass-specular-size-k: 160px;
536
+ --fanui-glass-shadow-rgb: 2, 6, 23;
537
+ --fanui-glass-shadow-a: 0.14;
538
+ --fanui-glass-shadow-k: 0.10;
539
+ --fanui-glass-shadow-y-k: 8px;
540
+ --fanui-glass-shadow-blur-k: 30px;
541
+ --fanui-glass-shadow-spread-k: -12px;
542
+ --fanui-glass-inner-hi: 0.42;
543
+ --fanui-glass-divider-rgb: 15, 23, 42;
544
+ --fanui-glass-divider-a: 0.08;
545
+ --fanui-glass-text-shadow: 0 1px 1px rgba(15, 23, 42, 0.05);
546
+ --fanui-glass-mx: 30%;
547
+ --fanui-glass-my: 0%;
548
+ --fanui-glass-surface-rgb: 255, 255, 255;
549
+ --fanui-glass-border-solid-rgb: 226, 232, 240;
550
+ --fanui-glass-fallback-bg: var(--fanui-color-surface);
551
+ --fanui-glass-filter: blur(calc(22px * var(--fanui-glass-intensity) * 1))
552
+ saturate(calc(100% + 70% * var(--fanui-glass-intensity)))
553
+ brightness(calc(100% + 8% * var(--fanui-glass-intensity)));
554
+ --fanui-glass-bg: rgba(
555
+ 255, 255, 255,
556
+ calc(0.3 + 0.24 * var(--fanui-glass-intensity))
557
+ );
558
+ --fanui-glass-sheen: linear-gradient(
559
+ 180deg,
560
+ rgba(255, 255, 255, calc(0.16 * var(--fanui-glass-intensity))) 0%,
561
+ rgba(255, 255, 255, 0) 46%
562
+ );
563
+ --fanui-glass-border-width: 1px;
564
+ --fanui-glass-border: rgba(255, 255, 255, calc(0.4 + 0.3 * var(--fanui-glass-intensity)));
565
+ --fanui-glass-edge-width: calc(1px + 0.5px * var(--fanui-glass-intensity));
566
+ --fanui-glass-edge-hi: rgba(255, 255, 255, calc(0.55 * min(1, var(--fanui-glass-intensity))));
567
+ --fanui-glass-edge-lo: rgba(255, 255, 255, calc(0.06 * var(--fanui-glass-intensity)));
568
+ --fanui-glass-specular: rgba(
569
+ 255,
570
+ 255,
571
+ 255,
572
+ calc(0.55 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha))
573
+ );
574
+ --fanui-glass-specular-size: calc(140px + 160px * var(--fanui-glass-intensity));
575
+ --fanui-glass-layer: radial-gradient(
576
+ var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx, 30%) var(--fanui-glass-my, 0%),
577
+ var(--fanui-glass-specular),
578
+ transparent 70%
579
+ ),
580
+ var(--fanui-glass-sheen);
581
+ --fanui-glass-shadow:
582
+ 0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity))
583
+ calc(-12px * var(--fanui-glass-intensity))
584
+ rgba(2, 6, 23, calc(0.14 + 0.10 * var(--fanui-glass-intensity))),
585
+ inset 0 1px 0 rgba(255, 255, 255, calc(0.42 * min(1, var(--fanui-glass-intensity))));
586
+ --fanui-glass-divider: rgba(15, 23, 42, calc(0.08 * var(--fanui-glass-intensity)));
587
+ }
@@ -0,0 +1,3 @@
1
+ :root{--fanui-primary-50:#ecfeff;--fanui-primary-100:#cffafe;--fanui-primary-200:#a5f3fc;--fanui-primary-300:#67e8f9;--fanui-primary-400:#22d3ee;--fanui-primary-500:#06b6d4;--fanui-primary-600:#0891b2;--fanui-primary-700:#0e7490;--fanui-primary-800:#155e75;--fanui-primary-900:#164e63;--fanui-primary-950:#083344;--fanui-accent-50:#f5f3ff;--fanui-accent-100:#ede9fe;--fanui-accent-200:#ddd6fe;--fanui-accent-300:#c4b5fd;--fanui-accent-400:#a78bfa;--fanui-accent-500:#8b5cf6;--fanui-accent-600:#7c3aed;--fanui-accent-700:#6d28d9;--fanui-accent-800:#5b21b6;--fanui-accent-900:#4c1d95;--fanui-accent-950:#2e1065;--fanui-success-50:#ecfdf5;--fanui-success-100:#d1fae5;--fanui-success-200:#a7f3d0;--fanui-success-300:#6ee7b7;--fanui-success-400:#34d399;--fanui-success-500:#10b981;--fanui-success-600:#059669;--fanui-success-700:#047857;--fanui-success-800:#065f46;--fanui-success-900:#064e3b;--fanui-success-950:#022c22;--fanui-warning-50:#fffbeb;--fanui-warning-100:#fef3c7;--fanui-warning-200:#fde68a;--fanui-warning-300:#fcd34d;--fanui-warning-400:#fbbf24;--fanui-warning-500:#f59e0b;--fanui-warning-600:#d97706;--fanui-warning-700:#b45309;--fanui-warning-800:#92400e;--fanui-warning-900:#78350f;--fanui-warning-950:#451a03;--fanui-danger-50:#fef2f2;--fanui-danger-100:#fee2e2;--fanui-danger-200:#fecaca;--fanui-danger-300:#fca5a5;--fanui-danger-400:#f87171;--fanui-danger-500:#ef4444;--fanui-danger-600:#dc2626;--fanui-danger-700:#b91c1c;--fanui-danger-800:#991b1b;--fanui-danger-900:#7f1d1d;--fanui-danger-950:#450a0a;--fanui-info-50:#f0f9ff;--fanui-info-100:#e0f2fe;--fanui-info-200:#bae6fd;--fanui-info-300:#7dd3fc;--fanui-info-400:#38bdf8;--fanui-info-500:#0ea5e9;--fanui-info-600:#0284c7;--fanui-info-700:#0369a1;--fanui-info-800:#075985;--fanui-info-900:#0c4a6e;--fanui-info-950:#082f49;--fanui-neutral-0:#ffffff;--fanui-neutral-50:#f8fafc;--fanui-neutral-100:#f1f5f9;--fanui-neutral-200:#e2e8f0;--fanui-neutral-300:#cbd5e1;--fanui-neutral-400:#94a3b8;--fanui-neutral-500:#64748b;--fanui-neutral-600:#475569;--fanui-neutral-700:#334155;--fanui-neutral-800:#1e293b;--fanui-neutral-900:#0f172a;--fanui-neutral-950:#020617;--fanui-color-bg:#f1f5f9;--fanui-color-bg-subtle:#f8fafc;--fanui-color-surface:#ffffff;--fanui-color-surface-raised:#ffffff;--fanui-color-surface-sunken:#f1f5f9;--fanui-color-overlay:#ffffff;--fanui-color-text:#0f172a;--fanui-color-text-strong:#020617;--fanui-color-text-muted:#475569;--fanui-color-text-subtle:#5b6b80;--fanui-color-text-inverse:#ffffff;--fanui-color-border:#e2e8f0;--fanui-color-border-subtle:#f1f5f9;--fanui-color-border-strong:#cbd5e1;--fanui-color-hover:#f1f5f9;--fanui-color-active:#e2e8f0;--fanui-color-disabled-bg:#f1f5f9;--fanui-color-disabled-text:#5b6b80;--fanui-glass-intensity:1;--fanui-glass-blur-base:22px;--fanui-glass-blur-mode-k:1;--fanui-glass-tint-base:0.3;--fanui-glass-tint-k:0.24;--fanui-glass-tint-rgb:255,255,255;--fanui-glass-sat-k:70%;--fanui-glass-bri-k:8%;--fanui-glass-sheen-a:0.16;--fanui-glass-border-rgb:255,255,255;--fanui-glass-border-a:0.4;--fanui-glass-border-k:0.3;--fanui-glass-edge-hi-a:0.55;--fanui-glass-edge-lo-a:0.06;--fanui-glass-edge-angle:150deg;--fanui-glass-edge-alpha:1;--fanui-glass-specular-rgb:255,255,255;--fanui-glass-specular-a:0.55;--fanui-glass-specular-alpha:1;--fanui-glass-specular-size-base:140px;--fanui-glass-specular-size-k:160px;--fanui-glass-shadow-rgb:2,6,23;--fanui-glass-shadow-a:0.14;--fanui-glass-shadow-k:0.10;--fanui-glass-shadow-y-k:8px;--fanui-glass-shadow-blur-k:30px;--fanui-glass-shadow-spread-k:-12px;--fanui-glass-inner-hi:0.42;--fanui-glass-divider-rgb:15,23,42;--fanui-glass-divider-a:0.08;--fanui-glass-text-shadow:0 1px 1px rgba(15,23,42,0.05);--fanui-glass-mx:30%;--fanui-glass-my:0%;--fanui-glass-surface-rgb:255,255,255;--fanui-glass-border-solid-rgb:226,232,240;--fanui-glass-fallback-bg:var(--fanui-color-surface);--fanui-glass-filter:blur(calc(22px * var(--fanui-glass-intensity) * 1)) saturate(calc(100% + 70% * var(--fanui-glass-intensity))) brightness(calc(100% + 8% * var(--fanui-glass-intensity)));--fanui-glass-bg:rgba( 255,255,255,calc(0.3 + 0.24 * var(--fanui-glass-intensity)) );--fanui-glass-sheen:linear-gradient( 180deg,rgba(255,255,255,calc(0.16 * var(--fanui-glass-intensity))) 0%,rgba(255,255,255,0) 46% );--fanui-glass-border-width:1px;--fanui-glass-border:rgba(255,255,255,calc(0.4 + 0.3 * var(--fanui-glass-intensity)));--fanui-glass-edge-width:calc(1px + 0.5px * var(--fanui-glass-intensity));--fanui-glass-edge-hi:rgba(255,255,255,calc(0.55 * min(1,var(--fanui-glass-intensity))));--fanui-glass-edge-lo:rgba(255,255,255,calc(0.06 * var(--fanui-glass-intensity)));--fanui-glass-specular:rgba( 255,255,255,calc(0.55 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha)) );--fanui-glass-specular-size:calc(140px + 160px * var(--fanui-glass-intensity));--fanui-glass-layer:radial-gradient( var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx,30%) var(--fanui-glass-my,0%),var(--fanui-glass-specular),transparent 70% ),var(--fanui-glass-sheen);--fanui-glass-shadow:0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity)) calc(-12px * var(--fanui-glass-intensity)) rgba(2,6,23,calc(0.14 + 0.10 * var(--fanui-glass-intensity))),inset 0 1px 0 rgba(255,255,255,calc(0.42 * min(1,var(--fanui-glass-intensity))));--fanui-glass-divider:rgba(15,23,42,calc(0.08 * var(--fanui-glass-intensity)));--fanui-font-sans:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--fanui-font-serif:Georgia,Cambria,Times New Roman,Songti SC,SimSun,serif;--fanui-font-mono:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,Courier New,monospace;--fanui-font-base:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--fanui-font-size-xs:0.75rem;--fanui-font-size-xs-px:12px;--fanui-font-size-sm:0.8125rem;--fanui-font-size-sm-px:13px;--fanui-font-size-base:0.875rem;--fanui-font-size-base-px:14px;--fanui-font-size-md:1rem;--fanui-font-size-md-px:16px;--fanui-font-size-lg:1.125rem;--fanui-font-size-lg-px:18px;--fanui-font-size-xl:1.25rem;--fanui-font-size-xl-px:20px;--fanui-font-size-2xl:1.5rem;--fanui-font-size-2xl-px:24px;--fanui-font-size-3xl:1.875rem;--fanui-font-size-3xl-px:30px;--fanui-font-size-4xl:2.25rem;--fanui-font-size-4xl-px:36px;--fanui-font-size-5xl:3rem;--fanui-font-size-5xl-px:48px;--fanui-font-size-6xl:3.75rem;--fanui-font-size-6xl-px:60px;--fanui-line-height-none:1;--fanui-line-height-tight:1.25;--fanui-line-height-snug:1.375;--fanui-line-height-normal:1.5;--fanui-line-height-base:1.5715;--fanui-line-height-relaxed:1.625;--fanui-line-height-loose:2;--fanui-font-weight-light:300;--fanui-font-weight-normal:400;--fanui-font-weight-medium:500;--fanui-font-weight-semibold:600;--fanui-font-weight-bold:700;--fanui-font-weight-extrabold:800;--fanui-tracking-tighter:-0.05em;--fanui-tracking-tight:-0.025em;--fanui-tracking-normal:0;--fanui-tracking-wide:0.025em;--fanui-tracking-wider:0.05em;--fanui-tracking-widest:0.1em;--fanui-space-0:0;--fanui-space-1:4px;--fanui-space-2:8px;--fanui-space-3:12px;--fanui-space-4:16px;--fanui-space-5:20px;--fanui-space-6:24px;--fanui-space-7:28px;--fanui-space-8:32px;--fanui-space-10:40px;--fanui-space-12:48px;--fanui-space-16:64px;--fanui-space-20:80px;--fanui-space-24:96px;--fanui-space-auto:auto;--fanui-radius-none:0;--fanui-radius-sm:2px;--fanui-radius-base:6px;--fanui-radius-md:8px;--fanui-radius-lg:12px;--fanui-radius-xl:16px;--fanui-radius-2xl:24px;--fanui-radius-full:9999px;--fanui-radius:6px;--fanui-shadow-none:none;--fanui-shadow-xs:0 1px 2px 0 rgba(15,23,42,0.05);--fanui-shadow-sm:0 1px 3px 0 rgba(15,23,42,0.1),0 1px 2px -1px rgba(15,23,42,0.1);--fanui-shadow-base:0 4px 6px -1px rgba(15,23,42,0.1),0 2px 4px -2px rgba(15,23,42,0.06);--fanui-shadow-md:0 6px 12px -2px rgba(15,23,42,0.12),0 3px 6px -3px rgba(15,23,42,0.08);--fanui-shadow-lg:0 12px 20px -4px rgba(15,23,42,0.14),0 4px 8px -4px rgba(15,23,42,0.08);--fanui-shadow-xl:0 20px 32px -8px rgba(15,23,42,0.18),0 8px 16px -8px rgba(15,23,42,0.1);--fanui-shadow-2xl:0 32px 64px -16px rgba(15,23,42,0.24);--fanui-shadow-inner:inset 0 2px 4px 0 rgba(15,23,42,0.06);--fanui-z-dropdown:1000;--fanui-z-sticky:1020;--fanui-z-fixed:1030;--fanui-z-backdrop:1040;--fanui-z-offcanvas:1050;--fanui-z-modal:1060;--fanui-z-popover:1070;--fanui-z-tooltip:1080;--fanui-z-toast:1090;--fanui-duration-instant:100ms;--fanui-duration-fast:150ms;--fanui-duration-base:200ms;--fanui-duration-slow:300ms;--fanui-duration-slower:500ms;--fanui-ease-linear:linear;--fanui-ease-in:cubic-bezier(0.4,0,1,1);--fanui-ease-out:cubic-bezier(0,0,0.2,1);--fanui-ease-in-out:cubic-bezier(0.4,0,0.2,1);--fanui-ease-spring:cubic-bezier(0.34,1.56,0.64,1);--fanui-ease-base:cubic-bezier(0.4,0,0.2,1);--fanui-control-h-xs:24px;--fanui-control-h-sm:28px;--fanui-control-h-md:32px;--fanui-control-h-base:36px;--fanui-control-h-lg:40px;--fanui-control-h-xl:48px;--fanui-control-h:36px;--fanui-control-px:14px;--fanui-control-font-size:14px;--fanui-control-radius:6px;--fanui-border-width:1px;--fanui-border-width-thick:2px;--fanui-grid-columns:12;--fanui-grid-gutter-x:24px;--fanui-grid-gutter-y:0;--fanui-gutter-x:24px;--fanui-gutter-y:0;--fanui-backdrop-bg:rgba(15,23,42,0.55);--fanui-backdrop-blur:2px;--fanui-focus-ring-color:var(--fanui-primary-ring);--fanui-focus-ring-width:3px;--fanui-focus-ring-offset:1px;--fanui-bp-xs:0;--fanui-bp-sm:576px;--fanui-bp-md:768px;--fanui-bp-lg:992px;--fanui-bp-xl:1200px;--fanui-bp-xxl:1400px;--fanui-container-max-sm:540px;--fanui-container-max-md:720px;--fanui-container-max-lg:960px;--fanui-container-max-xl:1140px;--fanui-container-max-xxl:1320px;--fanui-container-px:16px}
2
+ [data-fanui-theme=dark],:root[data-fanui-theme=dark]{--fanui-color-bg:#020617;--fanui-color-bg-subtle:#0f172a;--fanui-color-surface:#0f172a;--fanui-color-surface-raised:#1e293b;--fanui-color-surface-sunken:#020617;--fanui-color-overlay:#1e293b;--fanui-color-text:#e8edf5;--fanui-color-text-strong:#ffffff;--fanui-color-text-muted:#94a3b8;--fanui-color-text-subtle:#8592a6;--fanui-color-text-inverse:#020617;--fanui-color-border:#2b3648;--fanui-color-border-subtle:#222c3c;--fanui-color-border-strong:#3d4a60;--fanui-color-hover:#1d2736;--fanui-color-active:#26313f;--fanui-color-disabled-bg:#1a2332;--fanui-color-disabled-text:#8592a6;--fanui-backdrop-bg:rgba(2,6,23,0.68);--fanui-glass-intensity:1;--fanui-glass-blur-base:24px;--fanui-glass-blur-mode-k:1.09;--fanui-glass-tint-base:0.46;--fanui-glass-tint-k:0.28;--fanui-glass-tint-rgb:12,19,33;--fanui-glass-sat-k:56%;--fanui-glass-bri-k:10%;--fanui-glass-sheen-a:0.09;--fanui-glass-border-rgb:255,255,255;--fanui-glass-border-a:0.16;--fanui-glass-border-k:0.16;--fanui-glass-edge-hi-a:0.26;--fanui-glass-edge-lo-a:0.05;--fanui-glass-edge-angle:150deg;--fanui-glass-edge-alpha:1;--fanui-glass-specular-rgb:255,255,255;--fanui-glass-specular-a:0.15;--fanui-glass-specular-alpha:1;--fanui-glass-specular-size-base:140px;--fanui-glass-specular-size-k:160px;--fanui-glass-shadow-rgb:2,6,23;--fanui-glass-shadow-a:0.45;--fanui-glass-shadow-k:0.10;--fanui-glass-shadow-y-k:8px;--fanui-glass-shadow-blur-k:30px;--fanui-glass-shadow-spread-k:-12px;--fanui-glass-inner-hi:0.14;--fanui-glass-divider-rgb:255,255,255;--fanui-glass-divider-a:0.1;--fanui-glass-text-shadow:0 1px 2px rgba(0,0,0,0.28);--fanui-glass-mx:30%;--fanui-glass-my:0%;--fanui-glass-surface-rgb:15,23,42;--fanui-glass-border-solid-rgb:43,54,72;--fanui-glass-fallback-bg:var(--fanui-color-surface);--fanui-glass-filter:blur(calc(24px * var(--fanui-glass-intensity) * 1.09)) saturate(calc(100% + 56% * var(--fanui-glass-intensity))) brightness(calc(100% + 10% * var(--fanui-glass-intensity)));--fanui-glass-bg:rgba( 12,19,33,calc(0.46 + 0.28 * var(--fanui-glass-intensity)) );--fanui-glass-sheen:linear-gradient( 180deg,rgba(255,255,255,calc(0.09 * var(--fanui-glass-intensity))) 0%,rgba(255,255,255,0) 46% );--fanui-glass-border-width:1px;--fanui-glass-border:rgba(255,255,255,calc(0.16 + 0.16 * var(--fanui-glass-intensity)));--fanui-glass-edge-width:calc(1px + 0.5px * var(--fanui-glass-intensity));--fanui-glass-edge-hi:rgba(255,255,255,calc(0.26 * min(1,var(--fanui-glass-intensity))));--fanui-glass-edge-lo:rgba(255,255,255,calc(0.05 * var(--fanui-glass-intensity)));--fanui-glass-specular:rgba( 255,255,255,calc(0.15 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha)) );--fanui-glass-specular-size:calc(140px + 160px * var(--fanui-glass-intensity));--fanui-glass-layer:radial-gradient( var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx,30%) var(--fanui-glass-my,0%),var(--fanui-glass-specular),transparent 70% ),var(--fanui-glass-sheen);--fanui-glass-shadow:0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity)) calc(-12px * var(--fanui-glass-intensity)) rgba(2,6,23,calc(0.45 + 0.10 * var(--fanui-glass-intensity))),inset 0 1px 0 rgba(255,255,255,calc(0.14 * min(1,var(--fanui-glass-intensity))));--fanui-glass-divider:rgba(255,255,255,calc(0.1 * var(--fanui-glass-intensity)))}@media (prefers-color-scheme:dark){[data-fanui-theme=auto],:root[data-fanui-theme=auto]{--fanui-color-bg:#020617;--fanui-color-bg-subtle:#0f172a;--fanui-color-surface:#0f172a;--fanui-color-surface-raised:#1e293b;--fanui-color-surface-sunken:#020617;--fanui-color-overlay:#1e293b;--fanui-color-text:#e8edf5;--fanui-color-text-strong:#ffffff;--fanui-color-text-muted:#94a3b8;--fanui-color-text-subtle:#8592a6;--fanui-color-text-inverse:#020617;--fanui-color-border:#2b3648;--fanui-color-border-subtle:#222c3c;--fanui-color-border-strong:#3d4a60;--fanui-color-hover:#1d2736;--fanui-color-active:#26313f;--fanui-color-disabled-bg:#1a2332;--fanui-color-disabled-text:#8592a6;--fanui-backdrop-bg:rgba(2,6,23,0.68);--fanui-glass-intensity:1;--fanui-glass-blur-base:24px;--fanui-glass-blur-mode-k:1.09;--fanui-glass-tint-base:0.46;--fanui-glass-tint-k:0.28;--fanui-glass-tint-rgb:12,19,33;--fanui-glass-sat-k:56%;--fanui-glass-bri-k:10%;--fanui-glass-sheen-a:0.09;--fanui-glass-border-rgb:255,255,255;--fanui-glass-border-a:0.16;--fanui-glass-border-k:0.16;--fanui-glass-edge-hi-a:0.26;--fanui-glass-edge-lo-a:0.05;--fanui-glass-edge-angle:150deg;--fanui-glass-edge-alpha:1;--fanui-glass-specular-rgb:255,255,255;--fanui-glass-specular-a:0.15;--fanui-glass-specular-alpha:1;--fanui-glass-specular-size-base:140px;--fanui-glass-specular-size-k:160px;--fanui-glass-shadow-rgb:2,6,23;--fanui-glass-shadow-a:0.45;--fanui-glass-shadow-k:0.10;--fanui-glass-shadow-y-k:8px;--fanui-glass-shadow-blur-k:30px;--fanui-glass-shadow-spread-k:-12px;--fanui-glass-inner-hi:0.14;--fanui-glass-divider-rgb:255,255,255;--fanui-glass-divider-a:0.1;--fanui-glass-text-shadow:0 1px 2px rgba(0,0,0,0.28);--fanui-glass-mx:30%;--fanui-glass-my:0%;--fanui-glass-surface-rgb:15,23,42;--fanui-glass-border-solid-rgb:43,54,72;--fanui-glass-fallback-bg:var(--fanui-color-surface);--fanui-glass-filter:blur(calc(24px * var(--fanui-glass-intensity) * 1.09)) saturate(calc(100% + 56% * var(--fanui-glass-intensity))) brightness(calc(100% + 10% * var(--fanui-glass-intensity)));--fanui-glass-bg:rgba( 12,19,33,calc(0.46 + 0.28 * var(--fanui-glass-intensity)) );--fanui-glass-sheen:linear-gradient( 180deg,rgba(255,255,255,calc(0.09 * var(--fanui-glass-intensity))) 0%,rgba(255,255,255,0) 46% );--fanui-glass-border-width:1px;--fanui-glass-border:rgba(255,255,255,calc(0.16 + 0.16 * var(--fanui-glass-intensity)));--fanui-glass-edge-width:calc(1px + 0.5px * var(--fanui-glass-intensity));--fanui-glass-edge-hi:rgba(255,255,255,calc(0.26 * min(1,var(--fanui-glass-intensity))));--fanui-glass-edge-lo:rgba(255,255,255,calc(0.05 * var(--fanui-glass-intensity)));--fanui-glass-specular:rgba( 255,255,255,calc(0.15 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha)) );--fanui-glass-specular-size:calc(140px + 160px * var(--fanui-glass-intensity));--fanui-glass-layer:radial-gradient( var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx,30%) var(--fanui-glass-my,0%),var(--fanui-glass-specular),transparent 70% ),var(--fanui-glass-sheen);--fanui-glass-shadow:0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity)) calc(-12px * var(--fanui-glass-intensity)) rgba(2,6,23,calc(0.45 + 0.10 * var(--fanui-glass-intensity))),inset 0 1px 0 rgba(255,255,255,calc(0.14 * min(1,var(--fanui-glass-intensity))));--fanui-glass-divider:rgba(255,255,255,calc(0.1 * var(--fanui-glass-intensity)))}}
3
+ :root[data-fanui-theme=light]{--fanui-color-bg:#f1f5f9;--fanui-color-bg-subtle:#f8fafc;--fanui-color-surface:#ffffff;--fanui-color-surface-raised:#ffffff;--fanui-color-surface-sunken:#f1f5f9;--fanui-color-overlay:#ffffff;--fanui-color-text:#0f172a;--fanui-color-text-strong:#020617;--fanui-color-text-muted:#475569;--fanui-color-text-subtle:#5b6b80;--fanui-color-text-inverse:#ffffff;--fanui-color-border:#e2e8f0;--fanui-color-border-subtle:#f1f5f9;--fanui-color-border-strong:#cbd5e1;--fanui-color-hover:#f1f5f9;--fanui-color-active:#e2e8f0;--fanui-color-disabled-bg:#f1f5f9;--fanui-color-disabled-text:#5b6b80;--fanui-glass-intensity:1;--fanui-glass-blur-base:22px;--fanui-glass-blur-mode-k:1;--fanui-glass-tint-base:0.3;--fanui-glass-tint-k:0.24;--fanui-glass-tint-rgb:255,255,255;--fanui-glass-sat-k:70%;--fanui-glass-bri-k:8%;--fanui-glass-sheen-a:0.16;--fanui-glass-border-rgb:255,255,255;--fanui-glass-border-a:0.4;--fanui-glass-border-k:0.3;--fanui-glass-edge-hi-a:0.55;--fanui-glass-edge-lo-a:0.06;--fanui-glass-edge-angle:150deg;--fanui-glass-edge-alpha:1;--fanui-glass-specular-rgb:255,255,255;--fanui-glass-specular-a:0.55;--fanui-glass-specular-alpha:1;--fanui-glass-specular-size-base:140px;--fanui-glass-specular-size-k:160px;--fanui-glass-shadow-rgb:2,6,23;--fanui-glass-shadow-a:0.14;--fanui-glass-shadow-k:0.10;--fanui-glass-shadow-y-k:8px;--fanui-glass-shadow-blur-k:30px;--fanui-glass-shadow-spread-k:-12px;--fanui-glass-inner-hi:0.42;--fanui-glass-divider-rgb:15,23,42;--fanui-glass-divider-a:0.08;--fanui-glass-text-shadow:0 1px 1px rgba(15,23,42,0.05);--fanui-glass-mx:30%;--fanui-glass-my:0%;--fanui-glass-surface-rgb:255,255,255;--fanui-glass-border-solid-rgb:226,232,240;--fanui-glass-fallback-bg:var(--fanui-color-surface);--fanui-glass-filter:blur(calc(22px * var(--fanui-glass-intensity) * 1)) saturate(calc(100% + 70% * var(--fanui-glass-intensity))) brightness(calc(100% + 8% * var(--fanui-glass-intensity)));--fanui-glass-bg:rgba( 255,255,255,calc(0.3 + 0.24 * var(--fanui-glass-intensity)) );--fanui-glass-sheen:linear-gradient( 180deg,rgba(255,255,255,calc(0.16 * var(--fanui-glass-intensity))) 0%,rgba(255,255,255,0) 46% );--fanui-glass-border-width:1px;--fanui-glass-border:rgba(255,255,255,calc(0.4 + 0.3 * var(--fanui-glass-intensity)));--fanui-glass-edge-width:calc(1px + 0.5px * var(--fanui-glass-intensity));--fanui-glass-edge-hi:rgba(255,255,255,calc(0.55 * min(1,var(--fanui-glass-intensity))));--fanui-glass-edge-lo:rgba(255,255,255,calc(0.06 * var(--fanui-glass-intensity)));--fanui-glass-specular:rgba( 255,255,255,calc(0.55 * var(--fanui-glass-intensity) * var(--fanui-glass-specular-alpha)) );--fanui-glass-specular-size:calc(140px + 160px * var(--fanui-glass-intensity));--fanui-glass-layer:radial-gradient( var(--fanui-glass-specular-size) circle at var(--fanui-glass-mx,30%) var(--fanui-glass-my,0%),var(--fanui-glass-specular),transparent 70% ),var(--fanui-glass-sheen);--fanui-glass-shadow:0 calc(8px * var(--fanui-glass-intensity)) calc(30px * var(--fanui-glass-intensity)) calc(-12px * var(--fanui-glass-intensity)) rgba(2,6,23,calc(0.14 + 0.10 * var(--fanui-glass-intensity))),inset 0 1px 0 rgba(255,255,255,calc(0.42 * min(1,var(--fanui-glass-intensity))));--fanui-glass-divider:rgba(15,23,42,calc(0.08 * var(--fanui-glass-intensity)))}