From ebec667d626725070bf6bb3d6bad4fa36daeed86 Mon Sep 17 00:00:00 2001 From: mawkone Date: Mon, 8 Jun 2026 11:44:41 -0700 Subject: [PATCH] design: align layout-mockup previews with 100% precision to your actual Lattice CRM templates --- .../_onboarding/onboarding-entrepreneur.tsx | 521 ++++++++++++++++-- 1 file changed, 489 insertions(+), 32 deletions(-) diff --git a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx index 4899f86..5e864f7 100644 --- a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx +++ b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx @@ -174,16 +174,15 @@ function EntrepType({ value, onChange }) { function LayoutPreview({ styleId }: { styleId: string }) { // Styles are 100% width, 104px tall absolute layouts resembling the wireframes. - const isDark = - styleId !== "minimal" && styleId !== "swiss" && styleId !== "sidebar"; + const isDark = styleId === "rail"; const accentColor = "var(--accent)"; const wireLine = (w: string | number, opacity = 0.25) => (
+ {/* Logo */} +
+
+ {wireLine(18, 0.55)} +
+ {/* Mini Search box */} +
+ {/* Menu items */} +
+ {wireLine(24, 0.45)} + {wireLine(20, 0.3)} + {wireLine(26, 0.3)} +
+
+ {/* Main Dashboard (Light) */} +
+ {/* Header */} +
+ {wireLine(36, 0.65)} +
+
+ {/* 4 Mini Cards Grid */} +
+ {[1, 2, 3, 4].map((i) => ( +
+ {wireLine("50%", 0.3)} +
+
+ ))} +
+ {/* Charts/Table Row */} +
+
+ {wireLine("40%", 0.4)} + {/* Simulated bars */} +
+ {[6, 12, 10, 16, 20, 14, 8].map((h, idx) => ( +
+ ))} +
+
+
+ {wireLine("70%", 0.4)} + {wireLine("100%", 0.15)} + {wireLine("90%", 0.15)} +
+
+
+
+ ); + } else if (styleId === "topbar") { + // Top Horizontal Dark Header Bar + Light Dashboard (Screen 2) + content = ( +
+ {/* Top Dark Header */} +
+
+
+
+
+
+ {/* Miniature ⌘K Bar */} +
+
+
+
+
+ {/* Light Dashboard below */} +
+ {/* Header */} +
+ {wireLine(36, 0.65)} + {wireLine(24, 0.35)} +
+ {/* 4 Mini Cards Grid */} +
+ {[1, 2, 3, 4].map((i) => ( +
+ {wireLine("50%", 0.3)} +
+
+ ))} +
+ {/* Charts Row */} +
+
+
+ {[6, 12, 10, 16, 20, 14, 8].map((h, idx) => ( +
+ ))} +
+
+
+ {wireLine("70%", 0.4)} + {wireLine("100%", 0.15)} +
+
+
+
+ ); + } else if (styleId === "rail") { + // Icon rail + secondary vertical list panel — Complete Dark-mode Dashboard (Screen 1) + content = ( +
+ {/* Far-left Icon Rail (Black) */} +
- {wireLine(16, 0.4)} - {wireLine(12, 0.3)} - {wireLine(14, 0.3)} + {[1, 2, 3, 4].map((i) => ( +
+ ))}
- {/* Main Dashboard */} + {/* Secondary List Panel (Dark) */} +
+
+ {wireLine(28, 0.45)} +
+
+ {wireLine(36, 0.35)} + {wireLine(24, 0.2)} + {wireLine(32, 0.2)} + {wireLine(28, 0.2)} +
+ {/* Main Content Area (Dark) */}
- {wireLine(24, 0.6)} + {wireLine(36, 0.65)}
+ {/* 4 Mini Cards Grid (Dark) */} +
+ {[1, 2, 3, 4].map((i) => ( +
+ {wireLine("50%", 0.35)} +
+
+ ))} +
+ {/* Charts Row (Dark) */}
- {wireLine("100%", 0.4)} - {wireLine("60%", 0.2)} +
+ {[6, 12, 10, 16, 20, 14, 8].map((h, idx) => ( +
+ ))} +
+ > + {wireLine("70%", 0.45)} + {wireLine("100%", 0.2)} +
); - } else if (styleId === "topbar") { + } else if (styleId === "flux") { // Top horizontal header bar + multi-column page content = (