Pulsar

Overlay

CSS

A block of text code represented by three horizontal lines is protected by a semi-transparent defensive diagonal bar that sweeps across it.

Tier
CSS
Dependencies
None
Duration
4.5 s, loops
Categories
Icons and micro-interactions
Use cases
Dashboards and reporting, Security and trust
Industries
SaaS and software, Security and identity
Style
Minimal line · light stroke
Set
patch
Tags
barsglowgeometricminimalui

Companion assets

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

Animated
CSS tier
Static vector
Overlay, not animated
Download SVG

Code

animation.svg

<svg xmlns="http://www.w3.org/2000/svg" fill="none" aria-hidden="true" class="pulsar pulsar-patch-overlay" data-pulsar="patch-overlay" viewBox="0 0 160 96"><rect width="88" height="52" x="36" y="22" stroke="currentColor" stroke-width="1.5" opacity=".3" rx="6"></rect><line x1="48" x2="96" y1="34" y2="34" stroke="currentColor" stroke-linecap="round" stroke-width="2" opacity=".4"></line><line x1="48" x2="112" y1="48" y2="48" stroke="currentColor" stroke-linecap="round" stroke-width="2" opacity=".4"></line><circle cx="116" cy="48" r="2.5" fill="var(--pulsar-accent, currentColor)" class="patch-overlay-flag"></circle><g class="patch-overlay-patch"><rect width="76" height="12" x="44" y="42" fill="var(--pulsar-accent, currentColor)" fill-opacity=".2" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" rx="3"></rect><circle cx="50" cy="48" r="2" fill="var(--pulsar-accent, currentColor)"></circle><line x1="56" x2="106" y1="48" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-width="1.5"></line></g><line x1="48" x2="84" y1="62" y2="62" stroke="currentColor" stroke-linecap="round" stroke-width="2" opacity=".4"></line></svg>

animation.css

.pulsar-patch-overlay {
  display: block;
  overflow: visible;
}
.pulsar-patch-overlay .patch-overlay-flag {
  animation: patch-overlay-flag-anim 4500ms ease infinite;
}
.pulsar-patch-overlay .patch-overlay-patch {
  animation: patch-overlay-patch-anim 4500ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
}

@keyframes patch-overlay-flag-anim {
  0%,
  20% {
    opacity: 1;
    transform: scale(1);
    transform-origin: 116px 48px;
  }
  35%,
  82% {
    opacity: 0;
    transform: scale(0);
    transform-origin: 116px 48px;
  }
  92%,
  100% {
    opacity: 1;
    transform: scale(1);
    transform-origin: 116px 48px;
  }
}

@keyframes patch-overlay-patch-anim {
  0%,
  20% {
    transform: translateY(-16px);
    opacity: 0;
  }
  35% {
    transform: translateY(0);
    opacity: 1;
  }
  80% {
    transform: translateY(0);
    opacity: 1;
  }
  92%,
  100% {
    transform: translateY(-16px);
    opacity: 0;
  }
}

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

From this family15 in Patch

See the family