# color 3.0.0

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




## Installing
```
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.com
flutter pub add 'color:3.0.0'
```
Published: 2021-03-09T00:13:51.643182Z
Expected archive SHA-256: ddcdf1b3badd7008233f5acffaf20ca9f5dc2cd0172b75f68f24526a5f5725cb

Available in cache; verification: upstream_checksum
## Direct dependencies

## Package README (untrusted upstream documentation)
Color
=====
A simple Dart package exposing a Color class which can be used to create, convert, and compare colors.

Installation
-----
1. Add this to your package's `pubspec.yaml` file:

```yaml
dependencies:
  color: any
```

1. Get the package using your IDE's GUI or via command line with

```bash
$ pub get
```

1. Import the `color.dart` file in your app

```dart
import 'package:color/color.dart';
```

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

To create a color from rgb values, call

```dart
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.

```dart
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.

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

Colors can be created directly from CSS3 color names.

```dart
RgbColor black = new RgbColor.name('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.

```dart
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.

```dart
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.

```dart
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.

```dart
RgbColor grey = ColorFilter.greyscale(new RgbColor(192, 255, 238));
HslColor sepia = ColorFilter.sepia(new HslColor(163.8, 100, 87.6));
```

## Changelog
## 0.1.0

* Creation of the Color class supporting rgb colors.

## 0.2.0

* Added hex support and conversion functions.

## 0.3.0

* Added hsl support and conversion functions.

## 0.3.1

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

## 1.0.0

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

## 1.1.0

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

## 1.2.0

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

## 1.3.0

* 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.

## 2.0.0

* 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 RgbColor.name() 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).

## 2.0.1

* Removed a switch statement that was preventing dart2js compilation.

## 2.2.0

* Added hsv support and conversion functions.

## 2.2.1

* Added pedantic analysis options and updated code to resolve warnings raised by it.
* Renamed changelog so that pub can see it properly.

## 3.0.0

* Updated code for null safety.







 
