222 lines
5.4 KiB
CSS
222 lines
5.4 KiB
CSS
@import "../styles/fonts.css";
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* Font imports */
|
|
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap');
|
|
|
|
/* Screen reader only utility - hidden unless focused */
|
|
.sr-only {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
.focus\:not-sr-only:focus {
|
|
position: static;
|
|
width: auto;
|
|
height: auto;
|
|
padding: 0.5rem 0.75rem;
|
|
margin: 0;
|
|
overflow: visible;
|
|
clip: auto;
|
|
white-space: normal;
|
|
}
|
|
|
|
/* Ensure focus indicators are visible */
|
|
*:focus {
|
|
outline: 2px solid #16A34A;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Hide focus outline when using mouse */
|
|
:focus:not(:focus-visible) {
|
|
outline: none;
|
|
}
|
|
|
|
/* Visible focus for keyboard navigation */
|
|
:focus-visible {
|
|
outline: 2px solid #16A34A;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Enhanced Button System */
|
|
.btn-primary {
|
|
@apply bg-gradient-to-r from-brand-green to-green-600 text-white font-semibold px-8 py-4 rounded-button
|
|
hover:from-green-600 hover:to-green-700 hover:shadow-lg hover:-translate-y-0.5
|
|
focus:ring-4 focus:ring-green-200 focus:shadow-lg
|
|
active:from-green-700 active:to-green-800 active:translate-y-0
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.btn-secondary {
|
|
@apply bg-white border-2 border-brand-orange text-brand-orange font-semibold px-8 py-4 rounded-button
|
|
hover:bg-gradient-to-r hover:from-brand-orange hover:to-orange-600 hover:text-white hover:border-transparent
|
|
hover:shadow-lg hover:-translate-y-0.5
|
|
focus:ring-4 focus:ring-orange-200 focus:shadow-lg
|
|
active:from-orange-600 active:to-orange-700 active:translate-y-0
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.btn-outline {
|
|
@apply bg-transparent border-2 border-brand-green text-brand-green font-semibold px-8 py-4 rounded-button
|
|
hover:bg-brand-green hover:text-white hover:shadow-lg hover:-translate-y-0.5
|
|
focus:ring-4 focus:ring-green-200 focus:shadow-lg
|
|
active:bg-green-700 active:translate-y-0
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.btn-ghost {
|
|
@apply bg-transparent text-brand-green font-semibold px-8 py-4 rounded-button
|
|
hover:bg-green-50 hover:text-green-700 hover:shadow-md
|
|
focus:ring-4 focus:ring-green-200
|
|
active:bg-green-100
|
|
transition-all duration-200 ease-out;
|
|
}
|
|
|
|
.btn-danger {
|
|
@apply bg-gradient-to-r from-brand-danger to-red-600 text-white font-semibold px-8 py-4 rounded-button
|
|
hover:from-red-600 hover:to-red-700 hover:shadow-lg hover:-translate-y-0.5
|
|
focus:ring-4 focus:ring-red-200 focus:shadow-lg
|
|
active:from-red-700 active:to-red-800 active:translate-y-0
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.btn-sm {
|
|
@apply px-6 py-3 text-sm;
|
|
}
|
|
|
|
.btn-lg {
|
|
@apply px-10 py-5 text-lg;
|
|
}
|
|
|
|
/* Enhanced Card System */
|
|
.card {
|
|
@apply bg-white rounded-card shadow-card p-6 border border-gray-100
|
|
hover:shadow-xl hover:-translate-y-1 hover:border-gray-200
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.card-elevated {
|
|
@apply bg-white rounded-card shadow-lg p-8 border border-gray-100
|
|
hover:shadow-2xl hover:-translate-y-2 hover:border-gray-200
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.card-gradient {
|
|
@apply bg-gradient-to-br from-white to-gray-50 rounded-card shadow-card p-6 border border-gray-100
|
|
hover:shadow-xl hover:-translate-y-1 hover:from-gray-50 hover:to-gray-100
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
.card-dark {
|
|
@apply bg-gradient-to-br from-brand-dark to-slate-800 text-white rounded-card shadow-lg p-6
|
|
hover:shadow-xl hover:-translate-y-1 hover:from-slate-800 hover:to-brand-dark
|
|
transition-all duration-300 ease-out;
|
|
}
|
|
|
|
/* Gradient Utilities */
|
|
.gradient-primary {
|
|
@apply bg-gradient-to-r from-brand-green to-green-600;
|
|
}
|
|
|
|
.gradient-secondary {
|
|
@apply bg-gradient-to-r from-brand-orange to-orange-600;
|
|
}
|
|
|
|
.gradient-dark {
|
|
@apply bg-gradient-to-br from-brand-dark to-slate-800;
|
|
}
|
|
|
|
.gradient-light {
|
|
@apply bg-gradient-to-br from-gray-50 to-white;
|
|
}
|
|
|
|
.gradient-text {
|
|
@apply bg-gradient-to-r from-brand-green to-green-600 bg-clip-text text-transparent;
|
|
}
|
|
|
|
.gradient-text-orange {
|
|
@apply bg-gradient-to-r from-brand-orange to-orange-600 bg-clip-text text-transparent;
|
|
}
|
|
|
|
/* Enhanced Typography */
|
|
.text-gradient {
|
|
@apply bg-gradient-to-r from-brand-green to-green-600 bg-clip-text text-transparent;
|
|
}
|
|
|
|
.text-gradient-orange {
|
|
@apply bg-gradient-to-r from-brand-orange to-orange-600 bg-clip-text text-transparent;
|
|
}
|
|
|
|
.font-light {
|
|
font-weight: 300;
|
|
}
|
|
|
|
.font-medium {
|
|
font-weight: 500;
|
|
}
|
|
|
|
.font-semibold {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.font-bold {
|
|
font-weight: 700;
|
|
}
|
|
|
|
.font-extrabold {
|
|
font-weight: 800;
|
|
}
|
|
|
|
/* Container */
|
|
.container-custom {
|
|
@apply max-w-container mx-auto px-6 md:px-8;
|
|
}
|
|
|
|
/* Animation Utilities */
|
|
.animate-fade-in {
|
|
animation: fadeIn 0.6s ease-out;
|
|
}
|
|
|
|
.animate-slide-up {
|
|
animation: slideUp 0.6s ease-out;
|
|
}
|
|
|
|
.animate-scale-in {
|
|
animation: scaleIn 0.4s ease-out;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from { opacity: 0; }
|
|
to { opacity: 1; }
|
|
}
|
|
|
|
@keyframes slideUp {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes scaleIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.95);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
} |