Term::ANSIColor::Gradients

A curated library of ANSI 256-color palettes for terminal display, organized into sub-modules by category. Comes with a CLI tool for browsing, previewing, and exporting gradients.

Modules

Each data module exports a %GRADIENTS hash (palette name to array-ref of ANSI 256-color indices) and a %CONTRAST hash (same keys, complementary-hue contrast palette for each gradient, computed once at load time).

Synopsis

use Term::ANSIColor::Gradients::Classic ;
use Term::ANSIColor ;

for my $idx (@{$Term::ANSIColor::Gradients::Classic::GRADIENTS{GREY}}) {
    print colored('█', "ansi$idx") ;
}
print "\n" ;

# complementary contrast palette
for my $idx (@{$Term::ANSIColor::Gradients::Classic::CONTRAST{GREY}}) {
    print colored('█', "ansi$idx") ;
}
print "\n" ;

# list all group names
use Term::ANSIColor::Gradients qw(list_groups) ;
my @groups = list_groups() ;

CLI

ansicolors_gradients [OPTIONS]

With no options, lists all available gradient names.

Options:

--gradient RE     regexp matched against gradient names (case-insensitive);
                  use 'all' to display every gradient
--bar N           characters per color stop (default: 1)
--char CHAR       character for the color bar (default: █)
--reverse         reverse the gradient direction
--fit-width       scale gradient to fit terminal width
--intensity N     shift brightness by N steps (1 unit = 0.05 HSV value);
                  positive lightens, negative darkens; hue is preserved
--contrast        show complementary-hue contrast bar and indices
--format FORMAT   text (default), perl, json, markdown, html
--load FILE       merge additional gradients from a JSON file
--help            show help

Examples:

ansicolors_gradients
ansicolors_gradients --gradient FIRE
ansicolors_gradients --gradient '^SCI_'
ansicolors_gradients --gradient blue --contrast
ansicolors_gradients --gradient all --bar 2
ansicolors_gradients --gradient SCI_VIRIDIS --reverse --intensity -4
ansicolors_gradients --gradient OCEAN --fit-width --char ░
ansicolors_gradients --gradient DIV --format json

Installation

perl Build.PL
./Build
./Build test
./Build install

License

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself (Artistic License 2.0 or GPL 3.0).

Author

Nadim Khemir nadim.khemir@gmail.com