diff options
Diffstat (limited to 'src/beamercolorthemesolarized.sty')
-rw-r--r-- | src/beamercolorthemesolarized.sty | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/src/beamercolorthemesolarized.sty b/src/beamercolorthemesolarized.sty new file mode 100644 index 0000000..101bee2 --- /dev/null +++ b/src/beamercolorthemesolarized.sty @@ -0,0 +1,156 @@ +% Beamer Color Theme using the Solarized Palette, +% http://ethanschoonover.com/solarized. +% +% Copyright 2012 Jeffrey B. Arnold +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see <http://www.gnu.org/licenses/>. + +\ProvidesPackage{beamercolorthemesolarized} +\RequirePackage{etoolbox} +\RequirePackage{kvoptions} + +%% This is ugly. First time using options and conditionals in LaTeX +\SetupKeyvalOptions{ + family=solarized, + prefix=solarized@, +} +\DeclareBoolOption[false]{dark} +\DeclareComplementaryOption{light}{dark} +\DeclareStringOption[yellow]{accent}[yellow] +\ProcessKeyvalOptions* + +% Solarized palette +\definecolor{solarizedBase03}{HTML}{002B36} +\definecolor{solarizedBase02}{HTML}{073642} +\definecolor{solarizedBase01}{HTML}{586e75} +\definecolor{solarizedBase00}{HTML}{657b83} +\definecolor{solarizedBase0}{HTML}{839496} +\definecolor{solarizedBase1}{HTML}{93a1a1} +\definecolor{solarizedBase2}{HTML}{EEE8D5} +\definecolor{solarizedBase3}{HTML}{FDF6E3} +\definecolor{solarizedYellow}{HTML}{B58900} +\definecolor{solarizedOrange}{HTML}{CB4B16} +\definecolor{solarizedRed}{HTML}{DC322F} +\definecolor{solarizedMagenta}{HTML}{D33682} +\definecolor{solarizedViolet}{HTML}{6C71C4} +\definecolor{solarizedBlue}{HTML}{268BD2} +\definecolor{solarizedCyan}{HTML}{2AA198} +\definecolor{solarizedGreen}{HTML}{859900} + +% Set Accent color +% Ugly. Should be done with a switch +\ifdefstring{\solarized@accent}{yellow}{ + \colorlet{solarizedAccent}{solarizedYellow} +}{} +\ifdefstring{\solarized@accent}{orange}{ + \colorlet{solarizedAccent}{solarizedOrange} +}{} +\ifdefstring{\solarized@accent}{red}{ + \colorlet{solarizedAccent}{solarizedRed} +}{} +\ifdefstring{\solarized@accent}{magenta}{ + \colorlet{solarizedAccent}{solarizedMagenta} +}{} +\ifdefstring{\solarized@accent}{violet}{ + \colorlet{solarizedAccent}{solarizedViolet} +}{} +\ifdefstring{\solarized@accent}{blue}{ + \colorlet{solarizedAccent}{solarizedBlue} +}{} +\ifdefstring{\solarized@accent}{cyan}{ + \colorlet{solarizedAccent}{solarizedCyan} +}{} +\ifdefstring{\solarized@accent}{green}{ + \colorlet{solarizedAccent}{solarizedGreen} +}{} + +%% Set base colors for dark or light versions +%% Dark +% Switch between light and dark themes using the method in the CSS +% stylesheet http://ethanschoonover.com/solarized +\ifboolexpe{ bool {solarized@dark}}{ + \colorlet{solarizedRebase03}{solarizedBase03} + \colorlet{solarizedRebase02}{solarizedBase02} + \colorlet{solarizedRebase01}{solarizedBase01} + \colorlet{solarizedRebase00}{solarizedBase00} + \colorlet{solarizedRebase0}{solarizedBase0} + \colorlet{solarizedRebase1}{solarizedBase1} + \colorlet{solarizedRebase2}{solarizedBase2} + \colorlet{solarizedRebase3}{solarizedBase3} +}{ + %% Light + \colorlet{solarizedRebase03}{solarizedBase3} + \colorlet{solarizedRebase02}{solarizedBase2} + \colorlet{solarizedRebase01}{solarizedBase1} + \colorlet{solarizedRebase00}{solarizedBase0} + \colorlet{solarizedRebase0}{solarizedBase00} + \colorlet{solarizedRebase1}{solarizedBase01} + \colorlet{solarizedRebase2}{solarizedBase02} + \colorlet{solarizedRebase3}{solarizedBase03} +} + +\mode<presentation> + +\setbeamercolor{normal text}{fg=solarizedRebase0, bg=solarizedRebase03} +\setbeamercolor{alerted text}{fg=solarizedAccent} +% based css pre element +\setbeamercolor{example text}{fg=solarizedRebase1, bg=solarizedRebase02} + +% Header and footer from CSS +\setbeamercolor{footline}{bg=solarizedRebase02,fg=solarizedRebase01} +\setbeamercolor{headline}{bg=solarizedRebase01,fg=solarizedRebase1} + +% Titles +\setbeamercolor*{titlelike}{fg=solarizedAccent} +\setbeamercolor*{frametitle}{fg=solarizedAccent} +\setbeamercolor*{title}{fg=solarizedAccent} + +% Structure elements use css style for header +\setbeamercolor*{structure}{bg=solarizedRebase01, fg=solarizedRebase1} + +% Do not mess with subtle colors in palette. I don't like it. +\setbeamercolor*{palette primary}{bg=solarizedRebase01, fg=solarizedRebase1} +\setbeamercolor*{palette secondary}{bg=solarizedRebase01, fg=solarizedRebase1} +\setbeamercolor*{palette tertiary}{bg=solarizedRebase01, fg=solarizedRebase1} +\setbeamercolor*{palette quaternary}{bg=solarizedRebase01, fg=solarizedRebase1} + +% Make Blocks slightly lighter/darker +\setbeamercolor{block title}{fg=solarizedAccent, bg=solarizedRebase02} +%\setbeamercolor{block title alerted}{} +%\setbeamercolor{block title example}{} + +\setbeamercolor{block body}{parent=normal text, bg=solarizedRebase02} +% \setbeamercolor{block body alerted}{} +% \setbeamercolor{block body example}{} + +% same as footline +% Set Sidebar and footline to use the css style for footer +\setbeamercolor*{sidebar}{parent=headline} +\setbeamercolor*{palette sidebar primary}{fg=solarizedRebase01, fg=solarizedRebase1} +\setbeamercolor*{palette sidebar secondary}{fg=solarizedRebase01, fg=solarizedRebase1} +\setbeamercolor*{palette sidebar tertiary}{fg=solarizedRebase01, fg=solarizedRebase1} +\setbeamercolor*{palette sidebar quaternary}{fg=solarizedRebase01, fg=solarizedRebase1} + +% border-color for headings +\setbeamercolor{separation line}{fg=solarizedRebase0} +\setbeamercolor{fine separation line}{fg=solarizedRebase0} + +\setbeamercolor*{section in sidebar shaded}{parent=palette sidebar primary} +% a.hover.navlink in CSS +\setbeamercolor*{section in sidebar}{parent=palette sidebar primary, fg=solarizedRooebase02} +\setbeamercolor*{subsection in sidebar}{parent=section in sidebar} +\setbeamercolor*{subsection in sidebar shaded}{parent=section in sidebar shaded} + +\mode +<all> |