Pipeline
CSSTwo data streams merging into a single reconciled output.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Loaders and spinners
- Use cases
- Loading and waiting, Sync and integration
- Industries
- Finance and fintech, Cross-industry
- Style
- Minimal line · light stroke
- Set
- reconcile
- Tags
- loopminimalline
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" aria-labelledby="reconcile-pipeline-title" class="pulsar pulsar-reconcile-pipeline" data-pulsar="reconcile-pipeline" role="img" viewBox="0 0 120 40"><title id="reconcile-pipeline-title">Pipeline</title><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path id="reconcile-pipeline-path-top" d="M10 12h40" opacity=".2"></path><path id="reconcile-pipeline-path-bottom" d="M10 28h40" opacity=".2"></path><path id="reconcile-pipeline-path-output" d="M70 20h40" opacity=".2"></path><rect id="reconcile-pipeline-box" width="20" height="20" x="50" y="10" opacity=".2" rx="2" ry="2"></rect><path id="reconcile-pipeline-packet-top" stroke-dasharray="4 60" stroke-dashoffset="4" d="M10 12h60" opacity="0"></path><path id="reconcile-pipeline-packet-bottom" stroke-dasharray="4 60" stroke-dashoffset="4" d="M10 28h60" opacity="0"></path><path id="reconcile-pipeline-packet-merged" stroke-dasharray="8 60" stroke-dashoffset="8" d="M50 20h60" opacity="0"></path></g></svg>
animation.css
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-top,
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-bottom {
animation: reconcile-pipeline-input 4000ms linear infinite;
}
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-merged {
animation: reconcile-pipeline-merged 4000ms linear infinite;
}
.pulsar-reconcile-pipeline #reconcile-pipeline-box {
animation: reconcile-pipeline-box-pulse 4000ms linear infinite;
}
@keyframes reconcile-pipeline-input {
0% {
opacity: 0;
stroke-dashoffset: 4;
}
5% {
opacity: 1;
}
30% {
opacity: 1;
stroke-dashoffset: -36;
}
40% {
opacity: 0;
stroke-dashoffset: -46;
}
100% {
opacity: 0;
stroke-dashoffset: -46;
}
}
@keyframes reconcile-pipeline-merged {
0%,
40% {
opacity: 0;
stroke-dashoffset: 0;
}
42% {
opacity: 1;
}
50% {
opacity: 1;
stroke-dashoffset: -20;
}
85% {
opacity: 1;
stroke-dashoffset: -52;
}
90% {
opacity: 0;
}
100% {
opacity: 0;
stroke-dashoffset: -52;
}
}
@keyframes reconcile-pipeline-box-pulse {
0%,
30% {
opacity: 0.2;
stroke-width: 2;
}
35% {
opacity: 0.8;
stroke-width: 3;
}
40%,
100% {
opacity: 0.2;
stroke-width: 2;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-top,
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-bottom,
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-merged,
.pulsar-reconcile-pipeline #reconcile-pipeline-box {
animation: none;
}
.pulsar-reconcile-pipeline #reconcile-pipeline-path-top,
.pulsar-reconcile-pipeline #reconcile-pipeline-path-bottom,
.pulsar-reconcile-pipeline #reconcile-pipeline-path-output,
.pulsar-reconcile-pipeline #reconcile-pipeline-box {
opacity: 1;
}
.pulsar-reconcile-pipeline #reconcile-pipeline-packet-merged {
opacity: 1;
stroke-dashoffset: -47;
}
}