Throughput
CSSA stepped tally bar chart increments unit counts discretely across three consecutive production intervals.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Data and progress
- Use cases
- Determinate progress, Dashboards and reporting
- Industries
- Manufacturing and industrial, Cross-industry
- Style
- Data mark · light stroke
- Set
- takt
- Tags
- chartbarscounterminimalline
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-takt-throughput" data-pulsar="takt-throughput" viewBox="0 0 160 96"><line x1="32" x2="128" y1="74" y2="74" stroke-width="1.5" opacity=".4"></line><g class="takt-thru-col col-1"><rect width="20" height="30" x="42" y="44" stroke-width="1.5" opacity=".5" rx="2"></rect><line x1="42" x2="62" y1="64" y2="64" opacity=".4"></line><line x1="42" x2="62" y1="54" y2="54" opacity=".4"></line></g><g class="takt-thru-col col-2"><rect width="20" height="42" x="70" y="32" fill="currentColor" fill-opacity=".08" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.8" rx="2"></rect><line x1="70" x2="90" y1="60" y2="60" stroke="var(--pulsar-accent, currentColor)" opacity=".5"></line><line x1="70" x2="90" y1="46" y2="46" stroke="var(--pulsar-accent, currentColor)" opacity=".5"></line><circle cx="80" cy="26" r="2.5" fill="var(--pulsar-accent, currentColor)" stroke-width="0"></circle></g><g class="takt-thru-col col-3"><rect width="20" height="52" x="98" y="22" stroke-width="1.5" opacity=".5" rx="2"></rect><line x1="98" x2="118" y1="58" y2="58" opacity=".4"></line><line x1="98" x2="118" y1="42" y2="42" opacity=".4"></line></g></svg>
animation.css
.pulsar-takt-throughput {
display: block;
overflow: visible;
}
.pulsar-takt-throughput .col-1 {
transform-origin: 52px 74px;
animation: takt-throughput-step 4000ms cubic-bezier(0.2, 1.2, 0.4, 1) infinite;
}
.pulsar-takt-throughput .col-2 {
transform-origin: 80px 74px;
animation: takt-throughput-step 4000ms cubic-bezier(0.2, 1.2, 0.4, 1) -1333ms infinite;
}
.pulsar-takt-throughput .col-3 {
transform-origin: 108px 74px;
animation: takt-throughput-step 4000ms cubic-bezier(0.2, 1.2, 0.4, 1) -2666ms infinite;
}
@keyframes takt-throughput-step {
0%,
15% {
transform: scaleY(0.4);
opacity: 0.4;
}
35%,
80% {
transform: scaleY(1);
opacity: 1;
}
92%,
100% {
transform: scaleY(0.4);
opacity: 0.4;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-takt-throughput .col-1,
.pulsar-takt-throughput .col-2,
.pulsar-takt-throughput .col-3 {
animation: none;
transform: none;
opacity: 1;
}
}