scroll-snap-type

scroll-snap-type

scroll-snap-type 유틸리티는 스냅 컨테이너에 스크롤 스냅(scroll snap)을 활성화하고, 그 엄격함(strictness)을 결정해 줘요.

출처: 문서

본문

클래스 스타일 (ClassStyles)

클래스 CSS
snap-none scroll-snap-type: none;
snap-x scroll-snap-type: x var(--tw-scroll-snap-strictness);
snap-y scroll-snap-type: y var(--tw-scroll-snap-strictness);
snap-both scroll-snap-type: both var(--tw-scroll-snap-strictness);
snap-mandatory --tw-scroll-snap-strictness: mandatory;
snap-proximity --tw-scroll-snap-strictness: proximity;

예시 (Examples)

가로 스크롤 스냅 (Horizontal scroll snapping)

snap-x 유틸리티를 사용하면 요소 안에서 가로 스크롤 스냅을 활성화할 수 있어요:

<div class="snap-x ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>

스크롤 스냅이 동작하려면 자식 요소에도 스크롤 스냅 정렬(scroll snap alignment)을 설정해야 해요.

엄격한 스크롤 스냅 (Mandatory scroll snapping)

snap-mandatory 유틸리티를 사용하면 스냅 컨테이너가 항상 스냅 지점에서 멈추도록 강제할 수 있어요:

<div class="snap-x snap-mandatory ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>

가까운 스냅 지점에 멈추기 (Proximity scroll snapping)

snap-proximity 유틸리티를 사용하면 스냅 컨테이너가 가까이 있는 스냅 지점에서 멈추도록 만들 수 있어요:

<div class="snap-x snap-proximity ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
</div>

반응형 디자인 (Responsive design)

scroll-snap-type 유틸리티에 md: 같은 브레이크포인트 변형을 붙이면 중간 크기(md) 화면 이상에서만 그 유틸리티가 적용돼요:

<div class="snap-none md:snap-x ...">
  <!-- ... -->
</div>

더 알아보기 (Learn more)

변형(variant) 사용법에 대해 더 알고 싶다면 variants 문서를 살펴보세요.