damaj.tech/src/index.css
gpt-engineer-app[bot] e11c4f46c3 Changes
Co-authored-by: Damaj301damaj-lol <90093996+Damaj301damaj-lol@users.noreply.github.com>
2026-05-19 15:19:06 +00:00

171 lines
4.9 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
@layer base {
:root {
--background: 220 15% 10%;
--foreground: 30 10% 90%;
--card: 220 12% 14%;
--card-foreground: 30 10% 90%;
--popover: 220 12% 14%;
--popover-foreground: 30 10% 90%;
--primary: 25 95% 55%;
--primary-foreground: 220 15% 8%;
--secondary: 220 12% 18%;
--secondary-foreground: 30 10% 85%;
--muted: 220 10% 20%;
--muted-foreground: 220 8% 55%;
--accent: 25 90% 50%;
--accent-foreground: 220 15% 8%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 220 10% 22%;
--input: 220 10% 22%;
--ring: 25 95% 55%;
--radius: 1rem;
--glass-bg: 220 12% 16%;
--glass-border: 220 10% 28%;
--glass-shine: 25 95% 55%;
--sidebar-background: 220 15% 10%;
--sidebar-foreground: 30 10% 90%;
--sidebar-primary: 25 95% 55%;
--sidebar-primary-foreground: 220 15% 8%;
--sidebar-accent: 220 12% 18%;
--sidebar-accent-foreground: 30 10% 90%;
--sidebar-border: 220 10% 22%;
--sidebar-ring: 25 95% 55%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground font-body antialiased;
}
}
@layer components {
.glass-card {
background: hsl(var(--glass-bg) / 0.6);
border: 1px solid hsl(var(--glass-border) / 0.4);
backdrop-filter: blur(20px) saturate(1.8);
-webkit-backdrop-filter: blur(20px) saturate(1.8);
box-shadow:
inset 0 1px 1px hsl(0 0% 100% / 0.05),
inset 0 -1px 1px hsl(0 0% 0% / 0.1),
0 8px 32px hsl(0 0% 0% / 0.3),
0 2px 8px hsl(0 0% 0% / 0.2);
position: relative;
overflow: hidden;
}
.glass-card::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(
135deg,
hsl(0 0% 100% / 0.08) 0%,
transparent 40%,
transparent 60%,
hsl(0 0% 100% / 0.03) 100%
);
pointer-events: none;
z-index: 1;
}
.glass-card-hover {
transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),
box-shadow 0.3s cubic-bezier(0.23, 1, 0.32, 1),
border-color 0.3s ease;
}
.glass-card-hover:hover {
transform: translateY(-2px);
border-color: hsl(var(--glass-shine) / 0.3);
box-shadow:
inset 0 1px 1px hsl(0 0% 100% / 0.08),
0 12px 40px hsl(0 0% 0% / 0.4),
0 4px 12px hsl(var(--primary) / 0.1);
}
.mouse-glow {
position: absolute;
width: 300px;
height: 300px;
border-radius: 50%;
background: radial-gradient(
circle,
hsl(var(--primary) / 0.12) 0%,
transparent 70%
);
pointer-events: none;
transform: translate(-50%, -50%);
z-index: 0;
transition: opacity 0.3s ease;
}
.link-arrow {
@apply inline-block transition-transform duration-200;
}
.link-arrow-parent:hover .link-arrow {
transform: translate(3px, -3px);
}
}
@layer utilities {
.text-gradient {
background: linear-gradient(135deg, hsl(var(--primary)), hsl(30 100% 65%));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
}
@layer components {
.prose-blog {
@apply text-foreground/90 leading-relaxed;
}
.prose-blog > * + * { @apply mt-4; }
.prose-blog h1 { @apply text-2xl md:text-3xl font-heading font-bold text-foreground mt-10 mb-3; }
.prose-blog h2 { @apply text-xl md:text-2xl font-heading font-bold text-foreground mt-8 mb-2; }
.prose-blog h3 { @apply text-lg font-heading font-semibold text-foreground mt-6 mb-2; }
.prose-blog p { @apply text-foreground/85 leading-relaxed; }
.prose-blog a { @apply text-primary underline underline-offset-4 decoration-primary/40 hover:decoration-primary transition-colors; }
.prose-blog strong { @apply text-foreground font-semibold; }
.prose-blog em { @apply italic; }
.prose-blog ul { @apply list-disc pl-6 space-y-1.5 text-foreground/85; }
.prose-blog ol { @apply list-decimal pl-6 space-y-1.5 text-foreground/85; }
.prose-blog blockquote { @apply border-l-2 border-primary/60 pl-4 italic text-muted-foreground my-6; }
.prose-blog code:not(pre code) {
@apply font-mono text-[0.9em] px-1.5 py-0.5 rounded bg-secondary/60 border border-border text-primary;
}
.prose-blog pre {
@apply font-mono text-sm p-4 rounded-lg overflow-x-auto my-6 border border-border;
background: hsl(var(--glass-bg) / 0.8);
}
.prose-blog pre code { @apply bg-transparent p-0 border-0; }
.prose-blog img { @apply rounded-lg my-6 border border-border; }
.prose-blog hr { @apply border-border my-8; }
.prose-blog table { @apply w-full border-collapse my-6 text-sm; }
.prose-blog th, .prose-blog td { @apply border border-border px-3 py-2 text-left; }
.prose-blog th { @apply bg-secondary/40 font-semibold; }
}