Skip to content

Simple Angular color picker components which follow Angular best practices. No Frills.

Notifications You must be signed in to change notification settings

dolanmiu/ng-color

Repository files navigation

ng-color

Simple embeddable color picker components for Angular following best Angular practices, and good coding standards for easy use and easy contribution.

ng-color ng-color

Color picker components for Angular 2+


Chat on Gitter Build Status code style: prettier

Demos

StackBlitz

https://stackblitz.com/edit/ng-color-demo

Run example folder locally (mac/unix only)

  1. npm install
  2. npm run build
  3. npm start
  4. Go to http://localhost:8080/

Installation

To install this library, run:

$ npm install ng-color --save

How to use

To use this library in your AppModule:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { NgColorModule } from 'ng-color';

@NgModule({
    declarations: [AppComponent],
    imports: [
        BrowserModule,
        NgColorModule, // Inlude in @NgModule
    ],
    providers: [],
    bootstrap: [AppComponent],
})
export class AppModule {}

Once your library is imported, you can use the component in your Angular application shown below.

Color Pickers

Box

What it looks like is shown in the header

<ng-color-box [(ngModel)]="color"></ng-color-box>
<ng-color-box (ngModelChange)="colorChange($event)"></ng-color-box>

Circle

What it looks like is shown in the header

<ng-color-circle [(ngModel)]="color"></ng-color-circle>
<ng-color-circle (ngModelChange)="colorChange($event)"></ng-color-circle>

NgModel and setting the initial color

The ngModel is of the following format. You can use two-way or one-way binding:

export interface ColorOutput {
    rgb: Rgb;
    hex: number;
    hexString: string;
    hsl: Hsl;
}

Or equivalently:

export interface ColorOutput {
    rgb: {
        red: number; // 0 - 255
        green: number; // 0 - 255
        blue: number; // 0 - 255
    };
    hex: number; // 0 - 16777215
    hexString: string; // #000000 - #ffffff
    hsl: {
        hue: number; // 0 - 360
        saturation: number; // 0 - 100
        lightness: number; // 0 - 100
    };
}

Setting these partially also works, this library will resolve all the other components out on the next change detection cycle.

Therefore, you can set the initial color of the picker by doing:

this.myColor = {
    hexString: '#ff56d3',
};

In the html:

<ng-color-box [(ngModel)]="myColor"></ng-color-box>

Development

To build using ng-packagr:

$ npm run build

To lint all *.ts files:

$ npm run lint

License

MIT © Dolan Miu

Made with 💖 by Dolan Miu 🍆 💦 😝