Min/Max 듀얼-레인지 슬라이더 for DaisyUI (테마 인식)

발행: (2026년 2월 1일 오전 04:01 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Problem

DaisyUI는 range 컴포넌트를 제공하지만 듀얼‑핸들(최소/최대) 슬라이더를 지원하지 않습니다.
이 제한은 다음과 같은 경우에 눈에 띕니다:

  • 가격 필터
  • 파싯 검색 인터페이스
  • 대시보드
  • 관리자 도구

진정한 최소/최대 슬라이더는 JavaScript가 필요합니다:

  • 다중 썸(thumb)
  • 값 제약
  • 키보드 및 터치 인터랙션
  • 접근성

Typical (Repetitive) Approach

  1. 슬라이더 라이브러리(보통 noUiSlider)를 도입한다.
  2. 생성된 DOM을 검사한다.
  3. DaisyUI와 일치하도록 스타일을 오버라이드한다.
  4. 설정을 다음 프로젝트에 복사한다(대부분 약간의 변형이 있음).

이 패턴은 동작하지만 반복적이며 프로젝트 간 재사용이 어렵습니다.

Solution: daisy-dual-range

DaisyUI 스타일링과 noUiSlider를 결합한 작은 통합 레이어입니다.

  • 동작: noUiSlider에 의해 구동됩니다.
  • 스타일링: DaisyUI CSS 변수(primary, accent, error 등)를 사용합니다.
  • 범위: 스타일이 로컬에 스코프되어 전역 오버라이드가 없습니다.
  • 특징:
    • 기본적으로 듀얼‑핸들 슬라이더 제공.
    • DaisyUI 토큰을 통해 테마 인식.
    • 기본 DaisyUI range 입력과 시각적 일치.
    • 테마가 변경될 때 자동으로 적용.

직접 컴포넌트를 연결할 수도 있지만, 패키지화된 솔루션을 사용하면 매번 통합을 새로 만들 필요가 없습니다.

Why This Matters

  • DaisyUI 프로젝트에 적합한 슬라이더 라이브러리를 선택하기가 쉽지 않습니다.
  • noUiSlider와 DaisyUI를 통합하려면 복잡한 CSS 작업이 필요합니다.
  • 동일한 설정을 프로젝트마다 다시 구현하면 중복 작업이 발생합니다.

패턴을 한 번만 패키징하면 중복을 줄이고 일관된 테마‑인식 듀얼‑레인지 슬라이더를 제공할 수 있습니다.

Getting Started

<!-- Add your HTML markup for the range input here -->
// Initialize daisy-dual-range (pseudo‑code)
import { initDualRange } from 'daisy-dual-range';

initDualRange('#price-range', {
  min: 0,
  max: 1000,
  start: [100, 900],
});

(Import 경로와 옵션은 라이브러리 문서에 제공된 대로 교체하세요.)

Conclusion

DaisyUI를 사용하면서 최소/최대 슬라이더가 필요할 때, daisy-dual-range 패키지는 간결하고 재사용 가능하며 테마‑인식 솔루션을 제공합니다.

Back to Blog

관련 글

더 보기 »

Claude Code Custom Agent 설계 여정: Agent 중심에서 Task 중심으로

들어가며 Design Doc 작성을 자동화하고 싶었다. 디자인 시안을 확인하고, 기획서를 읽고, 코드베이스를 파악해서 초안을 뽑아주는 것이 /design-doc Command의 목표였다. Command는 금방 만들었지만, 그 다음 단계인 Custom Agent 설계가 문제였다. 두 번...