:red_circle: :green_circle: :large_blue_circle:
Reanimated Color Picker
- Pure JavaScript color picker for react-native.
- Highly customizable.
- Supports IOS, Android, Expo and Web platforms.
- Supports right to left (RTL) layout.
:warning: :warning: Warning :warning: :warning:
- This project is still in beta stage.
- Some properties may change.
:small_blue_diamond: Table of contents
:small_blue_diamond:Prerequisites
:small_blue_diamond:Installation
Note
First we need to install react-native-gesture-handler(>=2.0.0) and react-native-reanimated(>=2.0.0),
- Open a Terminal in the project root and run:
npm i reanimated-color-picker
:small_blue_diamond:Usage
-
You can add, remove, rearrange or style the color picker's built-in components.
-
You can also add your components.
-
Check out the working examples:
import React, { useState } from 'react';
import { Button, Modal, View } from 'react-native';
import ColorPicker, { Panel1, Swatches, Preview, OpacitySlider, HueSlider } from 'reanimated-color-picker';
export default function App() {
const [showModal, setShowModal] = useState(false);
const onSelectColor = ({ hex }) => {
console.log(hex);
};
return (
<View style={styles.container}>
<Button title='Color Picker' onPress={() => setShowModal1(true)} />
<Modal visible={showModal}>
<ColorPicker value='red' onComplete={onSelectColor}>
<Preview />
<Panel1 />
<HueSlider />
<OpacitySlider />
<Swatches />
</ColorPicker>
<Button title='Ok' onPress={() => setShowModal(false)} />
</Modal>
</View>
);
}
:small_blue_diamond:API
:small_red_triangle:ColorPicker Wrapper
:small_orange_diamond:value
- The initial value of the color picker.
- Accepts
'hex'
, 'rgb'
, 'rgba'
, 'hsl'
, 'hsla'
and named color
formats. type: string
default: '#418181'
:small_orange_diamond:slidersThickness
- A global style to change the thickness of all descendant sliders components.
- The thickness is the slider's width in case of
vertical
orientation and height in case of horizontal
orientation. type: number
default: 25
:small_orange_diamond:thumbsSize
- A global style to change the thumb size of all descendant sliders components.
type: number
default: 35
:small_orange_diamond:style
- Color picker's container style.
- If you want to change the width using the
width
property. type: StyleProp<ViewStyle>
Note some style properties will be overwritten.
:small_orange_diamond:onChange
- Called every time the color value changed.
- The passed color object has the following properties:
hex
, rgb
, rgba
, hsl
and hsla
type: (color: object) => void
default: null
:small_orange_diamond:onComplete
- Called when the user releases the slider handle or when a swatch is clicked.
- The passed color object has the following properties:
hex
, rgb
, rgba
, hsl
and hsla
type: (color: object) => void
default: null
:small_red_triangle:Built-in Components
:small_orange_diamond:<Preview />
- The preview of the selected and the initial color.
Property | Type | Default | Description |
---|
colorFormat | string | 'hex' | preview color text format: 'hex' , 'rgb' , 'rgba' , 'hsl' , 'hsla' , 'hsv' or 'hsva' |
hideInitialColor | boolean | false | hide the initial color preview part |
hideText | boolean | false | hide preview color texts |
style | StyleProp<ViewStyle> | / | preview container style |
textStyle | StyleProp<TextStyle> | / | preview text style |
Note some style properties will be overwritten.
:small_orange_diamond:<PreviewText />
- A React Native
<Text>
component that displays the preview color text.
Property | Type | Default | Description |
---|
colorFormat | string | 'hex' | preview color text format: 'hex' , 'rgb' , 'rgba' , 'hsl' , 'hsla' , 'hsv' or 'hsva' |
style | StyleProp<TextStyle> | / | preview text style |
:small_orange_diamond:<Panel1 />
- A square-shaped slider (adobe style) used for changing the color's brightness and saturation.
Note you need to add <HueSlider />
alongside with it.
Property | Type | Default | Description |
---|
thumbSize | number | 35 | panel's handle (thumb) size (height*width) |
style | StyleProp<ViewStyle> | / | panel's container style |
Note some style properties will be overwritten.
:small_orange_diamond:<Panel2 />
- A square-shaped slider (windows style) used for changing the color's hue and saturation.
Note you need to add <BrightnessSlider />
alongside with it.
Property | Type | Default | Description |
---|
thumbSize | number | 35 | panel's handle (thumb) size (height*width) |
style | StyleProp<ViewStyle> | / | panel's container style |
Note some style properties will be overwritten.
:small_orange_diamond:<HueSlider />
- A slider to change color's hue.
Property | Type | Default | Description |
---|
thumbSize | number | 35 | hue slider handle (thumb) size (height*width) |
ringColor | string | #fff | the color of the ring around the slider handle |
reverse | boolean | false | reverse slider direction |
vertical | boolean | false | change slider orientation |
style | StyleProp<ViewStyle> | / | hue slider container style |
Note some style properties will be overwritten.
:small_orange_diamond:<SaturationSlider />
- A slider to change color's saturation.
Property | Type | Default | Description |
---|
thumbSize | number | 35 | saturation slider handle (thumb) size (height*width) |
ringColor | string | #fff | the color of the ring around the slider handle |
reverse | boolean | false | reverse slider direction |
vertical | boolean | false | change slider orientation |
style | StyleProp<ViewStyle> | / | saturation slider container style |
Note some style properties will be overwritten.
:small_orange_diamond:<BrightnessSlider />
- A slider to change color brightness.
Property | Type | Default | Description |
---|
thumbSize | number | 35 | brightness slider handle (thumb) size (height*width) |
ringColor | string | #fff | the color of the ring around the slider handle |
reverse | boolean | false | reverse slider direction |
vertical | boolean | false | change slider orientation |
style | StyleProp<ViewStyle> | / | brightness slider container style |
Note some style properties will be overwritten.
:small_orange_diamond:<OpacitySlider />
- A slider to change color's opacity.
Property | Type | Default | Description |
---|
thumbSize | number | 35 | opacity slider handle (thumb) size (height*width) |
ringColor | string | #fff | the color of the ring around the slider handle |
reverse | boolean | false | reverse slider direction |
vertical | boolean | false | change slider orientation |
style | StyleProp<ViewStyle> | / | opacity slider container style |
Note some style properties will be overwritten.
:small_orange_diamond:<Swatches />
- A list of colored swatches is used for quick color selection.
Property | Type | Default | Description |
---|
colors | string[] | material colors | custom swatches colors |
style | StyleProp<ViewStyle> | / | swatches container style |
swatchStyle | StyleProp<ViewStyle> | / | swatch style |
Note some style properties will be overwritten.
:small_blue_diamond:Example
:small_blue_diamond:License