@alphacifer/slidev-addon-theme 0.0.7 → 0.0.8

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 (105) hide show
  1. package/README.md +106 -76
  2. package/components/{chevron-card → card/chevron-card}/ChevronCard.vue +2 -2
  3. package/components/{chevron-card → card/chevron-card}/ChevronCardBadge.vue +1 -1
  4. package/components/{chevron-card → card/chevron-card}/ChevronCardContent.vue +1 -1
  5. package/components/{chevron-card → card/chevron-card}/ChevronCardHeading.vue +1 -1
  6. package/components/{horiz-card → card/horiz-card}/HorizCard.vue +2 -2
  7. package/components/{horiz-card → card/horiz-card}/HorizCardBadge.vue +2 -2
  8. package/components/{horiz-card → card/horiz-card}/HorizCardContent.vue +2 -2
  9. package/components/{horiz-card → card/horiz-card}/HorizCardHeading.vue +2 -2
  10. package/components/{horiz-card → card/horiz-card}/HorizCardIcon.vue +2 -2
  11. package/components/{vert-card → card/vert-card}/VertCard.vue +2 -2
  12. package/components/{vert-card → card/vert-card}/VertCardBadge.vue +5 -2
  13. package/components/{vert-card → card/vert-card}/VertCardContent.vue +2 -2
  14. package/components/{vert-card → card/vert-card}/VertCardHeading.vue +2 -2
  15. package/components/{vert-card → card/vert-card}/VertCardIcon.vue +2 -2
  16. package/components/{vert-card → card/vert-card}/VertCardTitle.vue +2 -2
  17. package/components/comparisons/arc-comparison/ArcComparison.vue +654 -0
  18. package/components/comparisons/arc-comparison/ArcComparisonBadge.vue +29 -0
  19. package/components/comparisons/arc-comparison/ArcComparisonContent.vue +29 -0
  20. package/components/comparisons/arc-comparison/ArcComparisonContents.vue +17 -0
  21. package/components/comparisons/arc-comparison/ArcComparisonHeading.vue +29 -0
  22. package/components/comparisons/arc-comparison/ArcComparisonLeft.vue +268 -0
  23. package/components/comparisons/arc-comparison/ArcComparisonOrbit.vue +47 -0
  24. package/components/comparisons/arc-comparison/ArcComparisonRight.vue +271 -0
  25. package/components/comparisons/arc-comparison/ArcComparisonTitle.vue +29 -0
  26. package/components/{comparison-table/ComparisonTable.vue → comparisons/table-comparison/TableComparison.vue} +37 -27
  27. package/components/{comparison-table/ComparisonTableCell.vue → comparisons/table-comparison/TableComparisonCell.vue} +8 -8
  28. package/components/{comparison-table/ComparisonTableCol.vue → comparisons/table-comparison/TableComparisonCol.vue} +10 -10
  29. package/components/{comparison-table/ComparisonTableCols.vue → comparisons/table-comparison/TableComparisonCols.vue} +11 -11
  30. package/components/{comparison-table/ComparisonTableRow.vue → comparisons/table-comparison/TableComparisonRow.vue} +9 -9
  31. package/components/{comparison-table/ComparisonTableRows.vue → comparisons/table-comparison/TableComparisonRows.vue} +3 -3
  32. package/components/core/ReflectedTitle.vue +2 -1
  33. package/components/core/arc-orbit/ArcOrbit.vue +468 -0
  34. package/components/{arc-compare/ArcCompareBadge.vue → core/arc-orbit/ArcOrbitBadge.vue} +11 -8
  35. package/components/core/arc-orbit/ArcOrbitCallout.vue +400 -0
  36. package/components/{arc-compare/ArcCompareContent.vue → core/arc-orbit/ArcOrbitContent.vue} +8 -8
  37. package/components/{arc-compare/ArcCompareContents.vue → core/arc-orbit/ArcOrbitContents.vue} +3 -3
  38. package/components/{arc-compare/ArcCompareHeading.vue → core/arc-orbit/ArcOrbitHeading.vue} +11 -8
  39. package/components/core/arc-orbit/ArcOrbitTitle.vue +50 -0
  40. package/components/{thanks → core/thanks}/ThanksOutlineSquare.vue +1 -1
  41. package/components/{thanks → core/thanks}/ThanksSquare.vue +1 -1
  42. package/components/{quad-hub/QuadHub.vue → facets/tetrad/rect-orbit-tetrad/RectOrbitTetrad.vue} +71 -69
  43. package/components/{quad-hub/QuadHubCallout.vue → facets/tetrad/rect-orbit-tetrad/RectOrbitTetradCallout.vue} +45 -43
  44. package/components/{quad-hub/QuadHubCenter.vue → facets/tetrad/rect-orbit-tetrad/RectOrbitTetradCenter.vue} +4 -4
  45. package/components/{quad-hub/QuadHubContent.vue → facets/tetrad/rect-orbit-tetrad/RectOrbitTetradContent.vue} +6 -6
  46. package/components/{quad-hub/QuadHubHeading.vue → facets/tetrad/rect-orbit-tetrad/RectOrbitTetradHeading.vue} +6 -6
  47. package/components/{quad-hub/QuadHubIcon.vue → facets/tetrad/rect-orbit-tetrad/RectOrbitTetradIcon.vue} +6 -6
  48. package/components/{arrow-triad → facets/triad/arrow-triad}/ArrowTriad.vue +3 -3
  49. package/components/{arrow-triad → facets/triad/arrow-triad}/ArrowTriadCallout.vue +1 -1
  50. package/components/{arrow-triad → facets/triad/arrow-triad}/ArrowTriadContent.vue +1 -1
  51. package/components/{arrow-triad → facets/triad/arrow-triad}/ArrowTriadHeading.vue +1 -1
  52. package/components/facets/triad/gear-triad/GearTriad.vue +591 -0
  53. package/components/facets/triad/gear-triad/GearTriadCallout.vue +285 -0
  54. package/components/facets/triad/gear-triad/GearTriadCenter.vue +41 -0
  55. package/components/facets/triad/gear-triad/GearTriadContent.vue +58 -0
  56. package/components/facets/triad/gear-triad/GearTriadContents.vue +111 -0
  57. package/components/facets/triad/gear-triad/GearTriadDescription.vue +38 -0
  58. package/components/facets/triad/gear-triad/GearTriadHeading.vue +38 -0
  59. package/components/facets/triad/gear-triad/GearTriadIcon.vue +157 -0
  60. package/components/{hex-triad → facets/triad/hex-triad}/HexTriad.vue +2 -2
  61. package/components/{hex-triad → facets/triad/hex-triad}/HexTriadBadge.vue +1 -1
  62. package/components/{hex-triad → facets/triad/hex-triad}/HexTriadCallout.vue +1 -1
  63. package/components/{hex-triad → facets/triad/hex-triad}/HexTriadHeading.vue +1 -1
  64. package/components/{arc-arrow-process → process/arc-arrow-process}/ArcArrowProcess.vue +2 -2
  65. package/components/{arc-arrow-process → process/arc-arrow-process}/ArcArrowProcessArrow.vue +1 -1
  66. package/components/{arc-arrow-process → process/arc-arrow-process}/ArcArrowProcessCallout.vue +1 -1
  67. package/components/{arc-arrow-process → process/arc-arrow-process}/ArcArrowProcessContent.vue +1 -1
  68. package/components/{arc-arrow-process → process/arc-arrow-process}/ArcArrowProcessHeading.vue +1 -1
  69. package/package.json +1 -1
  70. package/utils/arcComparison/context.ts +40 -0
  71. package/utils/arcComparison/createArcComparisonGeometry.ts +175 -0
  72. package/utils/arcComparison/index.ts +3 -0
  73. package/utils/{arcCompare/resolveArcCompareItems.ts → arcComparison/resolveArcComparisonItems.ts} +24 -45
  74. package/utils/arcOrbit/context.ts +38 -0
  75. package/utils/{arcCompare/createArcCompareGeometry.ts → arcOrbit/createArcOrbitGeometry.ts} +77 -108
  76. package/utils/arcOrbit/index.ts +3 -0
  77. package/utils/arcOrbit/resolveArcOrbitItems.ts +92 -0
  78. package/utils/gearTriad/context.ts +51 -0
  79. package/utils/gearTriad/createGearTriadGeometry.ts +210 -0
  80. package/utils/gearTriad/index.ts +3 -0
  81. package/utils/gearTriad/resolveGearTriadItems.ts +159 -0
  82. package/utils/rectOrbitTetrad/context.ts +31 -0
  83. package/utils/{quadHub/createQuadHubGeometry.ts → rectOrbitTetrad/createRectOrbitTetradGeometry.ts} +33 -28
  84. package/utils/rectOrbitTetrad/index.ts +3 -0
  85. package/utils/{quadHub/resolveQuadHubItems.ts → rectOrbitTetrad/resolveRectOrbitTetradItems.ts} +25 -25
  86. package/utils/{comparisonTable → tableComparison}/context.ts +6 -6
  87. package/utils/useDiagramAutoScale.ts +1 -1
  88. package/components/arc-compare/ArcCompare.vue +0 -443
  89. package/components/arc-compare/ArcCompareCallout.vue +0 -386
  90. package/components/arc-compare/ArcCompareLeft.vue +0 -183
  91. package/components/arc-compare/ArcCompareRight.vue +0 -183
  92. package/components/arc-compare/ArcCompareTitle.vue +0 -47
  93. package/utils/arcCompare/context.ts +0 -36
  94. package/utils/arcCompare/index.ts +0 -3
  95. package/utils/quadHub/context.ts +0 -26
  96. package/utils/quadHub/index.ts +0 -3
  97. /package/components/{shifting-heading → core}/TransitionHeading.vue +0 -0
  98. /package/components/{thanks → core/thanks}/ThanksContent.vue +0 -0
  99. /package/components/{arrow-triad → facets/triad/arrow-triad}/ArrowTriadIcon.vue +0 -0
  100. /package/components/{hex-triad → facets/triad/hex-triad}/HexTriadCenterBadge.vue +0 -0
  101. /package/components/{hex-triad → facets/triad/hex-triad}/HexTriadContent.vue +0 -0
  102. /package/components/{hex-triad → facets/triad/hex-triad}/HexTriadLayer.vue +0 -0
  103. /package/components/{arc-arrow-process → process/arc-arrow-process}/ArcArrowProcessIcon.vue +0 -0
  104. /package/utils/{comparisonTable → tableComparison}/constants.ts +0 -0
  105. /package/utils/{comparisonTable → tableComparison}/index.ts +0 -0
