Boundary
CSSA ring of square blocks rotates around a central orb, with a solid circular path drawing itself around the orbit.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4.2 s, loops
- Categories
- Data and progress
- Use cases
- Determinate progress, Security and trust
- Industries
- Security and identity, Cross-industry
- Style
- Geometric solid · light stroke
- Set
- enclave
- Tags
- linecirclegeometricminimalstroke
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" aria-hidden="true" class="pulsar pulsar-enclave-boundary" data-pulsar="enclave-boundary" viewBox="0 0 160 96"><circle cx="80" cy="48" r="4" fill="var(--pulsar-accent, currentColor)"></circle><circle cx="70" cy="42" r="2.5" fill="currentColor" opacity=".6"></circle><circle cx="90" cy="42" r="2.5" fill="currentColor" opacity=".6"></circle><circle cx="80" cy="56" r="2.5" fill="currentColor" opacity=".6"></circle><circle cx="80" cy="48" r="24" stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="150" stroke-width="2" class="enclave-boundary-ring"></circle><circle cx="80" cy="24" r="2.5" fill="var(--pulsar-accent, currentColor)" class="enclave-boundary-node-1"></circle><circle cx="104" cy="48" r="2.5" fill="var(--pulsar-accent, currentColor)" class="enclave-boundary-node-2"></circle><circle cx="80" cy="72" r="2.5" fill="var(--pulsar-accent, currentColor)" class="enclave-boundary-node-3"></circle><circle cx="56" cy="48" r="2.5" fill="var(--pulsar-accent, currentColor)" class="enclave-boundary-node-4"></circle></svg>
animation.css
.pulsar-enclave-boundary {
display: block;
overflow: visible;
}
.pulsar-enclave-boundary .enclave-boundary-ring {
stroke-dashoffset: 150;
animation: enclave-boundary-ring-anim 4200ms cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.pulsar-enclave-boundary .enclave-boundary-node-1,
.pulsar-enclave-boundary .enclave-boundary-node-2,
.pulsar-enclave-boundary .enclave-boundary-node-3,
.pulsar-enclave-boundary .enclave-boundary-node-4 {
animation: enclave-boundary-nodes-anim 4200ms ease infinite;
}
@keyframes enclave-boundary-ring-anim {
0%,
15% {
stroke-dashoffset: 150;
opacity: 0;
}
25% {
opacity: 1;
}
55%,
80% {
stroke-dashoffset: 0;
opacity: 1;
}
92%,
100% {
stroke-dashoffset: -150;
opacity: 0;
}
}
@keyframes enclave-boundary-nodes-anim {
0%,
25% {
opacity: 0.3;
transform: scale(0.8);
transform-origin: 80px 48px;
}
45%,
80% {
opacity: 1;
transform: scale(1.2);
transform-origin: 80px 48px;
}
92%,
100% {
opacity: 0.3;
transform: scale(0.8);
transform-origin: 80px 48px;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-enclave-boundary * {
animation: none !important;
}
}