diff --git a/src/components/common/LoadingSkeleton.tsx b/src/components/common/LoadingSkeleton.tsx index 17fe432..7635d5b 100644 --- a/src/components/common/LoadingSkeleton.tsx +++ b/src/components/common/LoadingSkeleton.tsx @@ -1,104 +1,129 @@ 'use client'; -// Skeleton UI while localStorage hydrates. Inline CSS for instant animation. export function LoadingSkeleton() { + // Matches the actual app layout roughly + const columns = [ + [{ apps: 10 }, { apps: 12 }], + [{ apps: 9 }, { apps: 13 }], + [{ apps: 11 }, { apps: 11 }], + [{ apps: 12 }, { apps: 10 }], + [{ apps: 10 }, { apps: 12 }] + ]; + + const widths = ['55%', '72%', '45%', '82%', '60%', '48%', '78%', '65%', '88%', '42%', '70%', '58%', '68%', '52%']; + return ( <> - {/* Inline keyframes for immediate animation - no external CSS needed */}
- {/* Header Skeleton */} + {/* Header - logo, title, controls */}
-
- {/* Logo placeholder */} +
-
-
+
-
+
+
+ +
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
- {/* Grid Skeleton */} -
+ {/* App grid - categories and items */} +
-
- {[...Array(5)].map((_, colIdx) => ( -
- {[...Array(3)].map((_, catIdx) => ( +
+ {columns.map((cats, colIdx) => ( +
+ {cats.map((cat, catIdx) => (
- {/* Category header skeleton */} -
-
-
+
+
+
+
- {/* App items skeleton */} - {[...Array(3 + catIdx)].map((_, appIdx) => ( -
+ {[...Array(cat.apps)].map((_, i) => ( +
@@ -110,52 +135,6 @@ export function LoadingSkeleton() {
- - {/* Footer Skeleton - Matches new nvim-style footer */} -
-
- {/* ShortcutsBar skeleton */} -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - {/* Command Bar skeleton */} -
-
-
-
-
-
-
-
-
-
-
-
);