Arrives from the right with the fade finished at 40 percent, so the last stretch is pure motion easing out. Suits chat replies, next steps and side panels.
Also known as: css fade in from right, fade in right to left css, fade in from right animation.
<div class="kfa-fade-in-right">Right</div>
.kfa-fade-in-right {
--c: var(--kfa-color, #3b82f6);
font-size: var(--kfa-size, 16px);
display: grid;
place-items: center;
width: 5.5em;
height: 5.5em;
border-radius: 1em;
background: var(--c);
color: #fff;
font-family: system-ui, sans-serif;
font-weight: 700;
box-shadow: 0 0.6em 1.4em -0.6em color-mix(in srgb, var(--c) 70%, transparent);
animation: kfa-fade-in-right-kf 0.75s cubic-bezier(0.33, 1, 0.68, 1) both;
}
@keyframes kfa-fade-in-right-kf {
0% { opacity: 0; transform: translateX(2.5em); }
40% { opacity: 1; }
100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
.kfa-fade-in-right, .kfa-fade-in-right *, .kfa-fade-in-right::before, .kfa-fade-in-right::after, .kfa-fade-in-right *::before, .kfa-fade-in-right *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}--kfa-color on the element or a parent.
Currently previewing #3b82f6.--kfa-size. Every other dimension is in
em, so the whole thing scales together. Currently previewing 16px.transition or animation
shorthand. Staggered delays are relative, so they keep their rhythm.