126 lines
2.0 KiB
SCSS
Executable File
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;
|
|
}
|