|
|
|
|
|
|
|
|
|
|
|
.accordion-content {
|
|
will-change: transform, opacity, max-height;
|
|
transform-origin: top;
|
|
backface-visibility: hidden;
|
|
}
|
|
|
|
.accordion-icon {
|
|
will-change: transform;
|
|
transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
|
|
.accordion-expand {
|
|
animation-timing-function: cubic-bezier(0.17, 0.84, 0.44, 1);
|
|
}
|
|
|
|
.accordion-collapse {
|
|
animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
|
|
}
|
|
|
|
|
|
@keyframes smoothExpand {
|
|
0% {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
transform: scaleY(0.95);
|
|
}
|
|
50% {
|
|
opacity: 0.5;
|
|
}
|
|
100% {
|
|
max-height: 2000px;
|
|
opacity: 1;
|
|
transform: scaleY(1);
|
|
}
|
|
}
|
|
|
|
|
|
@keyframes smoothCollapse {
|
|
0% {
|
|
max-height: 2000px;
|
|
opacity: 1;
|
|
transform: scaleY(1);
|
|
}
|
|
30% {
|
|
opacity: 0.7;
|
|
}
|
|
100% {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
transform: scaleY(0.95);
|
|
}
|
|
}
|
|
|
|
|
|
@keyframes fadeIn {
|
|
from { opacity: 0; }
|
|
to { opacity: 1; }
|
|
}
|
|
|
|
.fade-in {
|
|
animation: fadeIn 0.15s ease-in-out;
|
|
}
|
|
|
|
|
|
@keyframes ping-once {
|
|
0% {
|
|
transform: scale(0.95);
|
|
opacity: 0.8;
|
|
}
|
|
30% {
|
|
transform: scale(1.2);
|
|
opacity: 0.5;
|
|
}
|
|
70% {
|
|
transform: scale(0.95);
|
|
opacity: 0.3;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.animate-ping-once {
|
|
animation: ping-once 0.8s cubic-bezier(0, 0, 0.2, 1) forwards;
|
|
}
|
|
|