126 lines
2.0 KiB
SCSS
Executable File

// Animation Utilities
// Grow In Animation
@keyframes growIn {
0% {
transform: scale(0.9);
opacity: 0;
}
100% {
transform: scale(1);
opacity: 1;
}
}
.animated--grow-in {
animation-name: growIn;
animation-duration: 200ms;
animation-timing-function: transform cubic-bezier(0.18, 1.25, 0.4, 1),
opacity cubic-bezier(0, 1, 0.4, 1);
}
// Fade In Animation
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.animated--fade-in {
animation-name: fadeIn;
animation-duration: 200ms;
animation-timing-function: opacity cubic-bezier(0, 1, 0.4, 1);
}
/* Enhanced Loader Spinner */
.loader {
display: inline-block;
width: var(--loader-size, 2rem); /* Dynamic size */
height: var(--loader-size, 2rem); /* Dynamic size */
border: var(--loader-border-width, 3px) solid rgba(0, 0, 0, 0.1); /* Customizable border width */
border-radius: 50%;
border-top-color: var(--loader-color, #007bff); /* Customizable color */
animation: spin 0.8s ease-in-out infinite; /* Smooth animation */
margin-left: 8px;
}
/* Keyframes for spinner animation */
@keyframes spin {
to {
transform: rotate(360deg);
}
}
/* Accessibility */
.loader[aria-hidden="true"] {
display: none;
}
.loader i {
font-size: 1.2em;
color: #007bff;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fade-in {
animation: fadeIn 1s ease-in-out;
}
.animate-card {
animation: fadeIn 0.5s ease forwards;
}
.animate-card-delay {
animation: fadeIn 0.8s ease forwards;
}
.loader {
animation: spin 0.6s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fade-in {
animation: fadeIn 1s ease-in-out;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.loader {
animation: spin 0.6s linear infinite;
}