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

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article