Skip to content

pyreweb/chroma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

186 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyreweb/chroma

Bibliothèque PHP d'énumérations et de conversion de couleurs. Fournit un enum typé Color couvrant plusieurs centaines de teintes réparties sur de nombreuses palettes chromatiques, des tons neutres aux couleurs vives. Supporte les formats HEX, RGB, RGBA, HSL, OKLCH et CMYK, avec des utilitaires de conversion et de parsing intégrés.

Prérequis

  • PHP 8.1 ou supérieur

Installation

composer require pyreweb/chroma

Utilisation

Récupération des valeurs

use Pyreweb\Chroma\Enum\Color;

$color = Color::Red500;

$color->getId();
$color->getName();
$color->getCode();
$color->getTitle();
$color->getHex();
$color->getRgb();
$color->getRgba();
$color->getRgba($alpha);
$color->getHsl();
$color->getOklch();
$color->getCmyk();
$color->toString($alpha);
$color->toArray($alpha);
$color->toJson($alpha);

Itérer sur toutes les couleurs

use Pyreweb\Chroma\Enum\Color;

/**
 * Renvoi la liste suivante :
 * Noir (#000000)
 * Blanc (#ffffff)
 * ...
 */
foreach (Color::cases() as $color) {
	echo $color->toString();
}

Recherche de couleurs

use Pyreweb\Chroma\Enum\Color;

Color::from(1);                     // Color:Black
Color::from(2);                     // Color::White
Color::from(105);                   // Color::Red500

Color::fromId(1);                   // Color:Black
Color::fromId(2);                   // Color::White
Color::fromId(105);                 // Color::Red500

Color::fromName('Black');           // Color:Black
Color::fromName('White');           // Color::White
Color::fromName('Red500');          // Color::Red500

Color::fromTitle('Noir');           // Color:Black
Color::fromTitle('Blanc');          // Color::White
Color::fromTitle('Rouge passion');  // Color::Red500

Color::fromHex('#000000');          // Color:Black
Color::fromHex('#ffffff');          // Color::White
Color::fromHex('#ef4444');          // Color::Red500

Convertir une couleur manuellement

use Pyreweb\Chroma\Service\Convert;

// Alpha du RGBA
$alpha = 0.5;

/**
 * Hexadécimal vers autres
 */

// Hexadécimal vers tous les autres
Convert::hex('#ef4444', $alpha);
Convert::hex(Color::Red500->getHex(), $alpha);

// Hexadécimal vers RGB
Convert::hex('#ef4444')->toRgb();
Convert::hex(Color::Red500->getHex())->toRgb();
Convert::hexToRgb('#ef4444');
Convert::hexToRgb(Color::Red500->getHex());

// Hexadécimal vers RGBA
Convert::hex('#ef4444')->toRgba($alpha);
Convert::hex(Color::Red500->getHex())->toRgba($alpha);
Convert::hexToRgba('#ef4444', $alpha);
Convert::hexToRgba(Color::Red500->getHex(), $alpha);

// Hexadécimal vers HSL
Convert::hex('#ef4444')->toHsl();
Convert::hex(Color::Red500->getHex())->toHsl();
Convert::hexToHsl('#ef4444');
Convert::hexToHsl(Color::Red500->getHex());

// Hexadécimal vers OKLCH
Convert::hex('#ef4444')->toOklch();
Convert::hex(Color::Red500->getHex())->toOklch();
Convert::hexToOklch('#ef4444');
Convert::hexToOklch(Color::Red500->getHex());

// Hexadécimal vers CMYK
Convert::hex('#ef4444')->toCmyk();
Convert::hex(Color::Red500->getHex())->toCmyk();
Convert::hexToCmyk('#ef4444');
Convert::hexToCmyk(Color::Red500->getHex());

Ajouter une couleur personnalisée

use Pyreweb\Chroma\Service\DynamicColor;

$color1 = DynamicColor::from('#A044BA');
$color2 = DynamicColor::from('#794E2A', 5623);
$color3 = DynamicColor::from('#413CDC', 8946, 'Color3');
$color4 = DynamicColor::from('#79FF2B', 9462, 'Color4', 'Couleur n°4');

Palettes disponibles

Palette Cases disponibles
Basiques Black, White
Red Red50Red950
Orange Orange50Orange950
Amber Amber50Amber950
Yellow Yellow50Yellow950
Lime Lime50Lime950
Green Green50Green950
Emerald Emerald50Emerald950
Teal Teal50Teal950
Cyan Cyan50Cyan950
Sky Sky50Sky950
Blue Blue50Blue950
Indigo Indigo50Indigo950
Violet Violet50Violet950
Purple Purple50Purple950
Fuchsia Fuchsia50Fuchsia950
Pink Pink50Pink950
Gold Gold50Gold950
Slate Slate50Slate950
Gray Gray50Gray950
Zinc Zinc50Zinc950
Neutral Neutral50Neutral950
Stone Stone50Stone950
Taupe Taupe50Taupe950
Mauve Mauve50Mauve950
Mist Mist50Mist950
Olive Olive50Olive950
Terracotta Terracotta50Terracotta950
Peach Peach50Peach950
Sand Sand50Sand950
Coral Coral50Coral950
Sage Sage50Sage950
Lagoon Lagoon50Lagoon950

Licence

Ce projet est sous licence MIT.

About

Bibliothèque PHP d'énumérations et de conversion de couleurs. Fournit un enum typé `Color` couvrant plusieurs centaines de teintes réparties sur de nombreuses palettes chromatiques, des tons neutres aux couleurs vives. Supporte les formats HEX, RGB, RGBA, HSL, OKLCH et CMYK, avec des utilitaires de conversion et de parsing intégrés.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages