-- A collection of Themes. module Yi.Style.Library where import Yi.Style import Data.Prototype type Theme = Proto UIStyle -- | Abstract theme that provides useful defaults. defaultTheme :: Theme defaultTheme = Proto $ const UIStyle { modelineAttributes = emptyAttributes { foreground = white, background = grey } , modelineFocusStyle = withFg brightwhite , tabBarAttributes = emptyAttributes , tabInFocusStyle = withFg black `mappend` withBg white , tabNotFocusedStyle = mempty , baseAttributes = emptyAttributes , selectedStyle = withFg white `mappend` withBg purple , eofStyle = withFg blue , errorStyle = withBg red , hintStyle = withFg black `mappend` withBg cyan , strongHintStyle = withFg black `mappend` withBg magenta , commentStyle = withFg purple , blockCommentStyle = withFg purple , keywordStyle = withFg darkblue , numberStyle = withFg darkred , preprocessorStyle = withFg red , stringStyle = withFg darkcyan , longStringStyle = mempty , typeStyle = withFg darkgreen , dataConstructorStyle = withBd True `mappend` withFg darkgreen , importStyle = withFg blue , builtinStyle = withFg blue , regexStyle = withFg red , variableStyle = mempty , operatorStyle = withFg brown , makeFileRuleHead = withFg blue , makeFileAction = withFg grey , quoteStyle = withFg grey } -- | A Theme inspired by the darkblue colorscheme of Vim. darkBlueTheme :: Theme darkBlueTheme = defaultTheme `override` \super _ -> super { modelineAttributes = emptyAttributes { foreground = darkblue, background = white } , modelineFocusStyle = withBg brightwhite , tabBarAttributes = emptyAttributes { foreground = darkblue, background = brightwhite } , tabInFocusStyle = withFg grey `mappend` withBg white , tabNotFocusedStyle = withFg lightGrey `mappend` withBg white , baseAttributes = emptyAttributes { foreground = white, background = black } , selectedStyle = withFg white `mappend` withBg blue , eofStyle = withFg red , hintStyle = withBg darkblue , strongHintStyle = withBg blue , commentStyle = withFg darkred , keywordStyle = withFg brown , stringStyle = withFg purple , variableStyle = withFg cyan , operatorStyle = withFg brown }