Can You Build A Swipe UI With Only CSS?
- 순수 CSS만으로 JavaScript의 성능 저하 없이 네이티브처럼 부드러운 스와이프 UI를 구현하는 혁신적인 방법을 제시합니다. 📱
- 핵심은
display: grid, grid-template-columns: auto 1fr auto, overflow-x: auto, scroll-snap-type: x mandatory를 활용한 그리드 레이아웃입니다. 📐
- 스와이프 후 중앙으로 돌아오는 동작은 두 번째 자식 요소에
scroll-snap-align: center를 적용하여 구현합니다. 🎯
- 스와이프 후 열린 상태를 유지하는 동작은 첫 번째, 마지막, 중간 자식 요소에 각각
start, end, center를 적용하여 가능합니다. ↔️
- 페이지 로드 시 초기 스와이프 위치를 설정하는 CSS 해킹으로, 0.001초의
keyframes 애니메이션을 통해 scroll-snap-align: start를 즉시 적용합니다. ⚡
- 이 기술은 첫 번째, 마지막, 중간 자식 요소에 버튼, 이미지, 텍스트 등 어떤 종류의 HTML 콘텐츠도 유연하게 포함할 수 있습니다. 🧩
container-type: inline-size와 100cqw를 사용하여 뷰포트 너비가 아닌 컨테이너 너비에 맞춰 반응형으로 작동하도록 합니다. 📏
- 모바일 UI의 깔끔함을 위해
scrollbar-width: none을 적용하여 불필요한 스크롤바를 숨길 수 있습니다. 🚫
scrollend와 같은 JavaScript 이벤트를 활용하면 스와이프 동작에 따른 추가적인 기능(예: 좋아요, 삭제)을 쉽게 구현할 수 있습니다. 💡
- 이 CSS 기반 스와이프 컴포넌트는 어떤 프론트엔드 프레임워크에도 쉽게 통합될 수 있어 높은 유연성을 제공합니다. 🏗️
데브허브 | DEVHUB | Can You Build A Swipe UI With Only CSS?