137 lines
2.8 KiB
CSS
137 lines
2.8 KiB
CSS
@import "tailwindcss";
|
|
|
|
@layer base {
|
|
li {
|
|
list-style-type: none;
|
|
}
|
|
|
|
/* Better focus visibility */
|
|
*:focus {
|
|
outline: 2px solid transparent;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
*:focus-visible {
|
|
outline: 2px solid rgb(59 130 246);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Better text rendering */
|
|
body {
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
/* Screen reader only class */
|
|
.sr-only {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border-width: 0;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
/* Skeleton Loading Animation */
|
|
.skeleton {
|
|
background: linear-gradient(
|
|
90deg,
|
|
rgb(229 231 235) 0%,
|
|
rgb(243 244 246) 50%,
|
|
rgb(229 231 235) 100%
|
|
);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-loading 1.5s ease-in-out infinite;
|
|
border-radius: 0.375rem;
|
|
}
|
|
|
|
@keyframes skeleton-loading {
|
|
0% {
|
|
background-position: 200% 0;
|
|
}
|
|
100% {
|
|
background-position: -200% 0;
|
|
}
|
|
}
|
|
|
|
/* Enhanced focus ring */
|
|
.focus-ring:focus-visible {
|
|
outline: 2px solid rgb(59 130 246);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Fade in animation */
|
|
.fade-in {
|
|
animation: fadeIn 0.3s ease-out;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Staggered list animation */
|
|
.fade-in-stagger > *:nth-child(1) { animation: fadeIn 0.3s ease-out 0ms backwards; }
|
|
.fade-in-stagger > *:nth-child(2) { animation: fadeIn 0.3s ease-out 50ms backwards; }
|
|
.fade-in-stagger > *:nth-child(3) { animation: fadeIn 0.3s ease-out 100ms backwards; }
|
|
.fade-in-stagger > *:nth-child(4) { animation: fadeIn 0.3s ease-out 150ms backwards; }
|
|
.fade-in-stagger > *:nth-child(5) { animation: fadeIn 0.3s ease-out 200ms backwards; }
|
|
.fade-in-stagger > *:nth-child(n+6) { animation: fadeIn 0.3s ease-out 250ms backwards; }
|
|
|
|
/* Button hover effect */
|
|
.button-hover-lift:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.15);
|
|
}
|
|
|
|
.button-hover-lift:active {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
/* Reduce motion for accessibility */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0.01ms !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Print styles for email content */
|
|
@media print {
|
|
nav, button, .no-print {
|
|
display: none !important;
|
|
}
|
|
|
|
body {
|
|
background: white;
|
|
color: black;
|
|
}
|
|
|
|
.email-content a::after {
|
|
content: " (" attr(href) ")";
|
|
font-size: 9pt;
|
|
color: #6b7280;
|
|
}
|
|
|
|
* {
|
|
-webkit-print-color-adjust: exact;
|
|
print-color-adjust: exact;
|
|
}
|
|
} |