HyperFlow / frontend /src /index.css
Gaurav711's picture
feat(ui): redesign frontend with luxury dark obsidian & coral pink theme based on ui frontend.png
8964497 verified
Raw
History Blame Contribute Delete
6.66 kB
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;0,700;1,400;1,600&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
/* Luxury Dark Obsidian & Coral Design System (Inspired by ui frontend.png) */
:root {
--bg-base: #0A090D;
--bg-card: rgba(18, 16, 23, 0.75);
--bg-card-hover: rgba(26, 23, 33, 0.85);
--bg-elevated: #15131C;
--bg-border: rgba(255, 255, 255, 0.08);
--bg-border-active: rgba(255, 51, 102, 0.3);
--text-primary: #FFFFFF;
--text-secondary: #9E9AA7;
--text-muted: #686373;
--accent-coral: #FF3366;
--accent-coral-pink: #FF4D6D;
--accent-gradient: linear-gradient(135deg, #FF3366 0%, #FF4D6D 100%);
--accent-coral-glow: rgba(255, 51, 102, 0.4);
--accent-emerald: #00E475;
--accent-amber: #FFB300;
--font-serif: 'Playfair Display', Georgia, serif;
--font-sans: 'Plus Jakarta Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
/* Backward Compatibility Tokens */
--surface-base: #0A090D;
--surface-panel: rgba(18, 16, 23, 0.75);
--surface-elevated: #15131C;
--border-glass: rgba(255, 255, 255, 0.08);
--border-active: rgba(255, 51, 102, 0.3);
--primary: #FF3366;
--primary-dim: #CC0044;
--primary-glow: rgba(255, 51, 102, 0.4);
--accent: #00E475;
--warning: #FFB300;
--danger: #FF3366;
--on-surface: #FFFFFF;
--on-surface-variant: #9E9AA7;
--font-body: 'Plus Jakarta Sans', sans-serif;
--radius-sm: 8px;
--radius-md: 14px;
--radius-lg: 18px;
--radius-pill: 9999px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: var(--font-sans);
background: var(--bg-base);
background-image:
radial-gradient(circle at 15% 15%, rgba(255, 51, 102, 0.08) 0%, transparent 45%),
radial-gradient(circle at 85% 85%, rgba(0, 228, 117, 0.04) 0%, transparent 50%);
color: var(--text-primary);
min-height: 100vh;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
/* App shell */
.app-shell {
display: flex;
flex-direction: column;
height: 100vh;
overflow: hidden;
background: var(--bg-base);
}
.app-body {
display: flex;
flex: 1;
overflow: hidden;
}
.app-main {
flex: 1;
overflow-y: auto;
background: transparent;
}
/* Glass card — Floating luxury cards */
.glass {
background: var(--bg-card);
border: 1px solid var(--bg-border);
border-radius: var(--radius-lg);
backdrop-filter: blur(20px);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
transition: all 0.25s ease;
}
.glass:hover {
border-color: rgba(255, 51, 102, 0.25);
box-shadow: 0 12px 36px rgba(255, 51, 102, 0.12);
}
/* Page layout */
.page {
display: flex;
flex-direction: column;
height: 100%;
padding: 24px 28px;
gap: 20px;
overflow-y: auto;
}
.page-header {
display: flex;
align-items: center;
justify-content: space-between;
flex-shrink: 0;
}
.page-title {
font-family: var(--font-serif);
font-size: 26px;
font-weight: 700;
color: var(--text-primary);
letter-spacing: -0.02em;
}
.page-subtitle {
font-family: var(--font-sans);
font-size: 13px;
color: var(--text-secondary);
margin-top: 2px;
}
/* Grid layouts */
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
/* KPI Cards */
.kpi-card {
background: var(--bg-card);
border: 1px solid var(--bg-border);
border-radius: var(--radius-md);
padding: 18px;
display: flex;
flex-direction: column;
gap: 6px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}
.kpi-label {
font-family: var(--font-sans);
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-secondary);
}
.kpi-value {
font-family: var(--font-serif);
font-size: 28px;
font-weight: 700;
color: var(--text-primary);
}
.kpi-change {
font-family: var(--font-sans);
font-size: 12px;
color: var(--text-muted);
}
/* Status Badges & Pills */
.pill-tag {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 14px;
background: rgba(255, 51, 102, 0.08);
border: 1px solid rgba(255, 51, 102, 0.25);
border-radius: var(--radius-pill);
font-family: var(--font-sans);
font-size: 11px;
font-weight: 600;
color: var(--accent-coral-pink);
text-transform: uppercase;
letter-spacing: 0.08em;
}
.badge {
display: inline-flex;
align-items: center;
padding: 4px 10px;
border-radius: var(--radius-pill);
font-size: 11px;
font-weight: 600;
font-family: var(--font-sans);
}
.badge-green { background: rgba(0, 228, 117, 0.12); color: var(--accent-emerald); border: 1px solid rgba(0, 228, 117, 0.25); }
.badge-coral { background: rgba(255, 51, 102, 0.12); color: var(--accent-coral-pink); border: 1px solid rgba(255, 51, 102, 0.25); }
.badge-gray { background: rgba(255, 255, 255, 0.04); color: var(--text-secondary); border: 1px solid var(--bg-border); }
.badge-orange { background: rgba(255, 179, 0, 0.15); color: var(--accent-amber); border: 1px solid rgba(255, 179, 0, 0.3); }
.badge-red { background: rgba(255, 51, 102, 0.15); color: var(--accent-coral); border: 1px solid rgba(255, 51, 102, 0.3); }
/* Buttons matching reference UI */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 10px 22px;
border-radius: var(--radius-pill);
font-family: var(--font-sans);
font-size: 13px;
font-weight: 600;
cursor: pointer;
border: none;
transition: all 0.25s ease;
text-decoration: none;
}
.btn-coral {
background: var(--accent-gradient);
color: #FFFFFF;
box-shadow: 0 4px 20px var(--accent-coral-glow);
}
.btn-coral:hover {
transform: translateY(-1px);
box-shadow: 0 6px 26px rgba(255, 51, 102, 0.55);
}
.btn-dark {
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.15);
color: var(--text-primary);
backdrop-filter: blur(10px);
}
.btn-dark:hover {
background: rgba(255, 255, 255, 0.08);
border-color: rgba(255, 255, 255, 0.3);
}
/* Custom scrollbars */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg-base); }
::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255, 51, 102, 0.4); }