Policy Sign-Off
CSSA blank compliance sheet slides in, a signature line draws across the bottom, and a circular seal expands on top of it.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4.2 s, loops
- Categories
- Transitions and reveals
- Use cases
- Security and trust, Compliance and audit
- Industries
- Legal, Security and identity
- Style
- Minimal line · light stroke
- Set
- consent
- Tags
- strokelineminimalringcircle
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-consent-policy-sign" data-pulsar="consent-policy-sign" viewBox="0 0 160 96"><g class="consent-policy-sheet"><rect width="56" height="64" x="52" y="16" stroke="currentColor" stroke-width="1.25" opacity=".4" rx="4"></rect><line x1="62" x2="88" y1="28" y2="28" stroke="currentColor" stroke-linecap="round" stroke-width="1.25" opacity=".6"></line><line x1="62" x2="98" y1="36" y2="36" stroke="currentColor" stroke-linecap="round" opacity=".4"></line><line x1="62" x2="94" y1="44" y2="44" stroke="currentColor" stroke-linecap="round" opacity=".4"></line><path stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-width="1.5" d="M62 58q6-4 12 0t12 0" class="consent-policy-sig"></path><circle cx="92" cy="58" r="6" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.25" class="consent-policy-seal"></circle></g></svg>
animation.css
.pulsar-consent-policy-sign {
display: block;
overflow: visible;
}
.pulsar-consent-policy-sign .consent-policy-sheet {
animation: consent-policy-sign-sheet-anim 4200ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
}
.pulsar-consent-policy-sign .consent-policy-sig {
animation: consent-policy-sign-sig-anim 4200ms cubic-bezier(0.2, 1, 0.3, 1) infinite;
stroke-dasharray: 30;
}
.pulsar-consent-policy-sign .consent-policy-seal {
animation: consent-policy-sign-seal-anim 4200ms ease infinite;
transform-origin: 92px 58px;
}
@keyframes consent-policy-sign-sheet-anim {
0%,
15% {
transform: translateY(12px);
opacity: 0.3;
}
35%,
80% {
transform: translateY(0);
opacity: 1;
}
92%,
100% {
transform: translateY(12px);
opacity: 0.3;
}
}
@keyframes consent-policy-sign-sig-anim {
0%,
30% {
stroke-dashoffset: 30;
opacity: 0;
}
50%,
80% {
stroke-dashoffset: 0;
opacity: 1;
}
90%,
100% {
stroke-dashoffset: 30;
opacity: 0;
}
}
@keyframes consent-policy-sign-seal-anim {
0%,
45% {
transform: scale(0);
opacity: 0;
}
60%,
80% {
transform: scale(1.1);
opacity: 1;
}
90%,
100% {
transform: scale(0);
opacity: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-consent-policy-sign .consent-policy-sheet,
.pulsar-consent-policy-sign .consent-policy-sig,
.pulsar-consent-policy-sign .consent-policy-seal {
animation: none;
}
}