179 lines
4.7 KiB
Markdown
179 lines
4.7 KiB
Markdown
# n8n.nvim
|
|
|
|
A dark Neovim colorscheme inspired by the [n8n](https://n8n.io) workflow automation platform's dark mode UI.
|
|
|
|
Built from n8n's actual CSS design tokens: the same neutrals, the signature orange accent, the purple/blue/green syntax colors you see in the n8n editor and JSON viewer.
|
|
|
|
## Features
|
|
|
|
- Full Treesitter highlight group support
|
|
- LSP semantic token highlights
|
|
- Terminal colors
|
|
- Lualine theme included
|
|
- Plugin support: Telescope, NvimTree, Neo-tree, cmp, Blink.cmp, GitSigns, Indent Blankline, Which-Key, Lazy, Mason, Noice, Notify, Trouble, Mini, Bufferline, Snacks, and more
|
|
- Transparent background option
|
|
- Customizable styles and color overrides
|
|
|
|
## Installation
|
|
|
|
### vim.pack (native packages)
|
|
|
|
Clone the repo into your Neovim pack path so it loads automatically:
|
|
|
|
```bash
|
|
git clone https://github.com/your-username/n8n.nvim \
|
|
~/.config/nvim/pack/plugins/start/n8n.nvim
|
|
```
|
|
|
|
Then in your `init.lua`:
|
|
|
|
```lua
|
|
require("n8n").setup({
|
|
-- optional config
|
|
})
|
|
vim.cmd("colorscheme n8n")
|
|
```
|
|
|
|
If you prefer to load it on demand, clone into `opt` instead:
|
|
|
|
```bash
|
|
git clone https://github.com/your-username/n8n.nvim \
|
|
~/.config/nvim/pack/plugins/opt/n8n.nvim
|
|
```
|
|
|
|
```lua
|
|
vim.cmd("packadd n8n.nvim")
|
|
require("n8n").setup()
|
|
vim.cmd("colorscheme n8n")
|
|
```
|
|
|
|
### lazy.nvim
|
|
|
|
```lua
|
|
{
|
|
"your-username/n8n.nvim",
|
|
lazy = false,
|
|
priority = 1000,
|
|
config = function()
|
|
require("n8n").setup({
|
|
-- your config here (optional)
|
|
})
|
|
vim.cmd("colorscheme n8n")
|
|
end,
|
|
}
|
|
```
|
|
|
|
### packer.nvim
|
|
|
|
```lua
|
|
use({
|
|
"your-username/n8n.nvim",
|
|
config = function()
|
|
require("n8n").setup()
|
|
vim.cmd("colorscheme n8n")
|
|
end,
|
|
})
|
|
```
|
|
|
|
### vim-plug
|
|
|
|
```vim
|
|
Plug 'your-username/n8n.nvim'
|
|
|
|
" in your init.vim, after plug#end():
|
|
lua require('n8n').setup()
|
|
colorscheme n8n
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Call `setup()` **before** setting the colorscheme. All options are optional.
|
|
|
|
```lua
|
|
require("n8n").setup({
|
|
transparent = false, -- enable transparent background
|
|
terminal_colors = true, -- configure terminal colors
|
|
dim_inactive = false, -- dim inactive split windows
|
|
|
|
styles = {
|
|
comments = { italic = true },
|
|
keywords = {},
|
|
functions = {},
|
|
strings = {},
|
|
variables = {},
|
|
},
|
|
|
|
-- Override specific colors
|
|
on_colors = function(colors)
|
|
-- colors.bg = "#000000"
|
|
return colors
|
|
end,
|
|
|
|
-- Override specific highlight groups
|
|
on_highlights = function(highlights, colors)
|
|
-- highlights.Normal = { fg = "#ffffff", bg = "#000000" }
|
|
end,
|
|
})
|
|
```
|
|
|
|
## Lualine
|
|
|
|
The theme ships with a built-in lualine theme:
|
|
|
|
```lua
|
|
require("lualine").setup({
|
|
options = {
|
|
theme = "n8n",
|
|
},
|
|
})
|
|
```
|
|
|
|
## Palette
|
|
|
|
The color palette is extracted directly from n8n's dark mode CSS custom properties. Key colors:
|
|
|
|
| Role | Color | Hex |
|
|
|------|-------|-----|
|
|
| Background |  | `#171717` |
|
|
| Surface |  | `#212121` |
|
|
| Foreground |  | `#e0e0e0` |
|
|
| Accent (Orange) |  | `#ff6f5c` |
|
|
| Keywords |  | `#ff6f5c` |
|
|
| Strings |  | `#a098dc` |
|
|
| Functions |  | `#7fb3e6` |
|
|
| Types |  | `#c3bee9` |
|
|
| Numbers |  | `#29a360` |
|
|
| Constants |  | `#e6a23d` |
|
|
| Comments |  | `#828282` |
|
|
| Error |  | `#ea1f30` |
|
|
| Warning |  | `#ffc400` |
|
|
| Info |  | `#2878c8` |
|
|
| Hint |  | `#33cc78` |
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
n8n.nvim/
|
|
├── colors/
|
|
│ └── n8n.lua # entry point for :colorscheme n8n
|
|
├── lua/
|
|
│ ├── n8n/
|
|
│ │ ├── init.lua # setup() and load() logic
|
|
│ │ ├── palette.lua # raw hex values from n8n's CSS
|
|
│ │ ├── theme.lua # semantic color mapping
|
|
│ │ └── groups.lua # all highlight group definitions
|
|
│ └── lualine/
|
|
│ └── themes/
|
|
│ └── n8n.lua # lualine theme extra
|
|
├── LICENSE
|
|
└── README.md
|
|
```
|
|
|
|
## Acknowledgements
|
|
|
|
Colors derived from the [n8n design system](https://github.com/n8n-io/n8n). This is a community project and is not affiliated with n8n GmbH.
|
|
|
|
## License
|
|
|
|
MIT
|