Skip to content

renanborgez/kandinsky-dart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kandinsky-dart

Dart codecov Pub Version

A Dart ported version of francisrstokes/kandinsky-js

Create dymanic and fixed gradients, convert from/to rgb, hue, hex, hsl and css colors.

Documentation

Pub dev package: https://pub.dev/packages/kandinsky

Online documentation: https://renanborgez.github.io/kandinsky-dart/

Install

  1. Depend on it

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

dependencies:
  kandinsky: any
  1. Install it

You can install packages from the command line:

# with pub:
$ pub get

# with Flutter:
$ flutter pub get

Usage

A simple usage example:

import 'package:kandinsky/kandinsky.dart' as kandinsky;

main() {
  var darkenHexColor = kandinsky.darkenHex(0.5, '#6699CC');
  print('my darken hex color: ${darkenHexColor}');

  var lightenHexColor = kandinsky.lightenHex(0.5, '#06795C');
  print('my lighten hex color: ${lightenHexColor}');

  var darkenRgbColor = kandinsky.darkenRgb(0.5, [180, 40, 20]);
  print('my darken rgb color: ${darkenRgbColor}');

  var lightenRgbColor = kandinsky.lightenRgb(0.5, [155, 90, 60]);
  print('my lighten rgb color: ${lightenRgbColor}');

  var myDynamicGradient = kandinsky.linearGradient(10, [255, 100, 50], [30, 200, 255]);
  print('my gradient with 10 colors: ${myDynamicGradient}');

  var myHslColorFromRgb = kandinsky.rgb2hsl([255, 255, 255]);
  print('my hsl color from a rgb color: ${myHslColorFromRgb}');
}

API

You can check the online version here: http://kandinsky-dart.borges.ninja/

rgb2hsl(rgbArray)

returns a hsl array


List<num> rgb2hsl(List<num> color)

hsl2rgb(hslArray)

returns an rgb array


List<num> hsl2rgb(List<num> color)

hex2rgb(hexString)

returns an rgb array


List<num> hex2rgb(String hex)

rgb2hex(rgbArray)

returns a hex string


String rgb2hex(List<num> rgb)

hex2hsl(hexString)

returns a hsl array


List<num> hex2hsl(String hex)

hsl2hex(hslArray)

returns a hex string


String hsl2hex(List<num> color)

darkenRgb(amount, rgbArray)

returns a darkened rgb array. amount is a value in the range [0, 1]


List<num> darkenRgb(num amount, List<num> rgb)

lightenRgb(amount, rgbArray)

returns a lightened rgb array. amount is a value in the range [0, 1]


List<num> lightenRgb(num amount, List<num> rgb)

darkenHsl(amount, hslArray)

returns a darkened hsl array. amount is a value in the range [0, 1]


List<num> darkenHsl(num amount, List<num> color)

lightenHsl(amount, hslArray)

returns a lightened hsl array. amount is a value in the range [0, 1]


List<num> lightenHsl(num amount, List<num> color)

lightenHex(amount, hexString)

returns a lightened hex string. amount is a value in the range [0, 1]


String lightenHex(num amount, String hex)

darkenHex(amount, hexString)

returns a darkened hex string. amount is a value in the range [0, 1]


String darkenHex(num amount, String hex)

lerp3(t, c1, c2)

returns a Vector3 colour somewhere between c1 and c2. t is the "time" value in the range [0, 1]


List<num> lerp3(num t, List<num> color1, List<num> color2)

linearGradient(n, c1, c2)

returns an length n array of Vector3 colours. colours are evenly spaced between c1 and c2.


List<List<num>> linearGradient(num n, List<num> color1, List<num> color2)

gradient(easeFn, n, c1, c2)

returns an length n array of Vector3 colours. colours are between color1 and color2, and are spaced according to the easing function easeFn.


List<List<num>> gradient(Function ease, int n, List<num> color1, List<num> color2)

multiGradient(n, [col1, col3, ..., colN])

returns a length n array of Vector3 colours. colours are the ones formed from the linearGradient(n/(numColours-1), col1, col2) for all colours col1, col2, ..., colN


List<List<num>> multiGradient(num n, List<List<num>> colors)

rLinearGradient(n, c1, c2)

returns a rounded, length n array of Vector3 colours. colours are evenly spaced between color1 and color2.


List<List<num>> rLinearGradient(num n, List<num> color1, List<num> color2)

rGradient(easeFn, n, c1, c2)

returns a rounded, length n array of Vector3 colours. colours are between color1 and color2, and are spaced according to the easing function easeFn.


List<List<num>> rGradient(Function ease, num n, List<num> color1, List<num> color2)

rMultiGradient(n, [col1, col3, ..., colN])

returns a rounded, length n array of Vector3 colours. colours are the ones formed from the linearGradient(n/(numColours-1), col1, col2) for all colours col1, col2, ..., colN


List<List<num>> rMultiGradient(num n, List<List<num>> colors)

complimentHex(n, hexString)

returns an length n array of hex strings. The 0th color is the same as the input hexString, while the others are colours corresponding to an eve turn around the colour wheel. If n is 3 for example, the two other colours would represent a 1/3 and 2/3 rotation of the colour wheel.


List<String> complimentHex(num n, String hex)

complimentHsl(n, hsl)

returns an length n array of hsl Vector3. The 0th color is the same as the input hsl, while the others are colours corresponding to an eve turn around the colour wheel. If n is 3 for example, the two other colours would represent a 1/3 and 2/3 rotation of the colour wheel.


List<List<num>> complimentHsl(num n, List<num> color)

complimentRgb(n, rgb)

returns an length n array of rgb Vector3. The 0th color is the same as the input rgb, while the others are colours corresponding to an eve turn around the colour wheel. If n is 3 for example, the two other colours would represent a 1/3 and 2/3 rotation of the colour wheel.


List<List<num>> complimentRgb(num n, List<num> color)

rgb2css(alpha, rgb)

returns an rgba css string like rgba(255, 255, 255, 1) from the rgb color and alpha value


String rgb2css(num alpha, List<num> color)

hsl2css(alpha, hsl)

returns an hsl css string like hsl(222, 50%, 75%, 0.6) from the hsl color and alpha value


String hsl2css(num alpha, List<num> hsl)

color2hue(num p, num q, num t)

returns a saturation of a specific color value


num color2hue(num colorValue, num shading, num tint)

Features and bugs

Please file feature requests and bugs at the issue tracker.

License

MIT

About

Color library for dart as a trustworthy port of kandinsky-js - Create dymanic and fixed gradients, convert from/to rgb, hue, hex, hsl and css colors.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages