Flow is an Nvim color scheme written in Lua. It features carefully designed colors to help focusing during coding plus fluorescent details to provide a vibrant environment. Why fluo? Because it's cool!
Flow has been designed using a palette based on 9 colors selected through the HSL representation to create a cohesive ambiance. The principal color is the light blue, and the additional colors have been chosen as follows:
-
Analogous (S+/-30): blue, cyan.
-
Complementary (S+/-180): orange.
-
Tetradic 60 (S+/-60): purple, green.
-
Split comp (S+/-150): yellow, red.
Furthermore, sky blue has been included to enhance the blue tones, and a fluorescent color has been added for striking accents.
The palette is defined across four different levels of light and saturation of base color to provide different choices of based on the user preferences:
Base | Bright | Dark | Desaturate | |
---|---|---|---|---|
Light | X | 75 | 25 | X |
Saturation | 80 | 80 | 50 | 50 |
Where X is equal to 70 if the dark theme is selected, or 30 if it is light. Flow allows a lot of customizability in terms of background, main colors, and fluo, but from a big design space come big responsibilities! It is up to you to create a good atmosphere and an harmonic environment. In the short future, I will create pre-defined configurations, but for the moment please, just try to follow these guidelines:
-
When you set a transparent background, use a dark desktop image with the dark theme and a light one with the light theme.
-
Do not use the dark mode with the dark theme, and, consequently, don't use bright mode with the light theme.
Install the theme with your preferred package manager, such as folke/lazy.nvim:
{
"0xstepit/flow.nvim",
lazy = false,
priority = 1000,
opts = {},
}
require("flow").setup{}
vim.cmd "colorscheme flow"
The configuration allows to specify 5 different options:
return {
"0xstepit/flow.nvim",
lazy = false,
priority = 1000,
opts = {},
config = function()
require("flow").setup{
dark_theme = true, -- Set the theme with dark background.
high_contrast = false, -- Make the dark background darker or the light background lighter.
transparent = false, -- Set transparent background.
fluo_color = "pink", -- Color used as fluo. Available values are pink, yellow, orange, or green.
mode = "base", -- Mode of the colors. Available values are: dark, bright, desaturate, or base.
aggressive_spell = false, -- Use colors for spell check.
}
vim.cmd "colorscheme flow"
end,
}
Keep in mind that the transparent
flags set the background of neovim
transparent and, as a result, the terminal emulator background will be visible.
My favorite config
return {
"0xstepit/flow.nvim",
lazy = false,
priority = 1000,
opts = {},
config = function()
require("flow").setup{
dark_theme = true,
transparent = false,
high_contrast = false,
fluo_color = "pink",
mode = "desaturate",
aggressive_spell = false,
}
vim.cmd "colorscheme flow"
end,
}
Below the list of supported plugins divided by category:
-
Debug: nvim-dap.
-
Plugins: lazy.
-
Coding: telescope, treesitter.
-
Utils: trouble, todo-comments, which-key.
-
Base Nvim: diagnostic, lsp, markdown.
Flow.nvim provides colorschemes also for the following tools:
-
Tmux at tmux-flow.conf.
-
Kitty at kitty-flow.conf.
-
fzf at fzf-flow.sh.
The generation of extra is not automatic (I'm sorry, I'm working on it). If you want to generate the color scheme for extras, you need to perform the following steps:
-
Change the config used for the extra theme generation in
lua/flow/extra/main.lua
without setting the background transparent. -
Generate the themes:
cd ./lua/flow/extra
lua main.lua -v
Now you can copy generated files where your configuration is sourcing them.
Pull requests and improvement suggestions are very welcome! If you want to help
developing the plugin, please consider addressing one of the issue marked as
good-first-issue
.
My dot config 0xstepit/dotfiles.
This colorscheme is inspired by other amazing colorscheme: