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

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Unlearn.dev goes free for a weekend, October 10 and 11 image

Unlearn.dev goes free for a weekend, October 10 and 11

Read article
Tashil: Laravel Subscription Plans and Feature Usage Limits image

Tashil: Laravel Subscription Plans and Feature Usage Limits

Read article
Decide with Jev: Laravel AI That Answers with a Probability image

Decide with Jev: Laravel AI That Answers with a Probability

Read article
JetBrains Air: Run AI Coding Agents in JetBrains IDEs image

JetBrains Air: Run AI Coding Agents in JetBrains IDEs

Read article
Memoize Tagged Cache Reads in Laravel image

Memoize Tagged Cache Reads in Laravel

Read article
Eloquent Refreshes: Load Generated Columns After Save image

Eloquent Refreshes: Load Generated Columns After Save

Read article