https://github.com/scttcper/ngx-color
๐จ Color Pickers from Sketch, Photoshop, Chrome, Github, Twitter & more
https://github.com/scttcper/ngx-color
angular color-picker typescript
Last synced: 6 months ago
JSON representation
๐จ Color Pickers from Sketch, Photoshop, Chrome, Github, Twitter & more
- Host: GitHub
- URL: https://github.com/scttcper/ngx-color
- Owner: scttcper
- License: mit
- Created: 2017-09-08T04:54:49.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-02-18T21:37:18.000Z (9 months ago)
- Last Synced: 2025-05-13T03:38:16.498Z (6 months ago)
- Topics: angular, color-picker, typescript
- Language: TypeScript
- Homepage: https://ngx-color.vercel.app
- Size: 4.47 MB
- Stars: 439
- Watchers: 4
- Forks: 57
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-list - ngx-color
- fucking-awesome-angular - ngx-color - Color Pickers from Sketch, Photoshop, Chrome, GitHub, X, and more. (Third Party Components / Form Controls)
- fucking-awesome-angular - ngx-color - ๐จ Color Pickers from Sketch, Photoshop, Chrome, Github, X & more. (Table of contents / Third Party Components)
- awesome-angular - ngx-color - Color Pickers from Sketch, Photoshop, Chrome, GitHub, X, and more. (Third Party Components / Form Controls)
README
DEMO: https://ngx-color.vercel.app
- [Component API](#component-api)
- [Color](#color)
- [onChange](#onchange)
- [onChangeComplete](#onchangecomplete)
- [Individual APIs](#individual-apis)
- [Alpha](#alpha)
- [Block](#block)
- [Chrome](#chrome)
- [Circle](#circle)
- [Compact](#compact)
- [Github](#github)
- [Hue](#hue)
- [Material](#material)
- [Photoshop](#photoshop)
- [Sketch](#sketch)
- [Slider](#slider)
- [Swatches](#swatches)
- [Twitter](#twitter)
- [Shade](#shade)
## About
- **13 Different Pickers** - Sketch, Photoshop, Chrome, Twitter and many more
- **Make Your Own** - Use the building block components to make your own
- This is a port of [react-color](https://github.com/casesandberg/react-color)
by casesandberg
## Getting Started
## Dependencies
Latest version available for each version of Angular
| ngx-color | Angular |
| --------- | --------- |
| 4.1.1 | 8.x |
| 5.1.4 | 9.x |
| 6.2.0 | 10.x 11.x |
| 7.3.3 | 12.x 13.x |
| 8.0.3 | 14.x 15.x |
| current | >= 16.x |
### Install
```sh
npm install ngx-color --save
```
### Include Component
##### import
```ts
import { ColorSketchModule } from 'ngx-color/sketch';
@NgModule({
imports: [
ColorSketchModule, // added to imports
],
})
class YourModule {}
```
##### use
```html
```
### Others available
```ts
import { ColorAlphaModule } from 'ngx-color/alpha'; //
import { ColorBlockModule } from 'ngx-color/block'; //
import { ColorChromeModule } from 'ngx-color/chrome'; //
import { ColorCircleModule } from 'ngx-color/circle'; //
import { ColorCompactModule } from 'ngx-color/compact'; //
import { ColorGithubModule } from 'ngx-color/github'; //
import { ColorHueModule } from 'ngx-color/hue'; //
import { ColorMaterialModule } from 'ngx-color/material'; //
import { ColorPhotoshopModule } from 'ngx-color/photoshop'; //
import { ColorSketchModule } from 'ngx-color/sketch'; //
import { ColorSliderModule } from 'ngx-color/slider'; //
import { ColorSwatchesModule } from 'ngx-color/swatches'; //
import { ColorTwitterModule } from 'ngx-color/twitter'; //
import { ColorShadeModule } from 'ngx-color/shade'; //
```
# Component API
## Color
Color controls what color is active on the color picker. You can use this to
initialize the color picker with a particular color, or to keep it in sync with
the state of a parent component.
Color accepts either a string of a hex color `'#333'` or a object of rgb or hsl
values `{ r: 51, g: 51, b: 51 }` or `{ h: 0, s: 0, l: .10 }`. Both rgb and hsl
will also take a `a: 1` value for alpha. You can also use `transparent`.
```html
```
In this case, the color picker will initialize with the color `#fff`. When the
color is changed, `handleChangeComplete` will fire and set the new color to
state.
## onChange
Pass a function to call every time the color is changed. Use this to store the
color in the state of a parent component or to make other transformations.
Keep in mind this is called on drag events that can happen quite frequently. If
you just need to get the color once use `onChangeComplete`.
```ts
import { Component } from '@angular/core';
import { ColorEvent } from 'ngx-color';
@Component({
selector: 'selector-name',
template: ` `,
})
export class NameComponent {
constructor() {}
handleChange($event: ColorEvent) {
console.log($event.color);
// color = {
// hex: '#333',
// rgb: {
// r: 51,
// g: 51,
// b: 51,
// a: 1,
// },
// hsl: {
// h: 0,
// s: 0,
// l: .20,
// a: 1,
// },
// }
}
}
```
## onChangeComplete
Pass a function to call once a color change is complete.
## Individual APIs
Some pickers have specific APIs that are unique to themselves:
### Alpha
- **width** - String | Number, Pixel value for picker width. Default `316px`
- **height** - String | Number, Pixel value for picker height. Default `16px`
- **direction** - String, `horizontal` or `vertical`. Default `horizontal`
### Block
- **width** - string | number, Pixel value for picker width. Default `170px`
- **colors** - Array of Strings, Color squares to display. Default `['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8']`
- **triangle** - String, Either `hide` or `top`. Default `top`
- **onSwatchHover** - (Output) An event handler for `onMouseOver` on the
``s within this component. Gives the args `(color, event)`
### Chrome
- **disableAlpha** - Bool, Remove alpha slider and options from picker. Default
`false`
### Circle
- **width** - String | number, Pixel value for picker width. Default `252px`
- **colors** - Array of Strings, Color squares to display. Default `["#f44336", "#e91e63", "#9c27b0", "#673ab7", "#3f51b5", "#2196f3", "#03a9f4", "#00bcd4", "#009688", "#4caf50", "#8bc34a", "#cddc39", "#ffeb3b", "#ffc107", "#ff9800", "#ff5722", "#795548", "#607d8b"]`
- **circleSize** - Number, Value for circle size. Default `28`
- **circleSpacing** - Number, Value for spacing between circles. Default `14`
- **onSwatchHover** - (Output) An event handler for `onMouseOver` on the
``s within this component. Gives the args `(color, event)`
### Compact
- **colors** - Array of Strings, Color squares to display. Default `['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E']`
- **onSwatchHover** - (Output) An event handler for `onMouseOver` on the
``s within this component. Gives the args `(color, event)`
### Github
- **width** - string | number, Pixel value for picker width. Default `212px`
- **colors** - Array of Strings, Color squares to display. Default `['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB']`
- **triangle** - String, Either `hide`, `top-left` or `top-right`. Default
`top-left`
- **onSwatchHover** - (Output) An event handler for `onMouseOver` on the
``s within this component. Gives the args `(color, event)`
### Hue
- **width** - string | number, Pixel value for picker width. Default `316px`
- **height** - string | number, Pixel value for picker height. Default `16px`
- **direction** - String Enum, `horizontal` or `vertical`. Default `horizontal`
### Material
None
### Photoshop
- **header** - String, Title text. Default `Color Picker`
- **onAccept** - (Output), Callback for when accept is clicked.
- **onCancel** - (Output), Callback for when cancel is clicked.
### Sketch
- **disableAlpha** - Bool, Remove alpha slider and options from picker. Default
`false`
- **presetColors** - Array of Strings or Objects, Hex strings for default colors
at bottom of picker. Default `['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']`
> **presetColors** may also be described as an array of objects with `color`
> and `title` properties: `[{ color: '#f00', title: 'red' }]` or a combination
> of both
- **width** - Number, Width of picker. Default `200`
- **onSwatchHover** - An event handler for `onMouseOver` on the ``s
within this component. Gives the args `(color, event)`
### Slider
- **pointer** - React Component, Custom pointer component
### Swatches
- **width** - string | number, Pixel value for picker width. Default `320`
- **height** - string | number, Pixel value for picker height. Default `240`
- **colors** - Array of Arrays of Strings, An array of color groups, each with
an array of colors
- **onSwatchHover** - (Output) An event handler for `onMouseOver` on the
``s within this component. Gives the args `(color, event)`
### Twitter
- **width** - string | number, Pixel value for picker width. Default `276px`
- **colors** - Array of Strings, Color squares to display. Default `['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF']`
- **triangle** - String, Either `hide`, `top-left` or `top-right`. Default
`top-left`
- **onSwatchHover** - (Output) An event handler for `onMouseOver` on the
``s within this component. Gives the args `(color, event)`
### Shade
- **width** - String | Number, Pixel value for picker width. Default `316px`
- **height** - String | Number, Pixel value for picker height. Default `16px`
---
> GitHub [@scttcper](https://github.com/scttcper) ย ยทย
> Twitter [@scttcper](https://twitter.com/scttcper)