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.
Slit 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 = true, -- 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 = "normal", -- 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,
}
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.
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 copy the files in where your configuration is sourcing them.
This is still an ongoing project. Below are the next topics I will work on:
Add docs.
Extra automatic generation.
Create predefined configurations of the theme.
If you want to contribute to this project, please consider addressing one of the previous point :)
Pull requests and improvement suggestions are very welcome!
My dot config 0xstepit/dotfiles.
This colorscheme is inspired by other amazing colorscheme: