- This plugin's a whole re-write of Norcalli's plugin.
- It should be used along with NvChad for best experience.
- Non NvChad users can have the nvconfig module on the path
This is supposed to be use with NvChad's UI plugin.
Check its install doc
and then read :h nvui.base46
- Bufferline.nvim
- Cmp.nvim
- Codeactionmenu
- Nvim-dap
- Nvim-webdevicons
- Hop.nvim
- Vim-illuminate
- Lsp ( diagnostics )
- Nvim Navic
- LspSaga
- Mason.nvim
- Notify.nvim
- Nvim-tree
- Telescope.nvim
- Rainbow-delimiters.nvim
- Todo.nvim
- Nvim-treesitter
- Lsp Semantic tokens
- Trouble.nvim
- Whichkey.nvim
- git-conflict.nvim
- Orgmode
- diffview.nvim
- leap.nvim
- Edgy.nvim
- Grug-far.nvim
- Flash.nvim
- Base46 is configured by nvconfig in your path.
- Read the themeing docs
- :hicommand will list all highlight groups
- :hiwith args will highlight a highlight group
- Example : hi Comment guifg=#ffffff gui=italic, bold
- Check :h nvim_set_hlfor detailed doc
vim.api.nvim_set_hl(0, "Comment", {
  fg = "#ffffff",
  italic = true,
  bold = true,
})There are 2 main tables used for base46
- base_30is used for general UI
- base_16is used for syntax highlighting
- Use a color lightening/darkening tool, such as this https://imagecolorpicker.com/color-code
Note: the below values are mostly approx values so its not compulsory that you have to use those exact numbers, test your theme i.e show it in the PR to get feedback from @siduck
-- this line for types, by hovering and autocompletion (lsp required)
-- will help you understanding properties, fields, and what highlightings the color used for
---@type Base46Table
local M = {}
-- UI
M.base_30 = {
  white = "",
  black = "", -- usually your theme bg
  darker_black = "", -- 6% darker than black
  black2 = "", -- 6% lighter than black
  one_bg = "", -- 10% lighter than black
  one_bg2 = "", -- 6% lighter than one_bg2
  one_bg3 = "", -- 6% lighter than one_bg3
  grey = "", -- 40% lighter than black (the % here depends so choose the perfect grey!)
  grey_fg = "", -- 10% lighter than grey
  grey_fg2 = "", -- 5% lighter than grey
  light_grey = "",
  red = "",
  baby_pink = "",
  pink = "",
  line = "", -- 15% lighter than black
  green = "",
  vibrant_green = "",
  nord_blue = "",
  blue = "",
  seablue = "",
  yellow = "", -- 8% lighter than yellow
  sun = "",
  purple = "",
  dark_purple = "",
  teal = "",
  orange = "",
  cyan = "",
  statusline_bg = "",
  lightbg = "",
  pmenu_bg = "",
  folder_bg = ""
}
-- check https://github.com/chriskempson/base16/blob/master/styling.md for more info
M.base_16 = {
  base00 = "",
  base01 = "",
  base02 = "",
  base03 = "",
  base04 = "",
  base05 = "",
  base06 = "",
  base07 = "",
  base08 = "",
  base09 = "",
  base0A = "",
  base0B = "",
  base0C = "",
  base0D = "",
  base0E = "",
  base0F = ""
}
-- OPTIONAL
-- overriding or adding highlights for this specific theme only
-- defaults/treesitter is the filename i.e integration there,
M.polish_hl = {
  defaults = {
    Comment = {
      bg = "#ffffff", -- or M.base_30.cyan
      italic = true,
    },
  },
  treesitter = {
    ["@variable"] = { fg = "#000000" },
  },
}
-- set the theme type whether is dark or light
M.type = "dark" -- "or light"
-- this will be later used for users to override your theme table from chadrc
M = require("base46").override_theme(M, "abc")
return M- @LeonHeidelbach for making color functions! which we use in base46.
- Send PR in the https://github.com/NvChad/base46/tree/v2.5/lua/base46/themes
- Just place your theme file in your /lua/themesfolder
- And select the theme with theme switcher or change in chadrc
- Capture what highlight are used under the cursor by running the :Inspector:InspectTreecommands