Created with schemecraft
To install Dracula, you need a plugin manager.
In the example, bellow we are going to use lazy.nvim for neovim
and vim-plug for vim.
Annotations can be enabled.
Below is an example of how to enable them.
lspconfig.lua_ls.setup { settings = { Lua = { workspace = { checkThirdParty = true, library = { vim.env.VIMRUNTIME, '~/.local/share/nvim/lazy/dracula.nvim', }, }, -- other settings ... }, }, capabilities = capabilities, }
return { { 'maxmx03/dracula.nvim', lazy = false, priority = 1000, config = function () ---@type dracula local dracula = require "dracula" dracula.setup({ styles = { Type = {}, Function = {}, Parameter = {}, Property = {}, Comment = {}, String = {}, Keyword = {}, Identifier = {}, Constant = {}, }, transparent = false, on_colors = function (colors, color) ---@type dracula.palette return { -- override or create new colors mycolor = "#ffffff", -- mycolor = 0xffffff, } end, on_highlights = function (colors, color) ---@type dracula.highlights return { ---@type vim.api.keyset.highlight Normal = { fg = colors.mycolor } } end, plugins = { ["nvim-treesitter"] = true, ["rainbow-delimiters"] = true, ["nvim-lspconfig"] = true, ["nvim-navic"] = true, ["nvim-cmp"] = true, ["indent-blankline.nvim"] = true, ["neo-tree.nvim"] = true, ["nvim-tree.lua"] = true, ["which-key.nvim"] = true, ["dashboard-nvim"] = true, ["gitsigns.nvim"] = true, ["neogit"] = true, ["todo-comments.nvim"] = true, ["lazy.nvim"] = true, ["telescope.nvim"] = true, ["noice.nvim"] = true, ["hop.nvim"] = true, ["mini.statusline"] = true, ["mini.tabline"] = true, ["mini.starter"] = true, ["mini.cursorword"] = true, ['bufferline.nvim'] = true, } }) vim.cmd.colorscheme 'dracula' vim.cmd.colorscheme 'dracula-soft' end }, { 'nvim-lualine/lualine.nvim', opts = { options = { theme = vim.g.colors_name, refresh = { statusline = 1000, }, }, }, } }
The Dracula provides methods for working with colors. Here are some examples:
local colors = require 'dracula.colors' local color = require 'dracula.color' local darken = color.darken local lighten = color.lighten local blend = color.blend local shade = color.shade local tint = color.tint -- example 1: get shades for i = 1, 10, 1 do print(shade(colors.yellow, i)) end for i = 1, 100, 10 do print(darken(colors.yellow, i)) end -- example 2: get tints for i = 1, 10, 1 do print(tint(colors.yellow, i)) end for i = 1, 100, 10 do print(lighten(colors.yellow, i)) end -- example 3: blend color local new_color = blend(colors.yellow, colors.base03, 0.2)