본문 바로가기
명함 만들기 캐릭터 모음 16가지 디자인 · PNG / SVG / PDF

가로 스크롤 줄

세로로 쌓으면 화면이 너무 길어지는 묶음을, 한 줄로 밀어 보게 만드는 조각.

레이아웃

실제 미리보기

출처

<section class="dc-hrow" aria-labelledby="dc-hrow-h">
  <div class="dc-hrow__head">
    <h2 class="dc-hrow__title" id="dc-hrow-h">오늘 새로 올라온 일자리</h2>
    <a class="dc-hrow__more" href="#">전체 보기</a>
  </div>
  <ul class="dc-hrow__track">
    <li class="dc-hrow__cell">
      <a class="dc-hrow__card" href="#">
        <span class="dc-hrow__thumb" aria-hidden="true"></span>
        <span class="dc-hrow__name">물류 상하차</span>
        <span class="dc-hrow__meta">인천 · 일당 140,000원</span>
      </a>
    </li>
    <li class="dc-hrow__cell">
      <a class="dc-hrow__card" href="#">
        <span class="dc-hrow__thumb" aria-hidden="true"></span>
        <span class="dc-hrow__name">용접 보조</span>
        <span class="dc-hrow__meta">김해 · 일당 160,000원</span>
      </a>
    </li>
    <li class="dc-hrow__cell">
      <a class="dc-hrow__card" href="#">
        <span class="dc-hrow__thumb" aria-hidden="true"></span>
        <span class="dc-hrow__name">식품 포장</span>
        <span class="dc-hrow__meta">평택 · 일당 130,000원</span>
      </a>
    </li>
    <li class="dc-hrow__cell">
      <a class="dc-hrow__card" href="#">
        <span class="dc-hrow__thumb" aria-hidden="true"></span>
        <span class="dc-hrow__name">객실 정리</span>
        <span class="dc-hrow__meta">제주 · 월급 2,450,000원</span>
      </a>
    </li>
    <li class="dc-hrow__cell">
      <a class="dc-hrow__card" href="#">
        <span class="dc-hrow__thumb" aria-hidden="true"></span>
        <span class="dc-hrow__name">수확 일손</span>
        <span class="dc-hrow__meta">나주 · 일당 120,000원</span>
      </a>
    </li>
  </ul>
</section>
.dc-hrow { font-family: var(--dc-font); }
.dc-hrow__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--dc-3);
  padding: 0 var(--dc-4) var(--dc-2);
}
.dc-hrow__title {
  font-size: 16px; font-weight: 800; letter-spacing: -.02em;
  color: var(--dc-text);
}
.dc-hrow__more {
  flex: 0 0 auto;
  display: inline-flex; align-items: center;
  min-height: 44px; padding-left: var(--dc-2);
  font-size: 13px; font-weight: 700;
  color: var(--dc-brand-text); text-decoration: none;
}
.dc-hrow__track {
  display: flex; gap: var(--dc-3);
  margin: 0; padding: var(--dc-1) var(--dc-4) var(--dc-4);
  overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-padding-left: var(--dc-4);
  -webkit-overflow-scrolling: touch;
}
.dc-hrow__cell { flex: 0 0 auto; scroll-snap-align: start; }
.dc-hrow__card {
  display: flex; flex-direction: column; gap: var(--dc-1);
  width: 152px;
  color: var(--dc-text); text-decoration: none;
}
.dc-hrow__thumb {
  display: block; width: 100%; aspect-ratio: 4 / 3;
  margin-bottom: var(--dc-1);
  border: 1px solid var(--dc-line); border-radius: var(--dc-r-md);
  background: var(--dc-sunken);
}
.dc-hrow__name {
  font-size: 14px; font-weight: 700; line-height: 1.35;
}
.dc-hrow__meta { font-size: 12px; color: var(--dc-text-sub); }
.dc-hrow__card--peek { width: 272px; }
.dc-hrow__card--peek .dc-hrow__thumb { aspect-ratio: 16 / 9; }
.dc-hrow__card--peek .dc-hrow__name { font-size: 16px; }
.dc-hrow__track--chips { padding-top: var(--dc-2); padding-bottom: var(--dc-2); }
.dc-hrow__chip {
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 0 var(--dc-4);
  border: 1px solid var(--dc-line-field); border-radius: var(--dc-r-full);
  background: var(--dc-surface); color: var(--dc-text-sub);
  font-family: inherit; font-size: 14px; font-weight: 700;
  white-space: nowrap;
}
.dc-hrow__chip[aria-pressed="true"] {
  border-color: var(--dc-brand);
  background: var(--dc-brand-soft);
  color: var(--dc-brand-text);
}

이렇게 씁니다

  • 오른쪽 끝에 다음 칸이 살짝 걸치게 둔다 — 더 있다는 것을 알려 주는 유일한 신호다
  • 한 줄에는 열 칸 안쪽으로 담고, 그보다 많으면 '전체 보기' 화면으로 보낸다
  • 칸 폭은 화면 폭에 맞추지 말고 고정폭으로. 스냅은 mandatory 가 아니라 proximity 로 둔다

주의할 점

  • 줄 양 끝 여백은 칸의 margin 이 아니라 줄의 padding 으로 준다 — 마지막 칸이 화면 끝에 붙지 않는다
  • 가로로만 움직이는 줄도 키보드로 닿아야 한다. 칸을 링크나 버튼으로 만든다
  • 한 줄 안에서 세로 스크롤까지 생기게 하지 않는다 — 손가락이 방향을 잃는다

다음에 볼 것