1.0.3 • Published 4 years ago

@caohenghu/react-colorpicker v1.0.3

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

react-colorpicker

LiveDemo

preview-dark preview-light

Install

$ yarn add @caohenghu/react-colorpicker

Example

import ColorPicker from '@caohenghu/react-colorpicker'

export default class App extends React.Component {
    constructor(props) {
        super(props)
        this.changeColor = this.changeColor.bind(this)
        this.openSucker = this.openSucker.bind(this)
        this.state = {
            color: '#59c7f9',
            suckerCanvas: null,
            suckerArea: []
        }
    }

    render() {
        return (
            <div style={background: color}>
                <ColorPicker
                    theme="light"
                    color={this.state.color}
                    suckerHide={false}
                    suckerCanvas={this.state.suckerCanvas}
                    suckerArea={this.state.suckerArea}
                    changeColor={this.changeColor}
                    openSucker={this.openSucker}
                />
            </div>
        )
    }

    changeColor(color) {
        const { r, g, b, a } = color.rgba
        this.setState({
            color: `rgba(${r},${g},${b},${a})`
        })
    }

    openSucker(isOpen) {
        if (isOpen) {
            // ... canvas be created, and get the area of canvas
            // this.setState({
            //     suckerCanvas: canvas,
            //     suckerArea:  [x1, y1, x2, y2]
            // })
        } else {
            // this.state.suckerCanvas && this.state.suckerCanvas.remove()
        }
    }
}

Options

NameTypeDefaultDescription
themeStringdarkdark or light
colorString#000000rgba or hex
colors-defaultArray['#000000', '#FFFFFF', '#FF1900', '#F47365', '#FFB243', '#FFE623', '#6EFF2A', '#1BC7B1', '#00BEFF', '#2E81FF', '#5D61FF', '#FF89CF', '#FC3CAD', '#BF3DCE', '#8E00A7', 'rgba(0,0,0,0)']like ['#ff00ff', '#0f0f0f', ...]
colors-history-keyStringreact-colorpicker-history
sucker-hideBooleantruetrue or false
sucker-canvasHTMLCanvasElementnulllike document.createElement('canvas')
sucker-areaArray[]like [x1, y1, x2, y2]

Events

NameTypeArgsDescription
changeColorFunctioncolor{ rgba: {}, hsv: {}, hex: '' }
openSuckerFunctionisOpentrue or false

if you want use sucker, then openSucker, sucker-hide, sucker-canvas, sucker-area is necessary. when you click sucker button, you can click it again or press key of esc to exit.