Rail Shunting
CSSA main track datum splits into a diverging switch turnout line, routing an indicator block smoothly onto the upper spur.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Data and progress
- Use cases
- Navigation and wayfinding, Workflow and approvals
- Industries
- Logistics and supply chain
- Style
- Technical · light stroke
- Set
- yard
- Tags
- linegeometricminimal
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-yard-shunting" data-pulsar="yard-shunting" viewBox="0 0 160 96"><line x1="24" x2="136" y1="56" y2="56" stroke-width="1.5" opacity=".35"></line><path stroke-width="1.5" d="M64 56c16 0 30-20 56-20h16" opacity=".35"></path><line x1="62" x2="68" y1="53" y2="48" stroke="var(--pulsar-accent, currentColor)" stroke-width="2" class="switch-point"></line><rect width="14" height="14" x="36" y="49" fill="var(--pulsar-accent, currentColor)" fill-opacity=".2" stroke="var(--pulsar-accent, currentColor)" stroke-width="1.5" class="shunting-car" rx="2"></rect></svg>
animation.css
.pulsar-yard-shunting {
display: block;
overflow: visible;
}
.pulsar-yard-shunting .shunting-car {
animation: yard-shunting-car 4000ms ease-in-out infinite;
}
.pulsar-yard-shunting .switch-point {
animation: yard-shunting-switch 4000ms ease-in-out infinite;
}
@keyframes yard-shunting-car {
0% {
transform: translate(0, 0);
opacity: 0.6;
}
25% {
transform: translate(24px, 0);
opacity: 1;
}
60%,
80% {
transform: translate(72px, -20px);
opacity: 1;
}
95%,
100% {
transform: translate(0, 0);
opacity: 0.6;
}
}
@keyframes yard-shunting-switch {
0%,
20% {
opacity: 0.4;
transform: rotate(0);
}
35%,
75% {
opacity: 1;
transform: rotate(10deg);
}
90%,
100% {
opacity: 0.4;
transform: rotate(0);
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-yard-shunting .shunting-car,
.pulsar-yard-shunting .switch-point {
animation: none;
transform: none;
opacity: 1;
stroke-dashoffset: 0;
}
}