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

당겨서 새로고침

목록 맨 위에서 손으로 끌어내려 방금 바뀐 내용을 다시 받아 오는 자리.

피드백

실제 미리보기

출처

<div class="dc-pull" aria-busy="true">
  <div class="dc-pull__head">
    <span class="dc-pull__spin" aria-hidden="true"></span>
    <span class="dc-pull__hint" role="status">새로 불러오는 중…</span>
  </div>
  <ul class="dc-pull__list">
    <li class="dc-pull__item">
      <span class="dc-pull__title">3월 18일 출근</span>
      <span class="dc-pull__sub">A현장 · 8시간 · 140,000원</span>
    </li>
    <li class="dc-pull__item">
      <span class="dc-pull__title">3월 17일 출근</span>
      <span class="dc-pull__sub">A현장 · 8시간 · 140,000원</span>
    </li>
    <li class="dc-pull__item">
      <span class="dc-pull__title">3월 15일 출근</span>
      <span class="dc-pull__sub">B현장 · 6시간 · 105,000원</span>
    </li>
  </ul>
</div>
.dc-pull {
  overflow: hidden;
  background: var(--dc-bg);
  border: 1px solid var(--dc-line);
  border-radius: var(--dc-r-md);
  font-family: var(--dc-font);
}
.dc-pull__head {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: var(--dc-2);
  min-height: 76px; padding: var(--dc-3);
  background: var(--dc-sunken);
}
.dc-pull__spin {
  width: 26px; height: 26px;
  border: 3px solid var(--dc-line-bold);
  border-top-color: var(--dc-brand);
  border-radius: var(--dc-r-full);
  animation: dc-pull-spin .8s linear infinite;
}
@keyframes dc-pull-spin { to { transform: rotate(360deg); } }
.dc-pull__arrow {
  display: grid; place-items: center;
  width: 26px; height: 26px; border-radius: var(--dc-r-full);
  border: 1px solid var(--dc-line-bold);
  color: var(--dc-text-sub); font-size: 13px; line-height: 1;
}
.dc-pull__check {
  display: grid; place-items: center;
  width: 26px; height: 26px; border-radius: var(--dc-r-full);
  background: var(--dc-ok); color: var(--dc-text-on);
  font-size: 14px; font-weight: 700; line-height: 1;
}
.dc-pull__hint { font-size: 12px; color: var(--dc-text-sub); }
.dc-pull__list { background: var(--dc-surface); }
.dc-pull__item {
  display: flex; flex-direction: column; gap: 2px;
  min-height: 64px; padding: var(--dc-3) var(--dc-4);
  justify-content: center;
  border-top: 1px solid var(--dc-line);
}
.dc-pull__title { font-size: 15px; font-weight: 700; color: var(--dc-text); }
.dc-pull__sub { font-size: 13px; color: var(--dc-text-sub); }

이렇게 씁니다

  • 시간이 지나면 내용이 바뀌는 목록(출근 기록·알림·주문)에만 둔다
  • 당기는 중 · 불러오는 중 · 끝남 세 단계를 모두 다르게 보여 준다
  • 새로고침 버튼을 따로 두더라도 이 동작은 남겨 둔다 — 손이 먼저 움직인다

주의할 점

  • 손가락만 아는 기능이므로 상태 글자를 반드시 함께 쓴다
  • 불러오는 동안 aria-busy 와 role=status 로 진행 중임을 알린다

다음에 볼 것