projectwallace/color-sorter
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.
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
DataREADME.md
Originalcolor-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
Asabeneh/30-Days-Of-Python
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,711 starsgrafana/grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
77,894 starsredis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.
77,490 starsapache/superset
Apache Superset is a Data Visualization and Data Exploration Platform
75,522 stars