#!/usr/bin/env node import { program } from 'commander'; import Colorgen from './src/Colorgen.js'; program.command('gen ') .description('Generates multiple colors from a given color') .option('-a, --amount ', 'Amount of darken', 12.5) .option('-c, --complementary', 'Generate complementary colors instead of analogous') .action((color, options) => { const amount = options.amount; const colorgen = new Colorgen(color); colorgen.amount = amount; if (options.complementary) { complementary(colorgen.complementary()) } else { analogous(colorgen.analogous()); } }); program.parse(process.argv); function _logColor(color, name) { const { r, g, b } = color.toRgb() console.log(`\x1b[48;2;${r};${g};${b}m ${color.toHexString()} \x1b[0m [${name.toUpperCase()}]`); } function _logColors(color, type = 'primary') { _logColor(color.normal, type); _logColor(color.dark, `dark ${type}`); _logColor(color.darker, `dark ${type}`); } function analogous(colors) { _logPrimary(colors.primary); _logSecondary(colors.secondaries[0]); _logSecondary(colors.secondaries[1]); _logSecondary(colors.secondaries[2]); _logSecondary(colors.secondaries[3]); } function complementary(colors) { _logPrimary(colors.primary); _logSecondary(colors.secondaries[0]); } function _logPrimary(color) { _logColors(color); _separator(); } function _logSecondary(color) { _logColors(color, 'secondary'); _separator(); } function _separator() { console.log('------------------------------'); }