Skip to content

mswift42/themecreator

Repository files navigation

Screenshot

Create Color Themes for IntelliJ Editors, Atom, Emacs, TextAdept, Textmate, Vim and Gnome Terminal.

Installation Instructions:

No installation necessary. ThemeCreator is hosted on gh-pages. ThemeCreator supports Firefox, Chrome, Edge and Opera, as these are so far the only ones to support input-color.

Usage:

Add themename and themeauthor, pick or enter the desired colors, then download the theme for the editor of your choice.

JetBrains Editors:

Download Intellij theme and go to File > Settings > Editor > Color Scheme click on the Gear Icon and Import the downloaded icls file.

To create an UI Theme plugin for jetbrains editors >= 191, go to iui to generate one with your newly generated theme.

Textmate:

Download the textmate theme, then follow your editors instructions. For Visual Studio Code you can use the yeoman code generator.

Atom:

Generate a new color theme from within atom. Then Download the atom theme you made with ThemeCreator, and download base.less and syntax-variables.less. Now copy the 3 files, colors.less, base.less and syntax-variables.less into the styles/ folder of the Atom generated theme.

Emacs:

Download the emacs file. Add a fitting package description to the first line. You can try your new theme by visiting your new theme with C-x C-f <filename.el>. You can install your new theme with: M-x package-install-file <filename.el>.

TextAdept:

Download the TextAdept file. Copy it into your ~/.textadept/themes directory, edit your preferences to use it and restart TextAdept.

Vim:

Download the vim theme and copy it to your colors folder. For Vim that's usually ~/.vim/colors, for Neovim it's ~/.config/nvim/colors .

Make sure termguicolors is enabled by adding

set termguicolors

to your .vimrc / init.vim.

Gnome Terminal:

Download the gnome terminal file. Make the script executable with chmod +x <file>. Run the script: </folder/to/script/themefile.sh> .

Random Colors:

ThemeCreator supports random colors from 4 different color palettes, or you can generate random colors from a custom color palette by providing CIE Lch Lightness and Saturation values for your theme colors. Hue values will be assigned randomly. Lightness values range from 0 (black) to 100 (white), Saturation from 0 (grey) to 100 (full saturation).

The used values for the warm, soft, pop and muted palettes can be found in colors.cljs. For example the soft palette uses 57.292 and 25.738 Lightness and saturation values for a dark background, and 44.921 and 25.738 for a light background.

Storage:

By pressing the store theme button, you can store your theme and custom Lightness and Saturation values to local Storage.

Contributing:

All contributions are welcome.

To run themecreator locally:

clone or download this repo.

install clojure und the clojure cli tools.

go into the app.core directory and run clj -M:fig:build.

Extras:

Dockerfile and the companion scripts build-run.sh and kill-clean.sh allow you to deploy ThemeCreator in a Docker container. You will need the Docker CLI tools to use them.

build-sh.run will expose the container port 9500 to the host/VM where you are running ThemeCreator. If you are running ThemeCreator inside Dockeer inside a VM, you may also need to add a port translation for your virtual machine to access ThemeCreator from you host.

This has been tested on a Ubuntu 20.04 server VM running on VirtualBox and on KVM directly.

Screenshots:

Custom Palette (Chrome): Screenshot

Light Theme (Firefox): Screenshot

Download Theme (Firefox): Screenshot

Editor Comparisons:

You can find screenshots of the same theme with different Editors in the Wiki.

Implementation:

ThemeCreator is a Clojurescript app, in particular it uses the wonderful reagent framework. The themetemplates are compiled and rendered using mustache, goog.net.XhrIo is used to load the templates, and goog.color was helpful for some color conversions.

Thanks:

ThemeCreator's maintenance has been made a lot easier with the support of

JetBrains

Thank you JetBrains.