Direct Air Capture
CSSA circular fan icon spins slowly while air molecules are pulled through it into a vertical solid capture column.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Icons and micro-interactions
- Use cases
- Determinate progress, Automation and rules
- Industries
- Manufacturing and industrial, Energy and utilities
- Style
- Minimal line · light stroke
- Set
- emission
- Tags
- rotatecirclelineminimalbars
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" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="pulsar pulsar-emission-capture-fan" data-pulsar="emission-capture-fan" viewBox="0 0 160 96"><circle cx="58" cy="48" r="26" stroke-width="1.5"></circle><circle cx="58" cy="48" r="4" fill="currentColor"></circle><g class="emission-dac-fan"><line x1="58" x2="58" y1="48" y2="24" stroke="var(--pulsar-accent, currentColor)" stroke-width="2"></line><line x1="58" x2="58" y1="48" y2="72" stroke="var(--pulsar-accent, currentColor)" stroke-width="2"></line><line x1="58" x2="34" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-width="2"></line><line x1="58" x2="82" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-width="2"></line></g><g class="emission-dac-air"><polyline stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="2 2" stroke-width="1.5" points="22 43, 27 48, 22 53"></polyline></g><line x1="84" x2="108" y1="42" y2="42" stroke-width="1.5" opacity=".4"></line><line x1="84" x2="108" y1="54" y2="54" stroke-width="1.5" opacity=".4"></line><rect width="26" height="52" x="108" y="22" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" rx="4"></rect><line x1="112" x2="130" y1="36" y2="36" stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="2 3" stroke-width="1.5" class="emission-dac-strata s1"></line><line x1="112" x2="130" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="2 3" stroke-width="1.5" class="emission-dac-strata s2"></line><line x1="112" x2="130" y1="60" y2="60" stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="2 3" stroke-width="1.5" class="emission-dac-strata s3"></line></svg>
animation.css
.pulsar-emission-capture-fan {
display: block;
overflow: visible;
}
.pulsar-emission-capture-fan .emission-dac-fan {
transform-origin: 58px 48px;
animation: emission-capture-fan-spin 4000ms linear infinite;
}
.pulsar-emission-capture-fan .emission-dac-air {
animation: emission-capture-fan-intake 4000ms ease-in-out infinite;
}
.pulsar-emission-capture-fan .s1 {
animation: emission-capture-fan-fill 4000ms ease-in-out infinite;
}
.pulsar-emission-capture-fan .s2 {
animation: emission-capture-fan-fill 4000ms ease-in-out -1333ms infinite;
}
.pulsar-emission-capture-fan .s3 {
animation: emission-capture-fan-fill 4000ms ease-in-out -2666ms infinite;
}
@keyframes emission-capture-fan-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes emission-capture-fan-intake {
0% {
transform: translateX(-6px);
opacity: 0;
}
35% {
opacity: 1;
}
75%,
100% {
transform: translateX(8px);
opacity: 0;
}
}
@keyframes emission-capture-fan-fill {
0%,
100% {
opacity: 0.3;
stroke-dashoffset: 0;
}
50% {
opacity: 1;
stroke-dashoffset: 6;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-emission-capture-fan .emission-dac-fan,
.pulsar-emission-capture-fan .emission-dac-air,
.pulsar-emission-capture-fan .s1,
.pulsar-emission-capture-fan .s2,
.pulsar-emission-capture-fan .s3 {
animation: none;
transform: none;
opacity: 1;
stroke-dashoffset: 0;
}
}