/colorstorm

A color theme generator for editors and terminal emulators

Primary LanguageZigMIT LicenseMIT

🎨 A command line tool to generate color themes for editors (Vim, VSCode, Sublime, Atom) and terminal emulators (iTerm2, Hyper).

MIT License GitHub release build


Contents

  1. Install
  2. Usage
  3. Creating Themes
  4. Screenshots

Install

Arch Linux (AUR)

yay -S colorstorm

Other distros

In progress, check back soon!

From Source

  • Install Zig
  • Run: make release
  • Move zig-out/bin/colorstorm into your PATH

Usage

$ colorstorm [-o outdir] [-g generator] input

-o|--outdir: The directory to output themes to (default: "./colorstorm-out")
-g|--gen:    Generator type (default: all)
             Available types: all, atom, vscode, vim, sublime, iterm, hyper
-i|--input:  The JSON input file to use for generating the themes
             See: https://github.com/benbusby/colorstorm#creating-themes

Supported Editors

  • Vim
  • VSCode
  • Sublime
  • Atom

Supported Terminal Emulators

  • iTerm2
  • Hyper

Creating Themes

You can create themes for all available editors and terminal emulators using a single JSON file to define the colors. The file should be an array (even for one theme), with the following structure:

[
    {
        "theme_name_full": "Moonside",
        "theme_name_safe": "moonside",
        "color_bg_main": "#000000",
        "color_bg_alt1": "#080808",
        "color_bg_alt2": "#131313",
        "color_fg": "#ffffff",
        "color_linenr": "#9e5dc8",
        "color_select": "#5a1359",
        "color_type": "#f6f929",
        "color_accent": "#fd35fa",
        "color_string": "#ff6693",
        "color_boolean": "#fd9935",
        "color_variable": "#c67ff4",
        "color_number": "#aaef64",
        "color_comment": "#7ca454",
        "color_function": "#5e9aff"
    },
    {
        ...
    }
]

Value names are mostly self-explanatory, but here is a breakdown of what each field means:

Field Explanation
theme_name_full The full name of the theme that will appear in theme file documentation
theme_name_safe The value to use as the filename for the theme
color_bg_main Primary background color
color_bg_alt1 A separate background color to use for UI elements like file trees and tab bars
color_bg_alt2 A separate background color to use for UI elements like line numbers and gutters
color_fg The foreground color (all generic text)
color_linenr The color used for line numbers
color_select The color used for selecting a word or lines of text
color_type The color used for variable types (int, float, etc)
color_accent An "accent" color -- typically used for special cases (like current line number highlight or badge backgrounds)
color_string The color used for strings
color_boolean The color used for boolean values
color_variable The color used for variable instances and constants
color_number The color used for numeric values
color_comment The color used for code comments
color_function The color used for function names

Screenshots

Vim Installs VSCode Installs Package Control APM

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