|
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); |
|
|
@tailwind base; |
|
|
@tailwind components; |
|
|
@tailwind utilities; |
|
|
|
|
|
@layer base { |
|
|
html { |
|
|
font-family: 'Inter', system-ui, sans-serif; |
|
|
} |
|
|
|
|
|
body { |
|
|
@apply bg-gray-50 text-gray-900 antialiased; |
|
|
} |
|
|
|
|
|
h1 { |
|
|
@apply text-3xl font-bold; |
|
|
} |
|
|
|
|
|
h2 { |
|
|
@apply text-2xl font-semibold; |
|
|
} |
|
|
|
|
|
p { |
|
|
@apply text-base; |
|
|
} |
|
|
|
|
|
small { |
|
|
@apply text-sm; |
|
|
} |
|
|
} |
|
|
|
|
|
@layer components { |
|
|
.btn { |
|
|
@apply inline-flex items-center justify-center px-4 py-2 rounded-button font-medium transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2; |
|
|
} |
|
|
|
|
|
.btn-primary { |
|
|
@apply btn bg-primary-600 text-white hover:bg-primary-700 focus:ring-primary-500; |
|
|
} |
|
|
|
|
|
.btn-secondary { |
|
|
@apply btn bg-secondary-200 text-secondary-800 hover:bg-secondary-300 focus:ring-secondary-500; |
|
|
} |
|
|
|
|
|
.btn-danger { |
|
|
@apply btn bg-red-600 text-white hover:bg-red-700 focus:ring-red-500; |
|
|
} |
|
|
|
|
|
.btn-ghost { |
|
|
@apply btn text-secondary-600 hover:text-secondary-800 hover:bg-secondary-100 focus:ring-secondary-500; |
|
|
} |
|
|
|
|
|
.input-field { |
|
|
@apply block w-full px-3 py-2 border border-gray-300 rounded-button placeholder-gray-400 focus:outline-none focus:ring-primary-500 focus:border-primary-500; |
|
|
} |
|
|
|
|
|
.card { |
|
|
@apply bg-white rounded-card shadow-sm border border-gray-200; |
|
|
} |
|
|
|
|
|
.badge { |
|
|
@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium; |
|
|
} |
|
|
|
|
|
.badge-success { |
|
|
@apply badge bg-accent-100 text-accent-800; |
|
|
} |
|
|
|
|
|
.badge-warning { |
|
|
@apply badge bg-alert-100 text-alert-800; |
|
|
} |
|
|
|
|
|
.badge-error { |
|
|
@apply badge bg-red-100 text-red-800; |
|
|
} |
|
|
|
|
|
.badge-info { |
|
|
@apply badge bg-blue-100 text-blue-800; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.page-enter { |
|
|
opacity: 0; |
|
|
transform: translateY(10px); |
|
|
} |
|
|
|
|
|
.page-enter-active { |
|
|
opacity: 1; |
|
|
transform: translateY(0); |
|
|
transition: opacity 300ms, transform 300ms; |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes pulse { |
|
|
0%, 100% { |
|
|
opacity: 1; |
|
|
} |
|
|
50% { |
|
|
opacity: 0.5; |
|
|
} |
|
|
} |
|
|
|
|
|
.skeleton { |
|
|
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; |
|
|
} |