返回排行榜

AlexvZyl/nordic.nvim

Lua

🌒 Nord for Neovim, but warmer and darker. Supports a variety of plugins and other platforms.

luaneovimnordnvimneovim-colorschemethemeneovim-pluginneovim-themenordiccolorscheme
Star 增长趋势
Star
1k
Forks
69
周增长
Issues
1
5001k
2023年1月2024年3月2025年5月2026年7月
README

🌒 Nordic

Tests

A Neovim colorscheme based on Nord, but Aurora > Frost. The idea behind this colorscheme is to use Nord, but add some darker colors and use Aurora more prominently than Nord themes usually do. This ends up creating a colorscheme that is soft on the eyes.

If there is anything that does not seem right, even if it is a very small highlight, please let me know with an issue or PR!

📷 Showcase

image

From my dotfiles: image

🎨 Palette

For the list of colors/palette, see this file. Some extra colors and use cases are generated in this file.

image

📦 Installation

With packer.nvim:

use 'AlexvZyl/nordic.nvim'

With lazy.nvim:

{
    'AlexvZyl/nordic.nvim',
    lazy = false,
    priority = 1000,
    config = function()
        require('nordic').load()
    end
}

With vim-plug:

Plug 'AlexvZyl/nordic.nvim', { 'branch': 'main' }

🚀 Usage

Using vim:

colorscheme nordic

Using lua:

vim.cmd.colorscheme('nordic')
-- or
require('nordic').load()

Using with lualine:

require('lualine').setup({
    options = {
        theme = 'nordic'
    }
})

If you want to use the color palette somewhere else, you can access it with:

local palette = require('nordic.colors')

[!WARNING] Please make sure that require('nordic.colors') is called after setup, otherwise the colors might be wrong for your config.

⚙️ Configuration

Nordic will use the default values, unless setup is called. Below is the default configuration.

require('nordic').setup({
    -- This callback can be used to override the colors used in the base palette.
    on_palette = function(palette) end,
    -- This callback can be used to override the colors used in the extended palette.
    after_palette = function(palette) end,
    -- This callback can be used to override highlights before they are applied.
    on_highlight = function(highlights, palette) end,
    -- Enable bold keywords.
    bold_keywords = false,
    -- Enable italic comments.
    italic_comments = true,
    -- Enable editor background transparency.
    transparent = {
        -- Enable transparent background.
        bg = false,
        -- Enable transparent background for floating windows.
        float = false,
    },
    -- Enable brighter float border.
    bright_border = false,
    -- Reduce the overall amount of blue in the theme (diverges from base Nord).
    reduced_blue = true,
    -- Swap the dark background with the normal one.
    swap_backgrounds = false,
    -- Cursorline options.
    cursorline = {
        -- Bold font in cursorline.
        bold = false,
        -- Bold cursorline number.
        bold_number = true,
        -- Available styles: 'dark', 'light'.
        theme = 'dark',
        -- Blending the cursorline bg with the buffer bg.
        blend = 0.85,
    },
    -- Visual selection options.
    visual = {
        -- Bold font in visual selection.
        bold = false,
        -- Bold visual selection number.
        bold_number = true,
        -- Available styles: 'dark', 'light'.
        theme = 'dark',
        -- Blending the visual selection bg with the buffer bg.
        blend = 0.85,
    },
    noice = {
        -- Available styles: `classic`, `flat`.
        style = 'classic',
    },
    telescope = {
        -- Available styles: `classic`, `flat`.
        style = 'flat',
    },
    leap = {
        -- Dims the backdrop when using leap.
        dim_backdrop = false,
    },
    ts_context = {
        -- Enables dark background for treesitter-context window
        dark_background = true,
    }
})

Examples:

on_palette  

An example of overriding colors in the base palette:

require('nordic').setup({
    on_palette = function(palette)
        palette.black0 = "#BF616A"
        palette.green.base = palette.cyan.base
    end,
})
after_palette  

An example of setting the visual selection color (for more values see this file):

require('nordic').setup({
    after_palette = function(palette)
        local U = require("nordic.utils")
        palette.bg_visual = U.blend(palette.orange.base, palette.bg, 0.15)
    end,
})
on_highlight  

An example of overriding the TelescopePromptTitle colors:

require('nordic').setup({
    on_highlight = function(highlights, palette)
        highlights.TelescopePromptTitle = {
            fg = palette.red.bright,
            bg = palette.green.base,
            italic = true,
            underline = true,
            sp = palette.yellow.dim,
            undercurl = false
        }
    end,
})

And an example of disabling all italics:

require('nordic').setup({
    on_highlight = function(highlights, _palette)
        for _, highlight in pairs(highlights) do
            highlight.italic = false
        end
    end
})

🗒️ Supported Plugins and Platforms

For the list of supported plugins, please take a look at this directory.

For the list of supported platforms, please take a look at this directory.

Contributing a new Platform

All of the platform files are generated using a template system. Have a look at this directory to see how it works.

[!NOTE] I don't personally use all of the platforms and plugins in the list, so if something is not right, or you have a suggestion, please open a PR!

🎙️ Acknowledgements


相关仓库
neovim/neovim

Vim-fork focused on extensibility and usability

Vim ScriptOtherneovimc
neovim.io
101.3k7k
coolsnowwolf/lede

Lean's LEDE source

COtherledelua
31.5k19.2k
NvChad/NvChad

Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.

LuaGNU General Public License v3.0nvimneovim
nvchad.com
28.4k2.2k
nvim-telescope/telescope.nvim

Find, Filter, Preview, Pick. All lua, all the time.

LuaMIT Licenseneovimlua
19.6k956
LunarVim/LunarVim

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

LuaGNU General Public License v3.0neovimvim
lunarvim.org
19.3k1.5k
cocos2d/cocos2d-x

Cocos2d-x is a suite of open-source, cross-platform, game-development tools utilized by millions of developers across the globe. Its core has evolved to serve as the foundation for Cocos Creator 1.x & 2.x.

C++cocos2dcocos2d-x
cocos.com/en/cocos2d-x
19.1k7.1k
Hammerspoon/hammerspoon

Staggeringly powerful macOS desktop automation with Lua

Objective-CMIT Licensemacosobjective-c
hammerspoon.org
15.8k700
AstroNvim/AstroNvim

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

LuaGNU General Public License v3.0vimlua
astronvim.com
14.4k954
spotify/annoy

Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk

C++Apache License 2.0c-plus-pluspython
14.3k1.2k
dense-analysis/ale

Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support

Vim ScriptBSD 2-Clause "Simplified" Licenselintervim
14k1.5k
luanti-org/luanti

Luanti (formerly Minetest) is an open source voxel game-creation platform with easy modding and game creation

C++Otherc-plus-plusvoxel
luanti.org
13.3k2.4k
nmap/nmap

Nmap - the Network Mapper. Github mirror of official SVN repository.

COtherc-plus-pluslua
svn.nmap.org
13.2k2.9k