water-sucks / darkrose.nvim

A dark, low-contrast colorscheme for Neovim inspired by roses and geared towards dark theme lovers.
GNU General Public License v3.0
34 stars 3 forks source link
neovim neovim-colorscheme neovim-lua neovim-theme

Darkrose

A dark, low-contrast colorscheme for Neovim inspired by roses and geared towards dark theme lovers.

Screenshot

image

Requirements

Installation

packer.nvim:

use("water-sucks/darkrose.nvim")

lazy.nvim

{
    "water-sucks/darkrose.nvim",
    lazy = false,
    priority = 1000,
}

Usage

require("darkrose").setup({
    -- Override colors
    colors = {
        orange = "#F87757",
    },
    -- Override existing or add new highlight groups
    overrides = function(c)
        return {
            Class = { fg = c.magenta },
            ["@variable"] = { fg = c.fg_dark },
        }
    end,
    -- Styles to enable or disable
    styles = {
        bold = true, -- Enable bold highlights for some highlight groups
        italic = true, -- Enable italic highlights for some highlight groups
        underline = true, -- Enable underline highlights for some highlight groups
    }
})
vim.cmd.colorscheme("darkrose")

There is no need to run the setup function if you do not want to customize the colorscheme; run vim.cmd.colorscheme("darkrose"), and you're good to go. Color names are defined here.

Plugins

These are plugins explicitly supported by the colorscheme (more is always better, feel free to add more in a PR!):

Special Integrations

Certain plugins have too many highlights to define inside the theme file without ripping my hair out. They are the plugins marked with an asterisk above, and they have special integrations provided. These are how to use them:

bufferline.nvim Pass the highlighting integration as an argument to bufferline.nvim's setup function. It must be loaded after darkrose is set up for this to work. ```lua -- Define overrides to any highlight arguments here; this is an optional argument -- to the generate function. local overrides = {} require("bufferline").setup({ highlights = require("darkrose.integrations.bufferline").generate(overrides), }) ```
neorg Pass the highlighting integration as an argument to neorg's setup function. It must be loaded after darkrose is set up for this to work. ```lua -- Define overrides to any highlight arguments here; this is an optional argument -- to the generate function. local overrides = {} require("neorg").setup({ load = { ["core.highlights"] = { config = { highlights = require("darkrose.integrations.neorg").generate(overrides), }, }, }, }) ```

Disclaimers

This is my first plugin; I threw together a bunch of colors that I liked, and this is the result. There is absolutely no color theory involved, and I'm not a graphic designer; however, I was not satisfied with any of the colorschemes for Neovim at the time of creation. If there are any problems with or ways to improve the colorscheme, please file an issue. I would love to make this colorscheme better for everyone.

This is also extremely unstable, and breaking changes can be made at any time until a 1.0 release happens. This will happen when the colorscheme's colors are stabilized, and when more plugins and languages are supported.

Thanks