@dilemmagx/palette
v0.2.2
Published
A palette toolkit.
Downloads
513
Readme
@dilemmagx/palette
Palette is a CLI + TypeScript toolkit that reads a single input (HEX, data URI, URL, or local path), detects its type automatically, and generates palettes. It supports both built-in and custom algorithms.
Install
npm i @dilemmagx/paletteCLI
palette <input>Examples:
palette ff7a18
palette ./image.png
palette https://example.com/image.jpgThe CLI prints every algorithm by default. Each algorithm output is a single line of color blocks with readable text inside each block for easy selection and copying. Palette sizes vary by algorithm, unless overridden.
Options:
-a, --algorithm <name>: Print a single algorithm-c, --count <number>: Override palette size
Output:
- One header line per algorithm
- Three connected rows of color blocks with readable HEX labels
Input Types
- HEX:
RRGGBBorRGBin CLI (no leading#). In TypeScript,#RRGGBBand#RGBare accepted. - Data URI:
data:image/...;base64,... - URL:
http://orhttps:// - Path: local image path (default fallback)
Built-in Algorithms
- analogous
- complementary
- triadic
- tetradic
- split-complementary
- monochrome
- monet
Monet uses image quantization and color scoring inspired by Material Color Utilities.
Custom Algorithms
import { registerAlgorithm, generatePaletteFromHex } from '@dilemmagx/palette';
registerAlgorithm('duotone', (input) => {
const base = input.baseColor;
return [base, '#000000'];
});
const result = await generatePaletteFromHex('#ff7a18', { algorithm: 'duotone' });
console.log(result.colors);Presets
getGameBoyPalette(): Returns the classic Game Boy colors (#9bbc0f, #8bac0f, #306230, #0f380f)
TypeScript API
import {
generatePalette,
generatePaletteFromHex,
generatePaletteFromDataUri,
generatePaletteFromUrl,
generatePaletteFromPath,
listAlgorithms,
} from '@dilemmagx/palette';
const result = await generatePalette('#ff7a18', { algorithm: 'analogous' });
console.log(result.colors);generatePalette detects the input type automatically. The other functions target a specific input type. Use count to override palette size.
License
GPL-3.0
