Solar Displacement
CSSA flat solar panel diagram has three sun rays that slide down to strike its surface, triggering outward pulsing electricity lines.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Icons and micro-interactions
- Use cases
- Success and confirmation, Dashboards and reporting
- Industries
- Energy and utilities, Cross-industry
- Style
- Minimal line · light stroke
- Set
- emission
- Tags
- gridlineminimalpulsegeometric
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-solar-displacement" data-pulsar="emission-solar-displacement" viewBox="0 0 160 96"><polygon stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" points="46 76, 114 76, 126 50, 34 50"></polygon><line x1="80" x2="80" y1="50" y2="76" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.2" opacity=".6"></line><line x1="57" x2="63" y1="50" y2="76" stroke="var(--pulsar-accent, currentColor)" opacity=".5"></line><line x1="103" x2="97" y1="50" y2="76" stroke="var(--pulsar-accent, currentColor)" opacity=".5"></line><line x1="40" x2="120" y1="63" y2="63" stroke="var(--pulsar-accent, currentColor)" opacity=".5"></line><line x1="46" x2="46" y1="76" y2="82" stroke-width="1.5" opacity=".4"></line><line x1="114" x2="114" y1="76" y2="82" stroke-width="1.5" opacity=".4"></line><g class="emission-solar-rays"><line x1="45" x2="55" y1="18" y2="38" stroke="var(--pulsar-accent, currentColor)" stroke-width="2" class="ray-1"></line><line x1="70" x2="80" y1="14" y2="34" stroke="var(--pulsar-accent, currentColor)" stroke-width="2" class="ray-2"></line><line x1="95" x2="105" y1="18" y2="38" stroke="var(--pulsar-accent, currentColor)" stroke-width="2" class="ray-3"></line></g><path stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" d="M38 78H24l-4 6" class="emission-solar-spark spark-left"></path><path stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" d="M122 78h14l4 6" class="emission-solar-spark spark-right"></path></svg>
animation.css
.pulsar-emission-solar-displacement {
display: block;
overflow: visible;
}
.pulsar-emission-solar-displacement .ray-1 {
animation: emission-solar-displacement-ray-beam 4000ms cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.pulsar-emission-solar-displacement .ray-2 {
animation: emission-solar-displacement-ray-beam 4000ms cubic-bezier(0.4, 0, 0.2, 1) -1333ms
infinite;
}
.pulsar-emission-solar-displacement .ray-3 {
animation: emission-solar-displacement-ray-beam 4000ms cubic-bezier(0.4, 0, 0.2, 1) -2666ms
infinite;
}
.pulsar-emission-solar-displacement .spark-left {
animation: emission-solar-displacement-spark-burst 4000ms ease-out infinite;
}
.pulsar-emission-solar-displacement .spark-right {
animation: emission-solar-displacement-spark-burst 4000ms ease-out -2000ms infinite;
}
@keyframes emission-solar-displacement-ray-beam {
0% {
transform: translateY(-8px);
opacity: 0;
}
30% {
opacity: 1;
}
60% {
transform: translateY(12px);
opacity: 1;
}
85%,
100% {
transform: translateY(16px);
opacity: 0;
}
}
@keyframes emission-solar-displacement-spark-burst {
0%,
45% {
opacity: 0;
stroke-dashoffset: 16;
}
55% {
opacity: 1;
}
75%,
100% {
opacity: 0;
stroke-dashoffset: -16;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-emission-solar-displacement .ray-1,
.pulsar-emission-solar-displacement .ray-2,
.pulsar-emission-solar-displacement .ray-3,
.pulsar-emission-solar-displacement .spark-left,
.pulsar-emission-solar-displacement .spark-right {
animation: none;
transform: none;
opacity: 1;
stroke-dashoffset: 0;
}
}