@skygraph/styles 0.0.0-placeholder.0 → 0.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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -6
  3. package/components/autocomplete.css +33 -0
  4. package/components/avatar.css +37 -0
  5. package/components/badge.css +102 -0
  6. package/components/breadcrumb.css +29 -0
  7. package/components/button.css +181 -0
  8. package/components/calendar.css +408 -0
  9. package/components/carousel.css +102 -0
  10. package/components/cascader.css +354 -0
  11. package/components/charts.css +408 -0
  12. package/components/checkbox.css +29 -0
  13. package/components/collapse.css +166 -0
  14. package/components/colorpicker.css +252 -0
  15. package/components/context-menu.css +95 -0
  16. package/components/dashboard.css +299 -0
  17. package/components/datagrid.css +86 -0
  18. package/components/datepicker.css +601 -0
  19. package/components/descriptions.css +82 -0
  20. package/components/diagram.css +422 -0
  21. package/components/drawer.css +103 -0
  22. package/components/dropdown.css +93 -0
  23. package/components/empty.css +25 -0
  24. package/components/event-timeline.css +100 -0
  25. package/components/field.css +35 -0
  26. package/components/form.css +115 -0
  27. package/components/gantt.css +161 -0
  28. package/components/inline-edit.css +113 -0
  29. package/components/input-group.css +79 -0
  30. package/components/input-number.css +76 -0
  31. package/components/input-password.css +104 -0
  32. package/components/input.css +110 -0
  33. package/components/list.css +357 -0
  34. package/components/mentions.css +54 -0
  35. package/components/menu.css +309 -0
  36. package/components/modal.css +77 -0
  37. package/components/notification.css +128 -0
  38. package/components/pagination.css +162 -0
  39. package/components/pin-input.css +71 -0
  40. package/components/popconfirm.css +95 -0
  41. package/components/progress.css +116 -0
  42. package/components/radio.css +38 -0
  43. package/components/rate.css +34 -0
  44. package/components/resource-calendar.css +219 -0
  45. package/components/result.css +45 -0
  46. package/components/schema-form-editor.css +425 -0
  47. package/components/search-input.css +112 -0
  48. package/components/segmented.css +76 -0
  49. package/components/select.css +172 -0
  50. package/components/skeleton.css +68 -0
  51. package/components/slider.css +51 -0
  52. package/components/spin.css +86 -0
  53. package/components/steps.css +185 -0
  54. package/components/switch.css +69 -0
  55. package/components/table.css +984 -0
  56. package/components/tabs.css +117 -0
  57. package/components/tag-input.css +94 -0
  58. package/components/tag.css +61 -0
  59. package/components/textarea.css +22 -0
  60. package/components/timeline.css +169 -0
  61. package/components/timepicker.css +213 -0
  62. package/components/tooltip.css +91 -0
  63. package/components/transfer.css +140 -0
  64. package/components/tree.css +574 -0
  65. package/components/treeselect.css +219 -0
  66. package/components/upload.css +124 -0
  67. package/index.css +69 -3
  68. package/index.d.ts +9 -0
  69. package/package.json +102 -18
  70. package/print.css +88 -0
  71. package/reset.css +17 -0
  72. package/themes/dark.css +17 -0
  73. package/themes/default.css +14 -0
  74. package/tokens.css +312 -0
  75. package/transitions.css +158 -0
