Door Swing
CSSAn architectural door leaf rotates 90 degrees with a dotted egress swing radius arc demonstrating clearance.
- Tier
- CSS
- Dependencies
- None
- Duration
- 4 s, loops
- Categories
- Icons and micro-interactions
- Use cases
- Navigation and wayfinding, Security and trust
- Industries
- Real estate and property, Construction and built environment
- Style
- Technical · light stroke
- Set
- floorplate
- Tags
- circlerotateminimalloop
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-floorplate-door-swing" data-pulsar="floorplate-door-swing" viewBox="0 0 160 96"><line x1="48" x2="48" y1="20" y2="48" stroke="currentColor" stroke-linecap="round" stroke-width="2" class="wall-top"></line><line x1="48" x2="48" y1="76" y2="84" stroke="currentColor" stroke-linecap="round" stroke-width="2" class="wall-bot"></line><path stroke="var(--pulsar-accent, currentColor)" stroke-dasharray="2 2" d="M48 76a28 28 0 0 0 28-28" class="swing-arc" opacity=".6"></path><line x1="48" x2="48" y1="48" y2="76" stroke="var(--pulsar-accent, currentColor)" stroke-linecap="round" stroke-width="1.6" class="door-leaf"></line><circle cx="48" cy="48" r="2.5" fill="currentColor" class="hinge"></circle></svg>
animation.css
.pulsar-floorplate-door-swing {
display: block;
width: 100%;
height: 100%;
}
.pulsar-floorplate-door-swing .door-leaf {
animation: floorplate-door-swing-rot 4s ease-in-out infinite;
transform-origin: 48px 48px;
}
.pulsar-floorplate-door-swing .swing-arc {
animation: floorplate-door-swing-fade 4s ease-in-out infinite;
}
@keyframes floorplate-door-swing-rot {
0%,
100% {
transform: rotate(0deg);
}
50% {
transform: rotate(90deg);
}
}
@keyframes floorplate-door-swing-fade {
0%,
100% {
opacity: 0.2;
}
50% {
opacity: 0.9;
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-floorplate-door-swing .door-leaf,
.pulsar-floorplate-door-swing .swing-arc {
animation: none;
transform: none;
opacity: 1;
}
}