Fallback
CSSA failing node icon redirects its central arrow backward toward a secure local storage vault.
- Tier
- CSS
- Dependencies
- None
- Duration
- 5.5 s, loops
- Categories
- Icons and micro-interactions
- Use cases
- Errors and warnings, Security and trust
- Industries
- IT services and infrastructure, Cross-industry
- Style
- Technical · light stroke
- Set
- failover
- Tags
- arrowgeometriclooprotateui
Companion assets
The same artwork, not animated. Derived from the entry’s own resting state, so it matches exactly.
Code
animation.svg
<svg xmlns="http://www.w3.org/2000/svg" fill="none" aria-hidden="true" class="pulsar pulsar-failover-fallback" data-pulsar="failover-fallback" viewBox="0 0 160 96"><g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"><rect id="failover-fallback-vault" width="32" height="36" x="18" y="30" fill="var(--pulsar-accent, currentColor)" fill-opacity=".08" stroke="var(--pulsar-accent, currentColor)" rx="4"></rect><circle cx="34" cy="48" r="5" stroke="var(--pulsar-accent, currentColor)"></circle><line x1="34" x2="37" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)"></line><circle cx="84" cy="48" r="16" fill="currentColor" fill-opacity=".06"></circle><path id="failover-fallback-cloud" d="M124 54h16c3 0 6-3 6-6s-3-6-6-6c0-5-4-8-9-8-4 0-7 2-8 5-1-1-3-1-4 0-2 2-3 4-3 7-3 1-4 4-2 7 1 1 3 1 5 1"></path><line id="failover-fallback-link-r" x1="100" x2="114" y1="48" y2="48"></line><line id="failover-fallback-link-l" x1="50" x2="68" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="2 3"></line></g><g id="failover-fallback-arrow" stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><line x1="76" x2="92" y1="48" y2="48"></line><polyline points="88,43 93,48 88,53"></polyline></g><circle id="failover-fallback-pkt" cx="60" cy="48" r="2.5" fill="var(--pulsar-accent, currentColor)" opacity="0"></circle></svg>
animation.css
.pulsar-failover-fallback #failover-fallback-arrow {
transform-origin: 84px 48px;
animation: failover-fallback-arrow-spin 5500ms cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes failover-fallback-arrow-spin {
0%,
28% {
transform: rotate(0deg);
}
38%,
80% {
transform: rotate(180deg);
}
90%,
100% {
transform: rotate(360deg);
}
}
.pulsar-failover-fallback #failover-fallback-cloud,
.pulsar-failover-fallback #failover-fallback-link-r {
animation: failover-fallback-cloud-anim 5500ms ease-in-out infinite;
}
@keyframes failover-fallback-cloud-anim {
0%,
26% {
opacity: 1;
}
34%,
82% {
opacity: 0.2;
}
90%,
100% {
opacity: 1;
}
}
.pulsar-failover-fallback #failover-fallback-vault,
.pulsar-failover-fallback #failover-fallback-link-l {
animation: failover-fallback-vault-anim 5500ms ease-in-out infinite;
}
@keyframes failover-fallback-vault-anim {
0%,
32% {
opacity: 0.35;
}
42%,
80% {
opacity: 1;
}
90%,
100% {
opacity: 0.35;
}
}
.pulsar-failover-fallback #failover-fallback-pkt {
animation: failover-fallback-pkt-anim 5500ms linear infinite;
}
@keyframes failover-fallback-pkt-anim {
0%,
40% {
opacity: 0;
transform: translateX(0);
}
46%,
76% {
opacity: 1;
transform: translateX(-14px);
}
82%,
100% {
opacity: 0;
transform: translateX(-20px);
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-failover-fallback * {
animation: none !important;
}
}