푸시 전환

Push transition

새 화면이 들어오면서 기존 화면을 같은 방향으로 밀어내는 전환. 두 화면이 한 줄로 이어져 움직입니다.

다른 이름: 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)}}

푸시는 두 화면이 **같은 속도로 같은 방향**으로 움직이는 전환입니다. 새 화면의 앞 모서리가 기존 화면의 뒤 모서리에 붙어서 밀고 가므로, 사용자는 화면들이 가로로 길게 이어진 띠 위를 이동한다고 느낍니다. iOS 의 내비게이션 스택(목록 → 상세)이 대표 예시이고, 키노트·파워포인트의 슬라이드 전환 이름으로도 쓰입니다.

방향이 곧 의미입니다. 오른쪽에서 들어오면 "앞으로(더 깊이)", 왼쪽에서 들어오면 "뒤로"를 뜻하도록 일관되게 쓰세요. 이름이 비슷한 **커버(→ cover-transition)** 는 기존 화면이 안 움직이고, **리빌(→ reveal-transition)** 은 새 화면이 안 움직인다는 점이 다릅니다.

CSS 로는 두 화면에 같은 `translateX` 를 주면 됩니다. 한 화면이 다른 화면보다 느리면 푸시가 아니라 시차(패럴랙스) 효과가 됩니다.

언제 쓰나

위계가 있는 이동(목록 → 상세, 다음 단계)에 쓰세요. 같은 레벨의 탭 전환에는 푸시보다 페이드가 덜 어지럽습니다.

페이지로 열기 ↗

항목 추가 요청

아틀라스에 없는 용어·효과·컴포넌트를 알려 주세요. 하나씩 보고 추가합니다.