Đến nội dung chính

Nút chuyển phân đoạn

Dùng để chọn cách nhìn một danh sách — từ hai đến bốn lựa chọn, và màn hình đổi ngay khi chọn.

Nút và hành động

Xem trước trực tiếp

Nguồn

<fieldset class="dc-seg">
  <legend class="dc-sr">작업 상태로 보기</legend>
  <div class="dc-seg__track">
    <input class="dc-seg__in" type="radio" name="dc-seg-state" id="dc-seg-all" checked />
    <label class="dc-seg__lb" for="dc-seg-all">전체</label>
    <input class="dc-seg__in" type="radio" name="dc-seg-state" id="dc-seg-run" />
    <label class="dc-seg__lb" for="dc-seg-run">진행 중</label>
    <input class="dc-seg__in" type="radio" name="dc-seg-state" id="dc-seg-done" />
    <label class="dc-seg__lb" for="dc-seg-done">완료</label>
  </div>
</fieldset>
.dc-seg {
  margin: 0;
  padding: var(--dc-4);
  border: 0;
  background: var(--dc-bg);
  font-family: var(--dc-font);
}
.dc-seg__track {
  display: flex;
  gap: 2px;
  padding: 3px;
  border-radius: var(--dc-r-md);
  background: var(--dc-sunken);
}
.dc-seg__in {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.dc-seg__lb {
  display: inline-flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: var(--dc-1);
  min-height: 44px;
  padding: 0 var(--dc-3);
  border-radius: calc(var(--dc-r-md) - 3px);
  color: var(--dc-text-sub);
  font-family: var(--dc-font);
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--dc-fast), color var(--dc-fast);
}
.dc-seg__in:checked + .dc-seg__lb {
  background: var(--dc-surface);
  color: var(--dc-text);
  box-shadow: var(--dc-sh-1);
}
.dc-seg__in:focus-visible + .dc-seg__lb {
  outline: 2px solid var(--dc-brand);
  outline-offset: 2px;
}
.dc-seg__ico {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

Cách dùng

  • Hai đến bốn lựa chọn; nhiều hơn năm thì chuyển sang danh sách chọn hoặc tab
  • Giữ nhãn một đến hai từ và độ dài gần nhau
  • Kết quả phải đổi ngay khi chọn; nếu cần nút Áp dụng thì đây không phải thành phần phù hợp

Điểm cần lưu ý

  • Hãy dựng bằng input radio để phím mũi tên và trình đọc coi đó là một nhóm
  • Mỗi phân đoạn cao tối thiểu 44px; ô hẹp rất dễ nhấn lệch

Tiếp theo