mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 16:55:24 +02:00
- Add bottom navigation bar (6 tabs) for mobile, hidden on desktop - Compact header with smaller logo and reduced padding on mobile - Collapsible filter bar with active filter count badge on mobile - Bottom-sheet style dropdowns with overlay and larger touch targets - Fullscreen AI chat on mobile, floating window on desktop - Responsive dashboard cards with always-visible expand button - Smaller table text and touch-friendly scroll on all data grids - iPhone safe-area support and thinner scrollbars on mobile Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
96 lines
2.1 KiB
HTML
96 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="dark">
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>SAS Analytics Dashboard</title>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<script>
|
|
tailwind.config = {
|
|
darkMode: 'class',
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
background: '#020617', // slate-950
|
|
surface: '#0f172a', // slate-900
|
|
border: '#1e293b', // slate-800
|
|
primary: '#6366f1', // indigo-500
|
|
secondary: '#64748b', // slate-500
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<!-- PapaParse for CSV parsing -->
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js"></script>
|
|
<style>
|
|
/* Custom Scrollbar */
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: #020617;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: #334155;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: #475569;
|
|
}
|
|
|
|
/* Thinner scrollbar on mobile */
|
|
@media (max-width: 767px) {
|
|
::-webkit-scrollbar {
|
|
width: 4px;
|
|
height: 4px;
|
|
}
|
|
}
|
|
|
|
@keyframes bounce-subtle {
|
|
|
|
0%,
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
50% {
|
|
transform: translateY(-3px);
|
|
}
|
|
}
|
|
|
|
.animate-bounce-subtle {
|
|
animation: bounce-subtle 2s ease-in-out infinite;
|
|
}
|
|
|
|
/* Bottom nav safe area for iPhones with notch */
|
|
.pb-safe {
|
|
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
}
|
|
|
|
/* Smooth momentum scrolling on iOS */
|
|
.scroll-touch {
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
/* Bottom nav spacing - adds padding so content isn't hidden behind fixed bottom nav */
|
|
@media (max-width: 767px) {
|
|
body {
|
|
padding-bottom: calc(4rem + env(safe-area-inset-bottom, 0px));
|
|
}
|
|
}
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body class="bg-background text-slate-200 antialiased overflow-y-auto">
|
|
<div id="root"></div>
|
|
<script type="module" src="/index.tsx"></script>
|
|
</body>
|
|
|
|
</html> |