color 2.0.2

  • changelog
  • Installing
  • Versions
  • 88


A simple Dart package exposing a Color class which can be used to create, convert, and compare colors.


  1. Add this to your package's pubspec.yaml file:
  color: any
  1. Get the package using your IDE's GUI or via command line with
$ pub get
  1. Import the color.dart file in your app
import 'package:color/color.dart';


Color objects can be constructed using any of a few available constructors.

To create a color from rgb values, call

Color rgbColor = new Color.rgb(192, 255, 238);
RgbColor rgbColor = new RgbColor(192, 255, 238);

Alternatively, a color can be created directly in a number of other color spaces.

RgbColor rgb = new RgbColor(192, 255, 238);
HexColor hex = new HexColor('c0ffee');
HslColor hsl = new HslColor(163.8, 100, 87.6);
XyzColor xyz = new XyzColor(72.931, 88.9, 94.204);
CielabColor cielab = new CielabColor(95.538, -23.02, 1.732);

Colors are immutable, and can be created using const constructors.

RgbColor rgb = const RgbColor(192, 255, 238);

Colors can be created directly from CSS3 color names.

RgbColor black = new'black'); //factory constructor that returns a const RgbColor
RgbColor white = RgbColor.namedColors['black']; //directly reference the const RgbColor without the factory

Colors implementing the CssColorSpace interface can output a css string representation.

RgbColor rgb = new RgbColor(192, 255, 238);
HexColor hex = new HexColor('c0ffee');
HslColor hsl = new HslColor(163.8, 100, 87.6);
assert(rgb is CssColorSpace, true);
assert(hex is CssColorSpace, true);
assert(hsl is CssColorSpace, true);
print(rgb.toCssString()); //rgb(192, 255, 238)
print(hex.toCssString()); //#c0ffee
print(hsl.toCssString()); //hsl(163.8, 100.0%, 87.6%)

Colors can be compared using the == operator, which will evaluate to true if the two colors share identical rgb values after being rounded to integers.

assert(new Color.hex('c0ffee') == new Color.hex('c0ffee'));
assert(new Color.rgb('192, 255, 238') == new Color.hex('c0ffee'));

Colors can be converted from one color space to another by calling the appropriate toXXXColor method on them.

HslColor hsl = new RgbColor(192, 255, 238).toHslColor();

Colors can be altered using a ColorFilter, which will return a new color in the same color space as the input color with that filter applied to it.

RgbColor grey = ColorFilter.greyscale(new RgbColor(192, 255, 238));
HslColor sepia = ColorFilter.sepia(new HslColor(163.8, 100, 87.6));
* Creation of the Color class supporting rgb colors.

* Added hex support and conversion functions.

* Added hsl support and conversion functions.

* Resolved bug where Color.toHexString() was not prepending each byte with 0s as appropriate.
* Added Color.toRgbString() as an alias for Color.toSting().

* Major refactor which will break code using earlier versions.
* Refactored to pull each color space into its own subclass extending a base Color class.

* Added XYZ color space support with bidirectional conversions between XYZ and RGB color spaces.

* Added CIELAB color space support with bidirectional conversions with the XYZ color space (and the RGB color space using XYZ as an intermediary).

* Added toXXXColor() conversion methods for all possible color space transitions.
* Added Color.clone() method to make a copy of a Color object.
* Added toCssString() method to RGB, Hex, and HSL colors for easier use with CSS.
* Added ColorFilters to alter colors according to various filtering rules.
* Added a demo page to test the package and see the effect of filters.

* Color and all subclasses now implement a const constructor.
* Colors are no longer mutable, and all conversion and filter methods return new Color objects.
* Removed the Color.clone() method (this was only generally useful when Colors were mutable).
* Adjusted the greyscale and invert ColorFilters to use the CIELAB color space, giving better results.
* Added a lighten and darken ColorFilter.
* Added an constructor to create colors by CSS3 name.
* Added a Color.toHexColor() method for easier conversion to the HexColor class.
* Added a CssColorSpace interface for the color spaces which have representation in the CSS standard (RGB, HEX, and HSL).

* Removed a switch statement that was preventing dart2js compilation.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  color: ^2.0.2

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter packages get

Alternatively, your editor might support pub get or flutter packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:color/color.dart';
Version Uploaded Documentation Archive
2.0.2 Jul 3, 2017 Go to the documentation of color 2.0.2 Download color 2.0.2 archive
2.0.1 Mar 14, 2017 Go to the documentation of color 2.0.1 Download color 2.0.1 archive
2.0.0 Jun 24, 2015 Go to the documentation of color 2.0.0 Download color 2.0.0 archive
1.3.0 Apr 3, 2015 Go to the documentation of color 1.3.0 Download color 1.3.0 archive
1.2.0 Jan 21, 2015 Go to the documentation of color 1.2.0 Download color 1.2.0 archive
0.3.1 May 27, 2014 Go to the documentation of color 0.3.1 Download color 0.3.1 archive
0.3.0 Jan 30, 2014 Go to the documentation of color 0.3.0 Download color 0.3.0 archive
0.2.0 Jan 27, 2014 Go to the documentation of color 0.2.0 Download color 0.2.0 archive
0.1.0 Jan 26, 2014 Go to the documentation of color 0.1.0 Download color 0.1.0 archive
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Sep 18, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0
  • pana: 0.12.3


Detected platforms: Flutter, web, other

No platform restriction found in primary library package:color/color.dart.

Issues and suggestions

Add SDK constraint in pubspec.yaml.

For information about setting SDK constraint, please see

Package is getting outdated.

The package was released 63 weeks ago.

Maintain an example.

Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use color.dart.

Format lib/cielab_color.dart.

Run dartfmt to format lib/cielab_color.dart.

Format lib/color.dart.

Run dartfmt to format lib/color.dart.

Format lib/color_filter.dart.

Run dartfmt to format lib/color_filter.dart.

Format lib/css_color_space.dart.

Run dartfmt to format lib/css_color_space.dart.

Format lib/hex_color.dart.

Run dartfmt to format lib/hex_color.dart.


Package Constraint Resolved Available
Dev dependencies
browser any
test any