Token
CSSA six-figure code rolls to a fresh value as its countdown ring completes.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Data and progress
- Use cases
- Security and trust
- Industries
- Finance and fintech, Security and identity
- Style
- Geometric solid · none stroke
- Set
- vault
- Tags
- loopgeometricuicounter
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" aria-labelledby="vault-token-title" class="pulsar pulsar-vault-token" data-pulsar="vault-token" role="img" viewBox="0 0 48 48"><title id="vault-token-title">Token</title><defs><mask id="vault-token-mask"><rect width="48" height="6" y="21" fill="#fff"></rect></mask></defs><circle id="vault-token-ring-bg" cx="24" cy="24" r="20" fill="none" stroke="currentColor" stroke-width="4" opacity=".1"></circle><circle id="vault-token-ring-fg" cx="24" cy="24" r="20" fill="none" stroke="currentColor" stroke-dasharray="125.66" stroke-width="4" transform="rotate(-90 24 24)"></circle><g id="vault-token-digits" mask="url(#vault-token-mask)"><g id="vault-token-digits-group"><rect width="4" height="6" x="7" y="21" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="13" y="21" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="19" y="21" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="25" y="21" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="31" y="21" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="37" y="21" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="7" y="29" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="13" y="29" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="19" y="29" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="25" y="29" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="31" y="29" fill="currentColor" rx="1"></rect><rect width="4" height="6" x="37" y="29" fill="currentColor" rx="1"></rect></g></g></svg>
animation.css
/* Accent: the progress ring, against its own track. */
.pulsar-vault-token #vault-token-ring-fg {
stroke: var(--pulsar-accent, currentColor);
}
.pulsar-vault-token #vault-token-ring-fg {
animation: vault-token-ring 4000ms linear infinite;
}
@keyframes vault-token-ring {
0% {
stroke-dashoffset: 0;
}
75% {
stroke-dashoffset: 125.66;
}
90% {
stroke-dashoffset: 125.66;
}
90.1% {
stroke-dashoffset: 0;
}
100% {
stroke-dashoffset: 0;
}
}
.pulsar-vault-token #vault-token-digits-group {
animation: vault-token-roll 4000ms ease-in-out infinite;
}
@keyframes vault-token-roll {
0% {
transform: translateY(0);
}
75% {
transform: translateY(0);
}
90% {
transform: translateY(-8px);
}
100% {
transform: translateY(-8px);
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-vault-token #vault-token-ring-fg {
animation: none;
stroke-dashoffset: 0;
}
.pulsar-vault-token #vault-token-digits-group {
animation: none;
transform: translateY(0);
}
}