diff --git a/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx b/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx
index 1c821f1e70e..ed99cead661 100644
--- a/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx
+++ b/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx
@@ -9,28 +9,20 @@ const dotColors = [
"fill-rose-400 dark:fill-rose-300",
];
-const gridDots = Array.from({ length: 96 }, (_, index) => {
+const gridDots = Array.from({ length: 583 }, (_, index) => {
+ const column = index % 53;
+ const row = Math.floor(index / 53);
const variation = (index * 73 + index * index * 19) % 101;
return {
- x: 5 + (index % 12) * 10,
- y: 4 + Math.floor(index / 12) * 10,
+ x: 5 + column * 10,
+ y: 4 + row * 10,
color: dotColors[variation % dotColors.length],
- opacity: 0.25 + variation * 0.0075,
+ duration: `${5.5 + (row % 3) * 0.7}s`,
+ delay: `${-((53 - column) * 0.1 + row * 0.43 + variation * 0.016)}s`,
};
});
-const organizedDots = Array.from({ length: 30 }, (_, index) => ({
- x: 5 + (index % 6) * 10,
- y: 34 + Math.floor(index / 6) * 10,
-}));
-
-const lightWaves = [0, 2.1, 4.2].map((phase) =>
- Array.from({ length: 83 }, (_, point) => {
- const x = point * 20 - 320;
- const y = 54 + Math.sin((x / 320) * Math.PI * 2 + phase) * 22;
- return `${point === 0 ? "M" : "L"} ${x} ${y.toFixed(2)}`;
- }).join(" "),
-);
+const organizedColumns = Array.from({ length: 50 }, (_, column) => column).filter((column) => column % 8 < 6);
export function GatewayFlow() {
const id = useId();
@@ -60,16 +52,6 @@ export function GatewayFlow() {
-
- {gridDots.map((dot, index) => (
-
- ))}
-
-
- {organizedDots.map((dot, index) => (
-
- ))}
-
@@ -83,41 +65,6 @@ export function GatewayFlow() {
fill="white"
/>
-
-
-
-
-
-
-
- {lightWaves.map((path, index) => (
-
- ))}
-
-
-
-
-
-
-
-
-
-
-
@@ -140,10 +87,29 @@ export function GatewayFlow() {
-
+ {organizedColumns.map((column) => (
+
+ {[34, 44, 54, 64, 74].map((y) => (
+
+ ))}
+
+ ))}
-
-
+
+ {gridDots.map((dot, index) => (
+
+ ))}
diff --git a/ui/litellm-dashboard/src/components/lens/setup/LensIntroduction.module.css b/ui/litellm-dashboard/src/components/lens/setup/LensIntroduction.module.css
index bc7e433723c..4c7e3ecaa98 100644
--- a/ui/litellm-dashboard/src/components/lens/setup/LensIntroduction.module.css
+++ b/ui/litellm-dashboard/src/components/lens/setup/LensIntroduction.module.css
@@ -1,5 +1,9 @@
-.swarmLight {
- animation: swarm-flow 28s linear infinite;
+.swarmDot {
+ animation: swarm-flow 6s ease-in-out infinite;
+}
+
+.organizedDots {
+ animation: organized-flow 6s ease-in-out infinite;
}
.gatewayGlow {
@@ -75,17 +79,34 @@
}
@keyframes swarm-flow {
- from {
- transform: translateX(0);
+ 0%,
+ 100% {
+ opacity: 0.15;
}
- to {
- transform: translateX(320px);
+ 45% {
+ opacity: 1;
+ }
+ 70% {
+ opacity: 0.55;
+ }
+}
+
+@keyframes organized-flow {
+ 0%,
+ 100% {
+ opacity: 0.2;
+ }
+ 40%,
+ 55% {
+ opacity: 1;
}
}
@media (prefers-reduced-motion: reduce) {
- .swarmLight {
+ .swarmDot,
+ .organizedDots {
animation: none;
+ opacity: 0.75;
}
.gatewayGlow,