Pulsar

Scope One Direct

CSS

A stylized chimney icon releases a single vertical line that rises and dissolves into three small particles to track direct operational emissions.

Tier
CSS
Dependencies
None
Duration
4 s, loops
Categories
Icons and micro-interactions
Use cases
Dashboards and reporting, Notifications
Industries
Manufacturing and industrial, Energy and utilities
Style
Minimal line · light stroke
Set
emission
Tags
particleslineminimalfadedots

Companion assets

The same artwork, not animated. Derived from the entry’s own resting state, so it matches exactly.

Animated
CSS tier
Static vector
Scope One Direct, not animated
Download SVG

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-scope-1" data-pulsar="emission-scope-1" viewBox="0 0 160 96"><path stroke-width="1.5" d="M38 80h14l6-32h16l6 32h42" opacity=".35"></path><path stroke-width="1.5" d="M80 80V62l14 10V62l14 10v8" opacity=".3"></path><line x1="56" x2="76" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-width="2"></line><line x1="66" x2="66" y1="46" y2="22" stroke="var(--pulsar-accent, currentColor)" stroke-width="2" class="emission-scope1-plume"></line><g class="emission-scope1-particle p1"><circle cx="66" cy="18" r="2" fill="var(--pulsar-accent, currentColor)" stroke="var(--pulsar-accent, currentColor)"></circle></g><g class="emission-scope1-particle p2"><circle cx="76" cy="14" r="1.5" fill="currentColor" opacity=".8"></circle></g><g class="emission-scope1-particle p3"><circle cx="86" cy="12" r="1.2" opacity=".6"></circle></g><rect width="24" height="14" x="100" y="32" stroke-width="1.2" opacity=".4" rx="3"></rect><path stroke-width="1.2" d="M108 42v-6l-3 2" opacity=".6"></path></svg>

animation.css

.pulsar-emission-scope-1 {
  display: block;
  overflow: visible;
}
.pulsar-emission-scope-1 .emission-scope1-plume {
  stroke-dasharray: 26;
  stroke-dashoffset: 26;
  animation: emission-scope-1-plume-anim 4000ms cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.pulsar-emission-scope-1 .p1 {
  animation: emission-scope-1-drift-1 4000ms ease-out infinite;
}
.pulsar-emission-scope-1 .p2 {
  animation: emission-scope-1-drift-2 4000ms ease-out infinite;
}
.pulsar-emission-scope-1 .p3 {
  animation: emission-scope-1-drift-3 4000ms ease-out infinite;
}

@keyframes emission-scope-1-plume-anim {
  0% {
    stroke-dashoffset: 26;
    opacity: 0.2;
  }
  30%,
  75% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
  90%,
  100% {
    stroke-dashoffset: -26;
    opacity: 0;
  }
}

@keyframes emission-scope-1-drift-1 {
  0%,
  25% {
    transform: translate(0, 8px) scale(0.4);
    opacity: 0;
  }
  45% {
    opacity: 1;
    transform: translate(2px, -2px) scale(1.1);
  }
  80%,
  100% {
    transform: translate(6px, -8px) scale(0.6);
    opacity: 0;
  }
}

@keyframes emission-scope-1-drift-2 {
  0%,
  35% {
    transform: translate(0, 8px) scale(0.4);
    opacity: 0;
  }
  55% {
    opacity: 0.9;
    transform: translate(4px, -2px) scale(1);
  }
  85%,
  100% {
    transform: translate(10px, -6px) scale(0.5);
    opacity: 0;
  }
}

@keyframes emission-scope-1-drift-3 {
  0%,
  45% {
    transform: translate(0, 8px) scale(0.4);
    opacity: 0;
  }
  65% {
    opacity: 0.8;
    transform: translate(6px, -2px) scale(0.9);
  }
  90%,
  100% {
    transform: translate(14px, -4px) scale(0.4);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pulsar-emission-scope-1 .emission-scope1-plume,
  .pulsar-emission-scope-1 .p1,
  .pulsar-emission-scope-1 .p2,
  .pulsar-emission-scope-1 .p3 {
    animation: none;
    stroke-dashoffset: 0;
    transform: none;
    opacity: 1;
  }
}

From this family15 in Emission

See the family