vongola12324/laravel-color-hash

ColorHash Library for Laravel 5.0+

Maintainers

Package info

github.com/vongola12324/laravel-color-hash

pkg:composer/vongola12324/laravel-color-hash

Statistics

Installs: 1 147

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 1

3.0.3 2026-06-24 17:32 UTC

README

CI Coverage Status PHP Version

ColorHash Library for Laravel 10.0+. Port from zenozeng/color-hash.

Requirements

  • PHP 8.2+
  • Laravel 10.0+

Installation

composer require vongola12324/laravel-color-hash

Usage

Basic

// in HSL, Hue ∈ [0, 360), Saturation ∈ [0, 1], Lightness ∈ [0, 1]
ColorHash::hsl('Hello World'); // [233, 0.5, 0.65]

// in RGB, R, G, B ∈ [0, 255]
ColorHash::rgb('Hello World'); // [121, 132, 210]

// in HEX
ColorHash::hex('Hello World'); // '#7984d2'

Custom

// Custom Hash Function
$hashFunc = function ($string) {
    $hash = 0;
    for ($i = 0; $i < strlen($string); $i++) {
        $hash += ord($string[$i]);
    }
    return $hash;
}
ColorHash::customHash($hashFunc)->rgb('Hello World'); // [172, 83, 122]

// Custom Hue
ColorHash::customHue(90)->rgb('Hello World'); // [166, 210, 121]
ColorHash::customHue(['min' => 90, 'max' => 270])->rgb('Hello World'); // [121, 163, 210]
ColorHash::customHue([['min' => 30, 'max' => 90], ['min' => 180, 'max' => 210], ['min' => 270, 'max' => 285]])->rgb('Hello World'); // [121, 185, 210]

// Custom Saturation
ColorHash::customSaturation(0.5)->rgb('Hello World'); // [64, 79, 191]
ColorHash::customSaturation([0.35, 0.5, 0.65])->rgb('Hello World'); // [121, 132, 210]

// Custom Lightness
ColorHash::customLightness(0.5)->rgb('Hello World'); // [64, 79, 191]
ColorHash::customLightness([0.35, 0.5, 0.65])->rgb('Hello World'); // [121, 132, 210]

All customXXX method can be used in a single custom method by passing an option array, for example:

ColorHash::customHue(90)->rgb('Test');
// Is Equal to
ColorHash::custom(['hue' => 90])->rgb('Test');

Also can combine with more than one custom option, for example:

ColorHash::customHue(90)->customSaturation(0.5)->customLightness(0.5)->customHash($hashFunc)->rgb('Test');
// Is Equal to
ColorHash::custom(['hue' => 90, 'saturation' => 0.5, 'lightness' => 0.5, 'hash' => $hashFunc])->rgb('Test');

License

MIT.