useColorAreaState

Provides state management for a color area component. Color area allows users to adjust two channels of an HSL, HSB or RGB color value against a two-dimensional gradient background.

installyarn add @react-stately/color
version3.0.0
usageimport {useColorAreaState} from '@react-stately/color'

API#


useColorAreaState( (props: ColorAreaProps )): ColorAreaState

Interface#


Properties

NameTypeDescription
valueColorThe current color value displayed by the color area.
xValuenumberThe current value of the horizontal axis channel displayed by the color area.
yValuenumberThe current value of the vertical axis channel displayed by the color area.
isDraggingbooleanWhether the color area is currently being dragged.
channels{
xChannel: ColorChannel,
yChannel: ColorChannel,
zChannel: ColorChannel
}
Returns the xChannel, yChannel and zChannel names based on the color value.
xChannelStepnumber
yChannelStepnumber
xChannelPageStepnumber
yChannelPageStepnumber

Methods

MethodDescription
setValue( (value: stringColor )): voidSets the current color value. If a string is passed, it will be parsed to a Color.
setXValue( (value: number )): voidSets the value for the horizontal axis channel displayed by the color area, and triggers onChange.
setYValue( (value: number )): voidSets the value for the vertical axis channel displayed by the color area, and triggers onChange.
setColorFromPoint( (x: number, , y: number )): voidSets the x and y channels of the current color value based on a percentage of the width and height of the color area, and triggers onChange.
getThumbPosition(): {
x: number,
}
Returns the coordinates of the thumb relative to the upper left corner of the color area as a percentage.
incrementX( (stepSize?: number )): voidIncrements the value of the horizontal axis channel by the channel step or page amount.
decrementX( (stepSize?: number )): voidDecrements the value of the horizontal axis channel by the channel step or page amount.
incrementY( (stepSize?: number )): voidIncrements the value of the vertical axis channel by the channel step or page amount.
decrementY( (stepSize?: number )): voidDecrements the value of the vertical axis channel by the channel step or page amount.
setDragging( (value: boolean )): voidSets whether the color area is being dragged.
getDisplayColor(): ColorReturns the color that should be displayed in the color area thumb instead of value.

Example#


See the docs for useColorArea in react-aria for an example of useColorAreaState.