CLI Styles

1.0.0 · maintenance · verified Wed Apr 22

cli-styles is a lightweight utility library designed to standardize the visual appearance of command-line interface (CLI) applications, particularly in relation to user prompts. Instead of being a prompt solution itself, it provides a consistent set of styles for user input (e.g., default, password, invisible), status indicators (question, success, error marks), and prompt delimiters (e.g., '›'). This enables different prompt libraries to adopt a uniform look and feel. The package is currently at version 1.0.0, released in February 2020, and does not appear to be under active development, maintaining a stable API. It is frequently used in conjunction with `prompt-skeleton` and a suite of dedicated prompt libraries like `text-prompt` and `select-prompt` to ensure visual coherence across an application's CLI interactions. Its primary differentiator is its focus on providing reusable styling primitives rather than a full-fledged prompt system.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to import 'cli-styles' and apply its input styles, status indicators, and delimiters to a basic readline prompt to achieve a consistent look.

import cliStyles from 'cli-styles';
import readline from 'readline';

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

async function runPrompt() {
  // Using the question indicator and delimiter
  process.stdout.write(cliStyles.indicator.question + ' ' + cliStyles.delimiter + ' ');

  // Using default input style
  const question = cliStyles.input.default('What is your name? ');
  rl.question(question, (name) => {
    if (name.length > 0) {
      process.stdout.write(cliStyles.indicator.success + ' ' + cliStyles.delimiter + ' ');
      console.log(cliStyles.input.default(`Hello, ${name}!`));
    } else {
      process.stdout.write(cliStyles.indicator.error + ' ' + cliStyles.delimiter + ' ');
      console.log(cliStyles.input.default('Name cannot be empty.'));
    }
    rl.close();
  });
}

runPrompt();

view raw JSON →