Digital Counter
CSSA digital display box increments decimal digits rapidly in a continuous loop to show active telemetry streaming.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Loaders and spinners
- Use cases
- Loading and waiting, Determinate progress
- Industries
- SaaS and software, Energy and utilities
- Style
- Data mark · light stroke
- Set
- meter
- Tags
- geometriccounteruiminimal
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" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="pulsar pulsar-meter-digital-counter" data-pulsar="meter-digital-counter" viewBox="0 0 160 96"><rect width="112" height="44" x="24" y="26" stroke-width="1.5" opacity=".4" rx="4"></rect><line x1="24" x2="136" y1="36" y2="36" stroke-dasharray="2 4" opacity=".2"></line><text x="122" y="54" fill="currentColor" stroke="none" font-family="monospace" font-size="9" opacity=".5">kW</text><path stroke-width="1.5" d="M38 42h8v8h-8v8h8" opacity=".7"></path><path stroke-width="1.5" d="M54 42v8h8m0-8v16" opacity=".7"></path><circle cx="68" cy="57" r="1.5" fill="var(--pulsar-accent, currentColor)"></circle><g stroke="var(--pulsar-accent, currentColor)" class="meter-counter-rolling"><path stroke-width="2" d="M78 42h8v16h-8Z"></path><line x1="78" x2="86" y1="50" y2="50" stroke-width="1.5"></line></g><g stroke="var(--pulsar-accent, currentColor)" class="meter-counter-ticker"><path stroke-width="2" d="M98 42h8v16m-8-8h8"></path></g></svg>
animation.css
.pulsar-meter-digital-counter {
display: block;
overflow: visible;
}
.pulsar-meter-digital-counter .meter-counter-rolling {
animation: meter-digital-counter-roll-anim 4000ms steps(4) infinite;
}
.pulsar-meter-digital-counter .meter-counter-ticker {
animation: meter-digital-counter-tick-anim 4000ms steps(8) infinite;
}
@keyframes meter-digital-counter-roll-anim {
0% {
transform: translateY(0);
opacity: 0.9;
}
50% {
transform: translateY(-2px);
opacity: 0.7;
}
100% {
transform: translateY(0);
opacity: 0.9;
}
}
@keyframes meter-digital-counter-tick-anim {
0% {
transform: translateY(0);
opacity: 1;
}
50% {
transform: translateY(-3px);
opacity: 0.6;
}
100% {
transform: translateY(0);
opacity: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-meter-digital-counter .meter-counter-rolling,
.pulsar-meter-digital-counter .meter-counter-ticker {
animation: none;
transform: none;
opacity: 0.8;
}
}