React

Slider

지정된 범위 내에서 하나 또는 두 개의 값을 선택해 입력할 수 있는 컴포넌트입니다.

Installation

npx @seed-design/cli@latest add ui:slider

Props

Prop

Type

label?React.ReactNode
indicator?React.ReactNode
description?React.ReactNode
errorMessage?React.ReactNode
showRequiredIndicator?boolean | undefined
fieldRef?React.Ref<HTMLDivElement> | undefined
name?string | undefined
getAriaValuetext?((value: number) => string) | undefined
getAriaLabel?((thumbIndex: number) => string) | undefined
getAriaLabelledby?((thumbIndex: number) => string) | undefined
minnumber
maxnumber
values?number[] | undefined
onValuesChange?((value: number[]) => void) | undefined
onValuesCommit?((value: number[]) => void) | undefined

Examples

Basic

minmax를 설정하여 슬라이더의 값 범위를 지정합니다.

Steps

특정 간격으로만 값을 선택할 수 있도록 설정할 수 있습니다.

Allowed Values

allowedValues prop을 사용하여 슬라이더에서 선택할 수 있는 값을 제한할 수 있습니다. allowedValues가 지정된 경우 stepminStepsBetweenThumbs은 무시됩니다.

With Ticks

슬라이더 트랙에 눈금을 표시할 수 있습니다.

Thin

continuous하다고 느껴질 만큼 step이 충분히 작을 때 주로 사용합니다.

Thick

discrete하다고 느껴질 만큼 step이 충분히 클 때 또는 tick에만 thumb이 위치할 수 있을 때 주로 사용합니다.

With Markers

슬라이더 아래에 마커를 표시할 수 있습니다.

주의

스크린 리더는 marker를 읽지 않습니다. 특정 값을 선택했을 때 사용자에게 알려야 하는 경우 getAriaValuetext prop을 사용하여 현재 선택된 값을 설명하는 문구를 함께 제공하세요.

Controlled

valuesonValuesChange props를 사용하여 슬라이더의 상태를 외부에서 제어합니다.

Listening to Value Changes

  • onValuesChange
    • 슬라이더의 값이 변경될 때마다 호출됩니다. 이 prop을 사용하여 슬라이더의 값을 실시간으로 추적할 수 있습니다.
  • onValuesCommit
    • 슬라이더의 값 변경이 완료되었을 때 호출됩니다. 사용자가 슬라이더 조작을 마치고 손을 뗄 때 값을 확정하는 데 유용합니다.

Disabled

Hide Range

hideRange prop을 사용하여 기본 range 색상을 숨기고 커스텀 스타일을 적용할 수 있습니다.

Customizing Value Indicator

Value Indicator Label

getValueIndicatorLabel prop을 사용하여 thumb 위에 표시되는 툴팁의 내용을 커스텀할 수 있습니다.

주의

Value Indicator는 thumb을 누르고 있을 때만 표시되며 스크린 리더는 Value Indicator의 내용을 읽지 않습니다. Value Indicator에 의미가 있는 내용을 포함하는 경우, getAriaValuetext prop을 함께 사용하는 것을 권장합니다.

Value Indicator Trigger

valueIndicatorTrigger prop으로 value indicator가 표시되는 조건을 설정할 수 있습니다. 기본값은 "auto"로, 디바이스 환경에 따라 Value Indicator 표시 조건이 달라집니다.

  • 마우스 환경: thumb hover 시 Value Indicator가 표시됩니다. valueIndicatorTrigger="hover"로 설정하면 항상 이렇게 동작합니다.
  • 터치 환경: thumb active 시 Value Indicator가 표시됩니다. valueIndicatorTrigger="active"로 설정하면 항상 이렇게 동작합니다.

키보드를 통해 thumb을 포커스하면 valueIndicatorTrigger 값에 관계없이 항상 Value Indicator가 표시됩니다.

Hide Value Indicator

hideValueIndicator prop을 사용하여 thumb 위에 표시되는 Value Indicator 툴팁을 숨길 수 있습니다.

Range Slider

두 개의 thumb를 사용하여 범위를 선택할 수 있습니다.

Minimum Steps Between Thumbs

두 thumb 사이의 최소 간격을 설정할 수 있습니다.

Accessibility

getAriaValuetext

스크린 리더는 기본적으로 각 thumb이 가리키는 숫자 값(value)을 읽습니다. 숫자 값만으로 정보를 충분히 전달할 수 없는 경우 getAriaValuetext prop을 사용하여 인간 친화적인 설명을 제공하세요. 단위를 추가하거나, 값의 의미를 설명하는 문구를 포함할 수 있습니다.

getAriaLabel and getAriaLabelledby

getAriaLabel 또는 getAriaLabelledby prop을 사용하여 각 thumb에 대한 설명을 제공하세요. 스크린 리더 사용자가 각 thumb의 용도를 이해하는 데 도움을 줍니다.

특히, 범위를 선택하는 슬라이더의 경우 각 thumb이 범위에서 어떤 역할을 하는지 설명해야 합니다. (최소-최대, 시작-종료 등)

Field Integration

label, description, errorMessage 등의 Field 관련 prop을 사용할 수 있습니다.

Use Cases

Form (Uncontrolled)

React Hook Form

RTL Support

Last updated on

On this page