Pulsar

Allocation

CSS

A proportional material split bar dynamically resizes interior boundary partitions to reallocate volume across production lines.

Tier
CSS
Dependencies
None
Duration
4 s, loops
Categories
Decorative and illustrative
Use cases
Determinate progress, Workflow and approvals
Industries
Manufacturing and industrial, Cross-industry
Style
Duotone · regular stroke
Set
bom
Tags
barsprogressgeometric

Companion assets

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

Animated
CSS tier
Static vector
Allocation, 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-bom-allocation" data-pulsar="bom-allocation" viewBox="0 0 160 96"><rect width="100" height="28" x="30" y="34" stroke-width="1.5" opacity=".35" rx="4"></rect><rect width="40" height="22" x="33" y="37" fill="var(--pulsar-accent, currentColor)" fill-opacity=".2" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" class="sec-a" rx="2"></rect><rect width="28" height="22" x="76" y="37" fill="currentColor" fill-opacity=".1" stroke-width="1.5" class="sec-b" rx="2"></rect><rect width="20" height="22" x="107" y="37" stroke-width="1.5" class="sec-c" opacity=".4" rx="2"></rect><circle cx="53" cy="24" r="2.5" fill="var(--pulsar-accent, currentColor)" class="pip p1"></circle><circle cx="90" cy="24" r="2.5" fill="currentColor" class="pip p2" opacity=".4"></circle><circle cx="117" cy="24" r="2.5" fill="currentColor" class="pip p3" opacity=".3"></circle></svg>

animation.css

.pulsar-bom-allocation {
  display: block;
  overflow: visible;
}
.pulsar-bom-allocation .sec-a {
  animation: bom-allocation-seca 4000ms ease-in-out infinite;
}
.pulsar-bom-allocation .sec-b {
  animation: bom-allocation-secb 4000ms ease-in-out infinite;
}
.pulsar-bom-allocation .sec-c {
  animation: bom-allocation-secc 4000ms ease-in-out infinite;
}
.pulsar-bom-allocation .pip.p1 {
  animation: bom-allocation-pip1 4000ms ease-in-out infinite;
}

@keyframes bom-allocation-seca {
  0%,
  100% {
    transform: scaleX(1);
    opacity: 0.8;
  }
  50% {
    transform: scaleX(1.3);
    transform-origin: 33px 48px;
    opacity: 1;
  }
}

@keyframes bom-allocation-secb {
  0%,
  100% {
    transform: translate(0, 0) scaleX(1);
  }
  50% {
    transform: translate(12px, 0) scaleX(0.75);
    transform-origin: 76px 48px;
  }
}

@keyframes bom-allocation-secc {
  0%,
  100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(5px, 0);
  }
}

@keyframes bom-allocation-pip1 {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.3);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pulsar-bom-allocation .sec-a,
  .pulsar-bom-allocation .sec-b,
  .pulsar-bom-allocation .sec-c,
  .pulsar-bom-allocation .pip.p1 {
    animation: none;
    transform: none;
    opacity: 1;
  }
}

From this family15 in Bom

See the family