-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 57e5aa8
Showing
14 changed files
with
1,079 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2024 Bartłomiej Jaszczak | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# finale-nvim | ||
|
||
**finale** is a refined dark theme for Neovim, balancing vivid and pastel tones with a focus on readability and comfort. Designed for contrast, finale offers a polished aesthetic that builds on my previous themes. | ||
|
||
## Features | ||
|
||
- 10 carefully selected accent colours, along with 10 pastel variations | ||
- Supports **treesitter** highlighting as well as **semantic tokens** | ||
- Supports some major plugins (feel free to open an issue if you'd like your plugin supported) | ||
- Includes themes for **lualine** and **barbecue** | ||
|
||
## Usage | ||
|
||
### Lazy | ||
|
||
There are no settings to this theme, so there's no need to call `setup()`. Simply enable and activate the theme: | ||
|
||
```lua | ||
{ | ||
"https://gitlab.com/bartekjaszczak/finale-nvim", | ||
|
||
priority = 1000, | ||
config = function() | ||
-- Activate the theme | ||
vim.cmd.colorscheme("finale") | ||
end | ||
} | ||
``` | ||
|
||
### Lualine | ||
|
||
```lua | ||
require("lualine").setup({ | ||
options = { | ||
-- ... | ||
theme = "finale" | ||
-- ... | ||
}, | ||
}) | ||
``` | ||
|
||
### Barbecue | ||
|
||
|
||
```lua | ||
require("barbecue").setup({ | ||
-- ... | ||
theme = "finale" | ||
-- ... | ||
}) | ||
``` | ||
|
||
## Preview | ||
|
||
 | ||
|
||
## FAQ | ||
|
||
### Why is it called finale? | ||
|
||
Because it's my 4th Neovim theme this year and I hope it'll be the last one. Forever. | ||
|
||
### I'd like to adjust some colours to my liking, how can I do that? | ||
|
||
Currently there's no settings available. If you feel like you could use colour overrides (or some other custom configuration), feel free to open an issue. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
require("finale").load() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
local colours = require("finale.colours") | ||
local theme = require("finale.theme") | ||
theme = theme.get_theme(colours) | ||
|
||
local bbq = { | ||
normal = { fg = theme.ui.fg }, | ||
|
||
ellipsis = { fg = theme.ui.fg }, | ||
separator = { fg = theme.ui.accent_weak, bold = true }, | ||
modified = { fg = theme.diag.warn.fg }, | ||
|
||
dirname = { fg = theme.ui.accent_weak }, | ||
basename = { fg = theme.ui.accent_strong, bold = true }, | ||
context = { fg = theme.ui.fg }, | ||
|
||
context_file = { fg = theme.ui.fg }, | ||
context_module = { fg = theme.syntax.namespace }, | ||
context_namespace = { fg = theme.syntax.namespace }, | ||
context_package = { fg = theme.syntax.namespace }, | ||
context_class = { fg = theme.syntax.type }, | ||
context_method = { fg = theme.syntax.method }, | ||
context_property = { fg = theme.syntax.field }, | ||
context_field = { fg = theme.syntax.field }, | ||
context_constructor = { fg = theme.syntax.method }, | ||
context_enum = { fg = theme.syntax.type }, | ||
context_interface = { fg = theme.syntax.type }, | ||
context_function = { fg = theme.syntax.func }, | ||
context_variable = { fg = theme.syntax.variable }, | ||
context_constant = { fg = theme.syntax.constant }, | ||
context_string = { fg = theme.syntax.string }, | ||
context_number = { fg = theme.syntax.number }, | ||
context_boolean = { fg = theme.syntax.boolean }, | ||
context_array = { fg = theme.syntax.variable }, | ||
context_object = { fg = theme.syntax.variable }, | ||
context_key = { fg = theme.syntax.field }, | ||
context_null = { fg = theme.syntax.keyword }, | ||
context_enum_member = { fg = theme.syntax.constant }, | ||
context_struct = { fg = theme.syntax.type }, | ||
context_event = { fg = theme.syntax.type }, | ||
context_type_parameter = { fg = theme.syntax.constant }, | ||
context_operator = { fg = theme.syntax.operator }, | ||
} | ||
|
||
return bbq |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
local colours = { | ||
base = { | ||
bg_2 = "#0d0700", | ||
bg_1 = "#201d17", | ||
bg_0 = "#333029", | ||
|
||
highlight = "#48443d", | ||
|
||
dark_grey = "#625e56", | ||
light_grey = "#949088", | ||
|
||
fg_0 = "#c1b6a3", | ||
fg_1 = "#dfd9c2", | ||
fg_2 = "#e9e5dc", | ||
}, | ||
main = { | ||
red = "#fb4934", | ||
orange = "#ff8800", | ||
yellow = "#ffd500", | ||
lime = "#83b324", | ||
green = "#08bd40", | ||
teal = "#17bda9", | ||
blue = "#219fe3", | ||
violet = "#9a64ff", | ||
purple = "#db4ae8", | ||
pink = "#f752a4", | ||
}, | ||
pastel = { | ||
red = "#d67569", | ||
orange = "#ffbd7a", | ||
yellow = "#f2de77", | ||
lime = "#9bb36d", | ||
green = "#6ebd87", | ||
teal = "#5fbdb2", | ||
blue = "#78bde3", | ||
violet = "#c2a1ff", | ||
purple = "#e197e8", | ||
pink = "#f79cc9", | ||
}, | ||
} | ||
|
||
return colours |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
local M = {} | ||
|
||
function M.get_highlights(theme) | ||
return { | ||
-- ColorColumn Used for the columns set with 'colorcolumn'. | ||
ColorColumn = { bg = theme.ui.bg_weak }, | ||
-- Conceal Placeholder characters substituted for concealed text (see 'conceallevel'). | ||
Conceal = { fg = theme.none }, | ||
-- CurSearch Used for highlighting a search pattern under the cursor (see 'hlsearch'). | ||
CurSearch = { fg = theme.ui.bg_neutral, bg = theme.ui.accent_strong, bold = true }, | ||
-- Cursor Character under the cursor. | ||
Cursor = { fg = theme.ui.bg_neutral, bg = theme.ui.accent_strong }, | ||
-- lCursor Character under the cursor when |language-mapping| is used (see 'guicursor'). | ||
lCursor = { link = "Cursor" }, | ||
-- CursorIM Like Cursor, but used when in IME mode. | ||
CursorIM = { link = "Cursor" }, | ||
-- CursorColumn Screen-column at the cursor, when 'cursorcolumn' is set. | ||
CursorColumn = { link = "CursorLine" }, | ||
-- CursorLine Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. | ||
CursorLine = { bg = theme.ui.bg_weak }, | ||
-- Directory Directory names (and other special names in listings). | ||
Directory = { fg = theme.ui.accent_weak }, | ||
-- DiffAdd Diff mode: Added line. |diff.txt| | ||
DiffAdd = { bg = theme.git.add, fg = theme.ui.bg_weak }, | ||
-- DiffChange Diff mode: Changed line. |diff.txt| | ||
DiffChange = { bg = theme.git.change, fg = theme.ui.bg_weak }, | ||
-- DiffDelete Diff mode: Deleted line. |diff.txt| | ||
DiffDelete = { bg = theme.git.delete, fg = theme.ui.bg_weak }, | ||
-- DiffText Diff mode: Changed text within a changed line. |diff.txt| | ||
DiffText = { bg = theme.git.delete }, | ||
-- EndOfBuffer Filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. | ||
EndOfBuffer = { fg = theme.ui.grey_strong }, | ||
-- TermCursor Cursor in a focused terminal. | ||
-- TermCursorNC Cursor in an unfocused terminal. | ||
-- ErrorMsg Error messages on the command line. | ||
ErrorMsg = { fg = theme.diag.error.fg, bold = true }, | ||
-- WinSeparator Separators between window splits. | ||
WinSeparator = { fg = theme.ui.accent_weak, bold = true }, | ||
VertSplit = { link = "WinSeparator" }, | ||
-- Folded Line used for closed folds. | ||
Folded = { fg = theme.ui.fg, bg = theme.ui.bg_strong }, | ||
-- FoldColumn 'foldcolumn' | ||
FoldColumn = { fg = theme.ui.fg, bg = theme.ui.bg_neutral }, | ||
-- SignColumn Column where |signs| are displayed. | ||
SignColumn = { fg = theme.ui.fg, bg = theme.ui.bg_neutral }, | ||
-- IncSearch 'incsearch' highlighting; also used for the text replaced with ":s///c". | ||
IncSearch = { link = "CurSearch" }, | ||
-- Substitute |:substitute| replacement text highlighting. | ||
Substitute = { fg = theme.ui.bg_neutral, bg = theme.ui.secondary_accent_strong, bold = true }, | ||
-- LineNr Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. | ||
LineNr = { fg = theme.ui.grey_strong, bg = theme.ui.bg_neutral }, | ||
-- LineNrAbove Line number for when the 'relativenumber' option is set, above the cursor line. | ||
-- LineNrBelow Line number for when the 'relativenumber' option is set, below the cursor line. | ||
-- CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt' contains "number" or is "both", for the cursor line. | ||
CursorLineNr = { fg = theme.ui.accent_strong, bg = theme.ui.bg_neutral, bold = true }, | ||
-- CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line. | ||
-- CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line. | ||
-- MatchParen Character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| | ||
MatchParen = { fg = theme.syntax.special, bg = theme.ui.bg_strong, bold = true }, | ||
-- ModeMsg 'showmode' message (e.g., "-- INSERT --"). | ||
ModeMsg = { fg = theme.ui.fg, bold = true }, | ||
-- MsgArea Area for messages and cmdline. | ||
MsgArea = { fg = theme.ui.fg, bg = theme.ui.bg_weak }, | ||
-- MsgSeparator Separator for scrolled messages |msgsep|. | ||
MsgSeparator = { fg = theme.ui.fg, bg = theme.ui.bg_weak }, | ||
-- MoreMsg |more-prompt| | ||
MoreMsg = { fg = theme.diag.info.fg }, | ||
-- NonText '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. | ||
NonText = { fg = theme.ui.grey_weak }, | ||
-- Normal Normal text. | ||
Normal = { fg = theme.ui.fg, bg = theme.ui.bg_neutral }, | ||
-- NormalFloat Normal text in floating windows. | ||
NormalFloat = { fg = theme.ui.fg, bg = theme.ui.bg_neutral }, | ||
-- FloatBorder Border of floating windows. | ||
FloatBorder = { fg = theme.ui.accent_weak, bg = theme.ui.bg_neutral }, | ||
-- FloatTitle Title of floating windows. | ||
FloatTitle = { fg = theme.ui.accent_strong, bg = theme.ui.bg_neutral, bold = true }, | ||
-- FloatFooter Footer of floating windows. | ||
FloatFooter = { fg = theme.ui.fg, bg = theme.ui.bg_neutral }, | ||
-- NormalNC Normal text in non-current windows. | ||
NormalNC = { link = "Normal" }, | ||
-- Pmenu Popup menu: Normal item. | ||
Pmenu = { fg = theme.ui.fg, bg = theme.ui.bg_neutral }, | ||
-- PmenuSel Popup menu: Selected item. | ||
PmenuSel = { fg = theme.ui.bg_neutral, bg = theme.ui.accent_strong }, | ||
-- PmenuSbar Popup menu: Scrollbar. | ||
PmenuSbar = { bg = theme.ui.bg_weak }, | ||
-- PmenuThumb Popup menu: Thumb of the scrollbar. | ||
PmenuThumb = { bg = theme.ui.accent_weak }, | ||
-- Question |hit-enter| prompt and yes/no questions. | ||
Question = { link = "MoreMsg" }, | ||
-- QuickFixLine Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. | ||
QuickFixLine = { link = "CurSearch" }, | ||
-- Search Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. | ||
Search = { link = "CurSearch" }, | ||
-- SpecialKey Unprintable characters: Text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| | ||
SpecialKey = { fg = theme.ui.grey_strong }, | ||
-- SpellBad Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. | ||
SpellBad = { undercurl = true, sp = theme.diag.error.fg }, | ||
-- SpellCap Word that should start with a capital. |spell| Combined with the highlighting used otherwise. | ||
SpellCap = { undercurl = true, sp = theme.diag.hint.fg }, | ||
-- SpellLocal Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. | ||
SpellLocal = { undercurl = true, sp = theme.diag.hint.fg }, | ||
-- SpellRare Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. | ||
SpellRare = { undercurl = true, sp = theme.diag.hint.fg }, | ||
-- StatusLine Status line of current window. | ||
StatusLine = { fg = theme.ui.accent_weak, bg = theme.ui.bg_strong }, | ||
-- StatusLineNC Status lines of not-current windows. Note: If this is equal to "StatusLine", Vim will use "^^^" in the status line of the current window. | ||
StatusLineNC = { fg = theme.ui.fg, bg = theme.ui.bg_strong }, | ||
-- TabLine Tab pages line, not active tab page label. | ||
TabLine = { bg = theme.ui.bg_weak, fg = theme.ui.grey_strong }, | ||
-- TabLineFill Tab pages line, where there are no labels. | ||
TabLineFill = { bg = theme.ui.bg_neutral }, | ||
-- TabLineSel Tab pages line, active tab page label. | ||
TabLineSel = { fg = theme.ui.accent_weak, bg = theme.ui.grey_weak, bold = true }, | ||
-- Title Titles for output from ":set all", ":autocmd" etc. | ||
Title = { fg = theme.ui.accent_strong, bold = true }, | ||
-- Visual Visual mode selection. | ||
Visual = { bg = theme.ui.accent_weak, fg = theme.ui.bg_weak }, | ||
-- VisualNOS Visual mode selection when vim is "Not Owning the Selection". | ||
VisualNOS = { link = "Visual" }, | ||
-- WarningMsg Warning messages. | ||
WarningMsg = { fg = theme.diag.warn.fg }, | ||
-- Whitespace "nbsp", "space", "tab", "multispace", "lead" and "trail" in 'listchars'. | ||
Whitespace = { fg = theme.ui.bg_weak }, | ||
-- WildMenu Current match in 'wildmenu' completion. | ||
WildMenu = { link = "Pmenu" }, | ||
-- WinBar Window bar of current window. | ||
Winbar = { fg = theme.ui.bg_weak, bg = "NONE" }, | ||
-- WinBarNC Window bar of not-current windows. | ||
WinbarNC = { fg = theme.ui.bg_weak, bg = "NONE" }, | ||
|
||
-- SignColumnSB = { link = "SignColumn" }, | ||
-- NormalSB = { link = "Normal" }, | ||
|
||
healthError = { fg = theme.diag.error.fg }, | ||
healthSuccess = { fg = theme.diag.ok.fg }, | ||
healthWarning = { fg = theme.diag.warn.fg }, | ||
} | ||
end | ||
|
||
return M |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
local M = {} | ||
|
||
function M.get_highlights(theme) | ||
local highlights = {} | ||
|
||
for _, file in ipairs({"editor", "syntax", "plugins"}) do | ||
local group = require("finale.highlights." .. file) | ||
for hl, opts in pairs(group.get_highlights(theme)) do | ||
highlights[hl] = opts | ||
end | ||
end | ||
|
||
return highlights | ||
end | ||
|
||
return M |
Oops, something went wrong.