directlx-dev/static/css/input.css

224 lines
5.8 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
--color-void: #07070f;
--color-surface: #0f0f1a;
--color-surface-50: #16162a;
--color-surface-100: #1c1c2e;
--color-border: rgba(92, 184, 44, 0.2);
--color-border-dim: rgba(255, 255, 255, 0.06);
--color-primary: #5CB82C;
--color-primary-light: #86efac;
--color-accent: #F7931E;
--color-text: #e8e6f0;
--color-text-muted: #8b8ca8;
}
html { scroll-behavior: smooth; }
body {
background-color: var(--color-void);
color: var(--color-text);
font-family: 'DM Sans', sans-serif;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Syne', sans-serif;
}
::selection {
background: rgba(92, 184, 44, 0.35);
color: #fff;
}
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--color-void); }
::-webkit-scrollbar-thumb { background: var(--color-primary); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--color-primary-light); }
}
@layer components {
/* Buttons */
.btn {
@apply inline-flex items-center justify-center px-5 py-2.5 rounded-lg font-semibold transition-all duration-200 text-sm tracking-wide;
}
.btn-primary {
background: linear-gradient(135deg, #5CB82C, #4CA324);
@apply text-white;
box-shadow: 0 0 20px rgba(92, 184, 44, 0.3);
}
.btn-primary:hover {
background: linear-gradient(135deg, #6fcf37, #5CB82C);
transform: translateY(-1px);
box-shadow: 0 0 30px rgba(92, 184, 44, 0.45);
}
.btn-secondary {
@apply bg-surface-100 text-gray-300 border border-white/10 hover:border-white/20 hover:text-white;
}
.btn-outline {
@apply border text-primary-400 hover:text-primary-300;
border-color: rgba(92, 184, 44, 0.4);
}
.btn-outline:hover {
border-color: rgba(92, 184, 44, 0.7);
background: rgba(92, 184, 44, 0.07);
}
.btn-accent {
background: linear-gradient(135deg, #F7931E, #ea7c0c);
@apply text-white font-bold;
box-shadow: 0 0 20px rgba(247, 147, 30, 0.25);
}
.btn-accent:hover {
background: linear-gradient(135deg, #f9a94a, #F7931E);
transform: translateY(-1px);
box-shadow: 0 0 30px rgba(247, 147, 30, 0.4);
}
.btn-ghost {
@apply text-gray-400 hover:text-white hover:bg-white/5;
}
/* Cards */
.card {
background: var(--color-surface);
border: 1px solid var(--color-border-dim);
@apply rounded-xl p-6 transition-all duration-300;
}
.card-hover {
@apply card;
}
.card-hover:hover {
border-color: rgba(92, 184, 44, 0.3);
box-shadow: 0 0 30px rgba(92, 184, 44, 0.07), 0 8px 32px rgba(0,0,0,0.4);
transform: translateY(-2px);
}
/* Form Elements */
.input {
background: var(--color-surface-50);
border: 1px solid var(--color-border-dim);
@apply w-full px-4 py-3 rounded-lg text-gray-200 placeholder-gray-600 outline-none transition-all duration-200;
font-family: 'DM Sans', sans-serif;
}
.input:focus {
border-color: rgba(92, 184, 44, 0.5);
box-shadow: 0 0 0 3px rgba(92, 184, 44, 0.1);
background: var(--color-surface-100);
}
.input::placeholder { color: #4a4a6a; }
.label {
@apply block text-sm font-medium text-gray-400 mb-2;
font-family: 'DM Sans', sans-serif;
letter-spacing: 0.01em;
}
/* Nav */
.nav-link {
@apply text-gray-400 hover:text-white font-medium transition-colors duration-200 text-sm;
}
.nav-link-active {
@apply text-white font-semibold;
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, #86efac 0%, #F7931E 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gradient-text-green {
background: linear-gradient(135deg, #bbf7d0 0%, #5CB82C 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Dot grid */
.dot-grid {
background-image: radial-gradient(circle, rgba(92, 184, 44, 0.15) 1px, transparent 1px);
background-size: 28px 28px;
}
/* Badge */
.badge {
@apply inline-flex items-center px-3 py-1 rounded-full text-xs font-semibold tracking-wider;
}
.badge-primary {
background: rgba(92, 184, 44, 0.12);
border: 1px solid rgba(92, 184, 44, 0.3);
@apply text-primary-300;
}
.badge-accent {
background: rgba(247, 147, 30, 0.1);
border: 1px solid rgba(247, 147, 30, 0.3);
@apply text-accent-300;
}
.badge-red {
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.25);
@apply text-red-400;
}
/* Avatar */
.avatar {
background: linear-gradient(135deg, #5CB82C, #F7931E);
@apply rounded-full flex items-center justify-center text-white font-bold flex-shrink-0;
font-family: 'Syne', sans-serif;
}
}
/* HTMX loading indicator */
.htmx-indicator {
opacity: 0;
transition: opacity 200ms ease-in;
}
.htmx-request .htmx-indicator { opacity: 1; }
.htmx-request.htmx-indicator { opacity: 1; }
/* Prose overrides for dark theme */
.prose-dark { color: #c4c2d4; }
.prose-dark h1, .prose-dark h2, .prose-dark h3,
.prose-dark h4, .prose-dark h5, .prose-dark h6 {
color: #f1f0ff;
font-family: 'Syne', sans-serif;
}
.prose-dark a { color: #86efac; }
.prose-dark a:hover { color: #bbf7d0; }
.prose-dark strong { color: #e8e6f0; }
.prose-dark code {
background: rgba(92, 184, 44, 0.1);
border: 1px solid rgba(92, 184, 44, 0.2);
color: #86efac;
padding: 0.125rem 0.375rem;
border-radius: 0.25rem;
font-size: 0.875em;
}
.prose-dark pre {
background: #0f0f1a;
border: 1px solid rgba(255,255,255,0.06);
border-radius: 0.75rem;
}
.prose-dark blockquote {
border-left-color: #5CB82C;
color: #8b8ca8;
}
.prose-dark hr { border-color: rgba(255,255,255,0.06); }
/* Animations */
@keyframes pulse-glow {
0%, 100% { opacity: 0.4; }
50% { opacity: 0.9; }
}
.pulse-glow-anim { animation: pulse-glow 3s ease-in-out infinite; }