| |
| |
|
|
|
|
|
|
| .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;
|
| }
|
|
|