Rules Engine
CSSA vertical sequence of three evaluation nodes executes in succession with concentric status pulses.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Loaders and spinners
- Use cases
- Loading and waiting, Workflow and approvals
- Industries
- Insurance, Cross-industry
- Style
- Technical · light stroke
- Set
- underwrite
- Tags
- geometricdotspulseloop
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-underwrite-rules" data-pulsar="underwrite-rules" viewBox="0 0 160 96"><line x1="48" x2="48" y1="20" y2="76" stroke="currentColor" stroke-dasharray="2 3" stroke-width="1.5" class="eval-axis" opacity=".3"></line><g class="rule-row r1"><circle cx="48" cy="28" r="8" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" class="ring-pulse p1"></circle><circle cx="48" cy="28" r="4" fill="var(--pulsar-accent, currentColor)" class="node-core n1"></circle><line x1="62" x2="116" y1="28" y2="28" stroke="currentColor" stroke-width="1.5" opacity=".4"></line><path stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m120 26 3 3 5-5" class="check c1"></path></g><g class="rule-row r2"><circle cx="48" cy="48" r="8" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" class="ring-pulse p2"></circle><circle cx="48" cy="48" r="4" fill="var(--pulsar-accent, currentColor)" class="node-core n2"></circle><line x1="62" x2="116" y1="48" y2="48" stroke="currentColor" stroke-width="1.5" opacity=".4"></line><path stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m120 46 3 3 5-5" class="check c2"></path></g><g class="rule-row r3"><circle cx="48" cy="68" r="8" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" class="ring-pulse p3"></circle><circle cx="48" cy="68" r="4" fill="var(--pulsar-accent, currentColor)" class="node-core n3"></circle><line x1="62" x2="116" y1="68" y2="68" stroke="currentColor" stroke-width="1.5" opacity=".4"></line><path stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m120 66 3 3 5-5" class="check c3"></path></g></svg>
animation.css
.pulsar-underwrite-rules {
display: block;
width: 100%;
height: 100%;
}
.pulsar-underwrite-rules .p1,
.pulsar-underwrite-rules .n1,
.pulsar-underwrite-rules .c1 {
animation: underwrite-rules-step1 4s ease-in-out infinite;
}
.pulsar-underwrite-rules .p2,
.pulsar-underwrite-rules .n2,
.pulsar-underwrite-rules .c2 {
animation: underwrite-rules-step2 4s ease-in-out infinite;
}
.pulsar-underwrite-rules .p3,
.pulsar-underwrite-rules .n3,
.pulsar-underwrite-rules .c3 {
animation: underwrite-rules-step3 4s ease-in-out infinite;
}
@keyframes underwrite-rules-step1 {
0%,
10% {
opacity: 0.2;
transform: scale(0.8);
}
25%,
85% {
opacity: 1;
transform: scale(1);
}
95%,
100% {
opacity: 0.2;
transform: scale(0.8);
}
}
@keyframes underwrite-rules-step2 {
0%,
30% {
opacity: 0.2;
transform: scale(0.8);
}
45%,
85% {
opacity: 1;
transform: scale(1);
}
95%,
100% {
opacity: 0.2;
transform: scale(0.8);
}
}
@keyframes underwrite-rules-step3 {
0%,
50% {
opacity: 0.2;
transform: scale(0.8);
}
65%,
85% {
opacity: 1;
transform: scale(1);
}
95%,
100% {
opacity: 0.2;
transform: scale(0.8);
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-underwrite-rules .p1,
.pulsar-underwrite-rules .n1,
.pulsar-underwrite-rules .c1,
.pulsar-underwrite-rules .p2,
.pulsar-underwrite-rules .n2,
.pulsar-underwrite-rules .c2,
.pulsar-underwrite-rules .p3,
.pulsar-underwrite-rules .n3,
.pulsar-underwrite-rules .c3 {
animation: none;
transform: none;
opacity: 1;
}
}