ngx-input-color

April 20, 2026 ยท View on GitHub

Color Picker, Gradient Picker and Box Shadow

npm version MIT License

ngx-input-color and ngx-input-gradient are powerful, customizable Angular components for color and gradient picking. They support multiple color formats, real-time preview, inline and input modes, and seamless integration with Angular forms.

๐Ÿš€ Live Demo

View Demo

Screenshot


โœจ Features

  • Multiple Color Formats: HEX, RGBA, HSLA, HSVA, CMYK (for color), and full CSS gradients (for gradient)
  • Interactive UI: Drag-and-drop sliders for hue, saturation, lightness, alpha, and more
  • Angular Forms Integration: Works with ngModel and reactive forms
  • EyeDropper API Support: Pick colors from anywhere on your screen (if supported)
  • Live Preview: Instantly see the selected color or gradient
  • Highly Customizable: set input background color, Simple mode and more
  • Inline & Input Modes: Use as a popup input or as an always-visible inline component
  • Unit Tested: Includes comprehensive unit tests

๐Ÿ“ฆ Installation

npm install ngx-input-color
# or
yarn add ngx-input-color
# or
pnpm add ngx-input-color

๐Ÿ› ๏ธ Usage

Import in standalone component or module


import { NgxInputColor } from 'ngx-input-color/color-picker';

@Component({
  selector: 'app-component',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
  imports: [FormsModule, NgxInputColor,...],
})
...

Input Mode (Popup)

  • Color Picker Input
<input ngxInputColor [(ngModel)]="color" />
<span>Selected: {{ color }}</span>
  • Gradient Picker Input
import { NgxInputGradient } from 'ngx-input-color/gradient-picker';

@Component({
  selector: 'app-component',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
  imports: [FormsModule, NgxInputGradient,...],
  template:`
  <input ngxInputGradient [(ngModel)]="gradient" />
  <span>Selected: {{ gradient }}</span>
  `
})
...

Inline Mode (Always Visible)

  • Inline Color Picker
<ngx-input-color [(ngModel)]="inlineColor" [simpleMode]="false"></ngx-input-color>
<span>Selected: {{ inlineColor }}</span>
  • Inline Gradient Picker
<ngx-input-gradient [(ngModel)]="inlineGradient"></ngx-input-gradient>
<span>Selected: {{ inlineGradient }}</span>

๐Ÿ“š API Reference

NgxInputColor (Input & Inline)

NameTypeDefaultDescription
setInputBackgroundColorbooleantrueSet input background to selected color
simpleModebooleanfalseCompact UI
useAlphaChannelbooleantrueUse alpha channel
defaultInspectorColorInspector enumPickerDefault inspector (Picker, RGB, HSL, CMYK)
[(ngModel)] / formControlstringTwo-way binding for the selected color
change (Output)EventEmitter<string>Emits the color value on change

Supported Color Formats

  • HEX (#RRGGBB or #RRGGBBAA)
  • RGBA (rgba(255,255,255,1))
  • HSLA (hsla(360,100%,100%,1))
  • HSVA
  • CMYK

NgxInputGradient (Input & Inline)

NameTypeDefaultDescription
[(ngModel)] / formControlstringTwo-way binding for the selected gradient
change (Output)EventEmitter<string>Emits the gradient value on change

Supported Gradient Formats

  • CSS Linear Gradients (e.g. linear-gradient(90deg, #ff0000 0%, #00ff00 100%))
  • CSS Radial Gradients (e.g. radial-gradient(circle, #ff0000 0%, #00ff00 100%))

โš™๏ธ Customization

  • visibility, and UI modes are fully customizable via component inputs.
  • Works seamlessly with both Template-driven and Reactive Forms.

๐Ÿงช Testing & Development

  • This library includes comprehensive unit tests. Run ng test to verify functionality.
  • Contributions are welcome! Please open an issue or submit a pull request.

โ“ FAQ

  • Can I programmatically set the color/gradient?
    Yes, simply update the variable bound to ngModel or your form control.

  • Is EyeDropper API supported?
    Yes, in modern browsers that support the EyeDropper API.


๐Ÿ“„ License

MIT



Developer: Mohammadreza Samani

Made With ๐Ÿงก From IRAN