Push transition

푸시 전환

The incoming screen pushes the outgoing one off in the same direction, so both move together like one strip.

Also known as: PushSlide push
···
html
<div class="stage"><div class="strip"><div class="s a" style="left:0">A</div><div class="s b" style="left:100%">B</div></div></div>
css
.stage{position:absolute;inset:0;overflow:hidden;background:var(--bg)}
.s{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font:800 clamp(16px,6vmin,30px)/1 sans-serif;color:#fff;letter-spacing:.04em}
.a{background:linear-gradient(135deg,#3b3b98,#1e1e4a)}
.b{background:linear-gradient(135deg,#f25c8a,#c9184a)}
.strip{position:absolute;inset:0;animation:push 3.6s cubic-bezier(.6,0,.2,1) infinite}
.strip .s{inset:auto;top:0;bottom:0;width:100%}
@keyframes push{0%,20%{transform:translateX(0)}50%,70%{transform:translateX(-100%)}100%{transform:translateX(0)}}

A push moves **both screens at the same speed in the same direction**. The incoming screen's leading edge is glued to the outgoing screen's trailing edge, so it feels like sliding along one long horizontal strip. The iOS navigation stack (list → detail) is the classic case, and Keynote/PowerPoint also call a slide transition "Push."

Direction carries meaning: entering from the right means "forward / deeper," entering from the left means "back." Keep it consistent. Do not confuse it with **cover (→ cover-transition)**, where the old screen stays put, or **reveal (→ reveal-transition)**, where the new screen stays put.

In CSS, give both screens the same `translateX`. If one moves slower than the other it stops being a push and becomes a parallax effect.

When to use

Use it for hierarchical moves (list → detail, next step). For same-level tab switches a fade is less disorienting than a push.

Open as page ↗

Suggest an entry

Tell us about a term, effect or component that’s missing. We read every suggestion.