useColorSliderState
Provides state management for a color slider component. Color sliders allow users to adjust an individual channel of a color value.
install | yarn add @react-stately/color |
---|---|
version | 3.0.0-beta.9 |
usage | import {useColorSliderState} from '@react-stately/color' |
API#
useColorSliderState(
(props: ColorSliderStateOptions
)): ColorSliderState
Interface#
Properties
Name | Type | Description |
value | Color | The current color value represented by the color slider. |
values | number[] | Values managed by the slider by thumb index. |
focusedThumb | number | undefined | Currently-focused thumb index. |
step | number | The step amount for the slider. |
pageSize | number | The page size for the slider, used to do a bigger step. |
Methods
Method | Description |
setValue(
(value: string
| | Color
)): void | Sets the current color value. If a string is passed, it will be parsed to a Color. |
getDisplayColor(): Color | Returns the color that should be displayed in the slider instead of value or the optional parameter. |
getThumbValue(
(index: number
)): number | Get the value for the specified thumb. |
setThumbValue(
(index: number,
, value: number
)): void | Sets the value for the specified thumb. The actual value set will be clamped and rounded according to min/max/step. |
setThumbPercent(
(index: number,
, percent: number
)): void | Sets value for the specified thumb by percent offset (between 0 and 1). |
isThumbDragging(
(index: number
)): boolean | Whether the specific thumb is being dragged. |
setThumbDragging(
(index: number,
, dragging: boolean
)): void | Set is dragging on the specified thumb. |
setFocusedThumb(
(index: number
| | undefined
)): void | Set focused true on specified thumb. This will remove focus from any thumb that had it before. |
getThumbPercent(
(index: number
)): number | Returns the specified thumb's value as a percentage from 0 to 1. |
getValuePercent(
(value: number
)): number | Returns the value as a percent between the min and max of the slider. |
getThumbValueLabel(
(index: number
)): string | Returns the string label for the specified thumb's value, per props.formatOptions. |
getFormattedValue(
(value: number
)): string | Returns the string label for the value, per props.formatOptions. |
getThumbMinValue(
(index: number
)): number | Returns the min allowed value for the specified thumb. |
getThumbMaxValue(
(index: number
)): number | Returns the max allowed value for the specified thumb. |
getPercentValue(
(percent: number
)): number | Converts a percent along track (between 0 and 1) to the corresponding value. |
isThumbEditable(
(index: number
)): boolean | Returns if the specified thumb is editable. |
setThumbEditable(
(index: number,
, editable: boolean
)): void | Set the specified thumb's editable state. |
incrementThumb(
(index: number,
, stepSize?: number
)): void | Increments the value of the thumb by the step or page amount. |
decrementThumb(
(index: number,
, stepSize?: number
)): void | Decrements the value of the thumb by the step or page amount. |
Example#
See the docs for useColorSlider in react-aria for an example of useColorSliderState
.