Skip to content
Projects

projectwallace/color-sorter has 80 GitHub stars and 3 forks. Star changes are not measured yet. Last checked 2026-11-14 03:47 UTC. Last push 2026-11-01.

How these counts are measured

Measured star growth

in 24h
Collecting history
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

Sort CSS colors by hue, then by saturation

Data

README.md

Original

color-sorter

Sort CSS colors by hue, then by saturation. Black-grey-white colors (colors with 0% saturation) are shifted to the end. Fully transparent colors are placed at the very end.

This sorting algorithm is very opinionated and might not fit your needs!

Usage

import { sort_fn, sort } from '@projectwallace/color-sorter'
var colors = ['#000', 'red', 'hsl(0, 10%, 60%)']
var sorted = colors.sort(sort_fn)
// Or:
// sorted = sort(colors)

// => sorted:
// [
//  'red',
//  'hsl(0, 10%, 60%)',
//  '#000'
// ]

API

convert

Convert any CSS color to a color that we can use for comparison. Returns black in case parsing fails.

import { convert } from '@projectwallace/color-sorter'
const color = convert('#f00')
// => { hue: 0, saturation: 100, lightness: 50, alpha: 1, authored: '#f00' }

compare

Compare two converted colors to know where they must go while sorting.

import { convert, compare } from '@projectwallace/color-sorter'
const red = convert('rgb(255 0 0)')
const green = convert('#0f0')
const result = compare(red, green)
// => result < 0, making sure red ends up before green

color_group

Get the named group of a given color. Useful for making groups of colors.

import { color_group, convert } from '@projectwallace/color-sorter'
const color = convert('rgb(255 0 0)')
const group = color_group(color) // => 'red'

sort_fn

Callback sorting function that can be passed to a .sort() or toSorted(). Uses compare internally.

import { sort_fn } from '@projectwallace/color-sorter'
const sorted = ['rebeccapurple', '#f00'].toSorted(sort_fn)
//=> ['#f00', 'rebeccapurple']

Project rename

Prior to v9 this project was published as color-sorter. From v9 onwards it is published as @projectwallace/color-sorter.

Related projects

  • CSS Analyzer - Generate analysis for a string of CSS
  • Wallace CLI - CLI tool for @projectwallace/css-analyzer
  • CSS Design Tokens - Create Design Tokens by going through CSS to find colors, font-sizes, gradients etcetera and turn them into a Design Tokens spec-compliant token format.

License

MIT © Bart Veneman

Explore related projects