veza/apps/web/src/index.css

338 lines
8.3 KiB
CSS

@import 'tailwindcss';
@theme {
/* === KODO DESIGN SYSTEM - DEFAULTS === */
/* Map shadcn variables to Kodo colors by default */
--color-background: rgb(var(--kodo-void));
--color-foreground: rgb(var(--kodo-text-main));
--color-card: rgb(var(--kodo-graphite));
--color-card-foreground: rgb(var(--kodo-text-main));
--color-popover: rgb(var(--kodo-ink));
--color-popover-foreground: rgb(var(--kodo-text-main));
--color-primary: rgb(var(--kodo-cyan));
--color-primary-foreground: rgb(var(--kodo-void));
--color-secondary: rgb(var(--kodo-slate));
--color-secondary-foreground: rgb(var(--kodo-text-main));
--color-muted: rgb(var(--kodo-steel));
--color-muted-foreground: rgb(var(--kodo-content-dim));
--color-accent: rgb(var(--kodo-cyan));
--color-accent-foreground: rgb(var(--kodo-void));
--color-destructive: rgb(var(--kodo-red));
--color-destructive-foreground: rgb(var(--kodo-text-main));
--color-border: rgb(var(--kodo-steel));
--color-input: rgb(var(--kodo-steel));
--color-ring: rgb(var(--kodo-cyan));
--radius: 0.75rem;
/* === KŌDŌ DESIGN SYSTEM - SPECTRE ASTRAL PALETTE === */
/* Core Backgrounds */
--kodo-void: 11 12 16;
/* #0B0C10 Nadir Black */
--kodo-ink: 23 25 35;
/* Darker Blue-Grey for panels */
--kodo-graphite: 31 40 51;
/* #1F2833 Graphite Blue */
--kodo-slate: 44 54 67;
/* Surface Elevated */
--kodo-steel: 59 69 84;
/* Borders */
/* Accents */
--kodo-cyan: 102 252 241;
/* #66FCF1 Spectral Cyan */
--kodo-cyan-dim: 69 162 158;
/* #45A29E Anodized Turquoise */
--kodo-magenta: 138 126 164;
/* #8A7EA4 Astral Lavender */
--kodo-orange: 230 184 156;
/* #E6B89C Soft Ember */
/* Utility Colors */
--kodo-lime: 54 229 209;
/* Muted Teal/Green for Success */
--kodo-gold: 234 179 8;
/* Refined Gold */
--kodo-red: 230 57 70;
/* #E63946 Error */
/* Text */
--kodo-text-main: 243 243 224;
/* #F3F3E0 Quiet Paper */
--kodo-content-highlight: 255 255 255;
/* White for dark mode */
--kodo-content-dim: 156 163 175;
/* Gray-400 for dark mode */
/* Kōdō Color Utilities for Tailwind */
--color-kodo-void: rgb(var(--kodo-void));
--color-kodo-ink: rgb(var(--kodo-ink));
--color-kodo-graphite: rgb(var(--kodo-graphite));
--color-kodo-slate: rgb(var(--kodo-slate));
--color-kodo-steel: rgb(var(--kodo-steel));
--color-kodo-cyan: rgb(var(--kodo-cyan));
--color-kodo-cyan-dim: rgb(var(--kodo-cyan-dim));
--color-kodo-magenta: rgb(var(--kodo-magenta));
--color-kodo-lime: rgb(var(--kodo-lime));
--color-kodo-orange: rgb(var(--kodo-orange));
--color-kodo-gold: rgb(var(--kodo-gold));
--color-kodo-red: rgb(var(--kodo-red));
--color-kodo-primary: rgb(var(--kodo-content-highlight));
--color-kodo-secondary: rgb(var(--kodo-content-dim));
/* === V5 VARIABLES === */
--v5-primary: #667eea;
--v5-primary-light: #8b9aff;
--v5-primary-dark: #4a5fc1;
--v5-secondary: #764ba2;
--v5-accent: #f093fb;
--v5-success: #84fab0;
--v5-warning: #ffecd2;
--v5-danger: #f5576c;
--v5-info: #8fd3f4;
--glass-light: rgba(255, 255, 255, 0.85);
--glass-dark: rgba(18, 18, 18, 0.85);
--glass-border: rgba(255, 255, 255, 0.1);
--gradient-brand: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--gradient-success: linear-gradient(135deg, #84fab0 0%, #8fd3f4 100%);
--gradient-danger: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
--gradient-aurora: linear-gradient(45deg,
#ff0080,
#ff8c00,
#ffd700,
#00ced1,
#8a2be2);
/* Kōdō Gradients */
--gradient-neon: linear-gradient(135deg, rgb(var(--kodo-cyan-dim)) 0%, rgb(var(--kodo-cyan)) 100%);
--gradient-cyber: linear-gradient(135deg, rgba(var(--kodo-cyan), 0.1) 0%, rgba(var(--kodo-magenta), 0.1) 100%);
}
/* Base styles - Kodo dark theme by default */
body {
background-color: rgb(var(--kodo-void));
color: rgb(var(--kodo-text-main));
font-family: 'Inter', sans-serif;
}
/* Dark mode theme variables - Keep for compatibility */
.dark,
[data-theme="dark"] {
--color-background: rgb(var(--kodo-void));
--color-foreground: rgb(var(--kodo-text-main));
--color-card: rgb(var(--kodo-graphite));
--color-card-foreground: rgb(var(--kodo-text-main));
--color-popover: rgb(var(--kodo-ink));
--color-popover-foreground: rgb(var(--kodo-text-main));
--color-primary: rgb(var(--kodo-cyan));
--color-primary-foreground: rgb(var(--kodo-void));
--color-secondary: rgb(var(--kodo-slate));
--color-secondary-foreground: rgb(var(--kodo-text-main));
--color-muted: rgb(var(--kodo-steel));
--color-muted-foreground: rgb(var(--kodo-content-dim));
--color-accent: rgb(var(--kodo-cyan));
--color-accent-foreground: rgb(var(--kodo-void));
--color-destructive: rgb(var(--kodo-red));
--color-destructive-foreground: rgb(var(--kodo-text-main));
--color-border: rgb(var(--kodo-steel));
--color-input: rgb(var(--kodo-steel));
--color-ring: rgb(var(--kodo-cyan));
}
@media (prefers-color-scheme: dark) {
@theme {
--color-background: rgb(var(--kodo-void));
--color-foreground: rgb(var(--kodo-text-main));
--color-card: rgb(var(--kodo-graphite));
--color-card-foreground: rgb(var(--kodo-text-main));
--color-popover: rgb(var(--kodo-ink));
--color-popover-foreground: rgb(var(--kodo-text-main));
--color-primary: rgb(var(--kodo-cyan));
--color-primary-foreground: rgb(var(--kodo-void));
--color-secondary: rgb(var(--kodo-slate));
--color-secondary-foreground: rgb(var(--kodo-text-main));
--color-muted: rgb(var(--kodo-steel));
--color-muted-foreground: rgb(var(--kodo-content-dim));
--color-accent: rgb(var(--kodo-cyan));
--color-accent-foreground: rgb(var(--kodo-void));
--color-destructive: rgb(var(--kodo-red));
--color-destructive-foreground: rgb(var(--kodo-text-main));
--color-border: rgb(var(--kodo-steel));
--color-input: rgb(var(--kodo-steel));
--color-ring: rgb(var(--kodo-cyan));
}
}
/* === V5 ANIMATIONS === */
@keyframes appear {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
@keyframes gradient-shift {
0%,
100% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
}
@keyframes float {
0%,
100% {
transform: translateY(0px);
}
50% {
transform: translateY(-10px);
}
}
@keyframes pulse {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.5;
}
}
/* === KŌDŌ ANIMATIONS === */
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 5px rgba(var(--kodo-cyan), 0.5);
}
50% {
box-shadow: 0 0 20px rgba(var(--kodo-cyan), 0.8), 0 0 30px rgba(var(--kodo-cyan), 0.4);
}
}
@keyframes neon-flicker {
0%, 100% { opacity: 1; }
50% { opacity: 0.8; }
75% { opacity: 0.95; }
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes scaleIn {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes slideInRight {
from {
opacity: 0;
transform: translateX(100%);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Utility classes */
.animate-fadeIn {
animation: fadeIn 0.2s ease-in-out;
}
.animate-scaleIn {
animation: scaleIn 0.2s ease-in-out;
}
.animate-slideInRight {
animation: slideInRight 0.3s ease-out;
}
.animate-slideUp {
animation: slideUp 0.3s ease-out;
}
.animate-float {
animation: float 3s ease-in-out infinite;
}
.shadow-neon-cyan {
box-shadow: 0 0 10px rgba(var(--kodo-cyan), 0.3), 0 0 20px rgba(var(--kodo-cyan), 0.1);
}
.shadow-neon-magenta {
box-shadow: 0 0 10px rgba(var(--kodo-magenta), 0.3), 0 0 20px rgba(var(--kodo-magenta), 0.1);
}
.custom-scrollbar::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: rgb(var(--kodo-void));
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: rgb(var(--kodo-steel));
border-radius: 4px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background: rgb(var(--kodo-cyan));
}
.no-scrollbar::-webkit-scrollbar {
display: none;
}
.no-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}