228 lines
4.8 KiB
CSS
228 lines
4.8 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
:root {
|
|
/* Light theme - Off-white, Gray tones */
|
|
--background: 40 20% 97%;
|
|
/* Off-white/Ivory */
|
|
--foreground: 0 0% 10%;
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 0 0% 10%;
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 0 0% 10%;
|
|
--primary: 0 0% 20%;
|
|
/* Dark Gray */
|
|
--primary-foreground: 0 0% 98%;
|
|
--secondary: 0 0% 96%;
|
|
--secondary-foreground: 0 0% 10%;
|
|
--muted: 0 0% 94%;
|
|
--muted-foreground: 0 0% 45%;
|
|
--accent: 0 0% 35%;
|
|
/* Medium Gray */
|
|
--accent-foreground: 0 0% 98%;
|
|
--destructive: 0 0% 30%;
|
|
--destructive-foreground: 0 0% 98%;
|
|
--border: 0 0% 88%;
|
|
--input: 0 0% 88%;
|
|
--ring: 0 0% 20%;
|
|
--radius: 0.5rem;
|
|
}
|
|
|
|
.dark {
|
|
/* Dark theme - Black and Grays */
|
|
--background: 0 0% 6%;
|
|
/* Near Black */
|
|
--foreground: 0 0% 95%;
|
|
--card: 0 0% 10%;
|
|
--card-foreground: 0 0% 95%;
|
|
--popover: 0 0% 10%;
|
|
--popover-foreground: 0 0% 95%;
|
|
--primary: 0 0% 85%;
|
|
/* Light Gray */
|
|
--primary-foreground: 0 0% 10%;
|
|
--secondary: 0 0% 15%;
|
|
--secondary-foreground: 0 0% 95%;
|
|
--muted: 0 0% 15%;
|
|
--muted-foreground: 0 0% 60%;
|
|
--accent: 0 0% 70%;
|
|
/* Medium Light Gray */
|
|
--accent-foreground: 0 0% 10%;
|
|
--destructive: 0 0% 70%;
|
|
--destructive-foreground: 0 0% 10%;
|
|
--border: 0 0% 18%;
|
|
--input: 0 0% 18%;
|
|
--ring: 0 0% 70%;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;
|
|
}
|
|
|
|
body {
|
|
@apply bg-background text-foreground;
|
|
background: linear-gradient(to bottom right, hsl(var(--background)), hsl(0 0% 8%));
|
|
background-attachment: fixed;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.glass {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
backdrop-filter: blur(10px);
|
|
-webkit-backdrop-filter: blur(10px);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.glass-dark {
|
|
background: rgba(0, 0, 0, 0.2);
|
|
backdrop-filter: blur(10px);
|
|
-webkit-backdrop-filter: blur(10px);
|
|
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.glow {
|
|
box-shadow:
|
|
0 0 20px rgba(255, 255, 255, 0.2),
|
|
0 0 40px rgba(255, 255, 255, 0.15),
|
|
0 0 60px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.glow-hover:hover {
|
|
box-shadow:
|
|
0 0 30px rgba(255, 255, 255, 0.3),
|
|
0 0 60px rgba(255, 255, 255, 0.2),
|
|
0 0 90px rgba(255, 255, 255, 0.15);
|
|
transition: box-shadow 0.3s ease-in-out;
|
|
}
|
|
|
|
.glow-dark {
|
|
box-shadow:
|
|
0 0 20px rgba(0, 0, 0, 0.3),
|
|
0 0 40px rgba(0, 0, 0, 0.2),
|
|
0 0 60px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.glow-gray {
|
|
box-shadow:
|
|
0 0 20px rgba(150, 150, 150, 0.3),
|
|
0 0 40px rgba(150, 150, 150, 0.2),
|
|
0 0 60px rgba(150, 150, 150, 0.1);
|
|
}
|
|
|
|
.glow-white {
|
|
box-shadow:
|
|
0 0 20px rgba(255, 255, 255, 0.25),
|
|
0 0 40px rgba(255, 255, 255, 0.15),
|
|
0 0 60px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.animate-glow {
|
|
animation: glow-pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes glow-pulse {
|
|
|
|
0%,
|
|
100% {
|
|
box-shadow:
|
|
0 0 20px rgba(255, 255, 255, 0.2),
|
|
0 0 40px rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
50% {
|
|
box-shadow:
|
|
0 0 30px rgba(255, 255, 255, 0.3),
|
|
0 0 60px rgba(255, 255, 255, 0.2);
|
|
}
|
|
}
|
|
|
|
.liquid-gradient {
|
|
background: linear-gradient(135deg,
|
|
rgba(255, 255, 255, 0.08) 0%,
|
|
rgba(150, 150, 150, 0.05) 50%,
|
|
rgba(255, 255, 255, 0.08) 100%);
|
|
background-size: 400% 400%;
|
|
animation: liquid-flow 15s ease infinite;
|
|
}
|
|
|
|
@keyframes liquid-flow {
|
|
0% {
|
|
background-position: 0% 50%;
|
|
}
|
|
|
|
50% {
|
|
background-position: 100% 50%;
|
|
}
|
|
|
|
100% {
|
|
background-position: 0% 50%;
|
|
}
|
|
}
|
|
|
|
.border-gradient {
|
|
border: 2px solid transparent;
|
|
background-clip: padding-box;
|
|
position: relative;
|
|
}
|
|
|
|
.border-gradient::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: -2px;
|
|
border-radius: inherit;
|
|
padding: 2px;
|
|
background: linear-gradient(135deg, #fff, #888, #fff);
|
|
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
-webkit-mask-composite: xor;
|
|
mask-composite: exclude;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.shimmer {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.shimmer::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: -100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(90deg,
|
|
transparent,
|
|
rgba(255, 255, 255, 0.1),
|
|
transparent);
|
|
animation: shimmer 3s infinite;
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
left: -100%;
|
|
}
|
|
|
|
100% {
|
|
left: 100%;
|
|
}
|
|
}
|
|
|
|
@keyframes spin-smooth {
|
|
from {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.animate-spin-smooth {
|
|
animation: spin-smooth 1s linear infinite;
|
|
}
|
|
} |