Files
app-admin/app/globals.css
2026-03-24 15:46:27 +03:00

219 lines
4.1 KiB
CSS

@import "tailwindcss";
@theme {
--font-sans: var(--font-inter), var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;
--font-mono: var(--font-geist-mono);
/* Custom color tokens */
--color-brand-50: #f0f4ff;
--color-brand-100: #e0e9ff;
--color-brand-500: #6366f1;
--color-brand-600: #4f46e5;
--color-brand-700: #4338ca;
--color-surface-0: #0a0a0f;
--color-surface-1: #111118;
--color-surface-2: #16161f;
--color-surface-3: #1e1e2a;
--color-surface-4: #252535;
--color-border-subtle: rgba(255, 255, 255, 0.06);
--color-border-default: rgba(255, 255, 255, 0.10);
--color-border-strong: rgba(255, 255, 255, 0.16);
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
background-color: #0a0a0f;
color: #e4e4f0;
font-family: var(--font-inter), var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
line-height: 1.5;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.12);
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.2);
}
/* Glass card effect */
.glass {
background: rgba(22, 22, 31, 0.8);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.08);
}
.glass-hover {
transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.glass-hover:hover {
background: rgba(30, 30, 42, 0.9);
border-color: rgba(255, 255, 255, 0.14);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, #a78bfa 0%, #818cf8 50%, #38bdf8 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Glow effects */
.glow-purple {
box-shadow: 0 0 20px rgba(139, 92, 246, 0.3), 0 0 60px rgba(139, 92, 246, 0.1);
}
.glow-blue {
box-shadow: 0 0 20px rgba(59, 130, 246, 0.3), 0 0 60px rgba(59, 130, 246, 0.1);
}
/* Subtle animated gradient background */
@keyframes gradient-shift {
0%,
100% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
}
.animated-gradient {
background: linear-gradient(-45deg, #0a0a0f, #0f0f1a, #0a0f1f, #0a0a0f);
background-size: 400% 400%;
animation: gradient-shift 15s ease infinite;
}
/* Pulse dot animation */
@keyframes pulse-dot {
0%,
100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.6;
transform: scale(0.85);
}
}
.pulse-dot {
animation: pulse-dot 2s ease-in-out infinite;
}
/* Fade in animations */
@keyframes fade-in-up {
from {
opacity: 0;
transform: translateY(12px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in-up {
animation: fade-in-up 0.4s ease forwards;
}
/* Shine effect */
@keyframes shine {
from {
transform: translateX(-100%) skewX(-12deg);
}
to {
transform: translateX(200%) skewX(-12deg);
}
}
.shine-effect::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.04), transparent);
animation: shine 3s ease-in-out infinite;
}
/* Number counter animation */
@keyframes count-up {
from {
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.stat-value {
animation: count-up 0.5s ease forwards;
}
/* Sidebar active glow */
.nav-active {
background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(139, 92, 246, 0.15));
border: 1px solid rgba(99, 102, 241, 0.3);
color: #a78bfa;
box-shadow: 0 0 20px rgba(99, 102, 241, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
/* Focus ring */
*:focus-visible {
outline: 2px solid rgba(99, 102, 241, 0.6);
outline-offset: 2px;
}
/* Input styles */
input::placeholder {
color: rgba(255, 255, 255, 0.25);
}
/* Status badge animation */
@keyframes status-pulse {
0%,
100% {
box-shadow: 0 0 0 0 currentColor;
}
50% {
box-shadow: 0 0 0 4px transparent;
}
}