Skip to content

benbusby/colorstorm

Repository files navigation

🎨 A command line TUI to generate color themes for Vim, VSCode, and Sublime.

MIT License GitHub release build


img/colorstorm_example.png

Contents

  1. Features
  2. Install
  3. Usage
  4. Demos
  5. Examples

Features

  • Full TUI for creating themes for Vim / Neovim, VSCode, and Sublime
  • Different built-in color theme generators:
    • Random
    • Monochromatic
    • No color (black and white)
  • Define and edit colors using hex, RGB, and/or HSV
  • Import images to use as a reference
  • Color picker for sampling colors from an image directly
  • Light and dark theme creation support
  • Export draft theme files (including reference image if applicable) to a single portable JSON file

Install

Binaries

Pre-compiled binaries are available for Windows, macOS, and Linux on the releases page.

From Source

  • Install Go
  • Run: go build
  • Move ./colorstorm into your $PATH

Usage

colorstorm
  -c string
    	seed color (hex)
  -f string
    	load theme json file
  -i string
    	jpg or png reference image
  -l	create a light theme
  -m	generate monochrome theme
  -q int
    	color quantization amount [0-255] (default 0)
  -x	initialize without any colors

Inside Colorstorm

Default:
Tab/Arrow Keys/Enter -- navigation

If an image was imported:
`   -- toggle image visibility
~   -- toggle image mode (visual vs list of colors)
p   -- initiate color picker

Color picker shortcuts:
Arrow keys -- move picker location
Enter      -- confirm color selection
Escape     -- cancel color picker

Supported Editors

  • Vim
  • VSCode
  • Sublime

Demos

Generate Dark Theme

$ colorstorm

This command will generate a random editable dark color theme. Re-running the command will result in a different theme each time.

demos/demo.tape.gif

Generate Light Theme

$ colorstorm -l

This command will generate a random editable light color theme. Re-running the command will result in a different theme each time.

demos/demo_light.tape.gif

Generate Monochromatic Theme

$ colorstorm -m

This command will generate a random monochromatic color theme. Re-running the command will result in a different theme each time.

demos/demo_mono.tape.gif

Using a Reference Image

You can pass a reference image to colorstorm, which will convert it into a set of colored ASCII half-block characters and render it above the theme editor.

When an image is provided, you can toggle between viewing the image and the list of colors in the image using the ~ key.

Demo Image:

demos/img/aragon16.png

$ colorstorm -i <path to image>

demos/demo_img.tape.gif

Using the Color Picker

When passing a reference image to colorstorm, you can use the built-in color picker to select colors directly from the image to use in your theme.

When a theme field is focused (i.e. Background, Foreground, etc), press p to enable the color picker. A white crosshair will appear on the image, and you can use the arrow keys to move the crosshair around the image. The focused color will update with whatever color is under the cursor in real time.

Demo Image:

demos/img/borkfest.png

$ colorstorm -i <path to image>

demos/demo_picker.tape.gif

Examples

Vim Installs VSCode Installs Package Control

Earthbound

Earthbound Screenshot

Moonside

Moonside Screenshot

Zombie Threed

Zombie Threed Screenshot

Fire Spring

Fire Spring Screenshot

Devil's Machine

Devil's Machine Screenshot

Dusty Dunes

Dusty Dunes Screenshot

Magicant (Light Theme)

Magicant Screenshot

Cave of the Past (Monochrome)

Cave of the Past Screenshot