pounce/frontend/src/app/globals.css
Yves Gugger 9acb90c067 Initial commit: Pounce - Domain Monitoring System
- FastAPI backend mit Domain-Check, TLD-Pricing, User-Management
- Next.js frontend mit modernem UI
- Sortierbare TLD-Tabelle mit Mini-Charts
- Domain availability monitoring
- Subscription tiers (Starter, Professional, Enterprise)
- Authentication & Authorization
- Scheduler für automatische Domain-Checks
2025-12-08 07:26:57 +01:00

151 lines
3.5 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
* {
@apply border-border;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
@apply bg-background text-foreground;
font-feature-settings: "rlig" 1, "calt" 1, "ss01" 1;
}
::selection {
@apply bg-accent/20 text-foreground;
}
}
@layer components {
/* Display typography */
.font-display {
font-family: var(--font-display), Georgia, serif;
font-weight: 400;
}
/* Elegant input field */
.input-elegant {
@apply w-full px-5 py-4 bg-background-secondary border border-border rounded-2xl
text-foreground placeholder:text-foreground-subtle
focus:outline-none focus:border-border-hover;
transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.input-elegant:focus {
box-shadow: 0 0 0 1px rgba(16, 185, 129, 0.1), 0 0 40px -10px rgba(16, 185, 129, 0.15);
}
/* Primary button with glow */
.btn-primary {
@apply px-6 py-3 bg-accent text-background font-medium rounded-xl
disabled:opacity-50 disabled:cursor-not-allowed;
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-primary:not(:disabled):hover {
@apply bg-accent-hover;
box-shadow: 0 0 40px -8px rgba(16, 185, 129, 0.4);
transform: translateY(-1px);
}
.btn-primary:not(:disabled):active {
transform: translateY(0) scale(0.98);
}
/* Secondary button */
.btn-secondary {
@apply px-6 py-3 bg-background-tertiary text-foreground font-medium rounded-xl
border border-border disabled:opacity-50 disabled:cursor-not-allowed;
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-secondary:not(:disabled):hover {
@apply border-border-hover bg-background-elevated;
transform: translateY(-1px);
}
/* Card styles */
.card {
@apply bg-background-secondary border border-border rounded-3xl p-8;
transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.card-hover:hover {
@apply border-border-hover;
transform: translateY(-2px);
box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.5);
}
.card-glow {
@apply card;
box-shadow: 0 0 80px -20px rgba(16, 185, 129, 0.15);
}
/* Status badges */
.status-available {
@apply text-accent bg-accent-muted;
}
.status-taken {
@apply text-foreground-muted bg-background-tertiary;
}
/* Label style */
.label {
font-size: 0.6875rem;
line-height: 1.3;
letter-spacing: 0.08em;
font-weight: 500;
text-transform: uppercase;
@apply text-foreground-subtle;
}
/* Divider */
.divider {
@apply h-px bg-gradient-to-r from-transparent via-border-hover to-transparent;
}
/* Glow effect utilities */
.glow-accent {
box-shadow: 0 0 100px -30px rgba(16, 185, 129, 0.3);
}
.glow-accent-strong {
box-shadow: 0 0 120px -20px rgba(16, 185, 129, 0.4);
}
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
@apply bg-transparent;
}
::-webkit-scrollbar-thumb {
@apply bg-border rounded-full;
}
::-webkit-scrollbar-thumb:hover {
@apply bg-border-hover;
}
/* Animation delays */
.delay-100 { animation-delay: 100ms; }
.delay-150 { animation-delay: 150ms; }
.delay-200 { animation-delay: 200ms; }
.delay-250 { animation-delay: 250ms; }
.delay-300 { animation-delay: 300ms; }
.delay-400 { animation-delay: 400ms; }
.delay-500 { animation-delay: 500ms; }