           (green     (find-color 'green))
           (bold      (if solarized-bold 'bold 'normal))
           (underline (if solarized-underline t nil))
+          (opt-under nil)
           (italic    (if solarized-italic 'italic 'normal)))
       (when (eq 'light mode)
         (rotatef base03 base3)
         (rotatef base02 base2)
         (rotatef base01 base1)
         (rotatef base00 base0))
-      `((;; basic
-         (default ((t (:foreground ,base0 ,:background ,base03))))
-         (cursor
-          ((t (:foreground ,base0 :background ,base03 :inverse-video t))))
-         (escape-glyph-face ((t (:foreground ,red))))
-         (fringe ((t (:foreground ,base01 :background ,base02))))
-         (linum ((t (:foreground ,base01 :background ,base02))))
-         (header-line ((t (:foreground ,base0 :background ,base2))))
-         (highlight ((t (:background ,base02))))
-         (hl-line ((t (:background ,base02))))
-         (isearch ((t (:foreground ,yellow :inverse-video t))))
-         (lazy-highlight ((t (:background ,base2 :foreground ,base00))))
-         (link ((t (:foreground ,violet :underline ,underline))))
-         (link-visited ((t (:foreground ,magenta :underline ,underline))))
-         (menu ((t (:foreground ,base0 :background ,base02))))
-         (minibuffer-prompt ((t (:foreground ,blue))))
-         (mode-line
-          ((t (:foreground ,base1 :background ,base02
-                           :box (:line-width 1 :color ,base1)))))
-         (mode-line-buffer-id ((t (:foreground ,base1))))
-         (mode-line-inactive
-          ((t (:foreground ,base0  :background ,base02
-                           :box (:line-width 1 :color ,base02)))))
-         (region ((t (:background ,base02))))
-         (secondary-selection ((t (:background ,base02))))
-         (trailing-whitespace ((t (:foreground ,red :inverse-video t))))
-         (vertical-border ((t (:foreground ,base0))))
-         ;; comint
-         (comint-highlight-prompt ((t (:foreground ,blue))))
-         ;; compilation
-         (compilation-info ((t (:foreground ,green :weight ,bold))))
-         (compilation-warning ((t (:foreground ,orange :weight ,bold))))
-         ;; customize
-         (custom-button
-          ((t (:background ,base02
-                           :box (:line-width 2 :style released-button)))))
-         (custom-button-mouse ((t (:inherit custom-button :foreground ,base1))))
-         (custom-button-pressed
-          ((t (:inherit custom-button-mouse
-                        :box (:line-width 2 :style pressed-button)))))
-         (custom-comment-tag ((t (:background ,base02))))
-         (custom-comment-tag ((t (:background ,base02))))
-         (custom-documentation ((t (:inherit default))))
-         (custom-group-tag ((t (:foreground ,orange :weight ,bold))))
-         (custom-link ((t (:foreground ,violet))))
-         (custom-state ((t (:foreground ,green))))
-         (custom-variable-tag ((t (:foreground ,orange :weight ,bold))))
-         ;; diff
-         (diff-added ((t (:foreground ,green :inverse-video t))))
-         (diff-changed ((t (:foreground ,yellow :inverse-video t))))
-         (diff-removed ((t (:foreground ,red :inverse-video t))))
-         (diff-header ((t (:background ,base01))))
-         (diff-file-header
-          ((t (:background ,base1 :foreground ,base01 :weight ,bold))))
-         (diff-refine-change ((t (:background ,base1))))
-         ;; IDO
-         (ido-only-match ((t (:foreground ,green))))
-         (ido-subdir ((t (:foreground ,blue))))
-         (ido-first-match ((t (:foreground ,green :weight ,bold))))
-         ;; emacs-wiki
-         (emacs-wiki-bad-link-face
-          ((t (:foreground ,red :underline ,underline))))
-         (emacs-wiki-link-face ((t (:foreground ,blue :underline ,underline))))
-         (emacs-wiki-verbatim-face
-          ((t (:foreground ,base00 :underline ,underline))))
-         ;; font-lock
-         (font-lock-builtin-face ((t (:foreground ,green))))
-         (font-lock-comment-face ((t (:foreground ,base01 :slant ,italic))))
-         (font-lock-constant-face ((t (:foreground ,cyan))))
-         (font-lock-function-name-face ((t (:foreground ,blue))))
-         (font-lock-keyword-face ((t (:foreground ,green))))
-         (font-lock-string-face ((t (:foreground ,cyan))))
-         (font-lock-type-face ((t (:foreground ,yellow))))
-         (font-lock-variable-name-face ((t (:foreground ,blue))))
-         (font-lock-warning-face ((t (:foreground ,red :weight ,bold))))
-         (font-lock-doc-face ((t (:foreground ,cyan :slant ,italic))))
-         (font-lock-color-constant-face ((t (:foreground ,green))))
-         (font-lock-comment-delimiter-face
-          ((t (:foreground ,base01 :weight ,bold))))
-         (font-lock-doc-string-face ((t (:foreground ,green))))
-         (font-lock-preprocessor-face ((t (:foreground ,orange))))
-         (font-lock-reference-face ((t (:foreground ,cyan))))
-         (font-lock-negation-char-face ((t (:foreground ,red))))
-         (font-lock-other-type-face ((t (:foreground ,blue :slant ,italic))))
-         (font-lock-regexp-grouping-construct    ((t (:foreground ,orange))))
-         (font-lock-special-keyword-face ((t (:foreground ,magenta))))
-         (font-lock-exit-face ((t (:foreground ,red))))
-         (font-lock-other-emphasized-face
-          ((t (:foreground ,violet :weight ,bold :slant ,italic))))
-         (font-lock-regexp-grouping-backslash ((t (:foreground ,yellow))))
-         ;; info
-         (info-xref ((t (:foreground ,blue :underline ,underline))))
-         (info-xref-visited ((t (:inherit info-xref :foreground ,magenta))))
-         ;; org
-         (org-hide ((t (:foreground ,base03))))
-         (org-todo ((t (:foreground ,base03 :background ,red :weight ,bold))))
-         (org-done ((t (:foreground ,green :weight ,bold))))
-         (org-todo-kwd-face ((t (:foreground ,red :background ,base03))))
-         (org-done-kwd-face ((t (:foreground ,green :background ,base03))))
-         (org-project-kwd-face ((t (:foreground ,violet :background ,base03))))
-         (org-waiting-kwd-face ((t (:foreground ,orange :background ,base03))))
-         (org-someday-kwd-face ((t (:foreground ,blue :background ,base03))))
-         (org-started-kwd-face ((t (:foreground ,yellow :background ,base03))))
-         (org-cancelled-kwd-face ((t (:foreground ,green :background ,base03))))
-         (org-delegated-kwd-face ((t (:foreground ,cyan :background ,base03))))
-         ;; show-paren
-         (show-paren-match-face ((t (:background ,cyan :foreground ,base3))))
-         (show-paren-mismatch-face ((t (:background ,red :foreground ,base3))))
-         ;; widgets
-         (widget-field
-          ((t (:box (:line-width 1 :color ,base00) :inherit default))))
-         (widget-single-line-field ((t (:inherit widget-field))))
-         ;; extra modules
-         ;; -------------
-         ;; gnus
-         (gnus-cite-1 ((t (:foreground ,magenta))))
-         (gnus-cite-2 ((t (:foreground ,base2))))
-         (gnus-cite-3 ((t (:foreground ,base3))))
-         (gnus-cite-4 ((t (:foreground ,base1))))
-         (gnus-cite-5 ((t (:foreground ,magenta))))
-         (gnus-cite-6 ((t (:foreground ,base2))))
-         (gnus-cite-7 ((t (:foreground ,base3))))
-         (gnus-cite-8 ((t (:foreground ,base1))))
-         (gnus-cite-9 ((t (:foreground ,base2))))
-         (gnus-cite-10 ((t (:foreground ,base3))))
-         (gnus-cite-11 ((t (:foreground ,blue))))
-         (gnus-group-mail-1 ((t (:foreground ,base3 :weight ,bold))))
-         (gnus-group-mail-1-empty ((t (:foreground ,base3))))
-         (gnus-group-mail-2 ((t (:foreground ,base2 :weight ,bold))))
-         (gnus-group-mail-2-empty ((t (:foreground ,base2))))
-         (gnus-group-mail-3 ((t (:foreground ,magenta :weight ,bold))))
-         (gnus-group-mail-3-empty ((t (:foreground ,magenta))))
-         (gnus-group-mail-low ((t (:foreground ,base00 :weight ,bold))))
-         (gnus-group-mail-low-empty ((t (:foreground ,base00))))
-         (gnus-group-news-1 ((t (:foreground ,base1 :weight ,bold))))
-         (gnus-group-news-1-empty ((t (:foreground ,base1))))
-         (gnus-group-news-2 ((t (:foreground ,blue :weight ,bold))))
-         (gnus-group-news-2-empty ((t (:foreground ,blue))))
-         (gnus-group-news-low ((t (:foreground ,violet :weight ,bold))))
-         (gnus-group-news-low-empty ((t (:foreground ,violet))))
-         (gnus-header-content ((t (:foreground ,cyan :slant ,italic))))
-         (gnus-header-from ((t (:foreground ,base2))))
-         (gnus-header-name ((t (:foreground ,blue))))
-         (gnus-header-newsgroups ((t (:foreground ,green :slant ,italic))))
-         (gnus-header-subject ((t (:foreground ,base1))))
-         (gnus-server-agent ((t (:foreground ,base3 :weight ,bold))))
-         (gnus-server-closed ((t (:foreground ,base1 :slant ,italic))))
-         (gnus-server-denied ((t (:foreground ,base2 :weight ,bold))))
-         (gnus-server-offline ((t (:foreground ,green :weight ,bold))))
-         (gnus-server-opened ((t (:foreground ,cyan :weight ,bold))))
-         (gnus-splash ((t (:foreground ,base2))))
-         (gnus-summary-high-ancient ((t (:foreground ,magenta :weight ,bold))))
-         (gnus-summary-high-read ((t (:foreground ,base1 :weight ,bold))))
-         (gnus-summary-high-ticked ((t (:foreground ,base3 :weight ,bold))))
-         (gnus-summary-high-undownloaded
-          ((t (:foreground ,base2 :weight ,bold))))
-         (gnus-summary-low-ancient ((t (:foreground ,magenta :slant ,italic))))
-         (gnus-summary-low-read ((t (:foreground ,base1 :slant ,italic))))
-         (gnus-summary-low-ticked ((t (:foreground ,base3 :slant ,italic))))
-         (gnus-summary-low-undownloaded
-          ((t (:foreground ,base2 :slant ,italic))))
-         (gnus-summary-normal-ancient ((t (:foreground ,magenta))))
-         (gnus-summary-normal-read ((t (:foreground ,base1))))
-         (gnus-summary-normal-ticked ((t (:foreground ,base3))))
-         (gnus-summary-normal-undownloaded ((t (:foreground ,base2))))
-         ;; Flymake
-         (flymake-errline ((t (:background ,orange))))
-         (flymake-warnline ((t (:background ,violet))))
-         ;; whitespace
-         (whitespace-empty ((t (:foreground ,red))))
-         (whitespace-hspace ((t (:foreground ,orange))))
-         (whitespace-indentation ((t (:foreground ,base02))))
-         (whitespace-space ((t (:foreground ,base02))))
-         (whitespace-space-after-tab ((t (:foreground ,cyan))))
-         (whitespace-space-before-tab ((t (:foreground ,red :weight ,bold))))
-         (whitespace-tab ((t (:foreground ,base02))))
-         (whitespace-trailing
-          ((t (:background ,base02 :foreground ,red :weight ,bold))))
-         (whitespace-highlight-face ((t (:background ,blue :foreground ,red))))
-         ;; Message
-         (message-mml ((t (:foreground ,blue))))
-         (message-cited-text ((t (:foreground ,base2))))
-         (message-separator ((t (:foreground ,base3))))
-         (message-header-xheader ((t (:foreground ,violet))))
-         (message-header-name ((t (:foreground ,cyan))))
-         (message-header-other ((t (:foreground ,red))))
-         (message-header-newsgroups
-          ((t (:foreground ,yellow :weight ,bold :slant ,italic))))
-         (message-header-subject ((t (:foreground ,base00))))
-         (message-header-cc ((t (:foreground ,green :weight ,bold))))
-         (message-header-to ((t (:foreground ,base1 :weight ,bold)))))
-        ((foreground-color . ,base0)
-         (background-color . ,base03)
-         (background-mode . ,mode)
-         (cursor-color . ,base0))))))
+      (let ((back base03))
+        (cond ((eq 'high solarized-contrast)
+               (let ((orig-base3 base3))
+                 (rotatef base01 base00 base0 base1 base2 base3)
+                 (setf base3 orig-base3)))
+              ((eq 'low solarized-contrast)
+               (setf back      base02
+                     opt-under t)))
+        `((;; basic
+           (default ((t (:foreground ,base0 ,:background ,back))))
+           (cursor
+            ((t (:foreground ,base0 :background ,base03 :inverse-video t))))
+           (escape-glyph-face ((t (:foreground ,red))))
+           (fringe ((t (:foreground ,base01 :background ,base02))))
+           (linum ((t (:foreground ,base01 :background ,base02))))
+           (header-line ((t (:foreground ,base0 :background ,base2))))
+           (highlight ((t (:background ,base02))))
+           (hl-line ((t (:background ,base02))))
+           (isearch ((t (:foreground ,yellow :inverse-video t))))
+           (lazy-highlight ((t (:background ,base2 :foreground ,base00))))
+           (link ((t (:foreground ,violet :underline ,underline))))
+           (link-visited ((t (:foreground ,magenta :underline ,underline))))
+           (menu ((t (:foreground ,base0 :background ,base02))))
+           (minibuffer-prompt ((t (:foreground ,blue))))
+           (mode-line
+            ((t (:foreground ,base1 :background ,base02
+                             :box (:line-width 1 :color ,base1)))))
+           (mode-line-buffer-id ((t (:foreground ,base1))))
+           (mode-line-inactive
+            ((t (:foreground ,base0  :background ,base02
+                             :box (:line-width 1 :color ,base02)))))
+           (region ((t (:background ,base02))))
+           (secondary-selection ((t (:background ,base02))))
+           (trailing-whitespace ((t (:foreground ,red :inverse-video t))))
+           (vertical-border ((t (:foreground ,base0))))
+           ;; comint
+           (comint-highlight-prompt ((t (:foreground ,blue))))
+           ;; compilation
+           (compilation-info ((t (:foreground ,green :weight ,bold))))
+           (compilation-warning ((t (:foreground ,orange :weight ,bold))))
+           ;; customize
+           (custom-button
+            ((t (:background ,base02
+                             :box (:line-width 2 :style released-button)))))
+           (custom-button-mouse
+            ((t (:inherit custom-button :foreground ,base1))))
+           (custom-button-pressed
+            ((t (:inherit custom-button-mouse
+                          :box (:line-width 2 :style pressed-button)))))
+           (custom-comment-tag ((t (:background ,base02))))
+           (custom-comment-tag ((t (:background ,base02))))
+           (custom-documentation ((t (:inherit default))))
+           (custom-group-tag ((t (:foreground ,orange :weight ,bold))))
+           (custom-link ((t (:foreground ,violet))))
+           (custom-state ((t (:foreground ,green))))
+           (custom-variable-tag ((t (:foreground ,orange :weight ,bold))))
+           ;; diff
+           (diff-added ((t (:foreground ,green :inverse-video t))))
+           (diff-changed ((t (:foreground ,yellow :inverse-video t))))
+           (diff-removed ((t (:foreground ,red :inverse-video t))))
+           (diff-header ((t (:background ,base01))))
+           (diff-file-header
+            ((t (:background ,base1 :foreground ,base01 :weight ,bold))))
+           (diff-refine-change ((t (:background ,base1))))
+           ;; IDO
+           (ido-only-match ((t (:foreground ,green))))
+           (ido-subdir ((t (:foreground ,blue))))
+           (ido-first-match ((t (:foreground ,green :weight ,bold))))
+           ;; emacs-wiki
+           (emacs-wiki-bad-link-face
+            ((t (:foreground ,red :underline ,underline))))
+           (emacs-wiki-link-face
+            ((t (:foreground ,blue :underline ,underline))))
+           (emacs-wiki-verbatim-face
+            ((t (:foreground ,base00 :underline ,underline))))
+           ;; font-lock
+           (font-lock-builtin-face ((t (:foreground ,green))))
+           (font-lock-comment-face ((t (:foreground ,base01 :slant ,italic))))
+           (font-lock-constant-face ((t (:foreground ,cyan))))
+           (font-lock-function-name-face ((t (:foreground ,blue))))
+           (font-lock-keyword-face ((t (:foreground ,green))))
+           (font-lock-string-face ((t (:foreground ,cyan))))
+           (font-lock-type-face ((t (:foreground ,yellow))))
+           (font-lock-variable-name-face ((t (:foreground ,blue))))
+           (font-lock-warning-face ((t (:foreground ,red :weight ,bold))))
+           (font-lock-doc-face ((t (:foreground ,cyan :slant ,italic))))
+           (font-lock-color-constant-face ((t (:foreground ,green))))
+           (font-lock-comment-delimiter-face
+            ((t (:foreground ,base01 :weight ,bold))))
+           (font-lock-doc-string-face ((t (:foreground ,green))))
+           (font-lock-preprocessor-face ((t (:foreground ,orange))))
+           (font-lock-reference-face ((t (:foreground ,cyan))))
+           (font-lock-negation-char-face ((t (:foreground ,red))))
+           (font-lock-other-type-face ((t (:foreground ,blue :slant ,italic))))
+           (font-lock-regexp-grouping-construct    ((t (:foreground ,orange))))
+           (font-lock-special-keyword-face ((t (:foreground ,magenta))))
+           (font-lock-exit-face ((t (:foreground ,red))))
+           (font-lock-other-emphasized-face
+            ((t (:foreground ,violet :weight ,bold :slant ,italic))))
+           (font-lock-regexp-grouping-backslash ((t (:foreground ,yellow))))
+           ;; info
+           (info-xref ((t (:foreground ,blue :underline ,underline))))
+           (info-xref-visited ((t (:inherit info-xref :foreground ,magenta))))
+           ;; org
+           (org-hide ((t (:foreground ,base03))))
+           (org-todo ((t (:foreground ,base03 :background ,red :weight ,bold))))
+           (org-done ((t (:foreground ,green :weight ,bold))))
+           (org-todo-kwd-face ((t (:foreground ,red :background ,base03))))
+           (org-done-kwd-face ((t (:foreground ,green :background ,base03))))
+           (org-project-kwd-face
+            ((t (:foreground ,violet :background ,base03))))
+           (org-waiting-kwd-face
+            ((t (:foreground ,orange :background ,base03))))
+           (org-someday-kwd-face ((t (:foreground ,blue :background ,base03))))
+           (org-started-kwd-face
+            ((t (:foreground ,yellow :background ,base03))))
+           (org-cancelled-kwd-face
+            ((t (:foreground ,green :background ,base03))))
+           (org-delegated-kwd-face
+            ((t (:foreground ,cyan :background ,base03))))
+           ;; show-paren
+           (show-paren-match-face ((t (:background ,cyan :foreground ,base3))))
+           (show-paren-mismatch-face
+            ((t (:background ,red :foreground ,base3))))
+           ;; widgets
+           (widget-field
+            ((t (:box (:line-width 1 :color ,base00) :inherit default))))
+           (widget-single-line-field ((t (:inherit widget-field))))
+           ;; extra modules
+           ;; -------------
+           ;; gnus
+           (gnus-cite-1 ((t (:foreground ,magenta))))
+           (gnus-cite-2 ((t (:foreground ,base2))))
+           (gnus-cite-3 ((t (:foreground ,base3))))
+           (gnus-cite-4 ((t (:foreground ,base1))))
+           (gnus-cite-5 ((t (:foreground ,magenta))))
+           (gnus-cite-6 ((t (:foreground ,base2))))
+           (gnus-cite-7 ((t (:foreground ,base3))))
+           (gnus-cite-8 ((t (:foreground ,base1))))
+           (gnus-cite-9 ((t (:foreground ,base2))))
+           (gnus-cite-10 ((t (:foreground ,base3))))
+           (gnus-cite-11 ((t (:foreground ,blue))))
+           (gnus-group-mail-1 ((t (:foreground ,base3 :weight ,bold))))
+           (gnus-group-mail-1-empty ((t (:foreground ,base3))))
+           (gnus-group-mail-2 ((t (:foreground ,base2 :weight ,bold))))
+           (gnus-group-mail-2-empty ((t (:foreground ,base2))))
+           (gnus-group-mail-3 ((t (:foreground ,magenta :weight ,bold))))
+           (gnus-group-mail-3-empty ((t (:foreground ,magenta))))
+           (gnus-group-mail-low ((t (:foreground ,base00 :weight ,bold))))
+           (gnus-group-mail-low-empty ((t (:foreground ,base00))))
+           (gnus-group-news-1 ((t (:foreground ,base1 :weight ,bold))))
+           (gnus-group-news-1-empty ((t (:foreground ,base1))))
+           (gnus-group-news-2 ((t (:foreground ,blue :weight ,bold))))
+           (gnus-group-news-2-empty ((t (:foreground ,blue))))
+           (gnus-group-news-low ((t (:foreground ,violet :weight ,bold))))
+           (gnus-group-news-low-empty ((t (:foreground ,violet))))
+           (gnus-header-content ((t (:foreground ,cyan :slant ,italic))))
+           (gnus-header-from ((t (:foreground ,base2))))
+           (gnus-header-name ((t (:foreground ,blue))))
+           (gnus-header-newsgroups ((t (:foreground ,green :slant ,italic))))
+           (gnus-header-subject ((t (:foreground ,base1))))
+           (gnus-server-agent ((t (:foreground ,base3 :weight ,bold))))
+           (gnus-server-closed ((t (:foreground ,base1 :slant ,italic))))
+           (gnus-server-denied ((t (:foreground ,base2 :weight ,bold))))
+           (gnus-server-offline ((t (:foreground ,green :weight ,bold))))
+           (gnus-server-opened ((t (:foreground ,cyan :weight ,bold))))
+           (gnus-splash ((t (:foreground ,base2))))
+           (gnus-summary-high-ancient
+            ((t (:foreground ,magenta :weight ,bold))))
+           (gnus-summary-high-read ((t (:foreground ,base1 :weight ,bold))))
+           (gnus-summary-high-ticked ((t (:foreground ,base3 :weight ,bold))))
+           (gnus-summary-high-undownloaded
+            ((t (:foreground ,base2 :weight ,bold))))
+           (gnus-summary-low-ancient
+            ((t (:foreground ,magenta :slant ,italic))))
+           (gnus-summary-low-read ((t (:foreground ,base1 :slant ,italic))))
+           (gnus-summary-low-ticked ((t (:foreground ,base3 :slant ,italic))))
+           (gnus-summary-low-undownloaded
+            ((t (:foreground ,base2 :slant ,italic))))
+           (gnus-summary-normal-ancient ((t (:foreground ,magenta))))
+           (gnus-summary-normal-read ((t (:foreground ,base1))))
+           (gnus-summary-normal-ticked ((t (:foreground ,base3))))
+           (gnus-summary-normal-undownloaded ((t (:foreground ,base2))))
+           ;; Flymake
+           (flymake-errline ((t (:background ,orange))))
+           (flymake-warnline ((t (:background ,violet))))
+           ;; whitespace
+           (whitespace-empty ((t (:foreground ,red))))
+           (whitespace-hspace ((t (:foreground ,orange))))
+           (whitespace-indentation ((t (:foreground ,base02))))
+           (whitespace-space ((t (:foreground ,base02))))
+           (whitespace-space-after-tab ((t (:foreground ,cyan))))
+           (whitespace-space-before-tab ((t (:foreground ,red :weight ,bold))))
+           (whitespace-tab ((t (:foreground ,base02))))
+           (whitespace-trailing
+            ((t (:background ,base02 :foreground ,red :weight ,bold))))
+           (whitespace-highlight-face
+            ((t (:background ,blue :foreground ,red))))
+           ;; Message
+           (message-mml ((t (:foreground ,blue))))
+           (message-cited-text ((t (:foreground ,base2))))
+           (message-separator ((t (:foreground ,base3))))
+           (message-header-xheader ((t (:foreground ,violet))))
+           (message-header-name ((t (:foreground ,cyan))))
+           (message-header-other ((t (:foreground ,red))))
+           (message-header-newsgroups
+            ((t (:foreground ,yellow :weight ,bold :slant ,italic))))
+           (message-header-subject ((t (:foreground ,base00))))
+           (message-header-cc ((t (:foreground ,green :weight ,bold))))
+           (message-header-to ((t (:foreground ,base1 :weight ,bold)))))
+          ((foreground-color . ,base0)
+           (background-color . ,base03)
+           (background-mode . ,mode)
+           (cursor-color . ,base0)))))))
 
 (defmacro create-solarized-theme (mode)
   (let* ((theme-name (intern (concat "solarized-" (symbol-name mode))))

Ported to Emacs by Greg Pfeil, http://ethanschoonover.com/solarized.")

(defcustom solarized-degrade nil
  "For test purposes only; when in GUI mode, forces Solarized to use the 256 degraded color mode
to test the approximate color values for accuracy."
  :type 'boolean
  :group 'solarized)



(defcustom solarized-termcolors 16
  "This setting applies to emacs in terminal (non-GUI) mode.
If set to 16, emacs will use the terminal emulator's colorscheme (best option as
long as you've set your emulator's colors to the Solarized palette). If set to
256 and your terminal is capable of displaying 256 colors, emacs will use the
256 degraded color mode."
  :type 'integer
  :options '(16 256)
  :group 'solarized)

(defcustom solarized-contrast 'normal
  "Stick with normal! It's been carefully tested. Setting this option to high or
low does use the same Solarized palette but simply shifts some values up or down
in order to expand or compress the tonal range displayed."
  :type 'symbol
  :options '(high normal low)
  :group 'solarized)

;; FIXME: The Generic RGB colors will actually vary from device to device, but
