Lock
CSSA stylized padlock shackle slides down to meet a square body outline as a horizontal text line below them sweeps a pulse of light.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Loaders and spinners
- Use cases
- Loading and waiting, Security and trust
- Industries
- Legal, Cross-industry
- Style
- Minimal line · light stroke
- Set
- clause
- Tags
- minimallinestrokeloop
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-clause-lock" data-pulsar="clause-lock" viewBox="0 0 160 96"><g class="lock-assembly" transform="translate(80 42)"><path stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-width="2" d="M-10-6v-9c0-5.5 4.5-10 10-10s10 4.5 10 10v9" class="shackle"></path><rect width="32" height="24" x="-16" y="-6" stroke="currentColor" stroke-width="1.75" class="body" rx="3"></rect><circle cy="6" r="2.5" fill="var(--pulsar-accent, currentColor)"></circle></g><g stroke="currentColor" stroke-linecap="round" stroke-width="1.5" class="clause-context" opacity=".4"><line x1="44" x2="116" y1="72" y2="72" class="c-line"></line></g></svg>
animation.css
.pulsar-clause-lock {
display: block;
width: 100%;
height: 100%;
}
.pulsar-clause-lock .shackle {
animation: clause-lock-shackle 4s ease-in-out infinite;
}
.pulsar-clause-lock .lock-assembly .body {
animation: clause-lock-body 4s ease-in-out infinite;
}
.pulsar-clause-lock .clause-context .c-line {
animation: clause-lock-pulse 4s ease-in-out infinite;
}
@keyframes clause-lock-shackle {
0%,
100% {
transform: translateY(-6px);
}
35%,
75% {
transform: translateY(0);
}
}
@keyframes clause-lock-body {
0%,
100% {
opacity: 0.6;
}
35%,
75% {
opacity: 1;
}
}
@keyframes clause-lock-pulse {
0%,
100% {
opacity: 0.25;
}
40%,
70% {
opacity: 0.9;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-clause-lock .shackle,
.pulsar-clause-lock .lock-assembly .body,
.pulsar-clause-lock .clause-context .c-line {
animation: none;
transform: none;
opacity: 0.8;
}
}