/vim-enfocado

How themes should be.

Primary LanguageVim ScriptMIT LicenseMIT

Enfocado for Vim

Banner

License Badge README Style Badge

Enfocado is more than a theme, it is a concept of "how themes should be", focusing on what is really important to developers: the code and nothing else.

What you won't have if you don't install Enfocado:

  • CIELAB Colors: use of the well-founded Selenized color scheme created with the magic of the CIELAB color space. Learn about its features and design in its official repository.
  • Human Writing: human writing is simulated by using italic typeface for syntax groups (comments, methods, structs, and more ...) that are generally named and written in human language.
  • Minimal Syntax: only three colors are used to highlight syntax, following the color guidelines for web design, which state that only three main colors should be used in interfaces, no more.
  • Signal Alerts: the yellow, orange and red colors are reserved to be used only with important alerts, following the standards for the meanings of the signal colors in the industrial area.
  • Styles: choose the style that best suits your personality:
Nature: go for the nature style if you are a minimalist developer who is always connected to nature.

Neon: go for the neon style if you are an outgoing developer that is always surrounded by RGBs.

Table of Contents

Installation

Install via your preferred package manager. Example using vim-plug:

Plug 'wuelnerdotexe/vim-enfocado'

Usage

Statuslines

To use Lightline theme:

let g:lightline = { 'colorscheme': 'enfocado' }

To use Lualine theme:

require('lualine').setup { options = { theme = 'enfocado' } }

To use Airline theme:

let g:airline_theme = 'enfocado'

Colorscheme

First, if you have true color support, enable it:

set termguicolors

Otherwise, enable 256 terminal color support:

set t_Co=256

Choose between light or dark theme:

set background={light or dark}

Then choose your favorite Enfocado style, for example:

let g:enfocado_style = 'neon' " Available: `nature` or `neon`.

If you want to reduce the loading time of Enfocado, you can specify the plugins you want to apply the theme to on demand:

" NOTE: To see a list of all available plugins, run
" `:h enfocado-colorscheme` at the vim commandline.
let g:enfocado_plugins = [
  \   'aerial',
  \   'bufferline',
  \   'cmp',
  \   'dap-ui',
  \   'gitsigns',
  \   'illuminate',
  \   'indent-blankline',
  \   'lazy',
  \   'lspconfig',
  \   'matchup',
  \   'neo-tree',
  \   'noice',
  \   'null-ls',
  \   'smoothcursor',
  \   'substitute',
  \   'surround',
  \   'telescope',
  \   'treesitter',
  \   'ts-rainbow2',
  \   'visual-multi',
  \   'yanky'
  \ ]

And finally turn on the Enfocado theme and enjoy!

colorscheme enfocado

Customization

Like all colorschemes, Enfocado is easy to customize with autocmd. Make use of the ColorScheme event as in the following examples.

It would be a good idea to put all of your personal changes in an augroup, which you can do with the following code:

augroup enfocado_customization
  autocmd!
    " autocmds...
augroup END

To make the background transparent, you can use the following:

augroup enfocado_customization
  autocmd!
    autocmd ColorScheme enfocado highlight Normal ctermbg=NONE guibg=NONE
augroup END

NOTE: The usage codes must be written in your .vimrc or init.vim.

Syntax

Master your theme, understand and recognize syntax, improve your muscle memory.

SELENIZED COLOR HEX COLOR HEX COLOR (light) TEXT TYPE NATURE SYNTAX TOKENS NEON SYNTAX TOKENS
Dimmed #777777 #878787 Italic Comments Comments
Foreground 0 #b9b9b9 #474747 NONE Constants, punctuation, text Constants, punctuation, text
Foreground 1 #dedede #282828 Bold Titles Titles
Red #ed4a46 #d6000c NONE Not used in the syntax Not used in the syntax
Yellow #dbb32d #c49700 NONE Constant identifiers Constant identifiers
Green #70b433 #1d9700 NONE Identifiers Built-in identifiers
Blue #368aeb #0064e4 NONE Keywords Built-in keywords
Magenta #eb6eb7 #dd0f9d NONE Built-in identifiers Identifiers
Cyan #3fc5b7 #00ad9c NONE Strings Strings
Orange #e67f43 #d04a00 NONE Exceptions (trycatch) Exceptions (trycatch)
Violet #a580e2 #7f51d6 NONE Built-in keywords Keywords
Bright red #ff5e56 #bf0000 Bold Errors Errors
Bright yellow #efc541 #af8500 NONE Not used in the syntax Not used in the syntax
Bright green #83c746 #008400 Italic Methods Built-in methods
Bright blue #4f9cfe #0054cf Bold Types Built-in types
Bright magenta #ff81ca #c7008b Italic Built-in methods Methods
Bright cyan #56d8c9 #009a8a Underline Links Links
Bright orange #fa9153 #ba3700 NONE Not used in the syntax Not used in the syntax
Bright violet #b891f5 #6b40c3 Bold Built-in types Types

DISCLAIMER: Enfocado doesn't customize individual tokens for each language, it just defines the default base, if your syntax doesn't look as described here, it's not our responsibility, it's the responsibility of those who assign wrong tokens to some language's syntax, and we don't correct those problems constantly.

Recommendations

Tree-sitter

If you are on Neovim, it is strongly recommended that you use nvim-treesitter to ensure that your syntax highlighting is as close as possible to what is described above.

Fonts

In order for the human text simulation to work as it should, I recommend that you use either of these three beautiful fonts, which align with the "Mankind and Machine" concept.

Configs

This vim configs comes with Enfocado for Vim already installed by default!

Extras

Maintainer

Hi ๐Ÿ‘‹, I'm Wuelner, a software developer from Guatemala, passionate about creating minimalist solutions using solid fundamentals focused on "how things should be".

Contributing

All your ideas and suggestions are welcome! ๐Ÿ™Œ

Let me see your captures and let me know what you think with the hashtag #HowThemesShouldBe. ๐Ÿ‘€

And of course, if you want to motivate me to constantly improve this theme, your donations are welcome at PayPal. ๐Ÿ‘‰๐Ÿ‘ˆ

Plugins

The following plugins are supported:

Credits

License

MIT ยฉ Wuelner Martรญnez.

With ๐Ÿ’– from LATAM to the world!