summaryrefslogtreecommitdiffstats
path: root/vim/colors/hemisu.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/colors/hemisu.vim')
-rw-r--r--vim/colors/hemisu.vim229
1 files changed, 229 insertions, 0 deletions
diff --git a/vim/colors/hemisu.vim b/vim/colors/hemisu.vim
new file mode 100644
index 0000000..95d39e2
--- /dev/null
+++ b/vim/colors/hemisu.vim
@@ -0,0 +1,229 @@
+" hemisu.vim - Vim color scheme
+" ----------------------------------------------------------
+" Author: Noah Frederick (http://noahfrederick.com/)
+" Version: 3.4
+" License: Creative Commons Attribution-NonCommercial
+" 3.0 Unported License (see README.md)
+" ----------------------------------------------------------
+
+" Setup ----------------------------------------------------{{{
+" Reset syntax highlighting
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+" Declare theme name
+let g:colors_name = "hemisu"
+
+"}}}
+" The Colors -----------------------------------------------{{{
+" Define reusable colors
+let s:black = { "gui": "#080D14", "cterm": "16" }
+let s:white = { "gui": "#FFFFFF", "cterm": "231" }
+let s:almostWhite = { "gui": "#FFDABD", "cterm": "255" }
+let s:almostBlack = { "gui": "#111111", "cterm": "233" }
+let s:middleDarkGrey = { "gui": "#777777", "cterm": "241" }
+let s:middleLightGrey = { "gui": "#999999", "cterm": "246" }
+let s:lightGrey = { "gui": "#BBBBBB", "cterm": "249" }
+let s:darkGrey = { "gui": "#444444", "cterm": "238" }
+
+let s:darkPink = { "gui": "#63001C", "cterm": "88" }
+let s:middleDarkPink = { "gui": "#FF0055", "cterm": "197" }
+let s:middleLightPink = { "gui": "#D65E76", "cterm": "167" }
+let s:lightPink = { "gui": "#FFAFAF", "cterm": "217" }
+
+let s:darkBlue = { "gui": "#005F87", "cterm": "24" }
+let s:middleDarkBlue = { "gui": "#538192", "cterm": "24" }
+let s:middleLightBlue = { "gui": "#9FD3E6", "cterm": "116" }
+let s:lightBlue = { "gui": "#CBE4EE", "cterm": "195" }
+let s:verylightBlue = { "gui": "#D7F9FC", "cterm": "195" }
+let s:lightCyan = { "gui": "#84D9A5", "cterm": "195" }
+let s:lightPurple = { "gui": "#8CFAF1", "cterm": "195" }
+
+let s:darkGreen = { "gui": "#5F5F00", "cterm": "58" }
+let s:middleDarkGreen = { "gui": "#739200", "cterm": "64" }
+let s:middleLightGreen = { "gui": "#C78C52", "cterm": "149" }
+let s:lightGreen = { "gui": "#EAEB88", "cterm": "157" }
+let s:intenseGreen = { "gui": "#52EB66", "cterm": "157" }
+
+let s:darkGold = { "gui": "#C2B85B", "cterm": "149" }
+
+let s:darkTan = { "gui": "#503D15", "cterm": "52" }
+let s:lightTan = { "gui": "#ECE1C8", "cterm": "230" }
+
+" Assign to semantic categories based on background color
+if &background == "dark"
+ " Dark theme
+ let s:bg = s:black
+ let s:norm = s:almostWhite
+ let s:comment = s:middleDarkGrey
+ let s:dimmed = s:middleLightGrey
+ let s:subtle = s:darkGrey
+ let s:faint = s:almostBlack
+ let s:accent1 = s:middleLightBlue
+ let s:accent2 = s:darkGold
+ let s:accent3 = s:lightCyan
+ let s:accent4 = s:lightTan
+ let s:accent5 = s:verylightBlue
+ let s:accent6 = s:middleLightGreen
+ let s:normRed = s:middleLightPink
+ let s:normGreen = s:middleLightGreen
+ let s:normBlue = s:middleLightBlue
+ let s:faintRed = s:darkPink
+ let s:faintGreen = s:darkGreen
+ let s:faintBlue = s:darkBlue
+else
+ " Light theme
+ let s:bg = s:white
+ let s:norm = s:almostBlack
+ let s:comment = s:middleLightGrey
+ let s:dimmed = s:middleDarkGrey
+ let s:subtle = s:lightGrey
+ let s:faint = s:almostWhite
+ let s:accent1 = s:middleDarkBlue
+ let s:accent2 = s:middleDarkGreen
+ let s:accent3 = s:middleDarkPink
+ let s:accent4 = s:darkTan
+ let s:normRed = s:middleDarkPink
+ let s:normGreen = s:middleDarkGreen
+ let s:normBlue = s:middleDarkBlue
+ let s:faintRed = s:lightPink
+ let s:faintGreen = s:lightGreen
+ let s:faintBlue = s:lightBlue
+endif
+
+"}}}
+" Utility Function -----------------------------------------{{{
+function! s:h(group, style)
+ execute "highlight" a:group
+ \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE")
+ \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE")
+ \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE")
+ \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE")
+ \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE")
+ \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE")
+ \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
+endfunction
+
+"}}}
+" Highlights - Vim >= 7 ------------------------------------{{{
+if version >= 700
+ call s:h("CursorLine", { "bg": s:faint })
+ call s:h("MatchParen", { "fg": s:accent1, "bg": s:faint, "gui": "bold" })
+ call s:h("Pmenu", { "bg": s:faint })
+ call s:h("PmenuThumb", { "bg": s:norm })
+ call s:h("PmenuSBar", { "bg": s:subtle })
+ call s:h("PmenuSel", { "bg": s:faintBlue })
+ call s:h("ColorColumn", { "bg": s:faintRed })
+ call s:h("SpellBad", { "sp": s:normRed, "gui": "undercurl" })
+ call s:h("SpellCap", { "sp": s:accent1, "gui": "undercurl" })
+ call s:h("SpellRare", { "sp": s:normGreen, "gui": "undercurl" })
+ call s:h("SpellLocal", { "sp": s:accent4, "gui": "undercurl" })
+ hi! link CursorColumn CursorLine
+
+ " Use background for cterm Spell*, which does not support undercurl
+ execute "hi! SpellBad ctermbg=" s:faintRed.cterm
+ execute "hi! SpellCap ctermbg=" s:faintBlue.cterm
+ execute "hi! SpellRare ctermbg=" s:faintGreen.cterm
+ execute "hi! SpellLocal ctermbg=" s:faint.cterm
+endif
+
+"}}}
+" Highlights - UI ------------------------------------------{{{
+call s:h("Normal", { "fg": s:norm, "bg": s:bg })
+call s:h("NonText", { "fg": s:subtle })
+call s:h("Cursor", { "fg": s:bg, "bg": s:accent3 })
+call s:h("Visual", { "bg": s:faintBlue })
+call s:h("IncSearch", { "bg": s:faintBlue })
+call s:h("Search", { "bg": s:faintGreen })
+call s:h("StatusLine", { "fg": s:norm, "bg": s:faint, "gui": "bold", "cterm": "bold" })
+call s:h("StatusLineNC", { "fg": s:dimmed, "bg": s:faint })
+call s:h("SignColumn", { "fg": s:norm })
+call s:h("VertSplit", { "fg": s:subtle, "bg": s:faint })
+call s:h("TabLine", { "fg": s:dimmed, "bg": s:faint })
+call s:h("TabLineSel", { "gui": "bold", "cterm": "bold" })
+call s:h("Folded", { "fg": s:comment, "bg": s:faint })
+call s:h("Directory", { "fg": s:accent1 })
+call s:h("Title", { "fg": s:accent4, "gui": "bold", "cterm": "bold" })
+call s:h("ErrorMsg", { "bg": s:faintRed })
+call s:h("DiffAdd", { "bg": s:faintGreen })
+call s:h("DiffChange", { "bg": s:faintRed })
+call s:h("DiffDelete", { "fg": s:normRed, "bg": s:faintRed })
+call s:h("DiffText", { "bg": s:faintRed, "gui": "bold", "cterm": "bold" })
+call s:h("User1", { "fg": s:bg, "bg": s:normGreen })
+call s:h("User2", { "fg": s:bg, "bg": s:normRed })
+call s:h("User3", { "fg": s:bg, "bg": s:normBlue })
+hi! link WildMenu IncSearch
+hi! link FoldColumn SignColumn
+hi! link WarningMsg ErrorMsg
+hi! link MoreMsg Title
+hi! link Question MoreMsg
+hi! link ModeMsg MoreMsg
+hi! link TabLineFill StatusLineNC
+hi! link LineNr NonText
+hi! link SpecialKey NonText
+
+"}}}
+" Highlights - Generic Syntax ------------------------------{{{
+call s:h("Delimiter", { "fg": s:dimmed })
+call s:h("Comment", { "fg": s:dimmed, "gui": "italic" })
+call s:h("Underlined", { "fg": s:accent1, "gui": "underline", "cterm": "underline" })
+call s:h("Type", { "fg": s:accent3 })
+call s:h("String", { "fg": s:accent2 })
+call s:h("Constant", { "fg": s:accent6 })
+call s:h("Statement", { "fg": s:accent5 })
+"call s:h("Number", { "fg": s:lightPurple})
+call s:h("Identifier", { "fg": s:norm})
+" call s:h("@lsp.mod.declaration", { "fg": s:lightGreen})
+" call s:h("@lsp.mod.class", { "fg": s:accent3})
+" call s:h("@lsp.typemod.variable.globalScope", { "fg": s:accent6})
+" call s:h("@lsp.type.namespace", { "fg": s:norm})
+call s:h("Keyword", { "fg": s:accent5 })
+call s:h("Todo", { "fg": s:normRed, "gui": "bold", "cterm": "bold" })
+
+hi! link StorageClass Keyword
+hi! link Number Normal
+hi! link Special Constant
+hi! link PreProc Constant
+hi! link Error ErrorMsg
+
+"}}}
+" Highlights - HTML ----------------------------------------{{{
+hi! link htmlLink Underlined
+hi! link htmlTag Type
+hi! link htmlEndTag htmlTag
+
+"}}}
+" Highlights - CSS -----------------------------------------{{{
+hi! link cssBraces Delimiter
+hi! link cssSelectorOp cssBraces
+hi! link cssClassName Normal
+
+"}}}
+" Highlights - Markdown ------------------------------------{{{
+hi! link mkdListItem mkdDelimiter
+
+"}}}
+" Highlights - Shell ---------------------------------------{{{
+hi! link shOperator Delimiter
+hi! link shCaseBar Delimiter
+
+"}}}
+" Highlights - JavaScript ----------------------------------{{{
+hi! link javaScriptValue Constant
+hi! link javaScriptNull Constant
+hi! link javaScriptBraces Normal
+
+"}}}
+" Highlights - Help ----------------------------------------{{{
+hi! link helpExample String
+hi! link helpHeadline Title
+hi! link helpSectionDelim Comment
+hi! link helpHyperTextEntry Statement
+hi! link helpHyperTextJump Underlined
+hi! link helpURL Underlined
+
+"}}}
+
+" vim: fdm=marker:sw=2:sts=2:et