|
|
@tailwind base; |
|
|
@tailwind components; |
|
|
@tailwind utilities; |
|
|
|
|
|
@layer base { |
|
|
:root { |
|
|
--background: 0 0% 100%; |
|
|
--foreground: 222.2 84% 4.9%; |
|
|
--card: 0 0% 100%; |
|
|
--card-foreground: 222.2 84% 4.9%; |
|
|
--popover: 0 0% 100%; |
|
|
--popover-foreground: 222.2 84% 4.9%; |
|
|
--primary: 222.2 47.4% 11.2%; |
|
|
--primary-foreground: 210 40% 98%; |
|
|
--secondary: 210 40% 96.1%; |
|
|
--secondary-foreground: 222.2 47.4% 11.2%; |
|
|
--muted: 210 40% 96.1%; |
|
|
--muted-foreground: 215.4 16.3% 46.9%; |
|
|
--accent: 210 40% 96.1%; |
|
|
--accent-foreground: 222.2 47.4% 11.2%; |
|
|
--destructive: 0 84.2% 60.2%; |
|
|
--destructive-foreground: 210 40% 98%; |
|
|
--border: 214.3 31.8% 91.4%; |
|
|
--input: 214.3 31.8% 91.4%; |
|
|
--ring: 222.2 84% 4.9%; |
|
|
--radius: 0.5rem; |
|
|
} |
|
|
|
|
|
.dark { |
|
|
--background: 222.2 84% 4.9%; |
|
|
--foreground: 210 40% 98%; |
|
|
--card: 222.2 84% 4.9%; |
|
|
--card-foreground: 210 40% 98%; |
|
|
--popover: 222.2 84% 4.9%; |
|
|
--popover-foreground: 210 40% 98%; |
|
|
--primary: 210 40% 98%; |
|
|
--primary-foreground: 222.2 47.4% 11.2%; |
|
|
--secondary: 217.2 32.6% 17.5%; |
|
|
--secondary-foreground: 210 40% 98%; |
|
|
--muted: 217.2 32.6% 17.5%; |
|
|
--muted-foreground: 215 20.2% 65.1%; |
|
|
--accent: 217.2 32.6% 17.5%; |
|
|
--accent-foreground: 210 40% 98%; |
|
|
--destructive: 0 62.8% 30.6%; |
|
|
--destructive-foreground: 210 40% 98%; |
|
|
--border: 217.2 32.6% 17.5%; |
|
|
--input: 217.2 32.6% 17.5%; |
|
|
--ring: 212.7 26.8% 83.9%; |
|
|
} |
|
|
} |
|
|
|
|
|
@layer base { |
|
|
* { |
|
|
@apply border-border; |
|
|
} |
|
|
|
|
|
body { |
|
|
@apply bg-background text-foreground; |
|
|
font-feature-settings: "rlig" 1, "calt" 1; |
|
|
} |
|
|
|
|
|
h1, h2, h3, h4, h5, h6 { |
|
|
@apply scroll-m-20; |
|
|
} |
|
|
|
|
|
h1 { |
|
|
@apply text-4xl font-extrabold tracking-tight lg:text-5xl; |
|
|
} |
|
|
|
|
|
h2 { |
|
|
@apply text-3xl font-semibold tracking-tight; |
|
|
} |
|
|
|
|
|
h3 { |
|
|
@apply text-2xl font-semibold tracking-tight; |
|
|
} |
|
|
|
|
|
h4 { |
|
|
@apply text-xl font-semibold tracking-tight; |
|
|
} |
|
|
|
|
|
p { |
|
|
@apply leading-7 [&:not(:first-child)]:mt-6; |
|
|
} |
|
|
} |
|
|
|
|
|
@layer components { |
|
|
|
|
|
.custom-scrollbar { |
|
|
scrollbar-width: thin; |
|
|
scrollbar-color: theme('colors.gray.600') theme('colors.gray.800'); |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar { |
|
|
width: 8px; |
|
|
height: 8px; |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar-track { |
|
|
@apply bg-gray-800; |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar-thumb { |
|
|
@apply bg-gray-600 rounded-full; |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar-thumb:hover { |
|
|
@apply bg-gray-500; |
|
|
} |
|
|
|
|
|
|
|
|
.glass { |
|
|
@apply bg-white/10 backdrop-blur-lg border border-white/20; |
|
|
} |
|
|
|
|
|
.glass-dark { |
|
|
@apply bg-gray-900/50 backdrop-blur-lg border border-gray-700/50; |
|
|
} |
|
|
|
|
|
|
|
|
.gradient-text { |
|
|
@apply bg-gradient-to-r from-purple-400 to-pink-600 bg-clip-text text-transparent; |
|
|
} |
|
|
|
|
|
|
|
|
.gradient-bg { |
|
|
@apply bg-gradient-to-r from-purple-600 to-pink-600; |
|
|
background-size: 200% 200%; |
|
|
animation: gradient 6s ease infinite; |
|
|
} |
|
|
|
|
|
|
|
|
.glow { |
|
|
box-shadow: 0 0 20px rgba(168, 85, 247, 0.4), |
|
|
0 0 40px rgba(168, 85, 247, 0.2), |
|
|
0 0 60px rgba(168, 85, 247, 0.1); |
|
|
} |
|
|
|
|
|
.glow-purple { |
|
|
box-shadow: 0 0 20px rgba(168, 85, 247, 0.6); |
|
|
} |
|
|
|
|
|
.glow-pink { |
|
|
box-shadow: 0 0 20px rgba(236, 72, 153, 0.6); |
|
|
} |
|
|
} |
|
|
|
|
|
@layer utilities { |
|
|
|
|
|
.no-scrollbar::-webkit-scrollbar { |
|
|
display: none; |
|
|
} |
|
|
|
|
|
.no-scrollbar { |
|
|
-ms-overflow-style: none; |
|
|
scrollbar-width: none; |
|
|
} |
|
|
|
|
|
|
|
|
.selection-purple::selection { |
|
|
@apply bg-purple-500/30 text-purple-200; |
|
|
} |
|
|
|
|
|
|
|
|
.transition-all-smooth { |
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
} |
|
|
|
|
|
|
|
|
.safe-top { |
|
|
padding-top: env(safe-area-inset-top); |
|
|
} |
|
|
|
|
|
.safe-bottom { |
|
|
padding-bottom: env(safe-area-inset-bottom); |
|
|
} |
|
|
|
|
|
.safe-left { |
|
|
padding-left: env(safe-area-inset-left); |
|
|
} |
|
|
|
|
|
.safe-right { |
|
|
padding-right: env(safe-area-inset-right); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes gradient { |
|
|
0%, 100% { |
|
|
background-position: 0% 50%; |
|
|
} |
|
|
50% { |
|
|
background-position: 100% 50%; |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes float { |
|
|
0%, 100% { |
|
|
transform: translateY(0px); |
|
|
} |
|
|
50% { |
|
|
transform: translateY(-20px); |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes glow-pulse { |
|
|
0%, 100% { |
|
|
opacity: 1; |
|
|
} |
|
|
50% { |
|
|
opacity: 0.5; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes skeleton-loading { |
|
|
0% { |
|
|
background-position: -200% 0; |
|
|
} |
|
|
100% { |
|
|
background-position: 200% 0; |
|
|
} |
|
|
} |
|
|
|
|
|
.skeleton { |
|
|
background: linear-gradient( |
|
|
90deg, |
|
|
theme('colors.gray.800') 25%, |
|
|
theme('colors.gray.700') 50%, |
|
|
theme('colors.gray.800') 75% |
|
|
); |
|
|
background-size: 200% 100%; |
|
|
animation: skeleton-loading 1.5s infinite; |
|
|
} |