@@ -1,443 +0,0 @@
1
- <script setup lang="ts">
2
- import {
3
- type ComputedRef,
4
- computed,
5
- Fragment,
6
- inject,
7
- provide,
8
- ref,
9
- useSlots,
10
- type VNode,
11
- } from 'vue';
12
-
13
- import {
14
- ARC_COMPARE_ROOT_KEY,
15
- createArcCompareGeometry,
16
- } from '../../utils/arcCompare';
17
- import { useDiagramAutoScale } from '../../utils/useDiagramAutoScale';
18
- import { useMergedUnoAttrs } from '../../utils/useMergedUnoAttrs';
19
- import ArcCompareLeft from './ArcCompareLeft.vue';
20
- import ArcCompareRight from './ArcCompareRight.vue';
21
-
22
- defineOptions({
23
- name: 'ArcCompare',
24
- inheritAttrs: false,
25
- });
26
-
27
- export interface IArcCompareProps {
28
- readonly vsText?: string;
29
- readonly vsSize?: number;
30
- readonly count?: number;
31
- readonly hubRadius?: number;
32
- readonly arcRadius?: number;
33
- readonly arcOffset?: number;
34
- readonly animation?: boolean;
35
- readonly height?: number | string;
36
- readonly startDelay?: number;
37
- readonly active?: boolean;
38
- readonly scale?: number;
39
- readonly autoScale?: boolean;
40
- readonly maxScale?: number;
41
- readonly hidePagy?: boolean;
42
- }
43
-
44
- const props = withDefaults(defineProps<IArcCompareProps>(), {
45
- vsText: 'Vs',
46
- vsSize: 14,
47
- count: undefined,
48
- hubRadius: undefined,
49
- arcRadius: undefined,
50
- arcOffset: undefined,
51
- animation: true,
52
- height: undefined,
53
- startDelay: undefined,
54
- active: undefined,
55
- scale: undefined,
56
- autoScale: true,
57
- maxScale: undefined,
58
- hidePagy: undefined,
59
- });
60
-
61
- const slots = useSlots();
62
- const rootRef = ref<HTMLElement | null>(null);
63
-
64
- const shiftingIntro = inject<
65
- | {
66
- active: ComputedRef<boolean>;
67
- isShifting?: ComputedRef<boolean>;
68
- }
69
- | undefined
70
- >('SLIDEV_LAYOUT_SHIFTING_INTRO', undefined);
71
-
72
- const isAnimated = computed(() => {
73
- if (!props.animation) {
74
- return false;
75
- }
76
-
77
- if (props.active !== undefined) {
78
- return props.active;
79
- }
80
-
81
- if (shiftingIntro) {
82
- return shiftingIntro.active.value;
83
- }
84
-
85
- return true;
86
- });
87
-
88
- const resolvedStartDelay = computed(() => {
89
- if (props.startDelay !== undefined) {
90
- return props.startDelay;
91
- }
92
-
93
- if (shiftingIntro) {
94
- return shiftingIntro.isShifting?.value ? 500 : 0;
95
- }
96
-
97
- return 0;
98
- });
99
-
100
- function isSignificantNode(node: VNode): boolean {
101
- if (typeof node.type === 'symbol') {
102
- if (typeof node.children === 'string' && !node.children.trim()) {
103
- return false;
104
- }
105
- }
106
-
107
- if (typeof node.children === 'string' && !node.children.trim()) {
108
- return false;
109
- }
110
-
111
- return true;
112
- }
113
-
114
- function flattenVNodes(nodes: VNode[]): VNode[] {
115
- const result: VNode[] = [];
116
-
117
- for (const node of nodes) {
118
- if (node.type === Fragment && Array.isArray(node.children)) {
119
- result.push(...flattenVNodes(node.children as VNode[]));
120
- } else if (isSignificantNode(node)) {
121
- result.push(node);
122
- }
123
- }
124
-
125
- return result;
126
- }
127
-
128
- const defaultNodes = computed(() => {
129
- if (!slots.default) {
130
- return [];
131
- }
132
-
133
- return flattenVNodes(slots.default());
134
- });
135
-
136
- const resolvedCount = computed(() => {
137
- if (props.count === 4 || (props.count as unknown) === '4') {
138
- return 4;
139
- }
140
-
141
- for (const node of defaultNodes.value) {
142
- if (node.props?.count === 4 || (node.props?.count as unknown) === '4') {
143
- return 4;
144
- }
145
- }
146
-
147
- return 3;
148
- });
149
-
150
- const geo = computed(() => {
151
- return createArcCompareGeometry({
152
- viewBoxWidth: 1000,
153
- viewBoxHeight: 480,
154
- hubRadius: props.hubRadius,
155
- arcRadius: props.arcRadius,
156
- arcOffset: props.arcOffset,
157
- pointsCount: resolvedCount.value,
158
- });
159
- });
160
-
161
- provide(ARC_COMPARE_ROOT_KEY, {
162
- animation: isAnimated,
163
- startDelay: resolvedStartDelay,
164
- pointsCount: resolvedCount,
165
- geo,
166
- });
167
-
168
- const { resolvedScale, containerHeight } = useDiagramAutoScale({
169
- rootRef,
170
- baseWidth: 1000,
171
- baseHeight: 480,
172
- scale: () => props.scale,
173
- autoScale: () => props.autoScale,
174
- maxScale: () => props.maxScale,
175
- height: () => props.height,
176
- });
177
-
178
- const stageTransform = computed(() => {
179
- if (resolvedScale.value !== 1) {
180
- return `scale(${resolvedScale.value})`;
181
- }
182
-
183
- return undefined;
184
- });
185
-
186
- const resolvedHeightStyle = computed(() => {
187
- if (props.height !== undefined) {
188
- return typeof props.height === 'number'
189
- ? `${props.height}px`
190
- : props.height;
191
- }
192
-
193
- if (containerHeight.value > 0) {
194
- return `${containerHeight.value}px`;
195
- }
196
-
197
- return undefined;
198
- });
199
-
200
- const { className, forwardedAttrs } = useMergedUnoAttrs(
201
- 'alpha-arc-compare w-full flex-1 flex flex-col items-center justify-center select-none font-sans relative min-h-0',
202
- );
203
- </script>
204
-
205
- <template>
206
- <div
207
- ref="rootRef"
208
- v-bind="forwardedAttrs()"
209
- :class="[
210
- className(),
211
- { 'hide-pagy': props.hidePagy },
212
- ]"
213
- :data-hide-pagy="props.hidePagy ? '' : undefined"
214
- :style="{
215
- height: resolvedHeightStyle,
216
- fontFamily:
217
- 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif',
218
- '--arc-compare-start-delay': `${resolvedStartDelay}ms`,
219
- }"
220
- >
221
- <!-- Relative stage container -->
222
- <div
223
- class="alpha-arc-compare__stage relative w-[1000px] h-[480px] flex items-center justify-center overflow-visible flex-shrink-0"
224
- :style="{
225
- transform: stageTransform,
226
- transformOrigin: 'center center',
227
- }"
228
- >
229
- <!-- Base SVG Layer -->
230
- <svg
231
- class="alpha-arc-compare__svg absolute inset-0 w-full h-full pointer-events-none overflow-visible"
232
- viewBox="0 0 1000 480"
233
- xmlns="http://www.w3.org/2000/svg"
234
- >
235
- <!-- Center Divider Line -->
236
- <line
237
- class="alpha-arc-compare__divider transition-colors duration-300 dark:stroke-slate-700"
238
- :class="{ 'alpha-arc-compare--animated': isAnimated }"
239
- :x1="geo.dividerLine.x"
240
- :y1="geo.dividerLine.y1"
241
- :x2="geo.dividerLine.x"
242
- :y2="geo.dividerLine.y2"
243
- stroke="#cbd5e1"
244
- stroke-width="1.5"
245
- />
246
- <!-- Left Semicircular Hub Background -->
247
- <g
248
- class="alpha-arc-compare__hub alpha-arc-compare__hub--left"
249
- :class="{ 'alpha-arc-compare--animated': isAnimated }"
250
- >
251
- <path
252
- :d="geo.left.hubPath"
253
- fill="#f1f3f6"
254
- class="transition-colors duration-300 dark:fill-slate-800/80"
255
- />
256
- </g>
257
- <!-- Left Arc Guide Line and End Dots -->
258
- <g
259
- class="alpha-arc-compare__arc alpha-arc-compare__arc--left"
260
- :class="{ 'alpha-arc-compare--animated': isAnimated }"
261
- >
262
- <path
263
- :d="geo.left.arcPath"
264
- fill="none"
265
- stroke="#cbd5e1"
266
- stroke-width="1.5"
267
- class="transition-colors duration-300 dark:stroke-slate-700"
268
- />
269
- <circle
270
- :cx="geo.left.topDot.x"
271
- :cy="geo.left.topDot.y"
272
- :r="geo.left.dotRadius"
273
- fill="#94a3b8"
274
- class="dark:fill-slate-600"
275
- />
276
- <circle
277
- :cx="geo.left.bottomDot.x"
278
- :cy="geo.left.bottomDot.y"
279
- :r="geo.left.dotRadius"
280
- fill="#94a3b8"
281
- class="dark:fill-slate-600"
282
- />
283
- </g>
284
- <!-- Right Semicircular Hub Background -->
285
- <g
286
- class="alpha-arc-compare__hub alpha-arc-compare__hub--right"
287
- :class="{ 'alpha-arc-compare--animated': isAnimated }"
288
- >
289
- <path
290
- :d="geo.right.hubPath"
291
- fill="#f1f3f6"
292
- class="transition-colors duration-300 dark:fill-slate-800/80"
293
- />
294
- </g>
295
- <!-- Right Arc Guide Line and End Dots -->
296
- <g
297
- class="alpha-arc-compare__arc alpha-arc-compare__arc--right"
298
- :class="{ 'alpha-arc-compare--animated': isAnimated }"
299
- >
300
- <path
301
- :d="geo.right.arcPath"
302
- fill="none"
303
- stroke="#cbd5e1"
304
- stroke-width="1.5"
305
- class="transition-colors duration-300 dark:stroke-slate-700"
306
- />
307
- <circle
308
- :cx="geo.right.topDot.x"
309
- :cy="geo.right.topDot.y"
310
- :r="geo.right.dotRadius"
311
- fill="#94a3b8"
312
- class="dark:fill-slate-600"
313
- />
314
- <circle
315
- :cx="geo.right.bottomDot.x"
316
- :cy="geo.right.bottomDot.y"
317
- :r="geo.right.dotRadius"
318
- fill="#94a3b8"
319
- class="dark:fill-slate-600"
320
- />
321
- </g>
322
- <!-- Center "Vs" Circle Badge -->
323
- <g
324
- class="alpha-arc-compare__vs"
325
- :class="{ 'alpha-arc-compare--animated': isAnimated }"
326
- >
327
- <circle
328
- :cx="geo.vsCenter.x"
329
- :cy="geo.vsCenter.y"
330
- :r="geo.vsRadius"
331
- fill="#ffffff"
332
- stroke="#cbd5e1"
333
- stroke-width="2"
334
- class="transition-colors duration-300 dark:fill-slate-100 dark:stroke-slate-300"
335
- style="filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.22));"
336
- />
337
- <text
338
- :x="geo.vsCenter.x"
339
- :y="geo.vsCenter.y"
340
- text-anchor="middle"
341
- dominant-baseline="central"
342
- font-weight="700"
343
- :font-size="props.vsSize"
344
- fill="#0f172a"
345
- letter-spacing="-0.01em"
346
- class="dark:fill-slate-900 select-none pointer-events-none"
347
- style="font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;"
348
- >
349
- {{ props.vsText }}
350
- </text>
351
- </g>
352
- </svg>
353
- <!-- Compound Content Layer -->
354
- <template v-if="defaultNodes.length > 0">
355
- <component :is="node" v-for="(node, i) in defaultNodes" :key="i" />
356
- </template>
357
- <template v-else>
358
- <ArcCompareLeft :count="resolvedCount" />
359
- <ArcCompareRight :count="resolvedCount" />
360
- </template>
361
- </div>
362
- </div>
363
- </template>
364
-
365
- <style scoped>
366
- /* Animated Transitions */
367
- .alpha-arc-compare--animated.alpha-arc-compare__divider {
368
- animation: arc-divider-in 500ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-compare-start-delay, 0ms) + 50ms) both;
369
- }
370
-
371
- .alpha-arc-compare--animated.alpha-arc-compare__hub--left {
372
- animation: arc-hub-left-in 550ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-compare-start-delay, 0ms) + 30ms) both;
373
- }
374
-
375
- .alpha-arc-compare--animated.alpha-arc-compare__hub--right {
376
- animation: arc-hub-right-in 550ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-compare-start-delay, 0ms) + 30ms) both;
377
- }
378
-
379
- .alpha-arc-compare--animated.alpha-arc-compare__arc--left,
380
- .alpha-arc-compare--animated.alpha-arc-compare__arc--right {
381
- animation: arc-line-fade 500ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-compare-start-delay, 0ms) + 100ms) both;
382
- }
383
-
384
- .alpha-arc-compare--animated.alpha-arc-compare__vs {
385
- animation: arc-vs-bounce 550ms cubic-bezier(0.34, 1.56, 0.64, 1) calc(var(--arc-compare-start-delay, 0ms) + 220ms) both;
386
- transform-origin: 500px 240px;
387
- transform-box: view-box;
388
- }
389
-
390
- @keyframes arc-divider-in {
391
- 0% {
392
- opacity: 0;
393
- transform: scaleY(0);
394
- transform-origin: center;
395
- }
396
- 100% {
397
- opacity: 1;
398
- transform: scaleY(1);
399
- }
400
- }
401
-
402
- @keyframes arc-hub-left-in {
403
- 0% {
404
- opacity: 0;
405
- transform: translateX(-40px);
406
- }
407
- 100% {
408
- opacity: 1;
409
- transform: translateX(0);
410
- }
411
- }
412
-
413
- @keyframes arc-hub-right-in {
414
- 0% {
415
- opacity: 0;
416
- transform: translateX(40px);
417
- }
418
- 100% {
419
- opacity: 1;
420
- transform: translateX(0);
421
- }
422
- }
423
-
424
- @keyframes arc-line-fade {
425
- 0% {
426
- opacity: 0;
427
- }
428
- 100% {
429
- opacity: 1;
430
- }
431
- }
432
-
433
- @keyframes arc-vs-bounce {
434
- 0% {
435
- opacity: 0;
436
- transform: scale(0.4);
437
- }
438
- 100% {
439
- opacity: 1;
440
- transform: scale(1);
441
- }
442
- }
443
- </style>