Skip to content

Instantly share code, notes, and snippets.

@eszterkv
Created February 12, 2026 11:24
Show Gist options
  • Select an option

  • Save eszterkv/3dc26a63f85731229ed6be684d05b849 to your computer and use it in GitHub Desktop.

Select an option

Save eszterkv/3dc26a63f85731229ed6be684d05b849 to your computer and use it in GitHub Desktop.
claude-ish vim theme, made by claude themself.
" claude.vim - Claude Code inspired theme, optimized for TSX
" Save to: ~/.vim/colors/claude.vim
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "claude"
" Palette:
" Terracotta/coral: #da7756 - Functions, components
" Light blue: #7eb8c9 - Strings, JSX text
" Purple: #a78bfa - Keywords, control flow
" Gold/yellow: #d4a54a - Numbers, constants, props
" Red: #e05544 - Errors, important
" Soft green: #8fbc8f - Types, interfaces
" Cream: #e8e4df - Default text
" Muted: #7a7067 - Comments
" === UI Elements ===
hi Normal guifg=#e8e4df guibg=NONE ctermbg=NONE ctermfg=253
hi NonText guifg=#5c534a guibg=NONE ctermbg=NONE ctermfg=240
hi LineNr guifg=#6b6259 guibg=NONE ctermbg=NONE ctermfg=242
hi CursorLineNr guifg=#d4a54a guibg=NONE ctermbg=NONE ctermfg=179 gui=bold
hi CursorLine guibg=#2a2520 ctermbg=236 cterm=NONE
hi Visual guibg=#4a3f38 ctermbg=238
hi StatusLine guifg=#e8e4df guibg=#3a332e ctermbg=237 ctermfg=253
hi StatusLineNC guifg=#6b6259 guibg=#2a2520 ctermbg=236 ctermfg=242
hi VertSplit guifg=#3a332e guibg=NONE ctermbg=NONE ctermfg=237
hi Pmenu guifg=#e8e4df guibg=#2a2520 ctermbg=236 ctermfg=253
hi PmenuSel guifg=#1a1613 guibg=#a78bfa ctermbg=141 ctermfg=234
hi SignColumn guibg=NONE ctermbg=NONE
hi FoldColumn guibg=NONE ctermbg=NONE
hi Folded guifg=#7a7067 guibg=#2a2520 ctermfg=243 ctermbg=236
" === Base Syntax ===
hi Comment guifg=#7a7067 ctermfg=243 gui=italic
" Constants/numbers - gold (stands out for magic numbers)
hi Constant guifg=#d4a54a ctermfg=179
hi Number guifg=#d4a54a ctermfg=179
hi Boolean guifg=#d4a54a ctermfg=179
hi Float guifg=#d4a54a ctermfg=179
" Strings - light blue (easy on eyes, common in JSX)
hi String guifg=#7eb8c9 ctermfg=110
hi Character guifg=#7eb8c9 ctermfg=110
" Variables - cream (neutral, most common)
hi Identifier guifg=#e8e4df ctermfg=253
" Functions - terracotta (important, should pop)
hi Function guifg=#da7756 ctermfg=173
" Keywords - purple (control flow visibility)
hi Statement guifg=#a78bfa ctermfg=141
hi Keyword guifg=#a78bfa ctermfg=141
hi Conditional guifg=#a78bfa ctermfg=141
hi Repeat guifg=#a78bfa ctermfg=141
hi Label guifg=#a78bfa ctermfg=141
hi Exception guifg=#e05544 ctermfg=167
" Operators - subtle but visible
hi Operator guifg=#c9c0b8 ctermfg=251
" Imports/exports - terracotta (module boundaries matter)
hi PreProc guifg=#da7756 ctermfg=173
hi Include guifg=#a78bfa ctermfg=141
hi Define guifg=#da7756 ctermfg=173
hi Macro guifg=#da7756 ctermfg=173
hi PreCondit guifg=#da7756 ctermfg=173
" Types - soft green (distinct from values)
hi Type guifg=#8fbc8f ctermfg=108
hi StorageClass guifg=#a78bfa ctermfg=141
hi Structure guifg=#8fbc8f ctermfg=108
hi Typedef guifg=#8fbc8f ctermfg=108
" Special chars - purple
hi Special guifg=#a78bfa ctermfg=141
hi SpecialChar guifg=#a78bfa ctermfg=141
hi Delimiter guifg=#9a8a7a ctermfg=245
hi SpecialComment guifg=#8a7a6a ctermfg=244 gui=italic
hi Debug guifg=#e05544 ctermfg=167
hi Underlined guifg=#7eb8c9 ctermfg=110 gui=underline
hi Ignore guifg=#5c534a ctermfg=240
hi Error guifg=#e05544 guibg=NONE ctermfg=167 ctermbg=NONE gui=bold
hi Todo guifg=#1a1613 guibg=#d4a54a ctermfg=234 ctermbg=179 gui=bold
" === TypeScript Specific ===
hi typescriptImport guifg=#a78bfa ctermfg=141
hi typescriptExport guifg=#a78bfa ctermfg=141
hi typescriptVariable guifg=#a78bfa ctermfg=141
hi typescriptAmbientDeclaration guifg=#a78bfa ctermfg=141
hi typescriptModule guifg=#7eb8c9 ctermfg=110
hi typescriptClassName guifg=#8fbc8f ctermfg=108
hi typescriptInterfaceName guifg=#8fbc8f ctermfg=108
hi typescriptTypeReference guifg=#8fbc8f ctermfg=108
hi typescriptPredefinedType guifg=#8fbc8f ctermfg=108
hi typescriptFuncName guifg=#da7756 ctermfg=173
hi typescriptCall guifg=#e8e4df ctermfg=253
hi typescriptArrowFunc guifg=#a78bfa ctermfg=141
hi typescriptMember guifg=#e8e4df ctermfg=253
hi typescriptObjectLabel guifg=#d4a54a ctermfg=179
hi typescriptStringProperty guifg=#d4a54a ctermfg=179
hi typescriptTemplateSB guifg=#a78bfa ctermfg=141
hi typescriptBraces guifg=#b8a090 ctermfg=248
hi typescriptParens guifg=#b8a090 ctermfg=248
hi typescriptNull guifg=#d4a54a ctermfg=179
hi typescriptOperator guifg=#a78bfa ctermfg=141
hi typescriptBinaryOp guifg=#c9c0b8 ctermfg=251
hi typescriptAssign guifg=#c9c0b8 ctermfg=251
hi typescriptGlobal guifg=#8fbc8f ctermfg=108
hi typescriptAsyncFuncKeyword guifg=#a78bfa ctermfg=141
hi typescriptAwaitKeyword guifg=#a78bfa ctermfg=141
" === JSX/TSX Specific ===
" Tags - terracotta for components, lighter for HTML
hi jsxTagName guifg=#da7756 ctermfg=173
hi jsxComponentName guifg=#da7756 ctermfg=173 gui=bold
hi jsxAttrib guifg=#d4a54a ctermfg=179
hi jsxEqual guifg=#b8a090 ctermfg=248
hi jsxString guifg=#7eb8c9 ctermfg=110
hi jsxCloseString guifg=#b8a090 ctermfg=248
hi jsxBraces guifg=#a78bfa ctermfg=141
hi jsxExpressionBlock guifg=#e8e4df ctermfg=253
" React-specific (vim-jsx-typescript, vim-jsx-pretty)
hi tsxTagName guifg=#da7756 ctermfg=173
hi tsxComponentName guifg=#da7756 ctermfg=173 gui=bold
hi tsxCloseComponentName guifg=#da7756 ctermfg=173
hi tsxCloseTagName guifg=#da7756 ctermfg=173
hi tsxAttrib guifg=#d4a54a ctermfg=179
hi tsxEqual guifg=#b8a090 ctermfg=248
hi tsxString guifg=#7eb8c9 ctermfg=110
hi tsxCloseString guifg=#b8a090 ctermfg=248
hi tsxAttributeBraces guifg=#a78bfa ctermfg=141
hi tsxIntrinsicTagName guifg=#c9a090 ctermfg=180
" HTML tags inside JSX (lowercase = intrinsic)
hi htmlTagName guifg=#c9a090 ctermfg=180
hi htmlTag guifg=#b8a090 ctermfg=248
hi htmlEndTag guifg=#b8a090 ctermfg=248
hi htmlArg guifg=#d4a54a ctermfg=179
hi htmlSpecialTagName guifg=#c9a090 ctermfg=180
" XML (some JSX plugins use this)
hi xmlTagName guifg=#da7756 ctermfg=173
hi xmlTag guifg=#b8a090 ctermfg=248
hi xmlEndTag guifg=#b8a090 ctermfg=248
hi xmlAttrib guifg=#d4a54a ctermfg=179
" === JavaScript Base ===
hi javaScriptFunction guifg=#a78bfa ctermfg=141
hi javaScriptIdentifier guifg=#a78bfa ctermfg=141
hi javaScriptBraces guifg=#b8a090 ctermfg=248
hi javaScriptNumber guifg=#d4a54a ctermfg=179
" vim-javascript
hi jsFunction guifg=#a78bfa ctermfg=141
hi jsFuncName guifg=#da7756 ctermfg=173
hi jsFuncCall guifg=#da7756 ctermfg=173
hi jsArrowFunction guifg=#a78bfa ctermfg=141
hi jsObjectKey guifg=#d4a54a ctermfg=179
hi jsObjectProp guifg=#e8e4df ctermfg=253
hi jsThis guifg=#a78bfa ctermfg=141
hi jsTemplateString guifg=#7eb8c9 ctermfg=110
hi jsTemplateBraces guifg=#a78bfa ctermfg=141
hi jsGlobalObjects guifg=#8fbc8f ctermfg=108
hi jsNull guifg=#d4a54a ctermfg=179
hi jsUndefined guifg=#d4a54a ctermfg=179
" === Treesitter (Neovim only) ===
if has('nvim')
hi @variable guifg=#e8e4df ctermfg=253
hi @variable.builtin guifg=#a78bfa ctermfg=141
hi @function guifg=#da7756 ctermfg=173
hi @function.call guifg=#da7756 ctermfg=173
hi @function.builtin guifg=#da7756 ctermfg=173
hi @method guifg=#da7756 ctermfg=173
hi @method.call guifg=#da7756 ctermfg=173
hi @constructor guifg=#da7756 ctermfg=173 gui=bold
hi @parameter guifg=#e8e4df ctermfg=253
hi @keyword guifg=#a78bfa ctermfg=141
hi @keyword.function guifg=#a78bfa ctermfg=141
hi @keyword.return guifg=#a78bfa ctermfg=141
hi @keyword.operator guifg=#a78bfa ctermfg=141
hi @conditional guifg=#a78bfa ctermfg=141
hi @repeat guifg=#a78bfa ctermfg=141
hi @include guifg=#a78bfa ctermfg=141
hi @type guifg=#8fbc8f ctermfg=108
hi @type.builtin guifg=#8fbc8f ctermfg=108
hi @type.definition guifg=#8fbc8f ctermfg=108
hi @property guifg=#e8e4df ctermfg=253
hi @field guifg=#e8e4df ctermfg=253
hi @string guifg=#7eb8c9 ctermfg=110
hi @string.escape guifg=#a78bfa ctermfg=141
hi @number guifg=#d4a54a ctermfg=179
hi @boolean guifg=#d4a54a ctermfg=179
hi @operator guifg=#c9c0b8 ctermfg=251
hi @punctuation.bracket guifg=#b8a090 ctermfg=248
hi @punctuation.delimiter guifg=#9a8a7a ctermfg=245
hi @tag guifg=#da7756 ctermfg=173
hi @tag.attribute guifg=#d4a54a ctermfg=179
hi @tag.delimiter guifg=#b8a090 ctermfg=248
hi @comment guifg=#7a7067 ctermfg=243 gui=italic
hi @constant guifg=#d4a54a ctermfg=179
hi @constant.builtin guifg=#d4a54a ctermfg=179
endif
" === Diff ===
hi DiffAdd guifg=#a0c080 guibg=#2a3a2a ctermfg=150 ctermbg=238
hi DiffDelete guifg=#e05544 guibg=#3a2a2a ctermfg=167 ctermbg=238
hi DiffChange guibg=#3a3530 ctermbg=238
hi DiffText guifg=#d4a54a guibg=#4a3f38 ctermfg=179 ctermbg=238 gui=bold
" === Search ===
hi Search guifg=#1a1613 guibg=#d4a54a ctermfg=234 ctermbg=179
hi IncSearch guifg=#1a1613 guibg=#da7756 ctermfg=234 ctermbg=173
" === Matching ===
hi MatchParen guifg=#e8e4df guibg=#6a5a8a ctermfg=253 ctermbg=97 gui=bold
" === Spelling ===
hi SpellBad guisp=#e05544 gui=undercurl cterm=underline ctermfg=167
hi SpellCap guisp=#d4a54a gui=undercurl cterm=underline ctermfg=179
hi SpellRare guisp=#a78bfa gui=undercurl cterm=underline ctermfg=141
hi SpellLocal guisp=#7eb8c9 gui=undercurl cterm=underline ctermfg=110
" === Tabs ===
hi TabLine guifg=#7a7067 guibg=#2a2520 ctermfg=243 ctermbg=236
hi TabLineFill guibg=#2a2520 ctermbg=236
hi TabLineSel guifg=#e8e4df guibg=NONE ctermfg=253 ctermbg=NONE gui=bold
" === Cursor ===
hi Cursor guifg=#1a1613 guibg=#da7756 ctermfg=234 ctermbg=173
hi CursorIM guifg=#1a1613 guibg=#d4a54a ctermfg=234 ctermbg=179
hi CursorColumn guibg=#2a2520 ctermbg=236
" === Messages ===
hi ModeMsg guifg=#a78bfa ctermfg=141 gui=bold
hi MoreMsg guifg=#a0c080 ctermfg=150
hi WarningMsg guifg=#d4a54a ctermfg=179
hi ErrorMsg guifg=#e05544 guibg=NONE ctermfg=167 ctermbg=NONE
" === Menus ===
hi WildMenu guifg=#1a1613 guibg=#a78bfa ctermfg=234 ctermbg=141
hi Directory guifg=#7eb8c9 ctermfg=110
hi Question guifg=#a0c080 ctermfg=150
hi Title guifg=#da7756 ctermfg=173 gui=bold
hi Conceal guifg=#7a7067 guibg=NONE ctermfg=243 ctermbg=NONE
" === Git ===
hi SignColumn guibg=NONE ctermbg=NONE
hi GitGutterAdd guifg=#a0c080 guibg=NONE ctermfg=150 ctermbg=NONE
hi GitGutterChange guifg=#d4a54a guibg=NONE ctermfg=179 ctermbg=NONE
hi GitGutterDelete guifg=#e05544 guibg=NONE ctermfg=167 ctermbg=NONE
" === LSP Diagnostics ===
hi DiagnosticError guifg=#e05544 ctermfg=167
hi DiagnosticWarn guifg=#d4a54a ctermfg=179
hi DiagnosticInfo guifg=#7eb8c9 ctermfg=110
hi DiagnosticHint guifg=#a78bfa ctermfg=141
hi DiagnosticUnderlineError guisp=#e05544 gui=undercurl cterm=underline
hi DiagnosticUnderlineWarn guisp=#d4a54a gui=undercurl cterm=underline
hi DiagnosticUnderlineInfo guisp=#7eb8c9 gui=undercurl cterm=underline
hi DiagnosticUnderlineHint guisp=#a78bfa gui=undercurl cterm=underline
" === COC.nvim ===
hi CocErrorSign guifg=#e05544 ctermfg=167
hi CocWarningSign guifg=#d4a54a ctermfg=179
hi CocInfoSign guifg=#7eb8c9 ctermfg=110
hi CocHintSign guifg=#a78bfa ctermfg=141
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment