scroll-padding

scroll-padding

scroll-padding 유틸리티는 스냅 컨테이너 안에서 요소의 스크롤 오프셋(간격)을 설정해 줘요. 스냅될 때 요소가 컨테이너 가장자리에 딱 붙지 않게 하고 싶을 때 유용하답니다.

출처: 문서

본문

클래스 스타일 (ClassStyles)

전체 (All sides)

클래스 CSS
scroll-p-<number> scroll-padding: calc(var(--spacing) * <number>);
scroll-p-px scroll-padding: 1px;
scroll-p-(<custom-property>) scroll-padding: var(<custom-property>);
scroll-p-[<value>] scroll-padding: <value>;

좌우 (Inline)

클래스 CSS
scroll-px-<number> scroll-padding-inline: calc(var(--spacing) * <number>);
scroll-px-px scroll-padding-inline: 1px;
scroll-px-(<custom-property>) scroll-padding-inline: var(<custom-property>);
scroll-px-[<value>] scroll-padding-inline: <value>;

상하 (Block)

클래스 CSS
scroll-py-<number> scroll-padding-block: calc(var(--spacing) * <number>);
scroll-py-px scroll-padding-block: 1px;
scroll-py-(<custom-property>) scroll-padding-block: var(<custom-property>);
scroll-py-[<value>] scroll-padding-block: <value>;

inline 시작 (Inline start)

클래스 CSS
scroll-ps-<number> scroll-padding-inline-start: calc(var(--spacing) * <number>);
scroll-ps-px scroll-padding-inline-start: 1px;
scroll-ps-(<custom-property>) scroll-padding-inline-start: var(<custom-property>);
scroll-ps-[<value>] scroll-padding-inline-start: <value>;

inline 끝 (Inline end)

클래스 CSS
scroll-pe-<number> scroll-padding-inline-end: calc(var(--spacing) * <number>);
scroll-pe-px scroll-padding-inline-end: 1px;
scroll-pe-(<custom-property>) scroll-padding-inline-end: var(<custom-property>);
scroll-pe-[<value>] scroll-padding-inline-end: <value>;

block 시작 (Block start)

클래스 CSS
scroll-pbs-<number> scroll-padding-block-start: calc(var(--spacing) * <number>);
scroll-pbs-px scroll-padding-block-start: 1px;
scroll-pbs-(<custom-property>) scroll-padding-block-start: var(<custom-property>);
scroll-pbs-[<value>] scroll-padding-block-start: <value>;

block 끝 (Block end)

클래스 CSS
scroll-pbe-<number> scroll-padding-block-end: calc(var(--spacing) * <number>);
scroll-pbe-px scroll-padding-block-end: 1px;
scroll-pbe-(<custom-property>) scroll-padding-block-end: var(<custom-property>);
scroll-pbe-[<value>] scroll-padding-block-end: <value>;

위 (Top)

클래스 CSS
scroll-pt-<number> scroll-padding-top: calc(var(--spacing) * <number>);
scroll-pt-px scroll-padding-top: 1px;
scroll-pt-(<custom-property>) scroll-padding-top: var(<custom-property>);
scroll-pt-[<value>] scroll-padding-top: <value>;

오른쪽 (Right)

클래스 CSS
scroll-pr-<number> scroll-padding-right: calc(var(--spacing) * <number>);
scroll-pr-px scroll-padding-right: 1px;
scroll-pr-(<custom-property>) scroll-padding-right: var(<custom-property>);
scroll-pr-[<value>] scroll-padding-right: <value>;

아래 (Bottom)

클래스 CSS
scroll-pb-<number> scroll-padding-bottom: calc(var(--spacing) * <number>);
scroll-pb-px scroll-padding-bottom: 1px;
scroll-pb-(<custom-property>) scroll-padding-bottom: var(<custom-property>);
scroll-pb-[<value>] scroll-padding-bottom: <value>;

왼쪽 (Left)

클래스 CSS
scroll-pl-<number> scroll-padding-left: calc(var(--spacing) * <number>);
scroll-pl-px scroll-padding-left: 1px;
scroll-pl-(<custom-property>) scroll-padding-left: var(<custom-property>);
scroll-pl-[<value>] scroll-padding-left: <value>;

예시 (Examples)

기본 예시 (Basic example)

scroll-pt-<number>, scroll-pr-<number>, scroll-pb-<number>, scroll-pl-<number> 유틸리티(예: scroll-pl-4, scroll-pt-6)를 사용하면 스냅 컨테이너 안에서 요소의 스크롤 오프셋을 설정할 수 있어요:

이미지 그리드에서 스크롤해 기대했던 동작을 확인해 보세요.

<div class="snap-x scroll-pl-6 ...">
  <div class="snap-start ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-05.jpg" />
  </div>
</div>

논리 속성 사용하기 (Using logical properties)

scroll-ps-<number>와 scroll-pe-<number> 유틸리티를 사용하면 텍스트 방향에 따라 왼쪽 또는 오른쪽에 매핑되는 scroll-padding-inline-start와 scroll-padding-inline-end 논리 속성을 설정할 수 있어요:

<div dir="ltr">
  <div class="snap-x scroll-ps-6 ...">
    <!-- ... -->
  </div>
</div>

<div dir="rtl">
  <div class="snap-x scroll-ps-6 ...">
    <!-- ... -->
  </div>
</div>

scroll-pbs-<number>와 scroll-pbe-<number> 유틸리티를 사용하면 쓰기 모드(writing mode)에 따라 위쪽 또는 아래쪽에 매핑되는 scroll-padding-block-start와 scroll-padding-block-end 논리 속성을 설정할 수 있어요:

<div class="snap-y scroll-pbs-6 ...">
  <!-- ... -->
</div>

커스텀 값 사용하기 (Using a custom value)

scroll-pl-[<value>]나 scroll-pe-[<value>] 같은 유틸리티를 사용하면 완전히 커스텀한 값으로 스크롤 패딩을 설정할 수 있어요:

<div class="scroll-pl-[24rem] ...">
  <!-- ... -->
</div>

CSS 변수의 경우 scroll-pl-(<custom-property>) 문법을 사용할 수도 있어요:

<div class="scroll-pl-(--my-scroll-padding) ...">
  <!-- ... -->
</div>

이것은 scroll-pl-[var(<custom-property>)]의 줄임말로, var() 함수를 자동으로 추가해 주는 문법이에요.

반응형 디자인 (Responsive design)

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

<div class="scroll-p-8 md:scroll-p-0 ...">
  <!-- ... -->
</div>

테마 커스터마이징 (Customizing your theme)

scroll-p-<number>, scroll-px-<number>, scroll-py-<number>, scroll-ps-<number>, scroll-pe-<number>, scroll-pbs-<number>, scroll-pbe-<number>, scroll-pt-<number>, scroll-pr-<number>, scroll-pb-<number>, scroll-pl-<number> 유틸리티는 --spacing 테마 변수에 의해 구동되며, 우리만의 테마에서 커스터마이즈할 수 있어요:

@theme {
  --spacing: 1px;
}

spacing scale 커스터마이징에 대해 더 알아보려면 theme variable 문서를 참고하세요.

더 알아보기 (Learn more)

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