package/tokens.css ADDED
@@ -0,0 +1,312 @@
1
+ /* SkyGraph Design Tokens */
2
+
3
+ :root {
4
+ /* === Palette (theme-independent) === */
5
+ --sg-blue-1: #e6f4ff;
6
+ --sg-blue-2: #bae0ff;
7
+ --sg-blue-3: #91caff;
8
+ --sg-blue-4: #69b1ff;
9
+ --sg-blue-5: #4096ff;
10
+ --sg-blue-6: #1677ff;
11
+ --sg-blue-7: #0958d9;
12
+ --sg-blue-8: #003eb3;
13
+ --sg-blue-9: #002c8c;
14
+ --sg-blue-10: #001d66;
15
+
16
+ --sg-gray-1: #ffffff;
17
+ --sg-gray-2: #fafafa;
18
+ --sg-gray-3: #f5f5f5;
19
+ --sg-gray-4: #f0f0f0;
20
+ --sg-gray-5: #d9d9d9;
21
+ --sg-gray-6: #bfbfbf;
22
+ --sg-gray-7: #8c8c8c;
23
+ --sg-gray-8: #595959;
24
+ --sg-gray-9: #262626;
25
+ --sg-gray-10: #141414;
26
+
27
+ --sg-red-1: #fff2f0;
28
+ --sg-red-5: #ff4d4f;
29
+ --sg-red-6: #f5222d;
30
+
31
+ --sg-green-1: #f6ffed;
32
+ --sg-green-5: #73d13d;
33
+ --sg-green-6: #52c41a;
34
+
35
+ --sg-orange-1: #fffbe6;
36
+ --sg-orange-5: #faad14;
37
+ --sg-orange-6: #d48806;
38
+
39
+ /* === Sizing (theme-independent) === */
40
+ --sg-font-size-sm: 12px;
41
+ --sg-font-size: 14px;
42
+ --sg-font-size-lg: 16px;
43
+ --sg-font-size-xl: 20px;
44
+
45
+ --sg-line-height: 1.5714;
46
+
47
+ --sg-height-sm: 24px;
48
+ --sg-height-md: 32px;
49
+ --sg-height-lg: 40px;
50
+
51
+ --sg-border-radius-sm: 4px;
52
+ --sg-border-radius: 6px;
53
+ --sg-border-radius-lg: 8px;
54
+
55
+ --sg-padding-xs: 4px;
56
+ --sg-padding-sm: 8px;
57
+ --sg-padding-md: 12px;
58
+ --sg-padding-lg: 16px;
59
+ --sg-padding-xl: 24px;
60
+
61
+ --sg-margin-xs: 4px;
62
+ --sg-margin-sm: 8px;
63
+ --sg-margin-md: 16px;
64
+ --sg-margin-lg: 24px;
65
+
66
+ --sg-transition-duration: 0.2s;
67
+ --sg-transition-timing: cubic-bezier(0.645, 0.045, 0.355, 1);
68
+
69
+ /* Curated transition shorthands.
70
+ * `*-fast` (~120ms) — micro-interactions: button hovers, tiny color swaps,
71
+ * toolbar fades, edge hover stroke widens.
72
+ * `*-medium` (~180ms) — primary interactions: card lift on hover,
73
+ * node selection ring, dashboard widget elevation.
74
+ * Use them in `transition: <prop> var(--sg-transition-*)`. */
75
+ --sg-transition-fast: 120ms cubic-bezier(0.4, 0, 0.2, 1);
76
+ --sg-transition-medium: 180ms cubic-bezier(0.4, 0, 0.2, 1);
77
+
78
+ /* === Z-index scale === */
79
+ --sg-z-base: 1;
80
+ --sg-z-sticky: 3;
81
+ --sg-z-sticky-fixed: 5;
82
+ --sg-z-loading: 10;
83
+ --sg-z-modal: 1000;
84
+ --sg-z-tooltip: 1000;
85
+ --sg-z-dropdown: 1050;
86
+ --sg-z-notification: 1060;
87
+
88
+ /* === Component tokens === */
89
+ --sg-color-star: #fadb14;
90
+ }
91
+
92
+ /* === Semantic tokens — Light theme (default) === */
93
+ :root,
94
+ [data-sg-theme="light"] {
95
+ --sg-color-bg: var(--sg-gray-1);
96
+ --sg-color-bg-secondary: var(--sg-gray-2);
97
+ --sg-color-bg-elevated: var(--sg-gray-1);
98
+ --sg-color-bg-container: var(--sg-gray-1);
99
+ --sg-color-bg-hover: var(--sg-gray-3);
100
+ --sg-color-bg-disabled: var(--sg-gray-3);
101
+
102
+ --sg-color-text: rgba(0, 0, 0, 0.88);
103
+ --sg-color-text-secondary: rgba(0, 0, 0, 0.65);
104
+ --sg-color-text-tertiary: rgba(0, 0, 0, 0.45);
105
+ --sg-color-text-quaternary: rgba(0, 0, 0, 0.25);
106
+ --sg-color-text-disabled: rgba(0, 0, 0, 0.25);
107
+ --sg-color-text-placeholder: rgba(0, 0, 0, 0.25);
108
+
109
+ --sg-color-border: var(--sg-gray-5);
110
+ --sg-color-border-secondary: var(--sg-gray-4);
111
+
112
+ --sg-color-primary: var(--sg-blue-6);
113
+ --sg-color-primary-hover: var(--sg-blue-5);
114
+ --sg-color-primary-active: var(--sg-blue-7);
115
+ --sg-color-primary-bg: var(--sg-blue-1);
116
+
117
+ --sg-color-error: var(--sg-red-5);
118
+ --sg-color-error-bg: var(--sg-red-1);
119
+ --sg-color-success: var(--sg-green-6);
120
+ --sg-color-success-bg: var(--sg-green-1);
121
+ --sg-color-warning: var(--sg-orange-5);
122
+ --sg-color-warning-bg: var(--sg-orange-1);
123
+
124
+ --sg-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
125
+ --sg-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
126
+ --sg-shadow-lg: 0 6px 16px rgba(0, 0, 0, 0.12);
127
+
128
+ --sg-color-white: #ffffff;
129
+ --sg-color-overlay: rgba(0, 0, 0, 0.45);
130
+ --sg-color-tooltip-bg: rgba(0, 0, 0, 0.85);
131
+ --sg-color-tooltip-text: #ffffff;
132
+
133
+ /* === Visualization layer (light) ===
134
+ * Re-mappable per theme. Components use these via `var(--sg-*)` so
135
+ * dark theme overrides cascade automatically. */
136
+
137
+ /* Diagram — canvas, grid, nodes, edges, lasso */
138
+ --sg-diagram-canvas-bg: var(--sg-color-bg);
139
+ --sg-diagram-grid-line-color: rgba(0, 0, 0, 0.04);
140
+ --sg-diagram-grid-line-color-strong: rgba(0, 0, 0, 0.08);
141
+ --sg-diagram-node-shadow:
142
+ 0 1px 2px rgba(0, 0, 0, 0.06),
143
+ 0 0 0 1px rgba(0, 0, 0, 0.04);
144
+ --sg-diagram-node-shadow-hover:
145
+ 0 4px 12px rgba(0, 0, 0, 0.10),
146
+ 0 1px 3px rgba(0, 0, 0, 0.06);
147
+ --sg-diagram-node-shadow-selected:
148
+ 0 0 0 2px var(--sg-color-primary-bg),
149
+ 0 6px 16px rgba(22, 119, 255, 0.18),
150
+ 0 1px 3px rgba(0, 0, 0, 0.08);
151
+ --sg-diagram-node-shadow-dragging:
152
+ 0 12px 28px rgba(0, 0, 0, 0.20),
153
+ 0 2px 6px rgba(0, 0, 0, 0.10);
154
+ --sg-diagram-edge-color: var(--sg-gray-6);
155
+ --sg-diagram-edge-color-hover: var(--sg-color-text-secondary);
156
+ --sg-diagram-edge-color-selected: var(--sg-color-primary);
157
+ --sg-diagram-lasso-stroke: var(--sg-color-primary);
158
+ --sg-diagram-lasso-fill: rgba(22, 119, 255, 0.08);
159
+
160
+ /* Charts — tooltip, crosshair, brush, legend */
161
+ --sg-chart-tooltip-bg: var(--sg-color-bg-elevated);
162
+ --sg-chart-tooltip-shadow:
163
+ 0 6px 20px rgba(0, 0, 0, 0.12),
164
+ 0 1px 3px rgba(0, 0, 0, 0.06);
165
+ --sg-chart-crosshair-color: rgba(0, 0, 0, 0.32);
166
+ --sg-chart-brush-fill: rgba(22, 119, 255, 0.10);
167
+ --sg-chart-brush-stroke: var(--sg-color-primary);
168
+ --sg-chart-legend-hover-bg: var(--sg-color-bg-hover);
169
+
170
+ /* Dashboard — widget elevation, editor affordances */
171
+ --sg-dashboard-widget-shadow: var(--sg-shadow-sm);
172
+ --sg-dashboard-widget-shadow-hover:
173
+ 0 4px 12px rgba(0, 0, 0, 0.08),
174
+ 0 1px 3px rgba(0, 0, 0, 0.04);
175
+ --sg-dashboard-editor-grid-color: rgba(22, 119, 255, 0.06);
176
+ --sg-dashboard-editor-widget-border: var(--sg-color-primary);
177
+ --sg-dashboard-editor-drop-zone-bg: rgba(22, 119, 255, 0.06);
178
+ --sg-dashboard-editor-drop-zone-border: var(--sg-color-primary);
179
+
180
+ /* Gantt — bars, today marker, dependency arrows */
181
+ --sg-gantt-bar-shadow:
182
+ 0 1px 2px rgba(0, 0, 0, 0.10),
183
+ inset 0 1px 0 rgba(255, 255, 255, 0.18);
184
+ --sg-gantt-bar-shadow-hover:
185
+ 0 3px 8px rgba(0, 0, 0, 0.14),
186
+ inset 0 1px 0 rgba(255, 255, 255, 0.22);
187
+ --sg-gantt-today-marker-color: var(--sg-color-error);
188
+ --sg-gantt-today-marker-bg: rgba(245, 34, 45, 0.06);
189
+ --sg-gantt-dep-color: var(--sg-color-text-tertiary);
190
+
191
+ /* Timeline / EventTimeline — connector + event dot */
192
+ --sg-timeline-tail-color: var(--sg-color-border-secondary);
193
+ --sg-event-timeline-dot-shadow:
194
+ 0 0 0 3px var(--sg-color-bg),
195
+ 0 1px 3px rgba(22, 119, 255, 0.30);
196
+ --sg-event-timeline-dot-shadow-hover:
197
+ 0 0 0 3px var(--sg-color-bg),
198
+ 0 2px 8px rgba(22, 119, 255, 0.45);
199
+
200
+ /* ResourceCalendar — today, lane separators, conflict overlay */
201
+ --sg-rcal-today-bg: rgba(22, 119, 255, 0.05);
202
+ --sg-rcal-today-marker-color: var(--sg-color-primary);
203
+ --sg-rcal-lane-divider: var(--sg-color-border-secondary);
204
+ --sg-rcal-conflict-overlay-bg: rgba(245, 34, 45, 0.10);
205
+ }
206
+
207
+ /* === Semantic tokens — Dark theme === */
208
+ [data-sg-theme="dark"] {
209
+ --sg-color-bg: var(--sg-gray-10);
210
+ --sg-color-bg-secondary: #1f1f1f;
211
+ --sg-color-bg-elevated: #1f1f1f;
212
+ --sg-color-bg-container: #1f1f1f;
213
+ --sg-color-bg-hover: #2a2a2a;
214
+ --sg-color-bg-disabled: rgba(255, 255, 255, 0.08);
215
+
216
+ --sg-color-text: rgba(255, 255, 255, 0.88);
217
+ --sg-color-text-secondary: rgba(255, 255, 255, 0.65);
218
+ --sg-color-text-tertiary: rgba(255, 255, 255, 0.45);
219
+ --sg-color-text-quaternary: rgba(255, 255, 255, 0.25);
220
+ --sg-color-text-disabled: rgba(255, 255, 255, 0.25);
221
+ --sg-color-text-placeholder: rgba(255, 255, 255, 0.25);
222
+
223
+ --sg-color-border: #424242;
224
+ --sg-color-border-secondary: #303030;
225
+
226
+ --sg-color-primary: var(--sg-blue-5);
227
+ --sg-color-primary-hover: var(--sg-blue-6);
228
+ --sg-color-primary-active: var(--sg-blue-7);
229
+ --sg-color-primary-bg: rgba(22, 119, 255, 0.15);
230
+
231
+ --sg-color-error: #dc4446;
232
+ --sg-color-error-bg: rgba(220, 68, 70, 0.1);
233
+ --sg-color-success: #49aa19;
234
+ --sg-color-success-bg: rgba(73, 170, 25, 0.1);
235
+ --sg-color-warning: #d89614;
236
+ --sg-color-warning-bg: rgba(216, 150, 20, 0.1);
237
+
238
+ --sg-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.16);
239
+ --sg-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
240
+ --sg-shadow-lg: 0 6px 16px rgba(0, 0, 0, 0.48);
241
+
242
+ --sg-color-overlay: rgba(0, 0, 0, 0.65);
243
+ --sg-color-tooltip-bg: #434343;
244
+ --sg-color-tooltip-text: #ffffff;
245
+
246
+ /* === Visualization layer (dark) ===
247
+ * Shadows are stronger and use lower-alpha bright tints; canvas grid
248
+ * lines use white-alpha so they read against dark bg. */
249
+
250
+ --sg-diagram-canvas-bg: var(--sg-color-bg);
251
+ --sg-diagram-grid-line-color: rgba(255, 255, 255, 0.04);
252
+ --sg-diagram-grid-line-color-strong: rgba(255, 255, 255, 0.08);
253
+ --sg-diagram-node-shadow:
254
+ 0 1px 2px rgba(0, 0, 0, 0.40),
255
+ 0 0 0 1px rgba(255, 255, 255, 0.04);
256
+ --sg-diagram-node-shadow-hover:
257
+ 0 4px 12px rgba(0, 0, 0, 0.50),
258
+ 0 1px 3px rgba(0, 0, 0, 0.40);
259
+ --sg-diagram-node-shadow-selected:
260
+ 0 0 0 2px var(--sg-color-primary-bg),
261
+ 0 6px 16px rgba(64, 150, 255, 0.30),
262
+ 0 1px 3px rgba(0, 0, 0, 0.40);
263
+ --sg-diagram-node-shadow-dragging:
264
+ 0 12px 28px rgba(0, 0, 0, 0.60),
265
+ 0 2px 6px rgba(0, 0, 0, 0.40);
266
+ --sg-diagram-edge-color: var(--sg-gray-7);
267
+ --sg-diagram-edge-color-hover: var(--sg-color-text-secondary);
268
+ --sg-diagram-edge-color-selected: var(--sg-color-primary);
269
+ --sg-diagram-lasso-stroke: var(--sg-color-primary);
270
+ --sg-diagram-lasso-fill: rgba(64, 150, 255, 0.12);
271
+
272
+ --sg-chart-tooltip-bg: var(--sg-color-bg-elevated);
273
+ --sg-chart-tooltip-shadow:
274
+ 0 6px 20px rgba(0, 0, 0, 0.50),
275
+ 0 1px 3px rgba(0, 0, 0, 0.30);
276
+ --sg-chart-crosshair-color: rgba(255, 255, 255, 0.40);
277
+ --sg-chart-brush-fill: rgba(64, 150, 255, 0.16);
278
+ --sg-chart-brush-stroke: var(--sg-color-primary);
279
+ --sg-chart-legend-hover-bg: var(--sg-color-bg-hover);
280
+
281
+ --sg-dashboard-widget-shadow: var(--sg-shadow-sm);
282
+ --sg-dashboard-widget-shadow-hover:
283
+ 0 4px 12px rgba(0, 0, 0, 0.40),
284
+ 0 1px 3px rgba(0, 0, 0, 0.30);
285
+ --sg-dashboard-editor-grid-color: rgba(64, 150, 255, 0.08);
286
+ --sg-dashboard-editor-widget-border: var(--sg-color-primary);
287
+ --sg-dashboard-editor-drop-zone-bg: rgba(64, 150, 255, 0.10);
288
+ --sg-dashboard-editor-drop-zone-border: var(--sg-color-primary);
289
+
290
+ --sg-gantt-bar-shadow:
291
+ 0 1px 2px rgba(0, 0, 0, 0.40),
292
+ inset 0 1px 0 rgba(255, 255, 255, 0.10);
293
+ --sg-gantt-bar-shadow-hover:
294
+ 0 3px 8px rgba(0, 0, 0, 0.50),
295
+ inset 0 1px 0 rgba(255, 255, 255, 0.14);
296
+ --sg-gantt-today-marker-color: var(--sg-color-error);
297
+ --sg-gantt-today-marker-bg: rgba(220, 68, 70, 0.10);
298
+ --sg-gantt-dep-color: var(--sg-color-text-tertiary);
299
+
300
+ --sg-timeline-tail-color: var(--sg-color-border-secondary);
301
+ --sg-event-timeline-dot-shadow:
302
+ 0 0 0 3px var(--sg-color-bg),
303
+ 0 1px 3px rgba(64, 150, 255, 0.45);
304
+ --sg-event-timeline-dot-shadow-hover:
305
+ 0 0 0 3px var(--sg-color-bg),
306
+ 0 2px 10px rgba(64, 150, 255, 0.65);
307
+
308
+ --sg-rcal-today-bg: rgba(64, 150, 255, 0.08);
309
+ --sg-rcal-today-marker-color: var(--sg-color-primary);
310
+ --sg-rcal-lane-divider: var(--sg-color-border-secondary);
311
+ --sg-rcal-conflict-overlay-bg: rgba(220, 68, 70, 0.16);
312
+ }
@@ -0,0 +1,158 @@
1
+ /* ============================
2
+ SkyGraph Transitions
3
+ ============================ */
4
+
5
+ /* --- Fade --- */
6
+ .sg-fade-enter-from,
7
+ .sg-fade-leave-to {
8
+ opacity: 0;
9
+ }
10
+
11
+ .sg-fade-enter-to,
12
+ .sg-fade-leave-from {
13
+ opacity: 1;
14
+ }
15
+
16
+ .sg-fade-enter-active,
17
+ .sg-fade-leave-active {
18
+ transition: opacity 0.2s ease;
19
+ }
20
+
21
+ /* --- Slide Up --- */
22
+ .sg-slide-up-enter-from,
23
+ .sg-slide-up-leave-to {
24
+ opacity: 0;
25
+ transform: translateY(8px);
26
+ }
27
+
28
+ .sg-slide-up-enter-to,
29
+ .sg-slide-up-leave-from {
30
+ opacity: 1;
31
+ transform: translateY(0);
32
+ }
33
+
34
+ .sg-slide-up-enter-active,
35
+ .sg-slide-up-leave-active {
36
+ transition: opacity 0.2s ease, transform 0.2s ease;
37
+ }
38
+
39
+ /* --- Slide Down --- */
40
+ .sg-slide-down-enter-from,
41
+ .sg-slide-down-leave-to {
42
+ opacity: 0;
43
+ transform: translateY(-8px);
44
+ }
45
+
46
+ .sg-slide-down-enter-to,
47
+ .sg-slide-down-leave-from {
48
+ opacity: 1;
49
+ transform: translateY(0);
50
+ }
51
+
52
+ .sg-slide-down-enter-active,
53
+ .sg-slide-down-leave-active {
54
+ transition: opacity 0.2s ease, transform 0.2s ease;
55
+ }
56
+
57
+ /* --- Slide Left --- */
58
+ .sg-slide-left-enter-from,
59
+ .sg-slide-left-leave-to {
60
+ opacity: 0;
61
+ transform: translateX(-100%);
62
+ }
63
+
64
+ .sg-slide-left-enter-to,
65
+ .sg-slide-left-leave-from {
66
+ opacity: 1;
67
+ transform: translateX(0);
68
+ }
69
+
70
+ .sg-slide-left-enter-active,
71
+ .sg-slide-left-leave-active {
72
+ transition: opacity 0.3s ease, transform 0.3s ease;
73
+ }
74
+
75
+ /* --- Slide Right --- */
76
+ .sg-slide-right-enter-from,
77
+ .sg-slide-right-leave-to {
78
+ opacity: 0;
79
+ transform: translateX(100%);
80
+ }
81
+
82
+ .sg-slide-right-enter-to,
83
+ .sg-slide-right-leave-from {
84
+ opacity: 1;
85
+ transform: translateX(0);
86
+ }
87
+
88
+ .sg-slide-right-enter-active,
89
+ .sg-slide-right-leave-active {
90
+ transition: opacity 0.3s ease, transform 0.3s ease;
91
+ }
92
+
93
+ /* --- Zoom --- */
94
+ .sg-zoom-enter-from,
95
+ .sg-zoom-leave-to {
96
+ opacity: 0;
97
+ transform: scale(0.85);
98
+ }
99
+
100
+ .sg-zoom-enter-to,
101
+ .sg-zoom-leave-from {
102
+ opacity: 1;
103
+ transform: scale(1);
104
+ }
105
+
106
+ .sg-zoom-enter-active,
107
+ .sg-zoom-leave-active {
108
+ transition: opacity 0.2s ease, transform 0.2s ease;
109
+ }
110
+
111
+ /* --- Collapse --- */
112
+ .sg-collapse-enter-from,
113
+ .sg-collapse-leave-to {
114
+ max-height: 0;
115
+ overflow: hidden;
116
+ opacity: 0;
117
+ }
118
+
119
+ .sg-collapse-enter-to,
120
+ .sg-collapse-leave-from {
121
+ max-height: 1000px;
122
+ overflow: hidden;
123
+ opacity: 1;
124
+ }
125
+
126
+ .sg-collapse-enter-active,
127
+ .sg-collapse-leave-active {
128
+ transition: max-height 0.3s ease, opacity 0.3s ease;
129
+ }
130
+
131
+ /* --- Reduced motion --- */
132
+ @media (prefers-reduced-motion: reduce) {
133
+ .sg-fade-enter-active,
134
+ .sg-fade-leave-active,
135
+ .sg-slide-up-enter-active,
136
+ .sg-slide-up-leave-active,
137
+ .sg-slide-down-enter-active,
138
+ .sg-slide-down-leave-active,
139
+ .sg-slide-left-enter-active,
140
+ .sg-slide-left-leave-active,
141
+ .sg-slide-right-enter-active,
142
+ .sg-slide-right-leave-active,
143
+ .sg-zoom-enter-active,
144
+ .sg-zoom-leave-active,
145
+ .sg-collapse-enter-active,
146
+ .sg-collapse-leave-active {
147
+ transition-duration: 0.01ms !important;
148
+ }
149
+
150
+ .sg-spin,
151
+ .sg-skeleton-active .sg-skeleton-avatar,
152
+ .sg-skeleton-active .sg-skeleton-title,
153
+ .sg-skeleton-active .sg-skeleton-paragraph li,
154
+ .sg-badge-status-processing {
155
+ animation-duration: 0.01ms !important;
156
+ animation-iteration-count: 1 !important;
157
+ }
158
+ }