Files
gatehouse-ui/src/index.css
T

236 lines
5.3 KiB
CSS
Raw Normal View History

2025-01-01 00:00:00 +00:00
@tailwind base;
@tailwind components;
@tailwind utilities;
2026-01-06 15:17:10 +00:00
/* Gatehouse Design System - Enterprise Identity & Access Platform
Authoritative, infrastructure-grade aesthetic with slate/charcoal/muted blue palette
2026-01-06 14:46:23 +00:00
Colors are HSL for theming flexibility
2025-01-01 00:00:00 +00:00
*/
2026-01-06 14:46:23 +00:00
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
2025-01-01 00:00:00 +00:00
@layer base {
:root {
2026-01-06 14:46:23 +00:00
/* Core palette - Deep slate with teal accent */
--background: 210 20% 98%;
--foreground: 222 47% 11%;
2025-01-01 00:00:00 +00:00
--card: 0 0% 100%;
2026-01-06 14:46:23 +00:00
--card-foreground: 222 47% 11%;
2025-01-01 00:00:00 +00:00
--popover: 0 0% 100%;
2026-01-06 14:46:23 +00:00
--popover-foreground: 222 47% 11%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
/* Primary - Deep navy for trust */
--primary: 222 47% 20%;
2025-01-01 00:00:00 +00:00
--primary-foreground: 210 40% 98%;
2026-01-06 14:46:23 +00:00
/* Secondary - Soft slate */
--secondary: 215 20% 95%;
--secondary-foreground: 222 47% 20%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
/* Muted - Subtle backgrounds */
--muted: 215 20% 96%;
--muted-foreground: 215 16% 47%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
/* Accent - Teal for actions and highlights */
--accent: 173 58% 39%;
--accent-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
/* Semantic colors */
--destructive: 0 72% 51%;
--destructive-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--success: 152 69% 31%;
--success-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--warning: 38 92% 50%;
--warning-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--info: 199 89% 48%;
--info-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
/* UI elements */
--border: 214 32% 91%;
--input: 214 32% 91%;
--ring: 173 58% 39%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--radius: 0.5rem;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
/* Sidebar - Darker for visual hierarchy */
--sidebar-background: 222 47% 11%;
--sidebar-foreground: 215 20% 85%;
--sidebar-primary: 173 58% 45%;
--sidebar-primary-foreground: 0 0% 100%;
--sidebar-accent: 222 40% 18%;
--sidebar-accent-foreground: 210 40% 98%;
--sidebar-border: 222 40% 20%;
--sidebar-ring: 173 58% 45%;
--sidebar-muted: 215 16% 55%;
/* Custom gradients and effects */
--gradient-brand: linear-gradient(135deg, hsl(222 47% 20%), hsl(222 47% 11%));
--gradient-accent: linear-gradient(135deg, hsl(173 58% 39%), hsl(173 58% 32%));
--gradient-subtle: linear-gradient(135deg, hsl(210 20% 98%), hsl(215 20% 96%));
--shadow-sm: 0 1px 2px 0 hsl(222 47% 11% / 0.05);
--shadow-md: 0 4px 6px -1px hsl(222 47% 11% / 0.1), 0 2px 4px -2px hsl(222 47% 11% / 0.1);
--shadow-lg: 0 10px 15px -3px hsl(222 47% 11% / 0.1), 0 4px 6px -4px hsl(222 47% 11% / 0.1);
--shadow-card: 0 1px 3px 0 hsl(222 47% 11% / 0.06), 0 1px 2px -1px hsl(222 47% 11% / 0.06);
2025-01-01 00:00:00 +00:00
}
.dark {
2026-01-06 14:46:23 +00:00
--background: 222 47% 6%;
2025-01-01 00:00:00 +00:00
--foreground: 210 40% 98%;
2026-01-06 14:46:23 +00:00
--card: 222 47% 9%;
2025-01-01 00:00:00 +00:00
--card-foreground: 210 40% 98%;
2026-01-06 14:46:23 +00:00
--popover: 222 47% 9%;
2025-01-01 00:00:00 +00:00
--popover-foreground: 210 40% 98%;
2026-01-06 14:46:23 +00:00
--primary: 173 58% 45%;
--primary-foreground: 222 47% 11%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--secondary: 222 40% 15%;
2025-01-01 00:00:00 +00:00
--secondary-foreground: 210 40% 98%;
2026-01-06 14:46:23 +00:00
--muted: 222 40% 15%;
--muted-foreground: 215 20% 65%;
--accent: 173 58% 39%;
--accent-foreground: 0 0% 100%;
--destructive: 0 62% 40%;
--destructive-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--success: 152 69% 36%;
--success-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--warning: 38 92% 55%;
--warning-foreground: 0 0% 100%;
2025-01-01 00:00:00 +00:00
2026-01-06 14:46:23 +00:00
--info: 199 89% 53%;
--info-foreground: 0 0% 100%;
--border: 222 40% 18%;
--input: 222 40% 18%;
--ring: 173 58% 45%;
--sidebar-background: 222 47% 6%;
--sidebar-foreground: 215 20% 85%;
--sidebar-primary: 173 58% 45%;
2025-01-01 00:00:00 +00:00
--sidebar-primary-foreground: 0 0% 100%;
2026-01-06 14:46:23 +00:00
--sidebar-accent: 222 40% 12%;
--sidebar-accent-foreground: 210 40% 98%;
--sidebar-border: 222 40% 15%;
--sidebar-ring: 173 58% 45%;
--sidebar-muted: 215 16% 55%;
2025-01-01 00:00:00 +00:00
}
}
@layer base {
* {
@apply border-border;
}
2026-01-06 14:46:23 +00:00
html {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
}
2025-01-01 00:00:00 +00:00
body {
2026-01-06 14:46:23 +00:00
@apply bg-background text-foreground antialiased;
font-feature-settings: "cv11", "ss01";
}
/* Smooth focus states */
:focus-visible {
@apply outline-none ring-2 ring-ring ring-offset-2 ring-offset-background;
}
}
@layer components {
/* Auth card for public pages */
.auth-card {
@apply bg-card rounded-xl p-8 shadow-card border border-border;
}
/* Section header styling */
.section-header {
@apply text-lg font-semibold text-foreground mb-1;
}
.section-description {
@apply text-sm text-muted-foreground;
}
/* Status badges */
.status-badge {
@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}
.status-badge-success {
@apply bg-success/10 text-success;
}
.status-badge-warning {
@apply bg-warning/10 text-warning;
}
.status-badge-error {
@apply bg-destructive/10 text-destructive;
}
.status-badge-info {
@apply bg-info/10 text-info;
}
/* Page layout helpers */
.page-container {
@apply p-6 lg:p-8 max-w-5xl;
}
.page-header {
@apply mb-8;
}
.page-title {
@apply text-2xl font-semibold text-foreground tracking-tight;
}
.page-description {
@apply text-muted-foreground mt-1;
}
}
@layer utilities {
/* Animation utilities */
.animate-fade-in {
animation: fadeIn 0.3s ease-out;
}
.animate-slide-in {
animation: slideIn 0.3s ease-out;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
2025-01-01 00:00:00 +00:00
}
}