Utils package for color-delta-e
!npm !npm bundle size !npm bundle size !GitHub Workflow Status
Utility functions for color-delta-e
``bash
npm install color-delta-e @color-delta-e/utils
yarn add color-delta-e @color-delta-e/utils
pnpm add color-delta-e @color-delta-e/utils
`
filters a list of colors based on if they are perceivably different to the comparitor color
`typescript
interface FilterOptions {
type: "rgb" | "hsl" | "lab" // only for declaring the type of ColorTuples
threshold: number // default 5
}
declare function filter(comparitor: string | ColorTuple, toFilter: Array
const filtered = filter('#dd2244', ['#dd2244' ,'#e83b3b', '#45b0b0'], {
threshold: 5,
type: 'rgb' // only needed if using color tuples eg [255,255,255] otherwise colors are infered
})
console.log(filtered) // ['#e83b3b', '#45b0b0']
`
sorts a list of colors based on their perceivable difference to the comparitor color, can
`typescript
interface SortOptions {
type: "rgb" | "hsl" | "lab" // default: 'rgb' - Note: only for declaring the type of ColorTuples
threshold: number // default 5
direction: 'asc' | 'dec' // default 'asc'
}
declare function sort(comparitor: string | ColorTuple, toSort: Array
const sorted = sort('#dd2244', ['#e83b3b', '#db2424', '#df1111', '#b50303'], {
threshold: 5,
direction: 'asc' // 'asc' | 'dec'
type: 'rgb' // only needed if using color tuples eg [255,255,255] otherwise colors are infered
})
console.log(sorted) // ['#b50303', '#df1111', '#db2424', '#e83b3b']
`
A color-delta-e specific version of pipe, interface of functions passed to it have to follow a specifc structure.
pass in pipeable functions, and will return a new function that will perform those actions on the array with comparitor, the returning array will be passed to the next function as its new array argument.
`typescript
type PipeableOptionInterface = Record
&& {
type: "rgb" | "hsl" | "lab",
threshold: number
}
// a pipeable function has to follow this interface
declare function pipeableInterface(comparitor: string | ColorTuple, toPipe: Array
const pipedFilterSort = pipe(filter, sort)
const result = pipedFilterSort('#dd2244', ['#dd2244' ,'#e83b3b', '#45b0b0'], {
//a union of all piped functions options
})
console.log(result) // ['#45b0b0', '#e83b3b']
``