Jessedbrown's picture
build class schedule manager
e310cf5
Raw History Blame Contribute Delete
3.13 kB
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
box-sizing: border-box;
}
body {
@apply bg-gradient-to-b from-slate-50 via-purple-50/30 to-indigo-50/50 min-h-screen;
font-family: "Outfit", system-ui, sans-serif;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
@apply bg-slate-100 rounded-full;
}
::-webkit-scrollbar-thumb {
@apply bg-slate-300 rounded-full hover:bg-slate-400;
}
/* Focus styles */
*:focus-visible {
@apply outline-none ring-2 ring-primary-500 ring-offset-2;
}
/* Hide scrollbar but keep scroll (for horizontal week strip) */
.no-scrollbar::-webkit-scrollbar {
display: none;
}
.no-scrollbar {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
/* Visible scrollbar for Radix Select dropdowns */
[data-radix-select-viewport] {
scrollbar-width: thin; /* Firefox */
scrollbar-color: #cbd5e1 #f1f5f9; /* Firefox - thumb and track */
}
[data-radix-select-viewport]::-webkit-scrollbar {
width: 6px;
}
[data-radix-select-viewport]::-webkit-scrollbar-track {
background: #f1f5f9;
border-radius: 4px;
}
[data-radix-select-viewport]::-webkit-scrollbar-thumb {
background: #cbd5e1;
border-radius: 4px;
}
[data-radix-select-viewport]::-webkit-scrollbar-thumb:hover {
background: #94a3b8;
}
/* Form input styles */
input,
select,
textarea {
@apply transition-all duration-200;
}
/* Card gradient backgrounds */
.card-gradient-1 {
background: linear-gradient(to bottom, #8b5cf6 0%, #7c3aed 100%);
}
.card-gradient-2 {
background: linear-gradient(to bottom, #6366f1 0%, #4f46e5 100%);
}
.card-gradient-3 {
background: linear-gradient(to bottom, #ec4899 0%, #db2777 100%);
}
.card-gradient-4 {
background: linear-gradient(to bottom, #14b8a6 0%, #0d9488 100%);
}
/* Timeline ruler + dot */
.timeline-ruler {
width: 2px;
border-radius: 9999px;
background: linear-gradient(
to bottom,
#e5e7eb 0%,
#f3f4f6 60%,
rgba(0, 0, 0, 0) 100%
);
}
.timeline-dot {
width: 12px;
height: 12px;
border-radius: 9999px;
background: linear-gradient(to bottom, #667eea 0%, #764ba2 100%);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.25);
}
/* Staggered animation delays */
.animate-delay-100 {
animation-delay: 100ms;
}
.animate-delay-200 {
animation-delay: 200ms;
}
.animate-delay-300 {
animation-delay: 300ms;
}
.animate-delay-400 {
animation-delay: 400ms;
}
/* Toast animations */
@keyframes slideInFromRight {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideOutToRight {
from {
transform: translateX(0);
opacity: 1;
}
to {
transform: translateX(100%);
opacity: 0;
}
}
.animate-in {
animation: slideInFromRight 0.3s ease-out forwards;
}
.animate-out {
animation: slideOutToRight 0.2s ease-in forwards;
}
.fade-in {
animation: fadeIn 0.2s ease-out forwards;
}
.fade-out {
opacity: 0;
}
.slide-in-from-right {
animation-name: slideInFromRight;
}
.slide-out-to-right {
animation-name: slideOutToRight;
}