Laravel Packages

Colority Is a PHP Library for Parsing and Analyzing Colors

Published
Colority Is a PHP Library for Parsing and Analyzing Colors image

Colority by Tomás López is a PHP library that lets you transform and validate colors, find the best contrast color, extract image colors, and more. It allows you to parse strings into color objects and convert them between RGB, HSL, and Hex.

Using Colority, if you don't know the color type, the parse method makes it easy to parse various formats from a string. If it cannot parse the string into a color object, it'll return null:

/** @var RgbColor|null $rgbColor */
$rgbColor = colority()->parse('rgb(255,255,255)');
 
/** @var HexColor|null $hexColor */
$hexColor = colority()->parse('#51B389');
 
/** @var HslColor|null $hslColor */
$hslColor = colority()->parse('hsl(168.31deg, 49.58%, 46.67%)');

Colority makes it easy to generate themes, user avatars, and more. For example, here are a few methods for getting the colors found in an image as an array of RgbColor objects:

// Get colors from an image
/** @var array<RgbColor> $imageColors */
$imageColors = colority()->getImageColors(
imagePath: __DIR__.'/image-colors.png',
desiredNumColors: 10
);

You can also find similar colors or get the best foreground color for a given color:

// Get the best foreground color for a given color
/** @var HexColor $bestForegroundHexColor (black or white) */
$bestForegroundHexColor = $hexColor->getBestForegroundColor();
 
// Get a similar color
/** @var HexColor|null $similarHexColor */
$similarHexColor = colority()->getSimilarColor($hexColor);

Main Features

  • Object-oriented API to work with colors
  • Parse various types of colors from a string (RGB, HSL, Hex)
  • Obtain the colors found in an image
  • Generate the best foreground color (white, black, or from a user-provided list) for a background color, ensuring the best possible contrast ratio.
  • Generate a fixed color based on a string.
  • Obtain a random color similar to a given color.
  • And more

This package works with PHP +8.2, and you can easily install it via Composer:

composer require tomloprod/colority

🧑‍💻 You can get started with this package on GitHub: tomloprod/colority

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Laravel Image Responses: Serve Resized Images From Routes image

Laravel Image Responses: Serve Resized Images From Routes

Read article
Pause All Laravel Queues During a Deploy image

Pause All Laravel Queues During a Deploy

Read article
Laravel Terminal UI for the artisan dev Command image

Laravel Terminal UI for the artisan dev Command

Read article
Pause All Queues and a New artisan dev UI in Laravel 13.25 image

Pause All Queues and a New artisan dev UI in Laravel 13.25

Read article
Laravel monitoring that doesn't bill you by your traffic image

Laravel monitoring that doesn't bill you by your traffic

Read article
Mock PHP Classes in Tests With the Double Library image

Mock PHP Classes in Tests With the Double Library

Read article