Home

Awesome

🌊 Flow

logo

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!

Showcase

flow-single-terminal

flow-multiple-terminal

Palette

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:

Furthermore, sky blue has been included to enhance the blue tones, and a fluorescent color has been added for striking accents.

flow-palette

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:

BaseBrightDarkDesaturate
LightX7525X
Saturation80805050

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:

Requirements

Installation

Install the theme with your preferred package manager, such as folke/lazy.nvim:

{
  "0xstepit/flow.nvim",
  lazy = false,
  priority = 1000,
  opts = {},
}

Usage

Lua

require("flow").setup{}
vim.cmd "colorscheme flow"

Configuration

Default

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,
}

Suggested

<details> <summary>My favorite config</summary>
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,
}
</details>

Supported plugins

Below the list of supported plugins divided by category:

Extras

Flow.nvim provides colorschemes also for the following tools:

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:

  1. Change the config used for the extra theme generation in lua/flow/extra/main.lua without setting the background transparent.

  2. Generate the themes:

cd ./lua/flow/extra
lua main.lua -v

Now you copy the files in where your configuration is sourcing them.

Todo

This is still an ongoing project. Below are the next topics I will work on:

If you want to contribute to this project, please consider addressing one of the previous point :)

Contributing

Pull requests and improvement suggestions are very welcome!

References

My dot config 0xstepit/dotfiles.

This colorscheme is inspired by other amazing colorscheme: