32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
|
#!/usr/bin/env node
|
||
|
import { program } from 'commander';
|
||
|
import tinycolor from 'tinycolor2';
|
||
|
|
||
|
program.command('gen <color>')
|
||
|
.description('Generates multiple colors from a given color')
|
||
|
.option('-a, --amount <n>', 'Amount of darken', 10)
|
||
|
.action((color, options) => {
|
||
|
const primary = tinycolor(color);
|
||
|
const amount = options.amount;
|
||
|
|
||
|
logColor(primary, 'primary');
|
||
|
const darkPrimary = primary.clone().darken(amount);
|
||
|
logColor(darkPrimary, 'dark primary');
|
||
|
const darkerPrimary = darkPrimary.clone().darken(amount);
|
||
|
logColor(darkerPrimary, 'darker primary');
|
||
|
|
||
|
const secondary = primary.complement();
|
||
|
logColor(secondary, 'secondary');
|
||
|
const darkSecondary = secondary.clone().darken(amount);
|
||
|
logColor(darkSecondary, 'dark secondary');
|
||
|
const darkerSecondary = darkSecondary.clone().darken(amount);
|
||
|
logColor(darkerSecondary, 'darker secondary');
|
||
|
});
|
||
|
|
||
|
program.parse(process.argv);
|
||
|
|
||
|
function logColor(color, name) {
|
||
|
const { r, g, b } = color.toRgb()
|
||
|
console.log(`\x1b[48;2;${r};${g};${b}m COLOR \x1b[0m [${name.toUpperCase()}] ${color.toHexString()} `);
|
||
|
}
|