emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/gruvbox-theme 01cb12c50c 148/258: Adding some faces to com


From: ELPA Syncer
Subject: [nongnu] elpa/gruvbox-theme 01cb12c50c 148/258: Adding some faces to company mode and Adding tooltip theme
Date: Sat, 1 Jan 2022 01:59:39 -0500 (EST)

branch: elpa/gruvbox-theme
commit 01cb12c50c3da2e2c0292c35604547538f6fa92c
Author: Shahab Shahsabvari Alavidjeh <shahab.shahsavari@outlook.com>
Commit: Shahab Shahsabvari Alavidjeh <shahab.shahsavari@outlook.com>

    Adding some faces to company mode and Adding tooltip theme
---
 .gitignore                                      |    5 +
 LICENSE                                         |   22 +
 README.md                                       |  165 +
 gruvbox-dark-hard-theme.el                      |  145 +
 gruvbox-dark-medium-theme.el                    |  145 +
 gruvbox-dark-soft-theme.el                      |  145 +
 gruvbox-light-hard-theme.el                     |  145 +
 gruvbox-light-medium-theme.el                   |  145 +
 gruvbox-light-soft-theme.el                     |  145 +
 gruvbox-theme.el                                |  160 +
 gruvbox.el                                      |  477 +++
 images/bright-colors-palette.png                |  Bin 0 -> 43718 bytes
 images/darknotes-palette.png                    |  Bin 0 -> 21623 bytes
 images/darktones-palette.png                    |  Bin 0 -> 43755 bytes
 images/faded-colors-palette.png                 |  Bin 0 -> 46227 bytes
 images/gruvbox-dark-hard-screenshot.png         |  Bin 0 -> 308419 bytes
 images/gruvbox-dark-medium-screenshot.png       |  Bin 0 -> 309263 bytes
 images/gruvbox-dark-soft-screenshot.png         |  Bin 0 -> 311263 bytes
 images/gruvbox-head.png                         |  Bin 0 -> 5641 bytes
 images/gruvbox-light-hard-screenshot.png        |  Bin 0 -> 318970 bytes
 images/gruvbox-light-medium-screenshot.png      |  Bin 0 -> 319944 bytes
 images/gruvbox-light-soft-screenshot.png        |  Bin 0 -> 321041 bytes
 images/lighttones-palette.png                   |  Bin 0 -> 42267 bytes
 images/midtones-palette.png                     |  Bin 0 -> 10718 bytes
 images/neutral-colors-palette.png               |  Bin 0 -> 43894 bytes
 images/rainbow-delimiters-palette.png           |  Bin 0 -> 29641 bytes
 images/screenshot.png                           |  Bin 0 -> 476506 bytes
 images/solonotes-palette.png                    |  Bin 0 -> 43185 bytes
 palette/.stylelintrc.json                       |   77 +
 palette/Gemfile                                 |    4 +
 palette/Gemfile.lock                            |   13 +
 palette/Gruntfile.js                            |   22 +
 palette/_gruvbox-theme-colors-components.scss   |  113 +
 palette/_gruvbox-theme-colors-dark-palette.scss |   53 +
 palette/gruvbox-theme-colors.css                | 3733 +++++++++++++++++++++++
 palette/gruvbox-theme-colors.css.map            |    7 +
 palette/gruvbox-theme-colors.scss               |    2 +
 palette/index.html                              |   22 +
 palette/js/main.js                              |  222 ++
 palette/package.json                            |   27 +
 40 files changed, 5994 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..c2a2ca2c25
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.sass-cache
+/.DS_Store
+/palette/node_modules
+*~
+\#*\#
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000..0200a98522
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Lee Machin
+Copyright (c) 2013-2016 Greduan
+Copyright (c) 2016-2017 Jason Milkins
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..1cf00bdb5f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,165 @@
+![Gruvbox Head](images/gruvbox-head.png "Gruvbox theme header")
+
+Gruvbox is a retro groove color scheme for Emacs. It is a port of the Vim
+version originally by [Pavel Pertsev](https://github.com/morhetz) found
+[here](https://github.com/morhetz/gruvbox).
+
+## Theme versions
+
+#### Gruvbox Dark Medium (aka. Gruvbox _default_)
+
+Theme name `gruvbox-dark-medium`
+
+![gruvbox-dark-medium aka. gruvbox](images/gruvbox-dark-medium-screenshot.png)
+
+#### Gruvbox Dark Soft
+
+Theme name `gruvbox-dark-soft`
+
+![gruvbox-dark-soft](images/gruvbox-dark-hard-screenshot.png)
+
+#### Gruvbox Dark Hard
+
+Theme name `gruvbox-dark-hard`
+
+![gruvbox-dark-hard](images/gruvbox-dark-soft-screenshot.png)
+
+#### Gruvbox Light Medium
+
+Theme name `gruvbox-light-medium`
+
+![gruvbox-light-medium](images/gruvbox-light-medium-screenshot.png)
+
+#### Gruvbox Light Soft
+
+Theme name `gruvbox-light-soft`
+
+![gruvbox-light-soft](images/gruvbox-light-hard-screenshot.png)
+
+#### Gruvbox Light Hard
+
+Theme name `gruvbox-light-hard`
+
+![gruvbox-light-hard](images/gruvbox-light-soft-screenshot.png)
+
+## Palette
+
+Note the dark and light tones are transposed in the light versions.
+
+![Gruvbox Palette Dark](images/darktones-palette.png "Gruvbox theme palette")
+
+![Gruvbox Palette Mid](images/midtones-palette.png "Gruvbox theme palette")
+
+![Gruvbox Palette Light](images/lighttones-palette.png "Gruvbox theme palette")
+
+![Gruvbox Palette Bright](images/bright-colors-palette.png "Gruvbox theme 
palette")
+
+![Gruvbox Palette Neutral](images/neutral-colors-palette.png "Gruvbox theme 
palette")
+
+![Gruvbox Palette Faded](images/faded-colors-palette.png "Gruvbox theme 
palette")
+
+![Gruvbox Palette Dark Notes](images/darknotes-palette.png "Gruvbox theme 
palette")
+
+![Gruvbox Palette Solo Notes](images/solonotes-palette.png "Gruvbox theme 
palette")
+
+![Gruvbox Palette Rainbow Delimiters](images/rainbow-delimiters-palette.png 
"Gruvbox theme palette")
+
+## Mode Support
+
+This theme contains custom support for the following features and plugins:
+
+- Ace jump
+- Ace window
+- [Anzu](https://github.com/syohex/emacs-anzu#customization) support
+- Comint (and the like)
+- Company
+- Diffs
+- Dired+
+- [ElScreen](https://github.com/knu/elscreen)
+- Elfeed
+- Helm
+- Highlight Indent
+- Ivy
+- Markdown
+- Magit
+- Message
+- Org
+- Popup
+- [RainbowDelimiters](http://www.emacswiki.org/emacs/RainbowDelimiters)
+- Smart modeline
+- [Smartparens](https://github.com/Fuco1/smartparens)
+- Term
+- [Ag.el](https://github.com/Wilfred/ag.el)
+- [Js2-mode](https://github.com/mooz/js2-mode)
+- [Linum-relative](https://github.com/emacsmirror/linum-relative)
+- Whitespace-mode
+
+## Installation and usage
+
+The recommended way to install the Gruvbox theme is with MELPA.
+
+### MELPA
+
+If you're an Emacs 24 user or you have a recent version of `package.el` you can
+install the Gruvbox theme from the [MELPA
+repository](http://melpa.milkbox.net/#/gruvbox-theme). The version of
+`gruvbox-theme` there will always be up-to-date.
+
+### No `package.el`
+
+The following instructions are for in the case where you don't have access to
+`package.el` for some reason.
+
+1. Download `gruvbox-theme.el`, and put it in `~/.emacs.d/themes`. For example:
+   ```shell
+   curl 
https://raw.github.com/Greduan/emacs-theme-gruvbox/master/gruvbox-theme.el > 
~/.emacs.d/themes/gruvbox-theme.el
+   ```
+
+1. Tell Emacs where to find themes in your `init.el` or `.emacs` file:
+   ```lisp
+   (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
+   ```
+
+1. Enable the theme:
+   ```
+   M-x load-theme RET gruvbox
+   ```
+   Or add the following to your `init.el` or `.emacs` file to load the theme 
at startup:
+   ```
+   (load-theme 'gruvbox t)
+   ```
+
+
+## Issues
+
+See https://github.com/greduan/emacs-theme-gruvbox/issues
+
+If you want the theme to support something please open a new issue and we'll
+try our best to make it happen. :smile:
+
+## License
+
+```
+The MIT License (MIT)
+
+Copyright (c) 2013 Lee Machin
+              2013-2016 Greduan
+              2015-2017 Jason Milkins
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
diff --git a/gruvbox-dark-hard-theme.el b/gruvbox-dark-hard-theme.el
new file mode 100644
index 0000000000..0833de4c23
--- /dev/null
+++ b/gruvbox-dark-hard-theme.el
@@ -0,0 +1,145 @@
+;;; gruvbox-dark-hard-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'gruvbox)
+
+(gruvbox-deftheme
+ gruvbox-dark-hard
+ "A retro-groove colour theme (dark version, hard contrast)"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#1d2021" "#1c1c1c")
+  (gruvbox-dark0           "#282828" "#262626")
+  (gruvbox-dark0_soft      "#32302f" "#303030")
+  (gruvbox-dark1           "#3c3836" "#3a3a3a")
+  (gruvbox-dark2           "#504945" "#4e4e4e")
+  (gruvbox-dark3           "#665c54" "#626262")
+  (gruvbox-dark4           "#7c6f64" "#767676")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#ffffc8" "#ffffd7")
+  (gruvbox-light0          "#fdf4c1" "#ffffaf")
+  (gruvbox-light0_soft     "#f4e8ba" "#ffffaf")
+  (gruvbox-light1          "#ebdbb2" "#ffdfaf")
+  (gruvbox-light2          "#d5c4a1" "#bcbcbc")
+  (gruvbox-light3          "#bdae93" "#a8a8a8")
+  (gruvbox-light4          "#a89984" "#949494")
+
+  (gruvbox-bright_red      "#fb4933" "#d75f5f")
+  (gruvbox-bright_green    "#b8bb26" "#afaf00")
+  (gruvbox-bright_yellow   "#fabd2f" "#ffaf00")
+  (gruvbox-bright_blue     "#83a598" "#87afaf")
+  (gruvbox-bright_purple   "#d3869b" "#d787af")
+  (gruvbox-bright_aqua     "#8ec07c" "#87af87")
+  (gruvbox-bright_orange   "#fe8019" "#ff8700")
+
+  (gruvbox-neutral_red     "#fb4934" "#d75f5f")
+  (gruvbox-neutral_green   "#b8bb26" "#afaf00")
+  (gruvbox-neutral_yellow  "#fabd2f" "#ffaf00")
+  (gruvbox-neutral_blue    "#83a598" "#87afaf")
+  (gruvbox-neutral_purple  "#d3869b" "#d787af")
+  (gruvbox-neutral_aqua    "#8ec07c" "#87af87")
+  (gruvbox-neutral_orange  "#fe8019" "#ff8700")
+
+  (gruvbox-faded_red       "#9d0006" "#870000")
+  (gruvbox-faded_green     "#79740e" "#878700")
+  (gruvbox-faded_yellow    "#b57614" "#af8700")
+  (gruvbox-faded_blue      "#076678" "#005f87")
+  (gruvbox-faded_purple    "#8f3f71" "#875f87")
+  (gruvbox-faded_aqua      "#427b58" "#5f8787")
+  (gruvbox-faded_orange    "#af3a03" "#af5f00")
+
+  (gruvbox-dark_red        "#421E1E" "#5f0000")
+  (gruvbox-dark_blue       "#2B3C44" "#000087")
+  (gruvbox-dark_aqua       "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvbox-darkslategray4  "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0_hard))
+
+ (custom-theme-set-variables 'gruvbox-dark-hard
+                             `(ansi-color-names-vector
+                               [,gruvbox-dark1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox-dark-hard)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-dark-hard-theme.el ends here
diff --git a/gruvbox-dark-medium-theme.el b/gruvbox-dark-medium-theme.el
new file mode 100644
index 0000000000..eff2651641
--- /dev/null
+++ b/gruvbox-dark-medium-theme.el
@@ -0,0 +1,145 @@
+;;; gruvbox-dark-medium-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'gruvbox)
+
+(gruvbox-deftheme
+ gruvbox-dark-medium
+ "A retro-groove colour theme (dark version, medium contrast)"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#1d2021" "#1c1c1c")
+  (gruvbox-dark0           "#282828" "#262626")
+  (gruvbox-dark0_soft      "#32302f" "#303030")
+  (gruvbox-dark1           "#3c3836" "#3a3a3a")
+  (gruvbox-dark2           "#504945" "#4e4e4e")
+  (gruvbox-dark3           "#665c54" "#626262")
+  (gruvbox-dark4           "#7c6f64" "#767676")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#ffffc8" "#ffffd7")
+  (gruvbox-light0          "#fdf4c1" "#ffffaf")
+  (gruvbox-light0_soft     "#f4e8ba" "#ffffaf")
+  (gruvbox-light1          "#ebdbb2" "#ffdfaf")
+  (gruvbox-light2          "#d5c4a1" "#bcbcbc")
+  (gruvbox-light3          "#bdae93" "#a8a8a8")
+  (gruvbox-light4          "#a89984" "#949494")
+
+  (gruvbox-bright_red      "#fb4933" "#d75f5f")
+  (gruvbox-bright_green    "#b8bb26" "#afaf00")
+  (gruvbox-bright_yellow   "#fabd2f" "#ffaf00")
+  (gruvbox-bright_blue     "#83a598" "#87afaf")
+  (gruvbox-bright_purple   "#d3869b" "#d787af")
+  (gruvbox-bright_aqua     "#8ec07c" "#87af87")
+  (gruvbox-bright_orange   "#fe8019" "#ff8700")
+
+  (gruvbox-neutral_red     "#fb4934" "#d75f5f")
+  (gruvbox-neutral_green   "#b8bb26" "#afaf00")
+  (gruvbox-neutral_yellow  "#fabd2f" "#ffaf00")
+  (gruvbox-neutral_blue    "#83a598" "#87afaf")
+  (gruvbox-neutral_purple  "#d3869b" "#d787af")
+  (gruvbox-neutral_aqua    "#8ec07c" "#87af87")
+  (gruvbox-neutral_orange  "#fe8019" "#ff8700")
+
+  (gruvbox-faded_red       "#9d0006" "#870000")
+  (gruvbox-faded_green     "#79740e" "#878700")
+  (gruvbox-faded_yellow    "#b57614" "#af8700")
+  (gruvbox-faded_blue      "#076678" "#005f87")
+  (gruvbox-faded_purple    "#8f3f71" "#875f87")
+  (gruvbox-faded_aqua      "#427b58" "#5f8787")
+  (gruvbox-faded_orange    "#af3a03" "#af5f00")
+
+  (gruvbox-dark_red        "#421E1E" "#5f0000")
+  (gruvbox-dark_blue       "#2B3C44" "#000087")
+  (gruvbox-dark_aqua       "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvbox-darkslategray4  "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0))
+
+ (custom-theme-set-variables 'gruvbox-dark-medium
+                             `(ansi-color-names-vector
+                               [,gruvbox-dark1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox-dark-medium)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-dark-medium-theme.el ends here
diff --git a/gruvbox-dark-soft-theme.el b/gruvbox-dark-soft-theme.el
new file mode 100644
index 0000000000..e861ad202a
--- /dev/null
+++ b/gruvbox-dark-soft-theme.el
@@ -0,0 +1,145 @@
+;;; gruvbox-dark-soft-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'gruvbox)
+
+(gruvbox-deftheme
+ gruvbox-dark-soft
+ "A retro-groove colour theme (dark version, soft contrast)"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#1d2021" "#1c1c1c")
+  (gruvbox-dark0           "#282828" "#262626")
+  (gruvbox-dark0_soft      "#32302f" "#303030")
+  (gruvbox-dark1           "#3c3836" "#3a3a3a")
+  (gruvbox-dark2           "#504945" "#4e4e4e")
+  (gruvbox-dark3           "#665c54" "#626262")
+  (gruvbox-dark4           "#7c6f64" "#767676")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#ffffc8" "#ffffd7")
+  (gruvbox-light0          "#fdf4c1" "#ffffaf")
+  (gruvbox-light0_soft     "#f4e8ba" "#ffffaf")
+  (gruvbox-light1          "#ebdbb2" "#ffdfaf")
+  (gruvbox-light2          "#d5c4a1" "#bcbcbc")
+  (gruvbox-light3          "#bdae93" "#a8a8a8")
+  (gruvbox-light4          "#a89984" "#949494")
+
+  (gruvbox-bright_red      "#fb4933" "#d75f5f")
+  (gruvbox-bright_green    "#b8bb26" "#afaf00")
+  (gruvbox-bright_yellow   "#fabd2f" "#ffaf00")
+  (gruvbox-bright_blue     "#83a598" "#87afaf")
+  (gruvbox-bright_purple   "#d3869b" "#d787af")
+  (gruvbox-bright_aqua     "#8ec07c" "#87af87")
+  (gruvbox-bright_orange   "#fe8019" "#ff8700")
+
+  (gruvbox-neutral_red     "#fb4934" "#d75f5f")
+  (gruvbox-neutral_green   "#b8bb26" "#afaf00")
+  (gruvbox-neutral_yellow  "#fabd2f" "#ffaf00")
+  (gruvbox-neutral_blue    "#83a598" "#87afaf")
+  (gruvbox-neutral_purple  "#d3869b" "#d787af")
+  (gruvbox-neutral_aqua    "#8ec07c" "#87af87")
+  (gruvbox-neutral_orange  "#fe8019" "#ff8700")
+
+  (gruvbox-faded_red       "#9d0006" "#870000")
+  (gruvbox-faded_green     "#79740e" "#878700")
+  (gruvbox-faded_yellow    "#b57614" "#af8700")
+  (gruvbox-faded_blue      "#076678" "#005f87")
+  (gruvbox-faded_purple    "#8f3f71" "#875f87")
+  (gruvbox-faded_aqua      "#427b58" "#5f8787")
+  (gruvbox-faded_orange    "#af3a03" "#af5f00")
+
+  (gruvbox-dark_red        "#421E1E" "#5f0000")
+  (gruvbox-dark_blue       "#2B3C44" "#000087")
+  (gruvbox-dark_aqua       "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvbox-darkslategray4  "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0_soft))
+
+ (custom-theme-set-variables 'gruvbox-dark-soft
+                             `(ansi-color-names-vector
+                               [,gruvbox-dark1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox-dark-soft)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-dark-soft-theme.el ends here
diff --git a/gruvbox-light-hard-theme.el b/gruvbox-light-hard-theme.el
new file mode 100644
index 0000000000..0355024dfa
--- /dev/null
+++ b/gruvbox-light-hard-theme.el
@@ -0,0 +1,145 @@
+;;; gruvbox-light-hard-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'gruvbox)
+
+(gruvbox-deftheme
+ gruvbox-light-hard
+ "A retro-groove colour theme (light version, hard contrast)"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#f9f5d7" "#ffffd7")
+  (gruvbox-dark0           "#fbf1c7" "#ffffaf")
+  (gruvbox-dark0_soft      "#f2e5bc" "#ffffaf")
+  (gruvbox-dark1           "#ebdbb2" "#ffdfaf")
+  (gruvbox-dark2           "#d5c4a1" "#bcbcbc")
+  (gruvbox-dark3           "#bdae93" "#a8a8a8")
+  (gruvbox-dark4           "#a89984" "#949494")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#1d2021" "#1c1c1c")
+  (gruvbox-light0          "#282828" "#262626")
+  (gruvbox-light0_soft     "#32302f" "#303030")
+  (gruvbox-light1          "#3c3836" "#3a3a3a")
+  (gruvbox-light2          "#504945" "#4e4e4e")
+  (gruvbox-light3          "#665c54" "#626262")
+  (gruvbox-light4          "#7c6f64" "#767676")
+
+  (gruvbox-bright_red      "#cc241d" "#870000")
+  (gruvbox-bright_green    "#98971a" "#878700")
+  (gruvbox-bright_yellow   "#d79921" "#af8700")
+  (gruvbox-bright_blue     "#458588" "#005f87")
+  (gruvbox-bright_purple   "#b16286" "#875f87")
+  (gruvbox-bright_aqua     "#689d6a" "#5f8787")
+  (gruvbox-bright_orange   "#d65d0e" "#af5f00")
+
+  (gruvbox-neutral_red     "#9d0006" "#870000")
+  (gruvbox-neutral_green   "#79740e" "#878700")
+  (gruvbox-neutral_yellow  "#b57614" "#af8700")
+  (gruvbox-neutral_blue    "#076678" "#005f87")
+  (gruvbox-neutral_purple  "#8f3f71" "#875f87")
+  (gruvbox-neutral_aqua    "#427b58" "#5f8787")
+  (gruvbox-neutral_orange  "#af3a03" "#af5f00")
+
+  (gruvbox-faded_red       "#fb4933" "#d75f5f")
+  (gruvbox-faded_green     "#b8bb26" "#afaf00")
+  (gruvbox-faded_yellow    "#fabd2f" "#ffaf00")
+  (gruvbox-faded_blue      "#83a598" "#87afaf")
+  (gruvbox-faded_purple    "#d3869b" "#d787af")
+  (gruvbox-faded_aqua      "#8ec07c" "#87af87")
+  (gruvbox-faded_orange    "#fe8019" "#ff8700")
+
+  (gruvbox-dark_red        "#421E1E" "#5f0000")
+  (gruvbox-dark_blue       "#2B3C44" "#000087")
+  (gruvbox-dark_aqua       "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvbox-darkslategray4  "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0_hard))
+
+ (custom-theme-set-variables 'gruvbox-light-hard
+                             `(ansi-color-names-vector
+                               [,gruvbox-dark1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox-light-hard)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-light-hard-theme.el ends here
diff --git a/gruvbox-light-medium-theme.el b/gruvbox-light-medium-theme.el
new file mode 100644
index 0000000000..01b5beba2d
--- /dev/null
+++ b/gruvbox-light-medium-theme.el
@@ -0,0 +1,145 @@
+;;; gruvbox-light-medium-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'gruvbox)
+
+(gruvbox-deftheme
+ gruvbox-light-medium
+ "A retro-groove colour theme (light version, medium contrast)"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#f9f5d7" "#ffffd7")
+  (gruvbox-dark0           "#fbf1c7" "#ffffaf")
+  (gruvbox-dark0_soft      "#f2e5bc" "#ffffaf")
+  (gruvbox-dark1           "#ebdbb2" "#ffdfaf")
+  (gruvbox-dark2           "#d5c4a1" "#bcbcbc")
+  (gruvbox-dark3           "#bdae93" "#a8a8a8")
+  (gruvbox-dark4           "#a89984" "#949494")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#1d2021" "#1c1c1c")
+  (gruvbox-light0          "#282828" "#262626")
+  (gruvbox-light0_soft     "#32302f" "#303030")
+  (gruvbox-light1          "#3c3836" "#3a3a3a")
+  (gruvbox-light2          "#504945" "#4e4e4e")
+  (gruvbox-light3          "#665c54" "#626262")
+  (gruvbox-light4          "#7c6f64" "#767676")
+
+  (gruvbox-bright_red      "#cc241d" "#870000")
+  (gruvbox-bright_green    "#98971a" "#878700")
+  (gruvbox-bright_yellow   "#d79921" "#af8700")
+  (gruvbox-bright_blue     "#458588" "#005f87")
+  (gruvbox-bright_purple   "#b16286" "#875f87")
+  (gruvbox-bright_aqua     "#689d6a" "#5f8787")
+  (gruvbox-bright_orange   "#d65d0e" "#af5f00")
+
+  (gruvbox-neutral_red     "#9d0006" "#870000")
+  (gruvbox-neutral_green   "#79740e" "#878700")
+  (gruvbox-neutral_yellow  "#b57614" "#af8700")
+  (gruvbox-neutral_blue    "#076678" "#005f87")
+  (gruvbox-neutral_purple  "#8f3f71" "#875f87")
+  (gruvbox-neutral_aqua    "#427b58" "#5f8787")
+  (gruvbox-neutral_orange  "#af3a03" "#af5f00")
+
+  (gruvbox-faded_red       "#fb4933" "#d75f5f")
+  (gruvbox-faded_green     "#b8bb26" "#afaf00")
+  (gruvbox-faded_yellow    "#fabd2f" "#ffaf00")
+  (gruvbox-faded_blue      "#83a598" "#87afaf")
+  (gruvbox-faded_purple    "#d3869b" "#d787af")
+  (gruvbox-faded_aqua      "#8ec07c" "#87af87")
+  (gruvbox-faded_orange    "#fe8019" "#ff8700")
+
+  (gruvbox-dark_red        "#421E1E" "#5f0000")
+  (gruvbox-dark_blue       "#2B3C44" "#000087")
+  (gruvbox-dark_aqua       "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvbox-darkslategray4  "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0))
+
+ (custom-theme-set-variables 'gruvbox-light-medium
+                             `(ansi-color-names-vector
+                               [,gruvbox-dark1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox-light-medium)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-light-medium-theme.el ends here
diff --git a/gruvbox-light-soft-theme.el b/gruvbox-light-soft-theme.el
new file mode 100644
index 0000000000..adf68ee0b6
--- /dev/null
+++ b/gruvbox-light-soft-theme.el
@@ -0,0 +1,145 @@
+;;; gruvbox-light-soft-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'gruvbox)
+
+(gruvbox-deftheme
+ gruvbox-light-soft
+ "A retro-groove colour theme (light version)"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#f9f5d7" "#ffffd7")
+  (gruvbox-dark0           "#fbf1c7" "#ffffaf")
+  (gruvbox-dark0_soft      "#f2e5bc" "#ffffaf")
+  (gruvbox-dark1           "#ebdbb2" "#ffdfaf")
+  (gruvbox-dark2           "#d5c4a1" "#bcbcbc")
+  (gruvbox-dark3           "#bdae93" "#a8a8a8")
+  (gruvbox-dark4           "#a89984" "#949494")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#1d2021" "#1c1c1c")
+  (gruvbox-light0          "#282828" "#262626")
+  (gruvbox-light0_soft     "#32302f" "#303030")
+  (gruvbox-light1          "#3c3836" "#3a3a3a")
+  (gruvbox-light2          "#504945" "#4e4e4e")
+  (gruvbox-light3          "#665c54" "#626262")
+  (gruvbox-light4          "#7c6f64" "#767676")
+
+  (gruvbox-bright_red      "#cc241d" "#870000")
+  (gruvbox-bright_green    "#98971a" "#878700")
+  (gruvbox-bright_yellow   "#d79921" "#af8700")
+  (gruvbox-bright_blue     "#458588" "#005f87")
+  (gruvbox-bright_purple   "#b16286" "#875f87")
+  (gruvbox-bright_aqua     "#689d6a" "#5f8787")
+  (gruvbox-bright_orange   "#d65d0e" "#af5f00")
+
+  (gruvbox-neutral_red     "#9d0006" "#870000")
+  (gruvbox-neutral_green   "#79740e" "#878700")
+  (gruvbox-neutral_yellow  "#b57614" "#af8700")
+  (gruvbox-neutral_blue    "#076678" "#005f87")
+  (gruvbox-neutral_purple  "#8f3f71" "#875f87")
+  (gruvbox-neutral_aqua    "#427b58" "#5f8787")
+  (gruvbox-neutral_orange  "#af3a03" "#af5f00")
+
+  (gruvbox-faded_red       "#fb4933" "#d75f5f")
+  (gruvbox-faded_green     "#b8bb26" "#afaf00")
+  (gruvbox-faded_yellow    "#fabd2f" "#ffaf00")
+  (gruvbox-faded_blue      "#83a598" "#87afaf")
+  (gruvbox-faded_purple    "#d3869b" "#d787af")
+  (gruvbox-faded_aqua      "#8ec07c" "#87af87")
+  (gruvbox-faded_orange    "#fe8019" "#ff8700")
+
+  (gruvbox-dark_red        "#421E1E" "#5f0000")
+  (gruvbox-dark_blue       "#2B3C44" "#000087")
+  (gruvbox-dark_aqua       "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvbox-darkslategray4  "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0_soft))
+
+ (custom-theme-set-variables 'gruvbox-light-soft
+                             `(ansi-color-names-vector
+                               [,gruvbox-dark1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox-light-soft)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-light-theme.el ends here
diff --git a/gruvbox-theme.el b/gruvbox-theme.el
new file mode 100644
index 0000000000..775472759c
--- /dev/null
+++ b/gruvbox-theme.el
@@ -0,0 +1,160 @@
+;;; gruvbox-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+
+
+(require 'gruvbox)
+
+
+
+(gruvbox-deftheme
+ gruvbox
+ "A retro-groove colour theme"
+
+ ((((class color) (min-colors #xFFFFFF))        ; col 1 GUI/24bit
+   ((class color) (min-colors #xFF)))           ; col 2 Xterm/256
+
+  (gruvbox-dark0_hard      "#1d2021" "#1c1c1c")
+  (gruvbox-dark0           "#282828" "#262626")
+  (gruvbox-dark0_soft      "#32302f" "#303030")
+  (gruvbox-dark1           "#3c3836" "#3a3a3a")
+  (gruvbox-dark2           "#504945" "#4e4e4e")
+  (gruvbox-dark3           "#665c54" "#626262")
+  (gruvbox-dark4           "#7c6f64" "#767676")
+
+  (gruvbox-gray            "#928374" "#8a8a8a")
+
+  (gruvbox-light0_hard     "#ffffc8" "#ffffd7")
+  (gruvbox-light0          "#fdf4c1" "#ffffaf")
+  (gruvbox-light0_soft     "#f4e8ba" "#ffffaf")
+  (gruvbox-light1          "#ebdbb2" "#ffdfaf")
+  (gruvbox-light2          "#d5c4a1" "#bcbcbc")
+  (gruvbox-light3          "#bdae93" "#a8a8a8")
+  (gruvbox-light4          "#a89984" "#949494")
+
+  (gruvbox-bright_red      "#fb4933" "#d75f5f")
+  (gruvbox-bright_green    "#b8bb26" "#afaf00")
+  (gruvbox-bright_yellow   "#fabd2f" "#ffaf00")
+  (gruvbox-bright_blue     "#83a598" "#87afaf")
+  (gruvbox-bright_purple   "#d3869b" "#d787af")
+  (gruvbox-bright_aqua     "#8ec07c" "#87af87")
+  (gruvbox-bright_orange   "#fe8019" "#ff8700")
+
+  (gruvbox-neutral_red     "#fb4934" "#d75f5f")
+  (gruvbox-neutral_green   "#b8bb26" "#afaf00")
+  (gruvbox-neutral_yellow  "#fabd2f" "#ffaf00")
+  (gruvbox-neutral_blue    "#83a598" "#87afaf")
+  (gruvbox-neutral_purple  "#d3869b" "#d787af")
+  (gruvbox-neutral_aqua    "#8ec07c" "#87af87")
+  (gruvbox-neutral_orange  "#fe8019" "#ff8700")
+
+  (gruvbox-faded_red       "#9d0006" "#870000")
+  (gruvbox-faded_green     "#79740e" "#878700")
+  (gruvbox-faded_yellow    "#b57614" "#af8700")
+  (gruvbox-faded_blue      "#076678" "#005f87")
+  (gruvbox-faded_purple    "#8f3f71" "#875f87")
+  (gruvbox-faded_aqua      "#427b58" "#5f8787")
+  (gruvbox-faded_orange    "#af3a03" "#af5f00")
+
+  (gruvbox-dark_red             "#421E1E" "#5f0000")
+  (gruvbox-dark_blue            "#2B3C44" "#000087")
+  (gruvbox-dark_aqua            "#36473A" "#005f5f")
+
+  (gruvbox-delimiter-one   "#458588" "#008787")
+  (gruvbox-delimiter-two   "#b16286" "#d75f87")
+  (gruvbox-delimiter-three "#8ec07c" "#87af87")
+  (gruvbox-delimiter-four  "#d65d0e" "#d75f00")
+  (gruvbox-white           "#FFFFFF" "#FFFFFF")
+  (gruvbox-black           "#000000" "#000000")
+  (gruvbox-sienna          "#DD6F48" "#d7875f")
+  (gruvboxslategray4       "#528B8B" "#5f8787")
+  (gruvbox-lightblue4      "#66999D" "#5fafaf")
+  (gruvbox-burlywood4      "#BBAA97" "#afaf87")
+  (gruvbox-aquamarine4     "#83A598" "#87af87")
+  (gruvbox-turquoise4      "#61ACBB" "#5fafaf")
+
+  (gruvbox-bg gruvbox-dark0))
+
+ (custom-theme-set-variables 'gruvbox
+                             `(ansi-color-names-vector
+                               [,gruvbox1
+                                ,gruvbox-neutral_red
+                                ,gruvbox-neutral_green
+                                ,gruvbox-neutral_yellow
+                                ,gruvbox-neutral_blue
+                                ,gruvbox-neutral_purple
+                                ,gruvbox-neutral_aqua
+                                ,gruvbox-light1])))
+
+
+
+
+
+
+
+
+
+
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+(provide-theme 'gruvbox)
+
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-theme.el ends here
diff --git a/gruvbox.el b/gruvbox.el
new file mode 100644
index 0000000000..fd55928002
--- /dev/null
+++ b/gruvbox.el
@@ -0,0 +1,477 @@
+;;; gruvbox-dark-theme.el --- A retro-groove colour theme for Emacs
+
+;; Copyright (c) 2013 Lee Machin
+;; Copyright (c) 2013-2016 Greduan
+;; Copyright (c) 2016-2017 Jason Milkins
+;; Copyright (c) 2017 Martijn Terpstra
+
+;; Author: Jason Milkins <jasonm23@gmail.com>
+;; (current maintainer)
+;;
+;; Author-list: Lee Machin <ljmachin@gmail.com>,
+;;              Greduan <me@greduan.com>
+;;
+;; URL: http://github.com/Greduan/emacs-theme-gruvbox
+;; Version: 1.12.0
+
+;; Package-Requires: ((autothemer "0.2"))
+
+;;; Commentary:
+
+;; Using autothemer since 1.00
+
+;; A port of the Gruvbox colorscheme for Vim, built on top of the new built-in
+;; theme support in Emacs 24.
+;;
+;; This theme contains my own modifications and it's a bit opinionated
+;; sometimes, deviating from the original because of it. I try to stay
+;; true to the original as much as possible, however. I only make
+;; changes where I would have made the changes on the original.
+;;
+;; Since there is no direct equivalent in syntax highlighting from Vim to Emacs
+;; some stuff may look different, especially in stuff like JS2-mode, where it
+;; adds stuff that Vim doesn't have, in terms of syntax.
+
+;;; Credits:
+
+;; Pavel Pertsev created the original theme for Vim, on which this port
+;; is based.
+
+;; Lee Machin created the first port of the original theme, which
+;; Greduan developed further adding support for several major modes.
+;;
+;; Jason Milkins (ocodo) has maintained the theme since 2015 and is
+;; working with the community to add further mode support and align
+;; the project more closely with Vim Gruvbox.
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+
+(require 'autothemer)
+
+(unless (>= emacs-major-version 24)
+  (error "Requires Emacs 24 or later"))
+
+;;;###autoload
+(and load-file-name
+     (boundp 'custom-theme-load-path)
+     (add-to-list 'custom-theme-load-path
+                  (file-name-as-directory
+                   (file-name-directory load-file-name))))
+
+
+
+(defmacro gruvbox-deftheme (name description palette reduced-specs &rest body)
+  `(autothemer-deftheme
+    ,name
+    ,description
+    ,palette
+    ((default                                   (:background gruvbox-bg 
:foreground gruvbox-light0))
+     (cursor                                    (:background gruvbox-light0))
+     (mode-line                                 (:background gruvbox-dark2 
:foreground gruvbox-light2 :box nil))
+     (mode-line-inactive                        (:background gruvbox-dark1 
:foreground gruvbox-light4 :box nil))
+     (fringe                                    (:background gruvbox-bg))
+     (linum                                     (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (hl-line                                   (:background gruvbox-dark1))
+     (region                                    (:background gruvbox-dark2)) 
;;selection
+
+     (secondary-selection                       (:background gruvbox-dark1))
+     (minibuffer-prompt                         (:background gruvbox-bg 
:foreground gruvbox-neutral_green :bold t))
+     (vertical-border                           (:foreground gruvbox-dark2))
+     (link                                      (:foreground 
gruvbox-faded_blue :underline t))
+     (shadow                                    (:foreground gruvbox-dark4))
+
+     ;; Built-in syntax
+
+     (font-lock-builtin-face                            (:foreground 
gruvbox-neutral_orange))
+     (font-lock-constant-face                           (:foreground 
gruvbox-neutral_purple))
+     (font-lock-comment-face                            (:foreground 
gruvbox-dark4))
+     (font-lock-function-name-face                      (:foreground 
gruvbox-neutral_yellow))
+     (font-lock-keyword-face                            (:foreground 
gruvbox-neutral_red))
+     (font-lock-string-face                             (:foreground 
gruvbox-neutral_green))
+     (font-lock-variable-name-face                      (:foreground 
gruvbox-neutral_blue))
+     (font-lock-type-face                               (:foreground 
gruvbox-neutral_purple))
+     (font-lock-warning-face                            (:foreground 
gruvbox-neutral_red :bold t))
+
+     ;; Basic faces
+     (error                                             (:foreground 
gruvbox-bright_red :bold t))
+     (success                                           (:foreground 
gruvbox-bright_green :bold t))
+     (warning                                           (:foreground 
gruvbox-bright_yellow :bold t))
+     (trailing-whitespace                               (:background 
gruvbox-neutral_red))
+     (escape-glyph                                      (:foreground 
gruvbox-bright_aqua))
+     (header-line                                       (:background 
gruvbox-dark0 :foreground gruvbox-light3 :box nil :inherit nil))
+     (highlight                                         (:background 
gruvbox-dark4 :foreground gruvbox-light0))
+     (homoglyph                                         (:foreground 
gruvbox-bright_yellow))
+     (match                                             (:foreground 
gruvbox-dark0 :background gruvbox-neutral_blue))
+
+     ;; whitespace-mode
+
+     (whitespace-space                          (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (whitespace-hspace                         (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (whitespace-tab                            (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (whitespace-newline                        (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (whitespace-trailing                       (:background gruvbox-dark1 
:foreground gruvbox-neutral_red))
+     (whitespace-line                           (:background gruvbox-dark1 
:foreground gruvbox-neutral_red))
+     (whitespace-space-before-tab               (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (whitespace-indentation                    (:background gruvbox-bg 
:foreground gruvbox-dark4))
+     (whitespace-empty                          (:background nil :foreground 
nil))
+     (whitespace-space-after-tab                (:background gruvbox-bg 
:foreground gruvbox-dark4))
+
+     ;; RainbowDelimiters
+
+     (rainbow-delimiters-depth-1-face           (:foreground 
gruvbox-delimiter-one))
+     (rainbow-delimiters-depth-2-face           (:foreground 
gruvbox-delimiter-two))
+     (rainbow-delimiters-depth-3-face           (:foreground 
gruvbox-delimiter-three))
+     (rainbow-delimiters-depth-4-face           (:foreground 
gruvbox-delimiter-four))
+     (rainbow-delimiters-depth-5-face           (:foreground 
gruvbox-delimiter-one))
+     (rainbow-delimiters-depth-6-face           (:foreground 
gruvbox-delimiter-two))
+     (rainbow-delimiters-depth-7-face           (:foreground 
gruvbox-delimiter-three))
+     (rainbow-delimiters-depth-8-face           (:foreground 
gruvbox-delimiter-four))
+     (rainbow-delimiters-depth-9-face           (:foreground 
gruvbox-delimiter-one))
+     (rainbow-delimiters-depth-10-face          (:foreground 
gruvbox-delimiter-two))
+     (rainbow-delimiters-depth-11-face          (:foreground 
gruvbox-delimiter-three))
+     (rainbow-delimiters-depth-12-face          (:foreground 
gruvbox-delimiter-four))
+     (rainbow-delimiters-unmatched-face         (:background nil :foreground 
gruvbox-light0))
+
+     ;; linum-relative
+     (linum-relative-current-face               (:background gruvbox-dark1 
:foreground gruvbox-light4))
+
+     ;; Highlight indentation mode
+     (highlight-indentation-current-column-face (:background gruvbox-dark2))
+     (highlight-indentation-face                (:background gruvbox-dark1))
+
+     ;; Highlight linum
+     (linum-highlight-face                      (:background gruvbox-dark1 
:foreground gruvbox-neutral_yellow))
+
+     ;; Smartparens
+     (sp-pair-overlay-face                      (:background gruvbox-dark2))
+     (sp-show-pair-match-face                   (:background gruvbox-dark2)) 
;; Pair tags highlight
+     (sp-show-pair-mismatch-face                (:background 
gruvbox-neutral_red)) ;; Highlight for bracket without pair
+     ;;(sp-wrap-overlay-face                     (:inherit 
'sp-wrap-overlay-face))
+     ;;(sp-wrap-tag-overlay-face                 (:inherit 
'sp-wrap-overlay-face))
+
+     ;; elscreen
+     (elscreen-tab-background-face              (:background gruvbox-bg :box 
nil)) ;; Tab bar, not the tabs
+     (elscreen-tab-control-face                 (:background gruvbox-dark2 
:foreground gruvbox-neutral_red :underline nil :box nil)) ;; The controls
+     (elscreen-tab-current-screen-face          (:background gruvbox-dark4 
:foreground gruvbox-dark0 :box nil)) ;; Current tab
+     (elscreen-tab-other-screen-face            (:background gruvbox-dark2 
:foreground gruvbox-light4 :underline nil :box nil)) ;; Inactive tab
+
+     ;; ag (The Silver Searcher)
+     (ag-hit-face                               (:foreground 
gruvbox-neutral_blue))
+     (ag-match-face                             (:foreground 
gruvbox-neutral_red))
+
+     ;; Diffs
+     (diff-changed                              (:background nil :foreground 
gruvbox-light1))
+     (diff-added                                (:background nil :foreground 
gruvbox-neutral_green))
+     (diff-removed                              (:background nil :foreground 
gruvbox-neutral_red))
+     (diff-indicator-changed                    (:inherit 'diff-changed))
+     (diff-indicator-added                      (:inherit 'diff-added))
+     (diff-indicator-removed                    (:inherit 'diff-removed))
+
+     (js2-warning                               (:underline (:color 
gruvbox-bright_yellow :style 'wave)))
+     (js2-error                                 (:underline (:color 
gruvbox-bright_red :style 'wave)))
+     (js2-external-variable                     (:underline (:color 
gruvbox-bright_aqua :style 'wave)))
+     (js2-jsdoc-tag                             (:background nil :foreground 
gruvbox-gray  ))
+     (js2-jsdoc-type                            (:background nil :foreground 
gruvbox-light4))
+     (js2-jsdoc-value                           (:background nil :foreground 
gruvbox-light3))
+     (js2-function-param                        (:background nil :foreground 
gruvbox-bright_aqua))
+     (js2-function-call                         (:background nil :foreground 
gruvbox-bright_blue))
+     (js2-instance-member                       (:background nil :foreground 
gruvbox-bright_orange))
+     (js2-private-member                        (:background nil :foreground 
gruvbox-faded_yellow))
+     (js2-private-function-call                 (:background nil :foreground 
gruvbox-faded_aqua))
+     (js2-jsdoc-html-tag-name                   (:background nil :foreground 
gruvbox-light4))
+     (js2-jsdoc-html-tag-delimiter              (:background nil :foreground 
gruvbox-light3))
+
+     ;; popup
+     (popup-face                                (:underline nil :foreground 
gruvbox-light1 :background gruvbox-dark1))
+     (popup-menu-mouse-face                     (:underline nil :foreground 
gruvbox-light0 :background gruvbox-faded_green))
+     (popup-menu-selection-face                 (:underline nil :foreground 
gruvbox-light0 :background gruvbox-faded_green))
+     (popup-tip-face                            (:underline nil :foreground 
gruvbox-light2 :background gruvbox-dark2))
+
+     ;; helm
+     (helm-M-x-key                              (:foreground 
gruvbox-neutral_orange ))
+     (helm-action                               (:foreground gruvbox-white 
:underline t))
+     (helm-bookmark-addressbook                 (:foreground 
gruvbox-neutral_red))
+     (helm-bookmark-directory                   (:foreground 
gruvbox-bright_purple))
+     (helm-bookmark-file                        (:foreground 
gruvbox-faded_blue))
+     (helm-bookmark-gnus                        (:foreground 
gruvbox-faded_purple))
+     (helm-bookmark-info                        (:foreground 
gruvbox-turquoise4))
+     (helm-bookmark-man                         (:foreground gruvbox-sienna))
+     (helm-bookmark-w3m                         (:foreground 
gruvbox-neutral_yellow))
+     (helm-buffer-directory                     (:foreground gruvbox-white 
:background gruvbox-bright_blue))
+     (helm-buffer-not-saved                     (:foreground 
gruvbox-faded_red))
+     (helm-buffer-process                       (:foreground 
gruvbox-burlywood4))
+     (helm-buffer-saved-out                     (:foreground 
gruvbox-bright_red))
+     (helm-buffer-size                          (:foreground 
gruvbox-bright_purple))
+     (helm-candidate-number                     (:foreground 
gruvbox-neutral_green))
+     (helm-ff-directory                         (:foreground 
gruvbox-neutral_purple))
+     (helm-ff-executable                        (:foreground 
gruvbox-turquoise4))
+     (helm-ff-file                              (:foreground gruvbox-sienna))
+     (helm-ff-invalid-symlink                   (:foreground gruvbox-white 
:background gruvbox-bright_red))
+     (helm-ff-prefix                            (:foreground gruvbox-black 
:background gruvbox-neutral_yellow))
+     (helm-ff-symlink                           (:foreground 
gruvbox-neutral_orange))
+     (helm-grep-cmd-line                        (:foreground 
gruvbox-neutral_green))
+     (helm-grep-file                            (:foreground 
gruvbox-faded_purple))
+     (helm-grep-finish                          (:foreground 
gruvbox-turquoise4))
+     (helm-grep-lineno                          (:foreground 
gruvbox-neutral_orange))
+     (helm-grep-match                           (:foreground 
gruvbox-neutral_yellow))
+     (helm-grep-running                         (:foreground 
gruvbox-neutral_red))
+     (helm-header                               (:foreground 
gruvbox-aquamarine4))
+     (helm-helper                               (:foreground 
gruvbox-aquamarine4))
+     (helm-history-deleted                      (:foreground gruvbox-black 
:background gruvbox-bright_red))
+     (helm-history-remote                       (:foreground 
gruvbox-faded_red))
+     (helm-lisp-completion-info                 (:foreground 
gruvbox-faded_orange))
+     (helm-lisp-show-completion                 (:foreground 
gruvbox-bright_red))
+     (helm-locate-finish                        (:foreground gruvbox-white 
:background gruvbox-aquamarine4))
+     (helm-match                                (:foreground 
gruvbox-neutral_orange))
+     (helm-moccur-buffer                        (:foreground 
gruvbox-bright_aqua :underline t))
+     (helm-prefarg                              (:foreground 
gruvbox-turquoise4))
+     (helm-selection                            (:foreground gruvbox-white 
:background gruvbox-dark2))
+     (helm-selection-line                       (:foreground gruvbox-white 
:background gruvbox-dark2))
+     (helm-separator                            (:foreground 
gruvbox-faded_red))
+     (helm-source-header                        (:foreground gruvbox-light2))
+     (helm-visible-mark                         (:foreground gruvbox-black 
:background gruvbox-light3))
+
+     ;; company-mode
+     (company-scrollbar-bg                      (:background gruvbox-dark1))
+     (company-scrollbar-fg                      (:background 
gruvbox-dark0_soft))
+     (company-tooltip                           (:background 
gruvbox-dark0_soft))
+     (company-tooltip-annotation                (:foreground 
gruvbox-neutral_green))
+     (company-tooltip-annotation-selection      (:inherit 
'company-tooltip-annotation))
+     (company-tooltip-selection                 (:foreground 
gruvbox-neutral_purple :background gruvbox-dark2))
+     (company-tooltip-common                    (:foreground 
gruvbox-neutral_blue :underline t))
+     (company-tooltip-common-selection          (:foreground 
gruvbox-neutral_blue :underline t))
+     (company-preview-common                    (:foreground gruvbox-light0))
+     (company-preview                           (:background 
gruvbox-lightblue4))
+     (company-preview-search                    (:background 
gruvbox-turquoise4))
+     (company-template-field                    (:foreground gruvbox-black 
:background gruvbox-neutral_yellow))
+     (company-echo-common                       (:foreground 
gruvbox-faded_red))
+
+     ;; Tool Tips
+     (tooltip                                   (:foreground gruvbox-light1 
:background gruvbox-dark1))
+
+     ;; Term
+     (term-color-black                          (:foreground gruvbox-dark2 
:background gruvbox-dark1))
+     (term-color-blue                           (:foreground 
gruvbox-bright_blue :background gruvbox-neutral_blue))
+     (term-color-cyan                           (:foreground 
gruvbox-bright_aqua :background gruvbox-neutral_aqua))
+     (term-color-green                          (:foreground 
gruvbox-bright_green :background gruvbox-neutral_green))
+     (term-color-magenta                        (:foreground 
gruvbox-bright_purple :background gruvbox-neutral_purple))
+     (term-color-red                            (:foreground 
gruvbox-bright_red :background gruvbox-neutral_red))
+     (term-color-white                          (:foreground gruvbox-light1 
:background gruvbox-light1))
+     (term-color-yellow                         (:foreground 
gruvbox-bright_yellow :background gruvbox-neutral_yellow))
+     (term-default-fg-color                     (:foreground gruvbox-light0))
+     (term-default-bg-color                     (:background gruvbox-bg))
+
+     ;; message-mode
+     (message-header-to                         (:inherit 
'font-lock-variable-name-face))
+     (message-header-cc                         (:inherit 
'font-lock-variable-name-face))
+     (message-header-subject                    (:foreground 
gruvbox-neutral_orange :weight 'bold))
+     (message-header-newsgroups                 (:foreground 
gruvbox-neutral_yellow :weight 'bold))
+     (message-header-other                      (:inherit 
'font-lock-variable-name-face))
+     (message-header-name                       (:inherit 
'font-lock-keyword-face))
+     (message-header-xheader                    (:foreground 
gruvbox-faded_blue))
+     (message-separator                         (:inherit 
'font-lock-comment-face))
+     (message-cited-text                        (:inherit 
'font-lock-comment-face))
+     (message-mml                               (:foreground 
gruvbox-faded_green :weight 'bold))
+
+     ;; org-mode
+     (org-hide                                  (:foreground gruvbox-dark0))
+     (org-level-1                               (:foreground 
gruvbox-neutral_blue))
+     (org-level-2                               (:foreground 
gruvbox-neutral_yellow))
+     (org-level-3                               (:foreground 
gruvbox-neutral_purple))
+     (org-level-4                               (:foreground 
gruvbox-neutral_red))
+     (org-level-5                               (:foreground 
gruvbox-neutral_green))
+     (org-level-6                               (:foreground 
gruvbox-neutral_aqua))
+     (org-level-7                               (:foreground 
gruvbox-faded_blue))
+     (org-level-8                               (:foreground 
gruvbox-neutral_orange))
+     (org-special-keyword                       (:inherit 
'font-lock-comment-face))
+     (org-drawer                                (:inherit 
'font-lock-function-face))
+     (org-column                                (:background gruvbox-dark0))
+     (org-column-title                          (:background gruvbox-dark0 
:underline t :weight 'bold))
+     (org-warning                               (:foreground 
gruvbox-neutral_red :weight 'bold :underline nil :bold t))
+     (org-archived                              (:foreground gruvbox-light0 
:weight 'bold))
+     (org-link                                  (:foreground 
gruvbox-faded_aqua :underline t))
+     (org-footnote                              (:foreground 
gruvbox-neutral_aqua :underline t))
+     (org-ellipsis                              (:foreground gruvbox-light4 
:underline t))
+     (org-date                                  (:foreground 
gruvbox-neutral_blue :underline t))
+     (org-sexp-date                             (:foreground 
gruvbox-faded_blue :underline t))
+     (org-tag                                   (:bold t :weight 'bold))
+     (org-list-dt                               (:bold t :weight 'bold))
+     (org-todo                                  (:foreground 
gruvbox-neutral_red :weight 'bold :bold t))
+     (org-done                                  (:foreground 
gruvbox-neutral_aqua :weight 'bold :bold t))
+     (org-agenda-done                           (:foreground 
gruvbox-neutral_aqua))
+     (org-headline-done                         (:foreground 
gruvbox-neutral_aqua))
+     (org-table                                 (:foreground 
gruvbox-neutral_blue))
+     (org-formula                               (:foreground 
gruvbox-neutral_yellow))
+     (org-document-title                        (:foreground 
gruvbox-faded_blue))
+     (org-document-info                         (:foreground 
gruvbox-faded_blue))
+     (org-agenda-structure                      (:inherit 
'font-lock-comment-face))
+     (org-agenda-date-today                     (:foreground gruvbox-light0 
:weight 'bold :italic t))
+     (org-scheduled                             (:foreground 
gruvbox-neutral_yellow))
+     (org-scheduled-today                       (:foreground 
gruvbox-neutral_blue))
+     (org-scheduled-previously                  (:foreground 
gruvbox-faded_red))
+     (org-upcoming-deadline                     (:inherit 
'font-lock-keyword-face))
+     (org-deadline-announce                     (:foreground 
gruvbox-faded_red))
+     (org-time-grid                             (:foreground 
gruvbox-faded_orange))
+     (org-latex-and-related                     (:foreground 
gruvbox-neutral_blue))
+
+     ;; org-habit
+     (org-habit-clear-face                      (:background 
gruvbox-faded_blue))
+     (org-habit-clear-future-face               (:background 
gruvbox-neutral_blue))
+     (org-habit-ready-face                      (:background 
gruvbox-faded_green))
+     (org-habit-ready-future-face               (:background 
gruvbox-neutral_green))
+     (org-habit-alert-face                      (:background 
gruvbox-faded_yellow))
+     (org-habit-alert-future-face               (:background 
gruvbox-neutral_yellow))
+     (org-habit-overdue-face                    (:background 
gruvbox-faded_red))
+     (org-habit-overdue-future-face             (:background 
gruvbox-neutral_red))
+
+     ;; elfeed
+     (elfeed-search-title-face                  (:foreground gruvbox-gray  ))
+     (elfeed-search-unread-title-face           (:foreground gruvbox-light0))
+     (elfeed-search-date-face                   (:inherit 
'font-lock-builtin-face :underline t))
+     (elfeed-search-feed-face                   (:inherit 
'font-lock-variable-name-face))
+     (elfeed-search-tag-face                    (:inherit 
'font-lock-keyword-face))
+     (elfeed-search-last-update-face            (:inherit 
'font-lock-comment-face))
+     (elfeed-search-unread-count-face           (:inherit 
'font-lock-comment-face))
+     (elfeed-search-filter-face                 (:inherit 
'font-lock-string-face))
+
+     ;; Smart-mode-line
+     (sml/global                                (:foreground 
gruvbox-burlywood4 :inverse-video nil))
+     (sml/modes                                 (:foreground 
gruvbox-bright_green))
+     (sml/filename                              (:foreground 
gruvbox-bright_red :weight 'bold))
+     (sml/prefix                                (:foreground gruvbox-light1))
+     (sml/read-only                             (:foreground 
gruvbox-neutral_blue))
+     (persp-selected-face                       (:foreground 
gruvbox-neutral_orange))
+
+     ;;isearch
+     (isearch                                   (:foreground gruvbox-black 
:background gruvbox-neutral_orange))
+     (lazy-highlight                            (:foreground gruvbox-black 
:background gruvbox-neutral_yellow))
+     (isearch-fail                              (:foreground gruvbox-light0 
:background gruvbox-bright_red))
+
+     ;; markdown-mode
+     (markdown-header-face-1                    (:foreground 
gruvbox-neutral_blue))
+     (markdown-header-face-2                    (:foreground 
gruvbox-neutral_yellow))
+     (markdown-header-face-3                    (:foreground 
gruvbox-neutral_purple))
+     (markdown-header-face-4                    (:foreground 
gruvbox-neutral_red))
+     (markdown-header-face-5                    (:foreground 
gruvbox-neutral_green))
+     (markdown-header-face-6                    (:foreground 
gruvbox-neutral_aqua))
+
+     ;; anzu-mode
+     (anzu-mode-line                            (:foreground 
gruvbox-bright_yellow :weight 'bold))
+     (anzu-match-1                              (:background 
gruvbox-bright_green))
+     (anzu-match-2                              (:background 
gruvbox-faded_yellow))
+     (anzu-match-3                              (:background 
gruvbox-aquamarine4))
+     (anzu-replace-to                           (:foreground 
gruvbox-bright_yellow))
+     (anzu-replace-highlight                    (:inherit 'isearch))
+
+     ;; Ace-jump-mode
+     (ace-jump-face-background                  (:foreground gruvbox-light4 
:background gruvbox-bg :inverse-video nil))
+     (ace-jump-face-foreground                  (:foreground 
gruvbox-bright_red :background gruvbox-bg :inverse-video nil))
+
+     ;; Ace-window
+     (aw-background-face                        (:forground  gruvbox-light1 
:background gruvbox-bg :inverse-video nil))
+     (aw-leading-char-face                      (:foreground 
gruvbox-bright_red :background gruvbox-bg :height 4.0))
+
+     ;; show-paren
+     (show-paren-match                          (:background gruvbox-dark3 
:weight 'bold))
+     (show-paren-mismatch                       (:background 
gruvbox-bright_red :foreground gruvbox-dark3 :weight 'bold))
+
+     ;; ivy
+     (ivy-current-match                         (:foreground 
gruvbox-light0_hard :weight 'bold :underline t))
+     (ivy-minibuffer-match-face-1               (:foreground 
gruvbox-neutral_orange))
+     (ivy-minibuffer-match-face-2               (:foreground 
gruvbox-neutral_yellow))
+     (ivy-minibuffer-match-face-3               (:foreground 
gruvbox-faded_orange))
+     (ivy-minibuffer-match-face-4               (:foreground 
gruvbox-faded_yellow))
+
+     ;; magit
+     (magit-bisect-bad                          (:foreground 
gruvbox-faded_red))
+     (magit-bisect-good                         (:foreground 
gruvbox-faded_green))
+     (magit-bisect-skip                         (:foreground 
gruvbox-faded_yellow))
+     (magit-blame-heading                       (:foreground gruvbox-light0 
:background gruvbox-dark2))
+     (magit-branch-local                        (:foreground 
gruvbox-bright_blue))
+     (magit-branch-current                      (:underline 
gruvbox-bright_blue :inherit 'magit-branch-local))
+     (magit-branch-remote                       (:foreground 
gruvbox-bright_green))
+     (magit-cherry-equivalent                   (:foreground 
gruvbox-bright_purple))
+     (magit-cherry-unmatched                    (:foreground 
gruvbox-bright_aqua))
+     (magit-diff-added                          (:foreground 
gruvbox-neutral_green))
+     (magit-diff-added-highlight                (:foreground 
gruvbox-bright_green :inherit 'magit-diff-context-highlight))
+     (magit-diff-base                           (:background 
gruvbox-faded_yellow :foreground gruvbox-light2))
+     (magit-diff-base-highlight                 (:background 
gruvbox-faded_yellow :foreground gruvbox-light0))
+     (magit-diff-context                        (:foreground gruvbox-dark1  
:foreground gruvbox-light1))
+     (magit-diff-context-highlight              (:background gruvbox-dark1 
:foreground gruvbox-light0))
+     (magit-diff-hunk-heading                   (:background gruvbox-dark3 
:foreground gruvbox-light2))
+     (magit-diff-hunk-heading-highlight         (:background gruvbox-dark2 
:foreground gruvbox-light0))
+     (magit-diff-hunk-heading-selection         (:background gruvbox-dark2 
:foreground gruvbox-neutral_orange))
+     (magit-diff-lines-heading                  (:background 
gruvbox-faded_orange :foreground gruvbox-light0))
+     (magit-diff-removed                        (:foreground 
gruvbox-neutral_red))
+     (magit-diff-removed-highlight              (:foreground 
gruvbox-bright_red :inherit 'magit-diff-context-highlight))
+     (magit-diffstat-added                      (:foreground 
gruvbox-faded_green))
+     (magit-diffstat-removed                    (:foreground 
gruvbox-faded_red))
+     (magit-dimmed                              (:foreground gruvbox-dark4))
+     (magit-hash                                (:foreground 
gruvbox-neutral_blue))
+     (magit-log-author                          (:foreground 
gruvbox-neutral_red))
+     (magit-log-date                            (:foreground 
gruvbox-neutral_aqua))
+     (magit-log-graph                           (:foreground gruvbox-dark4))
+     (magit-process-ng                          (:foreground 
gruvbox-bright_red :weight 'bold))
+     (magit-process-ok                          (:foreground 
gruvbox-bright_green :weight 'bold))
+     (magit-reflog-amend                        (:foreground 
gruvbox-bright_purple))
+     (magit-reflog-checkout                     (:foreground 
gruvbox-bright_blue))
+     (magit-reflog-cherry-pick                  (:foreground 
gruvbox-bright_green))
+     (magit-reflog-commit                       (:foreground 
gruvbox-bright_green))
+     (magit-reflog-merge                        (:foreground 
gruvbox-bright_green))
+     (magit-reflog-other                        (:foreground 
gruvbox-bright_aqua))
+     (magit-reflog-rebase                       (:foreground 
gruvbox-bright_purple))
+     (magit-reflog-remote                       (:foreground 
gruvbox-bright_blue))
+     (magit-reflog-reset                        (:foreground 
gruvbox-bright_red))
+     (magit-refname                             (:foreground gruvbox-light4))
+     (magit-section-heading                     (:foreground 
gruvbox-bright_yellow :weight 'bold))
+     (magit-section-heading-selection           (:foreground 
gruvbox-faded_yellow))
+     (magit-section-highlight                   (:background gruvbox-dark1))
+     (magit-sequence-drop                       (:foreground 
gruvbox-faded_yellow))
+     (magit-sequence-head                       (:foreground 
gruvbox-bright_aqua))
+     (magit-sequence-part                       (:foreground 
gruvbox-bright_yellow))
+     (magit-sequence-stop                       (:foreground 
gruvbox-bright_green))
+     (magit-signature-bad                       (:foreground 
gruvbox-bright_red :weight 'bold))
+     (magit-signature-error                     (:foreground 
gruvbox-bright_red))
+     (magit-signature-expired                   (:foreground 
gruvbox-bright_orange))
+     (magit-signature-good                      (:foreground 
gruvbox-bright_green))
+     (magit-signature-revoked                   (:foreground 
gruvbox-bright_purple))
+     (magit-signature-untrusted                 (:foreground 
gruvbox-bright_blue))
+     (magit-tag                                 (:foreground 
gruvbox-bright_yellow))
+
+     ;; mu4e
+     (mu4e-header-key-face                      (:foreground 
gruvbox-bright_green :weight 'bold ))
+     (mu4e-unread-face                          (:foreground 
gruvbox-bright_blue :weight 'bold ))
+     (mu4e-highlight-face                       (:foreground 
gruvbox-neutral_green))
+
+     ;; MODE SUPPORT: dired+
+     (diredp-file-name                          (:foreground gruvbox-light2))
+     (diredp-file-suffix                        (:foreground gruvbox-light4))
+     (diredp-compressed-file-suffix             (:foreground 
gruvbox-faded_blue))
+     (diredp-dir-name                           (:foreground 
gruvbox-faded_blue))
+     (diredp-dir-heading                        (:foreground 
gruvbox-bright_blue))
+     (diredp-symlink                            (:foreground 
gruvbox-bright_orange))
+     (diredp-date-time                          (:foreground gruvbox-light3))
+     (diredp-number                             (:foreground 
gruvbox-faded_blue))
+     (diredp-no-priv                            (:foreground gruvbox-dark4))
+     (diredp-other-priv                         (:foreground gruvbox-dark2))
+     (diredp-rare-priv                          (:foreground gruvbox-dark4))
+     (diredp-ignored-file-name                  (:foreground gruvbox-dark4))
+
+     (diredp-dir-priv                           (:foreground 
gruvbox-faded_blue  :background gruvbox-dark_blue))
+     (diredp-exec-priv                          (:foreground 
gruvbox-faded_blue  :background gruvbox-dark_blue))
+     (diredp-link-priv                          (:foreground 
gruvbox-faded_aqua  :background gruvbox-dark_aqua))
+     (diredp-read-priv                          (:foreground 
gruvbox-bright_red  :background gruvbox-dark_red))
+     (diredp-write-priv                         (:foreground 
gruvbox-bright_aqua :background gruvbox-dark_aqua)))
+    ,@body))
+
+(provide 'gruvbox)
+
+;; Local Variables:
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
+;; End:
+
+;;; gruvbox-dark-theme.el ends here
+
+
diff --git a/images/bright-colors-palette.png b/images/bright-colors-palette.png
new file mode 100644
index 0000000000..fb6ced1d8a
Binary files /dev/null and b/images/bright-colors-palette.png differ
diff --git a/images/darknotes-palette.png b/images/darknotes-palette.png
new file mode 100644
index 0000000000..0905f16151
Binary files /dev/null and b/images/darknotes-palette.png differ
diff --git a/images/darktones-palette.png b/images/darktones-palette.png
new file mode 100644
index 0000000000..fc88154895
Binary files /dev/null and b/images/darktones-palette.png differ
diff --git a/images/faded-colors-palette.png b/images/faded-colors-palette.png
new file mode 100644
index 0000000000..c7c701618b
Binary files /dev/null and b/images/faded-colors-palette.png differ
diff --git a/images/gruvbox-dark-hard-screenshot.png 
b/images/gruvbox-dark-hard-screenshot.png
new file mode 100644
index 0000000000..8ad57d2833
Binary files /dev/null and b/images/gruvbox-dark-hard-screenshot.png differ
diff --git a/images/gruvbox-dark-medium-screenshot.png 
b/images/gruvbox-dark-medium-screenshot.png
new file mode 100644
index 0000000000..8d6d0d9920
Binary files /dev/null and b/images/gruvbox-dark-medium-screenshot.png differ
diff --git a/images/gruvbox-dark-soft-screenshot.png 
b/images/gruvbox-dark-soft-screenshot.png
new file mode 100644
index 0000000000..3ecebd72e8
Binary files /dev/null and b/images/gruvbox-dark-soft-screenshot.png differ
diff --git a/images/gruvbox-head.png b/images/gruvbox-head.png
new file mode 100644
index 0000000000..b8ddbe7995
Binary files /dev/null and b/images/gruvbox-head.png differ
diff --git a/images/gruvbox-light-hard-screenshot.png 
b/images/gruvbox-light-hard-screenshot.png
new file mode 100644
index 0000000000..4b1a64725d
Binary files /dev/null and b/images/gruvbox-light-hard-screenshot.png differ
diff --git a/images/gruvbox-light-medium-screenshot.png 
b/images/gruvbox-light-medium-screenshot.png
new file mode 100644
index 0000000000..b52c093063
Binary files /dev/null and b/images/gruvbox-light-medium-screenshot.png differ
diff --git a/images/gruvbox-light-soft-screenshot.png 
b/images/gruvbox-light-soft-screenshot.png
new file mode 100644
index 0000000000..15a8f9b82e
Binary files /dev/null and b/images/gruvbox-light-soft-screenshot.png differ
diff --git a/images/lighttones-palette.png b/images/lighttones-palette.png
new file mode 100644
index 0000000000..edcfed26bf
Binary files /dev/null and b/images/lighttones-palette.png differ
diff --git a/images/midtones-palette.png b/images/midtones-palette.png
new file mode 100644
index 0000000000..4f8b512f1a
Binary files /dev/null and b/images/midtones-palette.png differ
diff --git a/images/neutral-colors-palette.png 
b/images/neutral-colors-palette.png
new file mode 100644
index 0000000000..3bf509824f
Binary files /dev/null and b/images/neutral-colors-palette.png differ
diff --git a/images/rainbow-delimiters-palette.png 
b/images/rainbow-delimiters-palette.png
new file mode 100644
index 0000000000..fab01ab32b
Binary files /dev/null and b/images/rainbow-delimiters-palette.png differ
diff --git a/images/screenshot.png b/images/screenshot.png
new file mode 100644
index 0000000000..af369579aa
Binary files /dev/null and b/images/screenshot.png differ
diff --git a/images/solonotes-palette.png b/images/solonotes-palette.png
new file mode 100644
index 0000000000..fffa8082ca
Binary files /dev/null and b/images/solonotes-palette.png differ
diff --git a/palette/.stylelintrc.json b/palette/.stylelintrc.json
new file mode 100644
index 0000000000..addc3ea4b7
--- /dev/null
+++ b/palette/.stylelintrc.json
@@ -0,0 +1,77 @@
+{
+  "plugins": [
+    "stylelint-order",
+    "stylelint-scss"
+  ],
+"rules": {
+    "at-rule-no-vendor-prefix": true,
+    "block-no-empty": true,
+    "block-opening-brace-space-before": "always",
+    "color-hex-case": "lower",
+    "color-hex-length": "long",
+    "color-named": "never",
+    "color-no-invalid-hex": true,
+    "declaration-bang-space-after": "never",
+    "declaration-bang-space-before": "always",
+    "declaration-block-semicolon-newline-after": "always",
+    "declaration-block-semicolon-space-before": "never",
+    "declaration-block-single-line-max-declarations": 1,
+    "declaration-block-trailing-semicolon": "always",
+    "declaration-colon-space-after": "always-single-line",
+    "declaration-colon-space-before": "never",
+    "declaration-property-value-blacklist": {
+      "/^border/": [
+        "none"
+      ]
+    },
+    "function-comma-space-after": "always-single-line",
+    "function-parentheses-space-inside": "never",
+    "function-url-quotes": "always",
+    "indentation": 2,
+    "length-zero-no-unit": true,
+    "max-nesting-depth": 1,
+    "media-feature-name-no-vendor-prefix": true,
+    "media-feature-parentheses-space-inside": "never",
+    "no-missing-end-of-source-newline": true,
+    "number-leading-zero": "always",
+    "number-no-trailing-zeros": true,
+    "property-no-unknown": true,
+    "property-no-vendor-prefix": true,
+    "rule-empty-line-before": [
+      "always-multi-line",
+      {
+        "except": [
+          "first-nested"
+        ],
+        "ignore": [
+          "after-comment"
+        ]
+      }
+    ],
+    "scss/at-extend-no-missing-placeholder": true,
+    "scss/at-function-pattern": "^[a-z]+([a-z0-9-]+[a-z0-9]+)?$",
+    "scss/at-import-partial-extension-blacklist": ["scss"],
+    "scss/at-mixin-pattern": "^[a-z]+([a-z0-9-]+[a-z0-9]+)?$",
+    "scss/dollar-variable-colon-space-after": "always",
+    "scss/dollar-variable-colon-space-before": "never",
+    "scss/dollar-variable-pattern": "^[_]?[a-z]+([a-z0-9-]+[a-z0-9]+)?$",
+    "scss/percent-placeholder-pattern": "^[a-z]+([a-z0-9-]+[a-z0-9]+)?$",
+    "scss/selector-no-redundant-nesting-selector": true,
+    "selector-class-pattern": [
+      "^[a-z0-9\\-]+$",
+      {
+        "message": "Selector should be written in lowercase with hyphens 
(selector-class-pattern)"
+      }
+    ],
+    "selector-list-comma-newline-after": "always",
+    "selector-max-compound-selectors": 3,
+    "selector-no-id": true,
+    "selector-no-qualifying-type": true,
+    "selector-no-vendor-prefix": true,
+    "selector-pseudo-element-colon-notation": "double",
+    "selector-pseudo-element-no-unknown": true,
+    "shorthand-property-no-redundant-values": true,
+    "string-quotes": "double",
+    "value-no-vendor-prefix": true
+  }
+}
diff --git a/palette/Gemfile b/palette/Gemfile
new file mode 100644
index 0000000000..c0b0261943
--- /dev/null
+++ b/palette/Gemfile
@@ -0,0 +1,4 @@
+# frozen_string_literal: true
+source "https://rubygems.org";
+
+gem "sass"
diff --git a/palette/Gemfile.lock b/palette/Gemfile.lock
new file mode 100644
index 0000000000..6ae03c14cf
--- /dev/null
+++ b/palette/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    sass (3.4.24)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  sass
+
+BUNDLED WITH
+   1.14.6
diff --git a/palette/Gruntfile.js b/palette/Gruntfile.js
new file mode 100644
index 0000000000..caad0507fd
--- /dev/null
+++ b/palette/Gruntfile.js
@@ -0,0 +1,22 @@
+module.exports = function(grunt) {
+  grunt.initConfig({
+    stylelint: {
+      all: ['*.scss']
+    },
+    sass: {
+      dist: {
+        options: {
+          style: 'expanded'
+        },
+        files: {
+          'gruvbox-theme-colors.css':
+          'gruvbox-theme-colors.scss'
+        }
+      }
+    }
+  });
+
+  grunt.loadNpmTasks('grunt-stylelint');
+  grunt.loadNpmTasks('grunt-contrib-sass');
+  grunt.registerTask('default', ['sass', 'stylelint']);
+};
diff --git a/palette/_gruvbox-theme-colors-components.scss 
b/palette/_gruvbox-theme-colors-components.scss
new file mode 100644
index 0000000000..6551fb0eee
--- /dev/null
+++ b/palette/_gruvbox-theme-colors-components.scss
@@ -0,0 +1,113 @@
+$dark: #000000;
+$light: #ffffff;
+
+@function contrast-foreground($color) {
+  $color-brightness: lightness($color);
+  $dark-text-brightness: lightness($dark);
+  $light-text-brightness: lightness($light);
+  @return if(abs($color-brightness - $light-text-brightness) > 
abs($color-brightness - $dark-text-brightness),
+  $light,
+  $dark);
+}
+
+@function bottom-bar-color($color) {
+  @return  darken($color, 12%);
+}
+
+$swatch-width: 128px;
+$swatch-height: 128px;
+
+body {
+  font-family: "SauceCodePro Nerd Font";
+  font-weight: lighter;
+  background-color: rgba(0, 0, 0, 0);
+}
+
+h1,
+h2,
+h3,
+h4,
+h5 {
+  font-weight: lighter;
+  margin: 0;
+  margin-bottom: 3px;
+}
+
+$heads: (
+  h1: 42pt,
+  h2: 38pt,
+  h3: 28pt,
+  h4: 18pt,
+  h5: 14pt
+);
+
+@each $head, $size in $heads {
+  #{$head} {
+    font-size: $size;
+  }
+}
+
+.gruvbox-swatch {
+  width: $swatch-width;
+  height: $swatch-height;
+  font-size: 10pt;
+  float: left;
+  margin: 1px 1px 0 0;
+}
+
+@each $name, $color in $gruvbox-palette {
+  .#{$name} {
+    position: relative;
+    color: contrast-foreground($color);
+    background-color: $color;
+    height: $swatch-height - 8px;
+
+    .xterm {
+      position: absolute;
+      width: 112px;
+      top: -16px;
+      right: 0;
+      padding: 3px;
+      transform-origin: right bottom;
+      transform: rotate(270deg);
+      text-align: right;
+      font-size: 7pt;
+    }
+
+    .content {
+      position: absolute;
+      top: 5px;
+      left: 8px;
+      font-size: 10pt;
+    }
+
+    .color-label {
+      position: absolute;
+      bottom: 5px;
+      left: 8px;
+      font-size: 14pt;
+    }
+  }
+
+  .#{$name}-after {
+    height: 8px;
+    width: $swatch-width;
+    background-color: bottom-bar-color($color);
+  }
+}
+
+.separator {
+  clear: left;
+  height: 0;
+  width: 100%;
+}
+
+.group-separator {
+  clear: left;
+  height: 10px;
+  width: 100%;
+  border-bottom-color: rgba(0, 0, 0, 0.1);
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  margin-bottom: 10px;
+}
diff --git a/palette/_gruvbox-theme-colors-dark-palette.scss 
b/palette/_gruvbox-theme-colors-dark-palette.scss
new file mode 100644
index 0000000000..df2d84f87b
--- /dev/null
+++ b/palette/_gruvbox-theme-colors-dark-palette.scss
@@ -0,0 +1,53 @@
+$gruvbox-palette: (
+  gruvbox-dark0_hard:             #1d2021, gruvbox-dark0_hard-xterm:       
#1c1c1c,
+  gruvbox-dark0:                  #282828, gruvbox-dark0-xterm:            
#262626,
+  gruvbox-dark0_soft:             #32302f, gruvbox-dark0_soft-xterm:       
#303030,
+  gruvbox-dark1:                  #3c3836, gruvbox-dark1-xterm:            
#3a3a3a,
+  gruvbox-dark2:                  #504945, gruvbox-dark2-xterm:            
#4e4e4e,
+  gruvbox-dark3:                  #665c54, gruvbox-dark3-xterm:            
#626262,
+  gruvbox-dark4:                  #7c6f64, gruvbox-dark4-xterm:            
#767676,
+  gruvbox-gray:                   #928374, gruvbox-gray-xterm:             
#8a8a8a,
+  gruvbox-light0_hard:            #ffffc8, gruvbox-light0_hard-xterm:      
#ffffd7,
+  gruvbox-light0:                 #fdf4c1, gruvbox-light0-xterm:           
#ffffaf,
+  gruvbox-light0_soft:            #f4e8ba, gruvbox-light0_soft-xterm:      
#ffdfaf,
+  gruvbox-light1:                 #ebdbb2, gruvbox-light1-xterm:           
#ffdfaf,
+  gruvbox-light2:                 #d5c4a1, gruvbox-light2-xterm:           
#bcbcbc,
+  gruvbox-light3:                 #bdae93, gruvbox-light3-xterm:           
#a8a8a8,
+  gruvbox-light4:                 #a89984, gruvbox-light4-xterm:           
#949494,
+  gruvbox-bright_red:             #fb4933, gruvbox-bright_red-xterm:       
#d75f5f,
+  gruvbox-bright_green:           #b8bb26, gruvbox-bright_green-xterm:     
#afaf00,
+  gruvbox-bright_yellow:          #fabd2f, gruvbox-bright_yellow-xterm:    
#ffaf00,
+  gruvbox-bright_blue:            #83a598, gruvbox-bright_blue-xterm:      
#87afaf,
+  gruvbox-bright_purple:          #d3869b, gruvbox-bright_purple-xterm:    
#d787af,
+  gruvbox-bright_aqua:            #8ec07c, gruvbox-bright_aqua-xterm:      
#87af87,
+  gruvbox-bright_orange:          #fe8019, gruvbox-bright_orange-xterm:    
#ff8700,
+  gruvbox-neutral_red:            #fb4934, gruvbox-neutral_red-xterm:      
#d75f5f,
+  gruvbox-neutral_green:          #b8bb26, gruvbox-neutral_green-xterm:    
#afaf00,
+  gruvbox-neutral_yellow:         #fabd2f, gruvbox-neutral_yellow-xterm:   
#ffaf00,
+  gruvbox-neutral_blue:           #83a598, gruvbox-neutral_blue-xterm:     
#87afaf,
+  gruvbox-neutral_purple:         #d3869b, gruvbox-neutral_purple-xterm:   
#d787af,
+  gruvbox-neutral_aqua:           #8ec07c, gruvbox-neutral_aqua-xterm:     
#87af87,
+  gruvbox-neutral_orange:         #fe8019, gruvbox-neutral_orange-xterm:   
#ff8700,
+  gruvbox-faded_red:              #9d0006, gruvbox-faded_red-xterm:        
#870000,
+  gruvbox-faded_green:            #79740e, gruvbox-faded_green-xterm:      
#878700,
+  gruvbox-faded_yellow:           #b57614, gruvbox-faded_yellow-xterm:     
#af8700,
+  gruvbox-faded_blue:             #076678, gruvbox-faded_blue-xterm:       
#005f87,
+  gruvbox-faded_purple:           #8f3f71, gruvbox-faded_purple-xterm:     
#875f87,
+  gruvbox-faded_aqua:             #427b58, gruvbox-faded_aqua-xterm:       
#5f8787,
+  gruvbox-faded_orange:           #af3a03, gruvbox-faded_orange-xterm:     
#af5f00,
+  gruvbox-dark_red:               #421e1e, gruvbox-dark_red-xterm:         
#5f0000,
+  gruvbox-dark_blue:              #2b3c44, gruvbox-dark_blue-xterm:        
#000087,
+  gruvbox-dark_aqua:              #36473a, gruvbox-dark_aqua-xterm:        
#005f5f,
+  gruvbox-delimiter-one:          #458588, gruvbox-delimiter-one-xterm:    
#008787,
+  gruvbox-delimiter-two:          #b16286, gruvbox-delimiter-two-xterm:    
#d75f87,
+  gruvbox-delimiter-three:        #8ec07c, gruvbox-delimiter-three-xterm:  
#87af87,
+  gruvbox-delimiter-four:         #d65d0e, gruvbox-delimiter-four-xterm:   
#d75f00,
+  gruvbox-white:                  #ffffff, gruvbox-white-xterm:            
#ffffff,
+  gruvbox-black:                  #000000, gruvbox-black-xterm:            
#000000,
+  gruvbox-sienna:                 #dd6f48, gruvbox-sienna-xterm:           
#d7875f,
+  gruvbox-darkslategray4:         #528b8b, gruvbox-darkslategray4-xterm:   
#5f8787,
+  gruvbox-lightblue4:             #66999d, gruvbox-lightblue4-xterm:       
#5fafaf,
+  gruvbox-burlywood4:             #bbaa97, gruvbox-burlywood4-xterm:       
#afaf87,
+  gruvbox-aquamarine4:            #83a598, gruvbox-aquamarine4-xterm:      
#87af87,
+  gruvbox-turquoise4:             #61acbb, gruvbox-turquoise4-xterm:       
#5fafaf,
+);
diff --git a/palette/gruvbox-theme-colors.css b/palette/gruvbox-theme-colors.css
new file mode 100644
index 0000000000..797581d790
--- /dev/null
+++ b/palette/gruvbox-theme-colors.css
@@ -0,0 +1,3733 @@
+body {
+  font-family: "SauceCodePro Nerd Font";
+  font-weight: lighter;
+  background-color: transparent;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5 {
+  font-weight: lighter;
+  margin: 0;
+  margin-bottom: 3px;
+}
+
+h1 {
+  font-size: 42pt;
+}
+
+h2 {
+  font-size: 38pt;
+}
+
+h3 {
+  font-size: 28pt;
+}
+
+h4 {
+  font-size: 18pt;
+}
+
+h5 {
+  font-size: 14pt;
+}
+
+.gruvbox-swatch {
+  width: 128px;
+  height: 128px;
+  font-size: 10pt;
+  float: left;
+  margin: 1px 1px 0 0;
+}
+
+.gruvbox-dark0_hard {
+  position: relative;
+  color: #ffffff;
+  background-color: #1d2021;
+  height: 120px;
+}
+.gruvbox-dark0_hard .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark0_hard .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark0_hard .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark0_hard-after {
+  height: 8px;
+  width: 128px;
+  background-color: black;
+}
+
+.gruvbox-dark0_hard-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #1c1c1c;
+  height: 120px;
+}
+.gruvbox-dark0_hard-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark0_hard-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark0_hard-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark0_hard-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: black;
+}
+
+.gruvbox-dark0 {
+  position: relative;
+  color: #ffffff;
+  background-color: #282828;
+  height: 120px;
+}
+.gruvbox-dark0 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark0 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark0 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark0-after {
+  height: 8px;
+  width: 128px;
+  background-color: #090909;
+}
+
+.gruvbox-dark0-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #262626;
+  height: 120px;
+}
+.gruvbox-dark0-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark0-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark0-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark0-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #070707;
+}
+
+.gruvbox-dark0_soft {
+  position: relative;
+  color: #ffffff;
+  background-color: #32302f;
+  height: 120px;
+}
+.gruvbox-dark0_soft .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark0_soft .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark0_soft .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark0_soft-after {
+  height: 8px;
+  width: 128px;
+  background-color: #121211;
+}
+
+.gruvbox-dark0_soft-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #303030;
+  height: 120px;
+}
+.gruvbox-dark0_soft-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark0_soft-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark0_soft-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark0_soft-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #111111;
+}
+
+.gruvbox-dark1 {
+  position: relative;
+  color: #ffffff;
+  background-color: #3c3836;
+  height: 120px;
+}
+.gruvbox-dark1 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark1 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark1 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark1-after {
+  height: 8px;
+  width: 128px;
+  background-color: #1c1a19;
+}
+
+.gruvbox-dark1-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #3a3a3a;
+  height: 120px;
+}
+.gruvbox-dark1-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark1-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark1-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark1-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #1b1b1b;
+}
+
+.gruvbox-dark2 {
+  position: relative;
+  color: #ffffff;
+  background-color: #504945;
+  height: 120px;
+}
+.gruvbox-dark2 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark2 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark2 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark2-after {
+  height: 8px;
+  width: 128px;
+  background-color: #2f2b29;
+}
+
+.gruvbox-dark2-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #4e4e4e;
+  height: 120px;
+}
+.gruvbox-dark2-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark2-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark2-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark2-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #2f2f2f;
+}
+
+.gruvbox-dark3 {
+  position: relative;
+  color: #ffffff;
+  background-color: #665c54;
+  height: 120px;
+}
+.gruvbox-dark3 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark3 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark3 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark3-after {
+  height: 8px;
+  width: 128px;
+  background-color: #443e38;
+}
+
+.gruvbox-dark3-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #626262;
+  height: 120px;
+}
+.gruvbox-dark3-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark3-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark3-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark3-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #434343;
+}
+
+.gruvbox-dark4 {
+  position: relative;
+  color: #ffffff;
+  background-color: #7c6f64;
+  height: 120px;
+}
+.gruvbox-dark4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #5a5149;
+}
+
+.gruvbox-dark4-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #767676;
+  height: 120px;
+}
+.gruvbox-dark4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #575757;
+}
+
+.gruvbox-gray {
+  position: relative;
+  color: #000000;
+  background-color: #928374;
+  height: 120px;
+}
+.gruvbox-gray .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-gray .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-gray .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-gray-after {
+  height: 8px;
+  width: 128px;
+  background-color: #716458;
+}
+
+.gruvbox-gray-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #8a8a8a;
+  height: 120px;
+}
+.gruvbox-gray-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-gray-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-gray-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-gray-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #6b6b6b;
+}
+
+.gruvbox-light0_hard {
+  position: relative;
+  color: #000000;
+  background-color: #ffffc8;
+  height: 120px;
+}
+.gruvbox-light0_hard .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light0_hard .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light0_hard .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light0_hard-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ffff8b;
+}
+
+.gruvbox-light0_hard-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffffd7;
+  height: 120px;
+}
+.gruvbox-light0_hard-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light0_hard-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light0_hard-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light0_hard-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ffff9a;
+}
+
+.gruvbox-light0 {
+  position: relative;
+  color: #000000;
+  background-color: #fdf4c1;
+  height: 120px;
+}
+.gruvbox-light0 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light0 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light0 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light0-after {
+  height: 8px;
+  width: 128px;
+  background-color: #fbe986;
+}
+
+.gruvbox-light0-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffffaf;
+  height: 120px;
+}
+.gruvbox-light0-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light0-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light0-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light0-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ffff72;
+}
+
+.gruvbox-light0_soft {
+  position: relative;
+  color: #000000;
+  background-color: #f4e8ba;
+  height: 120px;
+}
+.gruvbox-light0_soft .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light0_soft .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light0_soft .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light0_soft-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ecd685;
+}
+
+.gruvbox-light0_soft-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffdfaf;
+  height: 120px;
+}
+.gruvbox-light0_soft-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light0_soft-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light0_soft-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light0_soft-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ffc772;
+}
+
+.gruvbox-light1 {
+  position: relative;
+  color: #000000;
+  background-color: #ebdbb2;
+  height: 120px;
+}
+.gruvbox-light1 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light1 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light1 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light1-after {
+  height: 8px;
+  width: 128px;
+  background-color: #dec481;
+}
+
+.gruvbox-light1-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffdfaf;
+  height: 120px;
+}
+.gruvbox-light1-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light1-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light1-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light1-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ffc772;
+}
+
+.gruvbox-light2 {
+  position: relative;
+  color: #000000;
+  background-color: #d5c4a1;
+  height: 120px;
+}
+.gruvbox-light2 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light2 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light2 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light2-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c2a977;
+}
+
+.gruvbox-light2-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #bcbcbc;
+  height: 120px;
+}
+.gruvbox-light2-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light2-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light2-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light2-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #9d9d9d;
+}
+
+.gruvbox-light3 {
+  position: relative;
+  color: #000000;
+  background-color: #bdae93;
+  height: 120px;
+}
+.gruvbox-light3 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light3 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light3 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light3-after {
+  height: 8px;
+  width: 128px;
+  background-color: #a6926d;
+}
+
+.gruvbox-light3-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #a8a8a8;
+  height: 120px;
+}
+.gruvbox-light3-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light3-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light3-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light3-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #898989;
+}
+
+.gruvbox-light4 {
+  position: relative;
+  color: #000000;
+  background-color: #a89984;
+  height: 120px;
+}
+.gruvbox-light4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #8c7b63;
+}
+
+.gruvbox-light4-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #949494;
+  height: 120px;
+}
+.gruvbox-light4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-light4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-light4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-light4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #757575;
+}
+
+.gruvbox-bright_red {
+  position: relative;
+  color: #000000;
+  background-color: #fb4933;
+  height: 120px;
+}
+.gruvbox-bright_red .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_red .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_red .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_red-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ec1e05;
+}
+
+.gruvbox-bright_red-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #d75f5f;
+  height: 120px;
+}
+.gruvbox-bright_red-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_red-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_red-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_red-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c73232;
+}
+
+.gruvbox-bright_green {
+  position: relative;
+  color: #ffffff;
+  background-color: #b8bb26;
+  height: 120px;
+}
+.gruvbox-bright_green .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_green .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_green .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_green-after {
+  height: 8px;
+  width: 128px;
+  background-color: #86881c;
+}
+
+.gruvbox-bright_green-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #afaf00;
+  height: 120px;
+}
+.gruvbox-bright_green-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_green-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_green-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_green-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #727200;
+}
+
+.gruvbox-bright_yellow {
+  position: relative;
+  color: #000000;
+  background-color: #fabd2f;
+  height: 120px;
+}
+.gruvbox-bright_yellow .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_yellow .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_yellow .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_yellow-after {
+  height: 8px;
+  width: 128px;
+  background-color: #e6a306;
+}
+
+.gruvbox-bright_yellow-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffaf00;
+  height: 120px;
+}
+.gruvbox-bright_yellow-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_yellow-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_yellow-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_yellow-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c28500;
+}
+
+.gruvbox-bright_blue {
+  position: relative;
+  color: #000000;
+  background-color: #83a598;
+  height: 120px;
+}
+.gruvbox-bright_blue .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_blue .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_blue .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_blue-after {
+  height: 8px;
+  width: 128px;
+  background-color: #63887a;
+}
+
+.gruvbox-bright_blue-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #87afaf;
+  height: 120px;
+}
+.gruvbox-bright_blue-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_blue-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_blue-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_blue-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #649595;
+}
+
+.gruvbox-bright_purple {
+  position: relative;
+  color: #000000;
+  background-color: #d3869b;
+  height: 120px;
+}
+.gruvbox-bright_purple .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_purple .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_purple .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_purple-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c35976;
+}
+
+.gruvbox-bright_purple-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #d787af;
+  height: 120px;
+}
+.gruvbox-bright_purple-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_purple-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_purple-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_purple-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c85990;
+}
+
+.gruvbox-bright_aqua {
+  position: relative;
+  color: #000000;
+  background-color: #8ec07c;
+  height: 120px;
+}
+.gruvbox-bright_aqua .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_aqua .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_aqua .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_aqua-after {
+  height: 8px;
+  width: 128px;
+  background-color: #6aac53;
+}
+
+.gruvbox-bright_aqua-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #87af87;
+  height: 120px;
+}
+.gruvbox-bright_aqua-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_aqua-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_aqua-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_aqua-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #649564;
+}
+
+.gruvbox-bright_orange {
+  position: relative;
+  color: #000000;
+  background-color: #fe8019;
+  height: 120px;
+}
+.gruvbox-bright_orange .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_orange .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_orange .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_orange-after {
+  height: 8px;
+  width: 128px;
+  background-color: #d96201;
+}
+
+.gruvbox-bright_orange-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ff8700;
+  height: 120px;
+}
+.gruvbox-bright_orange-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-bright_orange-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-bright_orange-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-bright_orange-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c26700;
+}
+
+.gruvbox-neutral_red {
+  position: relative;
+  color: #000000;
+  background-color: #fb4934;
+  height: 120px;
+}
+.gruvbox-neutral_red .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_red .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_red .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_red-after {
+  height: 8px;
+  width: 128px;
+  background-color: #ed1d05;
+}
+
+.gruvbox-neutral_red-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #d75f5f;
+  height: 120px;
+}
+.gruvbox-neutral_red-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_red-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_red-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_red-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c73232;
+}
+
+.gruvbox-neutral_green {
+  position: relative;
+  color: #ffffff;
+  background-color: #b8bb26;
+  height: 120px;
+}
+.gruvbox-neutral_green .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_green .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_green .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_green-after {
+  height: 8px;
+  width: 128px;
+  background-color: #86881c;
+}
+
+.gruvbox-neutral_green-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #afaf00;
+  height: 120px;
+}
+.gruvbox-neutral_green-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_green-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_green-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_green-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #727200;
+}
+
+.gruvbox-neutral_yellow {
+  position: relative;
+  color: #000000;
+  background-color: #fabd2f;
+  height: 120px;
+}
+.gruvbox-neutral_yellow .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_yellow .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_yellow .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_yellow-after {
+  height: 8px;
+  width: 128px;
+  background-color: #e6a306;
+}
+
+.gruvbox-neutral_yellow-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffaf00;
+  height: 120px;
+}
+.gruvbox-neutral_yellow-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_yellow-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_yellow-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_yellow-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c28500;
+}
+
+.gruvbox-neutral_blue {
+  position: relative;
+  color: #000000;
+  background-color: #83a598;
+  height: 120px;
+}
+.gruvbox-neutral_blue .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_blue .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_blue .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_blue-after {
+  height: 8px;
+  width: 128px;
+  background-color: #63887a;
+}
+
+.gruvbox-neutral_blue-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #87afaf;
+  height: 120px;
+}
+.gruvbox-neutral_blue-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_blue-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_blue-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_blue-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #649595;
+}
+
+.gruvbox-neutral_purple {
+  position: relative;
+  color: #000000;
+  background-color: #d3869b;
+  height: 120px;
+}
+.gruvbox-neutral_purple .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_purple .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_purple .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_purple-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c35976;
+}
+
+.gruvbox-neutral_purple-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #d787af;
+  height: 120px;
+}
+.gruvbox-neutral_purple-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_purple-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_purple-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_purple-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c85990;
+}
+
+.gruvbox-neutral_aqua {
+  position: relative;
+  color: #000000;
+  background-color: #8ec07c;
+  height: 120px;
+}
+.gruvbox-neutral_aqua .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_aqua .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_aqua .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_aqua-after {
+  height: 8px;
+  width: 128px;
+  background-color: #6aac53;
+}
+
+.gruvbox-neutral_aqua-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #87af87;
+  height: 120px;
+}
+.gruvbox-neutral_aqua-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_aqua-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_aqua-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_aqua-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #649564;
+}
+
+.gruvbox-neutral_orange {
+  position: relative;
+  color: #000000;
+  background-color: #fe8019;
+  height: 120px;
+}
+.gruvbox-neutral_orange .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_orange .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_orange .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_orange-after {
+  height: 8px;
+  width: 128px;
+  background-color: #d96201;
+}
+
+.gruvbox-neutral_orange-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ff8700;
+  height: 120px;
+}
+.gruvbox-neutral_orange-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-neutral_orange-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-neutral_orange-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-neutral_orange-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c26700;
+}
+
+.gruvbox-faded_red {
+  position: relative;
+  color: #ffffff;
+  background-color: #9d0006;
+  height: 120px;
+}
+.gruvbox-faded_red .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_red .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_red .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_red-after {
+  height: 8px;
+  width: 128px;
+  background-color: #600004;
+}
+
+.gruvbox-faded_red-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #870000;
+  height: 120px;
+}
+.gruvbox-faded_red-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_red-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_red-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_red-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #4a0000;
+}
+
+.gruvbox-faded_green {
+  position: relative;
+  color: #ffffff;
+  background-color: #79740e;
+  height: 120px;
+}
+.gruvbox-faded_green .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_green .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_green .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_green-after {
+  height: 8px;
+  width: 128px;
+  background-color: #423f08;
+}
+
+.gruvbox-faded_green-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #878700;
+  height: 120px;
+}
+.gruvbox-faded_green-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_green-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_green-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_green-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #4a4a00;
+}
+
+.gruvbox-faded_yellow {
+  position: relative;
+  color: #ffffff;
+  background-color: #b57614;
+  height: 120px;
+}
+.gruvbox-faded_yellow .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_yellow .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_yellow .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_yellow-after {
+  height: 8px;
+  width: 128px;
+  background-color: #7e520e;
+}
+
+.gruvbox-faded_yellow-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #af8700;
+  height: 120px;
+}
+.gruvbox-faded_yellow-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_yellow-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_yellow-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_yellow-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #725800;
+}
+
+.gruvbox-faded_blue {
+  position: relative;
+  color: #ffffff;
+  background-color: #076678;
+  height: 120px;
+}
+.gruvbox-faded_blue .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_blue .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_blue .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_blue-after {
+  height: 8px;
+  width: 128px;
+  background-color: #04353e;
+}
+
+.gruvbox-faded_blue-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #005f87;
+  height: 120px;
+}
+.gruvbox-faded_blue-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_blue-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_blue-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_blue-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #00344a;
+}
+
+.gruvbox-faded_purple {
+  position: relative;
+  color: #ffffff;
+  background-color: #8f3f71;
+  height: 120px;
+}
+.gruvbox-faded_purple .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_purple .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_purple .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_purple-after {
+  height: 8px;
+  width: 128px;
+  background-color: #652c4f;
+}
+
+.gruvbox-faded_purple-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #875f87;
+  height: 120px;
+}
+.gruvbox-faded_purple-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_purple-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_purple-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_purple-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #634663;
+}
+
+.gruvbox-faded_aqua {
+  position: relative;
+  color: #ffffff;
+  background-color: #427b58;
+  height: 120px;
+}
+.gruvbox-faded_aqua .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_aqua .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_aqua .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_aqua-after {
+  height: 8px;
+  width: 128px;
+  background-color: #2d533c;
+}
+
+.gruvbox-faded_aqua-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #5f8787;
+  height: 120px;
+}
+.gruvbox-faded_aqua-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_aqua-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_aqua-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_aqua-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #466363;
+}
+
+.gruvbox-faded_orange {
+  position: relative;
+  color: #ffffff;
+  background-color: #af3a03;
+  height: 120px;
+}
+.gruvbox-faded_orange .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_orange .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_orange .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_orange-after {
+  height: 8px;
+  width: 128px;
+  background-color: #732602;
+}
+
+.gruvbox-faded_orange-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #af5f00;
+  height: 120px;
+}
+.gruvbox-faded_orange-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-faded_orange-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-faded_orange-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-faded_orange-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #723e00;
+}
+
+.gruvbox-dark_red {
+  position: relative;
+  color: #ffffff;
+  background-color: #421e1e;
+  height: 120px;
+}
+.gruvbox-dark_red .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark_red .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark_red .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark_red-after {
+  height: 8px;
+  width: 128px;
+  background-color: #180b0b;
+}
+
+.gruvbox-dark_red-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #5f0000;
+  height: 120px;
+}
+.gruvbox-dark_red-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark_red-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark_red-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark_red-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #220000;
+}
+
+.gruvbox-dark_blue {
+  position: relative;
+  color: #ffffff;
+  background-color: #2b3c44;
+  height: 120px;
+}
+.gruvbox-dark_blue .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark_blue .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark_blue .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark_blue-after {
+  height: 8px;
+  width: 128px;
+  background-color: #131b1f;
+}
+
+.gruvbox-dark_blue-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #000087;
+  height: 120px;
+}
+.gruvbox-dark_blue-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark_blue-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark_blue-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark_blue-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #00004a;
+}
+
+.gruvbox-dark_aqua {
+  position: relative;
+  color: #ffffff;
+  background-color: #36473a;
+  height: 120px;
+}
+.gruvbox-dark_aqua .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark_aqua .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark_aqua .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark_aqua-after {
+  height: 8px;
+  width: 128px;
+  background-color: #1c241e;
+}
+
+.gruvbox-dark_aqua-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #005f5f;
+  height: 120px;
+}
+.gruvbox-dark_aqua-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-dark_aqua-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-dark_aqua-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-dark_aqua-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #002222;
+}
+
+.gruvbox-delimiter-one {
+  position: relative;
+  color: #ffffff;
+  background-color: #458588;
+  height: 120px;
+}
+.gruvbox-delimiter-one .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-one .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-one .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-one-after {
+  height: 8px;
+  width: 128px;
+  background-color: #305d5f;
+}
+
+.gruvbox-delimiter-one-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #008787;
+  height: 120px;
+}
+.gruvbox-delimiter-one-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-one-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-one-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-one-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #004a4a;
+}
+
+.gruvbox-delimiter-two {
+  position: relative;
+  color: #000000;
+  background-color: #b16286;
+  height: 120px;
+}
+.gruvbox-delimiter-two .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-two .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-two .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-two-after {
+  height: 8px;
+  width: 128px;
+  background-color: #8f4768;
+}
+
+.gruvbox-delimiter-two-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #d75f87;
+  height: 120px;
+}
+.gruvbox-delimiter-two-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-two-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-two-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-two-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c73264;
+}
+
+.gruvbox-delimiter-three {
+  position: relative;
+  color: #000000;
+  background-color: #8ec07c;
+  height: 120px;
+}
+.gruvbox-delimiter-three .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-three .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-three .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-three-after {
+  height: 8px;
+  width: 128px;
+  background-color: #6aac53;
+}
+
+.gruvbox-delimiter-three-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #87af87;
+  height: 120px;
+}
+.gruvbox-delimiter-three-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-three-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-three-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-three-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #649564;
+}
+
+.gruvbox-delimiter-four {
+  position: relative;
+  color: #ffffff;
+  background-color: #d65d0e;
+  height: 120px;
+}
+.gruvbox-delimiter-four .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-four .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-four .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-four-after {
+  height: 8px;
+  width: 128px;
+  background-color: #9d440a;
+}
+
+.gruvbox-delimiter-four-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #d75f00;
+  height: 120px;
+}
+.gruvbox-delimiter-four-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-delimiter-four-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-delimiter-four-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-delimiter-four-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #9a4400;
+}
+
+.gruvbox-white {
+  position: relative;
+  color: #000000;
+  background-color: #ffffff;
+  height: 120px;
+}
+.gruvbox-white .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-white .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-white .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-white-after {
+  height: 8px;
+  width: 128px;
+  background-color: #e0e0e0;
+}
+
+.gruvbox-white-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #ffffff;
+  height: 120px;
+}
+.gruvbox-white-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-white-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-white-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-white-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #e0e0e0;
+}
+
+.gruvbox-black {
+  position: relative;
+  color: #ffffff;
+  background-color: #000000;
+  height: 120px;
+}
+.gruvbox-black .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-black .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-black .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-black-after {
+  height: 8px;
+  width: 128px;
+  background-color: black;
+}
+
+.gruvbox-black-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #000000;
+  height: 120px;
+}
+.gruvbox-black-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-black-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-black-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-black-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: black;
+}
+
+.gruvbox-sienna {
+  position: relative;
+  color: #000000;
+  background-color: #dd6f48;
+  height: 120px;
+}
+.gruvbox-sienna .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-sienna .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-sienna .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-sienna-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c34e24;
+}
+
+.gruvbox-sienna-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #d7875f;
+  height: 120px;
+}
+.gruvbox-sienna-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-sienna-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-sienna-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-sienna-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #c76432;
+}
+
+.gruvbox-darkslategray4 {
+  position: relative;
+  color: #ffffff;
+  background-color: #528b8b;
+  height: 120px;
+}
+.gruvbox-darkslategray4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-darkslategray4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-darkslategray4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-darkslategray4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #3b6565;
+}
+
+.gruvbox-darkslategray4-xterm {
+  position: relative;
+  color: #ffffff;
+  background-color: #5f8787;
+  height: 120px;
+}
+.gruvbox-darkslategray4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-darkslategray4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-darkslategray4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-darkslategray4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #466363;
+}
+
+.gruvbox-lightblue4 {
+  position: relative;
+  color: #000000;
+  background-color: #66999d;
+  height: 120px;
+}
+.gruvbox-lightblue4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-lightblue4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-lightblue4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-lightblue4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #4d7579;
+}
+
+.gruvbox-lightblue4-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #5fafaf;
+  height: 120px;
+}
+.gruvbox-lightblue4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-lightblue4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-lightblue4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-lightblue4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #468b8b;
+}
+
+.gruvbox-burlywood4 {
+  position: relative;
+  color: #000000;
+  background-color: #bbaa97;
+  height: 120px;
+}
+.gruvbox-burlywood4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-burlywood4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-burlywood4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-burlywood4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #a38c72;
+}
+
+.gruvbox-burlywood4-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #afaf87;
+  height: 120px;
+}
+.gruvbox-burlywood4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-burlywood4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-burlywood4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-burlywood4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #959564;
+}
+
+.gruvbox-aquamarine4 {
+  position: relative;
+  color: #000000;
+  background-color: #83a598;
+  height: 120px;
+}
+.gruvbox-aquamarine4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-aquamarine4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-aquamarine4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-aquamarine4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #63887a;
+}
+
+.gruvbox-aquamarine4-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #87af87;
+  height: 120px;
+}
+.gruvbox-aquamarine4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-aquamarine4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-aquamarine4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-aquamarine4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #649564;
+}
+
+.gruvbox-turquoise4 {
+  position: relative;
+  color: #000000;
+  background-color: #61acbb;
+  height: 120px;
+}
+.gruvbox-turquoise4 .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-turquoise4 .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-turquoise4 .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-turquoise4-after {
+  height: 8px;
+  width: 128px;
+  background-color: #438d9c;
+}
+
+.gruvbox-turquoise4-xterm {
+  position: relative;
+  color: #000000;
+  background-color: #5fafaf;
+  height: 120px;
+}
+.gruvbox-turquoise4-xterm .xterm {
+  position: absolute;
+  width: 112px;
+  top: -16px;
+  right: 0;
+  padding: 3px;
+  transform-origin: right bottom;
+  transform: rotate(270deg);
+  text-align: right;
+  font-size: 7pt;
+}
+.gruvbox-turquoise4-xterm .content {
+  position: absolute;
+  top: 5px;
+  left: 8px;
+  font-size: 10pt;
+}
+.gruvbox-turquoise4-xterm .color-label {
+  position: absolute;
+  bottom: 5px;
+  left: 8px;
+  font-size: 14pt;
+}
+
+.gruvbox-turquoise4-xterm-after {
+  height: 8px;
+  width: 128px;
+  background-color: #468b8b;
+}
+
+.separator {
+  clear: left;
+  height: 0;
+  width: 100%;
+}
+
+.group-separator {
+  clear: left;
+  height: 10px;
+  width: 100%;
+  border-bottom-color: rgba(0, 0, 0, 0.1);
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  margin-bottom: 10px;
+}
+
+/*# sourceMappingURL=gruvbox-theme-colors.css.map */
diff --git a/palette/gruvbox-theme-colors.css.map 
b/palette/gruvbox-theme-colors.css.map
new file mode 100644
index 0000000000..4b720a4383
--- /dev/null
+++ b/palette/gruvbox-theme-colors.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": 
"AAmBA,IAAK;EACH,WAAW,EAAE,wBAAwB;EACrC,WAAW,EAAE,OAAO;EACpB,gBAAgB,EAAE,WAAgB;;;AAGpC;;;;EAIG;EACD,WAAW,EAAE,OAAO;EACpB,MAAM,EAAE,CAAC;EACT,aAAa,EAAE,GAAG;;;AAYlB,EAAS;EACP,SAAS,EATP,IAAI;;;AAQR,EAAS;EACP,SAAS,EARP,IAAI;;;AAOR,EAAS;EACP,SAAS,EAPP,IAAI;;;AAMR,EAAS;EACP,SAAS,EANP,IAAI;;;AAKR,EAAS;EACP,SAAS,EALP,IAAI;;;AASV,eAAgB;EACd,KAAK,EAlCQ,KAAK;EAmClB,MAAM,EAlCQ,KAAK;EAmCnB,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,WAAW;;;AAInB,mBAAU;EACR,QAAQ,EAAE,QAAQ;EAClB,KAAK
 [...]
+"sources": 
["_gruvbox-theme-colors-components.scss","_gruvbox-theme-colors-dark-palette.scss"],
+"names": [],
+"file": "gruvbox-theme-colors.css"
+}
diff --git a/palette/gruvbox-theme-colors.scss 
b/palette/gruvbox-theme-colors.scss
new file mode 100644
index 0000000000..d2358d3739
--- /dev/null
+++ b/palette/gruvbox-theme-colors.scss
@@ -0,0 +1,2 @@
+@import "_gruvbox-theme-colors-dark-palette";
+@import "_gruvbox-theme-colors-components";
diff --git a/palette/index.html b/palette/index.html
new file mode 100644
index 0000000000..9856fbb1f3
--- /dev/null
+++ b/palette/index.html
@@ -0,0 +1,22 @@
+<html>
+    <head>
+        <title>Emacs Gruvbox</title>
+        <link rel="stylesheet" href="gruvbox-theme-colors.css" type="text/css" 
media="screen" />
+        <script src="https://unpkg.com/vue/dist/vue.js";></script>
+        <script type="text/javascript" 
src="https://cdn.css.net/files/canvas2image/0.1/base64.js";></script>
+        <script type="text/javascript" 
src="https://cdn.css.net/files/canvas2image/0.1/canvas2image.js";></script>
+        <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js";></script>
+        <script type="text/javascript" src="js/main.js"></script>
+    </head>
+    <body>
+      <div id="app">
+        <h1>GRUVBOX // Emacs</h1>
+        <div v-for="paletteGroup in paletteGroups">
+          <palette-group v-bind:title="paletteGroup.title"
+                         v-bind:prefix="paletteGroup.prefix"
+                         v-bind:colors="paletteGroup.colors" >
+          </palette-group>
+        </div>
+      </div>
+    </body>
+</html>
diff --git a/palette/js/main.js b/palette/js/main.js
new file mode 100644
index 0000000000..7a197cdcd3
--- /dev/null
+++ b/palette/js/main.js
@@ -0,0 +1,222 @@
+var palette = {
+  "dark0_hard":            "#1d2021", "dark0_hard-xterm":      "#1c1c1c",
+  "dark0":                 "#282828", "dark0-xterm":           "#262626",
+  "dark0_soft":            "#32302f", "dark0_soft-xterm":      "#303030",
+  "dark1":                 "#3c3836", "dark1-xterm":           "#3a3a3a",
+  "dark2":                 "#504945", "dark2-xterm":           "#4e4e4e",
+  "dark3":                 "#665c54", "dark3-xterm":           "#626262",
+  "dark4":                 "#7c6f64", "dark4-xterm":           "#767676",
+  "gray":                  "#928374", "gray-xterm":            "#8a8a8a",
+  "light0_hard":           "#ffffc8", "light0_hard-xterm":     "#ffffd7",
+  "light0":                "#fdf4c1", "light0-xterm":          "#ffffaf",
+  "light0_soft":           "#f4e8ba", "light0_soft-xterm":     "#ffdfaf",
+  "light1":                "#ebdbb2", "light1-xterm":          "#ffdfaf",
+  "light2":                "#d5c4a1", "light2-xterm":          "#bcbcbc",
+  "light3":                "#bdae93", "light3-xterm":          "#a8a8a8",
+  "light4":                "#a89984", "light4-xterm":          "#949494",
+  "bright_red":            "#fb4933", "bright_red-xterm":      "#d75f5f",
+  "bright_green":          "#b8bb26", "bright_green-xterm":    "#afaf00",
+  "bright_yellow":         "#fabd2f", "bright_yellow-xterm":   "#ffaf00",
+  "bright_blue":           "#83a598", "bright_blue-xterm":     "#87afaf",
+  "bright_purple":         "#d3869b", "bright_purple-xterm":   "#d787af",
+  "bright_aqua":           "#8ec07c", "bright_aqua-xterm":     "#87af87",
+  "bright_orange":         "#fe8019", "bright_orange-xterm":   "#ff8700",
+  "neutral_red":           "#fb4934", "neutral_red-xterm":     "#d75f5f",
+  "neutral_green":         "#b8bb26", "neutral_green-xterm":   "#afaf00",
+  "neutral_yellow":        "#fabd2f", "neutral_yellow-xterm":  "#ffaf00",
+  "neutral_blue":          "#83a598", "neutral_blue-xterm":    "#87afaf",
+  "neutral_purple":        "#d3869b", "neutral_purple-xterm":  "#d787af",
+  "neutral_aqua":          "#8ec07c", "neutral_aqua-xterm":    "#87af87",
+  "neutral_orange":        "#fe8019", "neutral_orange-xterm":  "#ff8700",
+  "faded_red":             "#9d0006", "faded_red-xterm":       "#870000",
+  "faded_green":           "#79740e", "faded_green-xterm":     "#878700",
+  "faded_yellow":          "#b57614", "faded_yellow-xterm":    "#af8700",
+  "faded_blue":            "#076678", "faded_blue-xterm":      "#005f87",
+  "faded_purple":          "#8f3f71", "faded_purple-xterm":    "#875f87",
+  "faded_aqua":            "#427b58", "faded_aqua-xterm":      "#5f8787",
+  "faded_orange":          "#af3a03", "faded_orange-xterm":    "#af5f00",
+  "dark_red":              "#421E1E", "dark_red-xterm":        "#5f0000",
+  "dark_blue":             "#2B3C44", "dark_blue-xterm":       "#000087",
+  "dark_aqua":             "#36473A", "dark_aqua-xterm":       "#005f5f",
+  "delimiter-one":         "#458588", "delimiter-one-xterm":   "#008787",
+  "delimiter-two":         "#b16286", "delimiter-two-xterm":   "#d75f87",
+  "delimiter-three":       "#8ec07c", "delimiter-three-xterm": "#87af87",
+  "delimiter-four":        "#d65d0e", "delimiter-four-xterm":  "#d75f00",
+  "white":                 "#FFFFFF", "white-xterm":           "#FFFFFF",
+  "black":                 "#000000", "black-xterm":           "#000000",
+  "sienna":                "#DD6F48", "sienna-xterm":          "#d7875f",
+  "darkslategray4":        "#528B8B", "darkslategray4-xterm":  "#5f8787",
+  "lightblue4":            "#66999D", "lightblue4-xterm":      "#5fafaf",
+  "burlywood4":            "#BBAA97", "burlywood4-xterm":      "#afaf87",
+  "aquamarine4":           "#83A598", "aquamarine4-xterm":     "#87af87",
+  "turquoise4":            "#61ACBB", "turquoise4-xterm":      "#5fafaf"
+};
+
+window.onload=function(){
+  var app = new Vue({
+    el: "#app",
+    data: {
+      paletteGroups: [
+        {
+          title: "DARK TONES",
+          prefix: "",
+          colors: [
+            "dark0_hard",
+            "dark0",
+            "dark0_soft",
+            "dark1",
+            "dark2",
+            "dark3",
+            "dark4"
+          ]
+        },
+        {
+          title: "MID TONES",
+          prefix: "",
+          colors: [
+            "gray"
+          ]
+        },
+        {
+          title: "LIGHT TONES",
+          prefix: "",
+          colors: [
+            "light0_hard",
+            "light0",
+            "light0_soft",
+            "light1",
+            "light2",
+            "light3",
+            "light4",
+          ]
+        },
+        {
+          title: "BRIGHT COLORS",
+          prefix: "bright_",
+          colors: [
+            "bright_red",
+            "bright_green",
+            "bright_yellow",
+            "bright_blue",
+            "bright_purple",
+            "bright_aqua",
+            "bright_orange"
+          ]
+        },
+        {
+          title: "NEUTRAL COLORS",
+          prefix: "neutral_",
+          colors: [
+            "neutral_red",
+            "neutral_green",
+            "neutral_yellow",
+            "neutral_blue",
+            "neutral_purple",
+            "neutral_aqua",
+            "neutral_orange"
+          ]
+        },
+        {
+          title: "FADED COLORS",
+          prefix: "faded_",
+          colors: [
+            "faded_red",
+            "faded_green",
+            "faded_yellow",
+            "faded_blue",
+            "faded_purple",
+            "faded_aqua",
+            "faded_orange"
+          ]
+        },
+        {
+          title: "DARK NOTES",
+          prefix: "dark_",
+          colors: [
+            "dark_red",
+            "dark_blue",
+            "dark_aqua",
+          ]
+        },
+        {
+          title:"SOLO NOTES",
+          prefix: "",
+          colors:[
+            "sienna",
+            "darkslategray4",
+            "lightblue4",
+            "burlywood4",
+            "aquamarine4",
+            "turquoise4"
+          ]
+        },
+        {
+          title: "RAINBOW DELIMITER COLORS",
+          prefix: "delimiter-",
+          colors: [
+            "delimiter-one",
+            "delimiter-two",
+            "delimiter-three",
+            "delimiter-four"
+          ]
+        }
+      ]
+    }
+  });
+};
+
+Vue.component("palette-group", {
+  props: ["title", "colors", "prefix"],
+  template: `<div class="palette-group" v-on:click="makeImg">
+               <h3>{{title}}</h3>
+               <swatch v-for="swatch in colors"
+                       v-bind:prefix="prefix"
+                       v-bind:content="swatch">
+               </swatch>
+               <div class="separator"></div>
+               <swatch v-for="swatch in colors"
+                       is-xterm="true"
+                       v-bind:prefix="prefix"
+                       v-bind:content="swatch">
+               </swatch>
+               <div class="group-separator"></div>
+             </div>
+`,
+  methods:{
+    makeImg: function(e){
+      html2canvas(e.target, {
+        onrendered: function(canvas) {
+          document.body.appendChild(canvas);
+        },
+        background: undefined
+      });
+    }
+  }
+});
+
+Vue.component("swatch", {
+  props: ["content", "isXterm", "prefix"],
+  template: `<div class="gruvbox-swatch">
+               <div v-bind:class="cssClass">
+                 <div class="content">{{unprefixed}}</div>
+                 <div class="color-label">{{color}}</div>
+                 <div class="xterm" v-if="isXterm">Xterm 256</div>
+               </div>
+               <div v-bind:class="cssClassAfter"></div>
+             </div>
+`,
+  computed: {
+    cssClass: function(){
+      return `gruvbox-${this.content}${this.isXterm == "true" ? "-xterm" : 
""}`;
+    },
+    cssClassAfter: function(){
+      return `${this.cssClass}-after`;
+    },
+    color: function(){
+      return palette[`${this.content}${this.isXterm == "true" ? "-xterm" : 
""}`];
+    },
+    unprefixed: function(){
+      return this.content.replace(this.prefix, "");
+    }
+  }
+});
diff --git a/palette/package.json b/palette/package.json
new file mode 100644
index 0000000000..b38fde4013
--- /dev/null
+++ b/palette/package.json
@@ -0,0 +1,27 @@
+{
+  "name": "emacs-gruvbox-palette-builder",
+  "version": "1.0.0",
+  "description": "Build palette pages / images for gruvbox on Emacs",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "stylelint": "stylelint '**/*.scss'",
+    "build": "grunt"
+  },
+  "keywords": [
+    "emacs",
+    "gruvbox"
+  ],
+  "author": "Jason Milkins",
+  "license": "MIT",
+  "dependencies": {},
+  "devDependencies": {
+    "grunt": "^1.0.1",
+    "grunt-cli": "^1.2.0",
+    "grunt-contrib-jshint": "^1.1.0",
+    "grunt-contrib-sass": "^1.0.0",
+    "grunt-stylelint": "^0.8.0",
+    "stylelint-config-sass-guidelines": "^2.1.0",
+    "stylelint-config-standard": "^16.0.0"
+  }
+}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]