| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| :root { |
| --zap-dark: #0f0f1a; |
| --zap-darker: #080810; |
| --zap-card: #1a1a2e; |
| --zap-purple: #2d1b4e; |
| --zap-border: #2a2a4a; |
| --zap-border-t: #3a3a5a; |
| --zap-light: #f0f0f5; |
| --zap-muted: #8888a0; |
| --zap-yellow: #ffd700; |
| --zap-orange: #ff9500; |
| --zap-red: #ff4757; |
| --zap-green: #2ed573; |
| --zap-blue: #3742fa; |
| } |
|
|
| @layer base { |
| html { @apply scroll-smooth; } |
| body { @apply bg-zap-dark text-zap-light font-inter antialiased; } |
| * { @apply border-zap-border; } |
| input, textarea, select { @apply bg-zap-bg border-zap-border-t text-zap-light placeholder-zap-muted focus:ring-2 focus:ring-zap-yellow/50 focus:border-zap-yellow transition-all; } |
| button:disabled { @apply opacity-50 cursor-not-allowed; } |
| } |
|
|
| @layer components { |
| .page { @apply transition-opacity duration-200; } |
| .view { @apply animate-fade-in; } |
| .hidden { display: none !important; } |
| |
| .btn { @apply px-4 py-2.5 rounded-xl font-medium font-inter transition-all duration-150 ease-out focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-zap-dark disabled:opacity-50 disabled:cursor-not-allowed; } |
| .btn-primary { @apply bg-zap-yellow text-zap-dark hover:bg-yellow-300 focus:ring-zap-yellow shadow-lg shadow-zap-yellow/20; } |
| .btn-secondary { @apply bg-zap-purple text-zap-light hover:bg-purple-900/50 focus:ring-zap-purple border border-zap-border; } |
| .btn-outline { @apply bg-transparent border border-zap-border-t hover:bg-zap-border focus:ring-zap-border; } |
| .btn-ghost { @apply bg-transparent hover:bg-zap-border focus:ring-zap-border text-zap-muted hover:text-zap-light; } |
| .btn-lg { @apply px-6 py-3 text-lg; } |
| .btn-sm { @apply px-3 py-1.5 text-sm; } |
| .btn-icon { @apply p-2; } |
|
|
| .input-group { @apply flex flex-col gap-1.5; } |
| .input-label { @apply text-sm font-medium text-zap-muted; } |
| .input-field { @apply w-full px-4 py-3 rounded-xl border bg-zap-darker; } |
| |
| .badge { @apply px-3 py-1 rounded-full text-xs font-medium; } |
| .badge-primary { @apply bg-zap-yellow/20 text-zap-yellow; } |
| .badge-secondary { @apply bg-zap-purple/50 text-zap-light; } |
| .badge-success { @apply bg-zap-green/20 text-zap-green; } |
| .badge-danger { @apply bg-zap-red/20 text-zap-red; } |
|
|
| .toggle { @apply w-5 h-5 rounded border-zap-border-t bg-zap-darker focus:ring-zap-yellow appearance-none cursor-pointer checked:bg-zap-yellow checked:border-zap-yellow; } |
| |
| .card { @apply bg-zap-card rounded-2xl border border-zap-border p-6 shadow-xl; } |
| .card-hover { @apply transition-all duration-200 hover:border-zap-yellow/50 hover:shadow-zap-yellow/10 hover:-translate-y-1; } |
|
|
| |
| @keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } |
| .animate-fade-in { animation: fade-in 0.3s ease-out forwards; } |
| @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.4); } 50% { box-shadow: 0 0 20px 5px rgba(255, 215, 0, 0.2); } } |
| .animate-pulse-glow { animation: pulse-glow 2s infinite; } |
| |
| |
| .q-type-quiz { --q-color: #3742fa; --q-bg: rgba(55, 66, 250, 0.1); } |
| .q-type-true_false { --q-color: #2ed573; --q-bg: rgba(46, 213, 115, 0.1); } |
| .q-type-type_answer { --q-color: #ffa502; --q-bg: rgba(255, 165, 2, 0.1); } |
| .q-type-puzzle { --q-color: #e056fd; --q-bg: rgba(224, 86, 253, 0.1); } |
| .q-type-slider { --q-color: #ff4757; --q-bg: rgba(255, 71, 87, 0.1); } |
|
|
| |
| .answer-btn { @apply w-full p-4 rounded-xl border-2 border-zap-border-t bg-zap-card text-left text-lg font-medium transition-all duration-150 flex items-center gap-3; } |
| .answer-btn:hover { @apply border-zap-yellow/50 bg-zap-yellow/5; } |
| .answer-btn.selected { @apply border-zap-yellow bg-zap-yellow/10; } |
| .answer-btn.correct { @apply border-zap-green bg-zap-green/10; } |
| .answer-btn.incorrect { @apply border-zap-red bg-zap-red/10; } |
| |
| |
| ::-webkit-scrollbar { width: 6px; height: 6px; } |
| ::-webkit-scrollbar-track { background: var(--zap-darker); } |
| ::-webkit-scrollbar-thumb { background: var(--zap-border); border-radius: 3px; } |
| ::-webkit-scrollbar-thumb:hover { background: var(--zap-yellow); } |
|
|
| |
| .toast { @apply bg-zap-card border border-zap-border rounded-xl p-4 shadow-2xl flex items-center gap-3 min-w-[280px] max-w-md animate-slide-in; } |
| @keyframes slide-in { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } } |
| .toast-success { @apply border-l-4 border-zap-green; } |
| .toast-error { @apply border-l-4 border-zap-red; } |
| .toast-info { @apply border-l-4 border-zap-blue; } |
| } |