Library for determining the color at a specific position in a bounded color gradient.

v0.2.0 2021-10-16 22:55 UTC

This package is auto-updated.

Last update: 2022-04-17 00:05:58 UTC


Weather gradient is a small library allowing to determine the RGB color at a given value in an interval bounded by a combination of a minimum value and a color and a combination of a maximum value and a color.

In addition to the minimum and maximum limits, it is possible to add as many thresholds as desired.

Test codecov




Use Composer to install Weather Gradient in your project :

composer require "zhb/weather-gradient"


$colors =  [
    0 => [59, 130, 246], // blue
    30 => [239, 68, 68], // red

// create a gradient from given thresholds
$gradient = Gradient::fromColors($colors);

// get the RGB color at a specific gradient position
$color = $gradient->colorAtGradientPosition(18);

// print the color
echo $color;

// or get r, g, b values
$r = $color->getR();
$g = $color->getG();
$b = $color->getB();

In addition to the Gradient class, you can use the Contrast::darkOrLight(array $rgb) to determine if a dark or light text fit the best with the given rgb color.

// $bestColor will contain [255, 255, 255] (white)
$bestColor = Contrast::darkOrLight($darkBlue = [85, 101, 242]);

// $bestColor will contain [0, 0, 0] (black)
$bestColor = Contrast::darkOrLight($lightBlue = [59, 130, 246]);


A usage example can be found in example folder.