Pulsar

Compartment

CSS

A large square splits into four equal quadrants that slide outwards, revealing a central protected circular core that rotates.

Tier
CSS
Dependencies
None
Duration
4.2 s, loops
Categories
Data and progress
Use cases
Security and trust, Workflow and approvals
Industries
Security and identity, Cross-industry
Style
Geometric solid · light stroke
Set
enclave
Tags
gridgeometricminimalscaleui

Companion assets

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

Animated
CSS tier
Static vector
Compartment, not animated
Download SVG

Code

animation.svg

<svg xmlns="http://www.w3.org/2000/svg" fill="none" aria-hidden="true" class="pulsar pulsar-enclave-compartment" data-pulsar="enclave-compartment" viewBox="0 0 160 96"><rect width="28" height="28" x="50" y="18" stroke="currentColor" stroke-width="1.8" class="enclave-comp-q1" opacity=".6" rx="4"></rect><rect width="28" height="28" x="82" y="18" stroke="currentColor" stroke-width="1.8" class="enclave-comp-q2" opacity=".6" rx="4"></rect><rect width="28" height="28" x="50" y="50" stroke="currentColor" stroke-width="1.8" class="enclave-comp-q3" opacity=".6" rx="4"></rect><rect width="28" height="28" x="82" y="50" stroke="currentColor" stroke-width="1.8" class="enclave-comp-q4" opacity=".6" rx="4"></rect><g class="enclave-comp-core"><circle cx="80" cy="48" r="8" fill="var(--pulsar-accent, currentColor)" fill-opacity=".2" stroke="var(--pulsar-accent, currentColor)" stroke-width="2"></circle><circle cx="80" cy="48" r="3" fill="var(--pulsar-accent, currentColor)"></circle></g></svg>

animation.css

.pulsar-enclave-compartment {
  display: block;
  overflow: visible;
}
.pulsar-enclave-compartment .enclave-comp-q1 {
  animation: enclave-compartment-q1-anim 4200ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
}
.pulsar-enclave-compartment .enclave-comp-q2 {
  animation: enclave-compartment-q2-anim 4200ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
}
.pulsar-enclave-compartment .enclave-comp-q3 {
  animation: enclave-compartment-q3-anim 4200ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
}
.pulsar-enclave-compartment .enclave-comp-q4 {
  animation: enclave-compartment-q4-anim 4200ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
}
.pulsar-enclave-compartment .enclave-comp-core {
  transform-origin: 80px 48px;
  animation: enclave-compartment-core-anim 4200ms ease infinite;
}

@keyframes enclave-compartment-q1-anim {
  0%,
  15% {
    transform: translate(0, 0);
  }
  38%,
  78% {
    transform: translate(-10px, -8px);
  }
  92%,
  100% {
    transform: translate(0, 0);
  }
}

@keyframes enclave-compartment-q2-anim {
  0%,
  15% {
    transform: translate(0, 0);
  }
  38%,
  78% {
    transform: translate(10px, -8px);
  }
  92%,
  100% {
    transform: translate(0, 0);
  }
}

@keyframes enclave-compartment-q3-anim {
  0%,
  15% {
    transform: translate(0, 0);
  }
  38%,
  78% {
    transform: translate(-10px, 8px);
  }
  92%,
  100% {
    transform: translate(0, 0);
  }
}

@keyframes enclave-compartment-q4-anim {
  0%,
  15% {
    transform: translate(0, 0);
  }
  38%,
  78% {
    transform: translate(10px, 8px);
  }
  92%,
  100% {
    transform: translate(0, 0);
  }
}

@keyframes enclave-compartment-core-anim {
  0%,
  25% {
    transform: scale(0.4);
    opacity: 0;
  }
  42%,
  75% {
    transform: scale(1);
    opacity: 1;
  }
  88%,
  100% {
    transform: scale(0.4);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pulsar-enclave-compartment * {
    animation: none !important;
  }
}

From this family15 in Enclave

See the family