refactor(colors): Source every color from the palette and drop darken

Point the last computed colors at real tokens so nothing is derived by
blending anymore:

- barbar inactive labels take the new 600 tier, which reads dimmer than
  the 500 accent and, unlike 700, still brightens under the vivid style
- notify borders take the 900 tier, and the debug border takes base02
- black was a blend of the background toward pure black, a value that
  appeared nowhere in the palette; it is base04, so replace it outright
- border was aliased to black, leaving it invisible against the
  background in the dark style; it is now base02, matching WinSeparator

With no callers left, darken and blend go, and with them the mutable
util.bg they relied on -- a shared global whose value depended on which
style had been resolved last.

Every highlight group is unchanged by the black removal. The barbar and
notify groups do shift slightly, since a token can never reproduce a
blend toward the background exactly; they were chosen to read correctly
rather than to match the old values.

Light gains from this: black resolved to a muddy #cac4b5 that measured
1.85:1 on statusline mode chips, and base04 lifts that to 3.21:1. The
same change makes terminal color0 white in the light style, completing
an inversion that already had color7 resolving to a dark value.
This commit is contained in:
Takuya Matsuyama 2026-08-11 15:38:54 +09:00
parent bb21538e81
commit 0df74ef0ed
62 changed files with 120 additions and 159 deletions

View file

@ -310,10 +310,9 @@ You can easily use the color palette for other plugins inside your Neovim
>lua
local colors = require("solarized-osaka.colors").setup() -- pass in any of the config options as explained above
local util = require("solarized-osaka.util")
aplugin.background = colors.bg
aplugin.my_error = util.darken(colors.red500, 0.3) -- number between 0 and 1. 0 results in the background color, 1 results in red500
aplugin.my_error = colors.red500 -- every hue carries a 50-950 ramp, so use red600 for a dimmer variant or red900 for a background tint
<

View file

@ -10,7 +10,7 @@
border.fg=#576d74
border.bg=#001419
title.fg=#001014
title.fg=#001419
title.bg=#268bd3
title.bold=true
@ -20,7 +20,7 @@ header.bold=true
tab.fg=#576d74
tab.bg=#002c38
tab.selected.fg=#001014
tab.selected.fg=#001419
tab.selected.bg=#268bd3
statusline_default.fg=#839395

View file

@ -10,7 +10,7 @@
border.fg=#adb7b7
border.bg=#fdf5e2
title.fg=#cac4b5
title.fg=#ffffff
title.bg=#268bd3
title.bold=true
@ -20,7 +20,7 @@ header.bold=true
tab.fg=#adb7b7
tab.bg=#fdf5e2
tab.selected.fg=#cac4b5
tab.selected.fg=#ffffff
tab.selected.bg=#268bd3
statusline_default.fg=#576d74

View file

@ -7,7 +7,7 @@ colors:
# Normal colors
normal:
black: '0x001014'
black: '0x001419'
red: '0xdb302d'
green: '0x849900'
yellow: '0xb28500'

View file

@ -7,7 +7,7 @@ colors:
# Normal colors
normal:
black: '0xcac4b5'
black: '0xffffff'
red: '0xdb302d'
green: '0x849900'
yellow: '0xb28500'

View file

@ -162,7 +162,7 @@
--spoiler-revealed-background: #002c38;
--spoiler-hidden-background: #576d74;
--android-navigation-bar-background: #002c38;
--android-ripple: #0010144C;
--android-ripple: #0014194C;
--bg-mod-faint: #002c38;
--bg-mod-subtle: #001419;
--focus-primary: #268bd3;

View file

@ -162,7 +162,7 @@
--spoiler-revealed-background: #ede7d3;
--spoiler-hidden-background: #adb7b7;
--android-navigation-bar-background: #ede7d3;
--android-ripple: #cac4b54C;
--android-ripple: #ffffff4C;
--bg-mod-faint: #fdf5e2;
--bg-mod-subtle: #fdf5e2;
--focus-primary: #268bd3;

View file

@ -8,7 +8,7 @@ selection-foreground=839395
selection-background=1a6397
urls=849900
regular0=001014
regular0=001419
regular1=db302d
regular2=849900
regular3=b28500

View file

@ -8,7 +8,7 @@ selection-foreground=576d74
selection-background=46acf5
urls=849900
regular0=cac4b5
regular0=ffffff
regular1=db302d
regular2=849900
regular3=b28500

View file

@ -104,7 +104,6 @@ bg_highlight = "#002c38"
bg_popup = "#001419"
bg_sidebar = "#001419"
bg_statusline = "#002c38"
black = "#001014"
blue = "#268bd3"
blue100 = "#a8daff"
blue200 = "#78c5fb"
@ -117,7 +116,7 @@ blue700 = "#1a6397"
blue800 = "#154f79"
blue900 = "#0f3856"
blue950 = "#062339"
border = "#001014"
border = "#063540"
cyan = "#29a298"
cyan100 = "#b7fefa"
cyan200 = "#6cf8ed"

View file

@ -104,7 +104,6 @@ bg_highlight = "#ede7d3"
bg_popup = "#ffffff"
bg_sidebar = "#ffffff"
bg_statusline = "#fdf5e2"
black = "#cac4b5"
blue = "#268bd3"
blue100 = "#0f3856"
blue200 = "#154f79"
@ -117,7 +116,7 @@ blue700 = "#46acf5"
blue800 = "#78c5fb"
blue900 = "#a8daff"
blue950 = "#d7edff"
border = "#cac4b5"
border = "#ede7d3"
cyan = "#29a298"
cyan100 = "#103a3c"
cyan200 = "#154e50"

View file

@ -19,14 +19,14 @@ active_tab_background #29a298
active_tab_foreground #ffffff
inactive_tab_background #002c38
inactive_tab_foreground #637981
#tab_bar_background #001014
#tab_bar_background #001419
# Windows
active_border_color #268bd3
inactive_border_color #002c38
# normal
color0 #001014
color0 #001419
color1 #db302d
color2 #849900
color3 #b28500

View file

@ -19,14 +19,14 @@ active_tab_background #29a298
active_tab_foreground #001419
inactive_tab_background #ede7d3
inactive_tab_foreground #9eabac
#tab_bar_background #cac4b5
#tab_bar_background #ffffff
# Windows
active_border_color #268bd3
inactive_border_color #ede7d3
# normal
color0 #cac4b5
color0 #ffffff
color1 #db302d
color2 #849900
color3 #b28500

View file

@ -15,7 +15,6 @@ local colors = {
bg_popup = "#001419",
bg_sidebar = "#001419",
bg_statusline = "#002c38",
black = "#001014",
blue = "#268bd3",
blue100 = "#a8daff",
blue200 = "#78c5fb",
@ -28,7 +27,7 @@ local colors = {
blue800 = "#154f79",
blue900 = "#0f3856",
blue950 = "#062339",
border = "#001014",
border = "#063540",
cyan = "#29a298",
cyan100 = "#b7fefa",
cyan200 = "#6cf8ed",

View file

@ -15,7 +15,6 @@ local colors = {
bg_popup = "#ffffff",
bg_sidebar = "#ffffff",
bg_statusline = "#fdf5e2",
black = "#cac4b5",
blue = "#268bd3",
blue100 = "#0f3856",
blue200 = "#154f79",
@ -28,7 +27,7 @@ local colors = {
blue800 = "#78c5fb",
blue900 = "#a8daff",
blue950 = "#d7edff",
border = "#cac4b5",
border = "#ede7d3",
cyan = "#29a298",
cyan100 = "#103a3c",
cyan200 = "#154e50",

View file

@ -24,13 +24,13 @@ style:
categoryFgColor: '#1a6397'
dialog:
fgColor: '#46acf5'
bgColor: '#001014'
bgColor: '#001419'
contrastBgColor: '#001419'
attentionBgColor: '#f55350'
buttonFgColor: '#001014'
buttonFgColor: '#001419'
buttonBgColor: '#002c38'
buttonFocusFgColor: '#001014'
buttonFocusFgColor: '#001419'
buttonFocusBgColor: '#268bd3'
labelFgColor: '#b28500'
fieldFgColor: '#001014'
fieldFgColor: '#001419'
fieldBgColor: '#1a6397'

View file

@ -24,13 +24,13 @@ style:
categoryFgColor: '#46acf5'
dialog:
fgColor: '#1a6397'
bgColor: '#cac4b5'
bgColor: '#ffffff'
contrastBgColor: '#fdf5e2'
attentionBgColor: '#b7211f'
buttonFgColor: '#cac4b5'
buttonFgColor: '#ffffff'
buttonBgColor: '#ede7d3'
buttonFocusFgColor: '#cac4b5'
buttonFocusFgColor: '#ffffff'
buttonFocusBgColor: '#268bd3'
labelFgColor: '#b28500'
fieldFgColor: '#cac4b5'
fieldFgColor: '#ffffff'
fieldBgColor: '#46acf5'

View file

@ -1 +1 @@
#001014,#002c38,#d23681,#1a6397
#063540,#002c38,#d23681,#1a6397

View file

@ -1 +1 @@
#cac4b5,#ede7d3,#d23681,#46acf5
#ede7d3,#ede7d3,#d23681,#46acf5

View file

@ -1,5 +1,5 @@
[[Solarized Osaka]]
palette = "#001014:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#9eabac:#001419:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#6d71c4"
palette = "#001419:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#9eabac:#001419:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#6d71c4"
background_color = "#001419"
foreground_color = "#839395"

View file

@ -1,5 +1,5 @@
[[Solarized Osaka Light]]
palette = "#cac4b5:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#637981:#fdf5e2:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#6d71c4"
palette = "#ffffff:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#637981:#fdf5e2:#db302d:#849900:#b28500:#268bd3:#d23681:#29a298:#6d71c4"
background_color = "#fdf5e2"
foreground_color = "#576d74"

View file

@ -5,7 +5,7 @@
"foreground-color": "#839395",
"background-color": "#001419",
"palette": [
"#001014",
"#001419",
"#db302d",
"#849900",
"#b28500",

View file

@ -5,7 +5,7 @@
"foreground-color": "#576d74",
"background-color": "#fdf5e2",
"palette": [
"#cac4b5",
"#ffffff",
"#db302d",
"#849900",
"#b28500",

View file

@ -21,10 +21,10 @@ set -g status-right-length "100"
set -g status-left-style NONE
set -g status-right-style NONE
set -g status-left "#[fg=#001014,bg=#268bd3,bold] #S #[fg=#268bd3,bg=#002c38,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=#002c38,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#002c38] #{prefix_highlight} #[fg=#063540,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#063540] %Y-%m-%d  %I:%M %p #[fg=#268bd3,bg=#063540,nobold,nounderscore,noitalics]#[fg=#001014,bg=#268bd3,bold] #h "
set -g status-left "#[fg=#001419,bg=#268bd3,bold] #S #[fg=#268bd3,bg=#002c38,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=#002c38,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#002c38] #{prefix_highlight} #[fg=#063540,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#063540] %Y-%m-%d  %I:%M %p #[fg=#268bd3,bg=#063540,nobold,nounderscore,noitalics]#[fg=#001419,bg=#268bd3,bold] #h "
if-shell '[ "$(tmux show-option -gqv "clock-mode-style")" == "24" ]' {
set -g status-right "#[fg=#002c38,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#002c38] #{prefix_highlight} #[fg=#063540,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#063540] %Y-%m-%d  %H:%M #[fg=#268bd3,bg=#063540,nobold,nounderscore,noitalics]#[fg=#001014,bg=#268bd3,bold] #h "
set -g status-right "#[fg=#002c38,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#002c38] #{prefix_highlight} #[fg=#063540,bg=#002c38,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#063540] %Y-%m-%d  %H:%M #[fg=#268bd3,bg=#063540,nobold,nounderscore,noitalics]#[fg=#001419,bg=#268bd3,bold] #h "
}
setw -g window-status-activity-style "underscore,fg=#9eabac,bg=#002c38"

View file

@ -21,10 +21,10 @@ set -g status-right-length "100"
set -g status-left-style NONE
set -g status-right-style NONE
set -g status-left "#[fg=#cac4b5,bg=#268bd3,bold] #S #[fg=#268bd3,bg=#fdf5e2,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=#fdf5e2,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#fdf5e2] #{prefix_highlight} #[fg=#ede7d3,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#ede7d3] %Y-%m-%d  %I:%M %p #[fg=#268bd3,bg=#ede7d3,nobold,nounderscore,noitalics]#[fg=#cac4b5,bg=#268bd3,bold] #h "
set -g status-left "#[fg=#ffffff,bg=#268bd3,bold] #S #[fg=#268bd3,bg=#fdf5e2,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=#fdf5e2,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#fdf5e2] #{prefix_highlight} #[fg=#ede7d3,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#ede7d3] %Y-%m-%d  %I:%M %p #[fg=#268bd3,bg=#ede7d3,nobold,nounderscore,noitalics]#[fg=#ffffff,bg=#268bd3,bold] #h "
if-shell '[ "$(tmux show-option -gqv "clock-mode-style")" == "24" ]' {
set -g status-right "#[fg=#fdf5e2,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#fdf5e2] #{prefix_highlight} #[fg=#ede7d3,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#ede7d3] %Y-%m-%d  %H:%M #[fg=#268bd3,bg=#ede7d3,nobold,nounderscore,noitalics]#[fg=#cac4b5,bg=#268bd3,bold] #h "
set -g status-right "#[fg=#fdf5e2,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#fdf5e2] #{prefix_highlight} #[fg=#ede7d3,bg=#fdf5e2,nobold,nounderscore,noitalics]#[fg=#268bd3,bg=#ede7d3] %Y-%m-%d  %H:%M #[fg=#268bd3,bg=#ede7d3,nobold,nounderscore,noitalics]#[fg=#ffffff,bg=#268bd3,bold] #h "
}
setw -g window-status-activity-style "underscore,fg=#637981,bg=#fdf5e2"

View file

@ -5,7 +5,7 @@
--vimium-green: #849900;
--vimium-fg: #839395;
--vimium-fg-dark: #9eabac;
--vimium-border: #001014;
--vimium-border: #063540;
--vimium-border-highlight: #063540;
--vimium-bg: #001419;
--vimium-bg-highlight: #002c38;

View file

@ -5,7 +5,7 @@
--vimium-green: #849900;
--vimium-fg: #576d74;
--vimium-fg-dark: #637981;
--vimium-border: #cac4b5;
--vimium-border: #ede7d3;
--vimium-border-highlight: #ede7d3;
--vimium-bg: #fdf5e2;
--vimium-bg-highlight: #ede7d3;

View file

@ -7,7 +7,7 @@ cursor_fg = "#001419"
selection_bg = "#1a6397"
selection_fg = "#839395"
ansi = ["#001014", "#db302d", "#849900", "#b28500", "#268bd3", "#d23681", "#29a298", "#9eabac"]
ansi = ["#001419", "#db302d", "#849900", "#b28500", "#268bd3", "#d23681", "#29a298", "#9eabac"]
brights = ["#001419", "#db302d", "#849900", "#b28500", "#268bd3", "#d23681", "#29a298", "#839395"]
[colors.tab_bar]

View file

@ -7,7 +7,7 @@ cursor_fg = "#fdf5e2"
selection_bg = "#46acf5"
selection_fg = "#576d74"
ansi = ["#cac4b5", "#db302d", "#849900", "#b28500", "#268bd3", "#d23681", "#29a298", "#637981"]
ansi = ["#ffffff", "#db302d", "#849900", "#b28500", "#268bd3", "#d23681", "#29a298", "#637981"]
brights = ["#fdf5e2", "#db302d", "#849900", "#b28500", "#268bd3", "#d23681", "#29a298", "#576d74"]
[colors.tab_bar]

View file

@ -2,7 +2,7 @@
# https://learn.microsoft.com/en-us/windows/terminal/customize-settings/color-schemes#creating-your-own-color-scheme
{
"background": "#001419",
"black": "#001014",
"black": "#001419",
"blue": "#268bd3",
"brightBlack": "#001419",
"brightBlue": "#268bd3",

View file

@ -2,7 +2,7 @@
# https://learn.microsoft.com/en-us/windows/terminal/customize-settings/color-schemes#creating-your-own-color-scheme
{
"background": "#fdf5e2",
"black": "#cac4b5",
"black": "#ffffff",
"blue": "#268bd3",
"brightBlack": "#fdf5e2",
"brightBlue": "#268bd3",

View file

@ -6,4 +6,4 @@ ColorForeground=#839395
ColorSelectionBackground=#1a6397
ColorSelection=#839395
ColorPalette=#001014;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#9eabac;#001419;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#839395
ColorPalette=#001419;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#9eabac;#001419;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#839395

View file

@ -6,4 +6,4 @@ ColorForeground=#576d74
ColorSelectionBackground=#46acf5
ColorSelection=#576d74
ColorPalette=#cac4b5;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#637981;#fdf5e2;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#576d74
ColorPalette=#ffffff;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#637981;#fdf5e2;#db302d;#849900;#b28500;#268bd3;#d23681;#29a298;#576d74

View file

@ -3,7 +3,7 @@
*background: #001419
*foreground: #839395
*color0: #001014
*color0: #001419
*color1: #db302d
*color2: #849900
*color3: #b28500

View file

@ -3,7 +3,7 @@
*background: #fdf5e2
*foreground: #576d74
*color0: #cac4b5
*color0: #ffffff
*color1: #db302d
*color2: #849900
*color3: #b28500

View file

@ -33,13 +33,13 @@ border_symbol = "│"
border_style = { fg = "#063540" }
[mode]
normal_main = { fg = "#001014", bg = "#268bd3", bold = true }
normal_main = { fg = "#001419", bg = "#268bd3", bold = true }
normal_alt = { fg = "#268bd3", bg = "#576d74" }
select_main = { fg = "#001014", bg = "#d23681", bold = true }
select_main = { fg = "#001419", bg = "#d23681", bold = true }
select_alt = { fg = "#d23681", bg = "#576d74" }
unset_main = { fg = "#001014", bg = "#6d71c4", bold = true }
unset_main = { fg = "#001419", bg = "#6d71c4", bold = true }
unset_alt = { fg = "#6d71c4", bg = "#576d74" }
[status]

View file

@ -33,13 +33,13 @@ border_symbol = "│"
border_style = { fg = "#ede7d3" }
[mode]
normal_main = { fg = "#cac4b5", bg = "#268bd3", bold = true }
normal_main = { fg = "#ffffff", bg = "#268bd3", bold = true }
normal_alt = { fg = "#268bd3", bg = "#adb7b7" }
select_main = { fg = "#cac4b5", bg = "#d23681", bold = true }
select_main = { fg = "#ffffff", bg = "#d23681", bold = true }
select_alt = { fg = "#d23681", bg = "#adb7b7" }
unset_main = { fg = "#cac4b5", bg = "#6d71c4", bold = true }
unset_main = { fg = "#ffffff", bg = "#6d71c4", bold = true }
unset_alt = { fg = "#6d71c4", bg = "#adb7b7" }
[status]

View file

@ -3,23 +3,23 @@ local colors = require("solarized-osaka.colors").setup({ transform = true })
local solarized_osaka = {}
solarized_osaka.normal = {
left = { { colors.black, colors.blue }, { colors.blue, colors.base02 } },
left = { { colors.base04, colors.blue }, { colors.blue, colors.base02 } },
middle = { { colors.fg, colors.bg_statusline } },
right = { { colors.black, colors.blue }, { colors.base02, colors.base1 } },
error = { { colors.black, colors.error } },
warning = { { colors.black, colors.warning } },
right = { { colors.base04, colors.blue }, { colors.base02, colors.base1 } },
error = { { colors.base04, colors.error } },
warning = { { colors.base04, colors.warning } },
}
solarized_osaka.insert = {
left = { { colors.black, colors.green }, { colors.blue, colors.base02 } },
left = { { colors.base04, colors.green }, { colors.blue, colors.base02 } },
}
solarized_osaka.visual = {
left = { { colors.black, colors.magenta }, { colors.blue, colors.base02 } },
left = { { colors.base04, colors.magenta }, { colors.blue, colors.base02 } },
}
solarized_osaka.replace = {
left = { { colors.black, colors.red }, { colors.blue, colors.base02 } },
left = { { colors.base04, colors.red }, { colors.blue, colors.base02 } },
}
solarized_osaka.inactive = {

View file

@ -4,29 +4,29 @@ local config = require("solarized-osaka.config").options
local solarized_osaka = {}
solarized_osaka.normal = {
a = { bg = colors.blue, fg = colors.black },
a = { bg = colors.blue, fg = colors.base04 },
b = { bg = colors.base0, fg = colors.base04 },
c = { bg = colors.bg_statusline, fg = colors.fg },
}
solarized_osaka.insert = {
a = { bg = colors.green, fg = colors.black },
a = { bg = colors.green, fg = colors.base04 },
}
solarized_osaka.command = {
a = { bg = colors.yellow, fg = colors.black },
a = { bg = colors.yellow, fg = colors.base04 },
}
solarized_osaka.visual = {
a = { bg = colors.magenta, fg = colors.black },
a = { bg = colors.magenta, fg = colors.base04 },
}
solarized_osaka.replace = {
a = { bg = colors.red, fg = colors.black },
a = { bg = colors.red, fg = colors.base04 },
}
solarized_osaka.terminal = {
a = { bg = colors.green, fg = colors.black },
a = { bg = colors.green, fg = colors.base04 },
}
solarized_osaka.inactive = {

View file

@ -296,10 +296,8 @@ function M.setup(opts)
---@class ColorScheme: Palette
local colors = vim.tbl_deep_extend("force", vim.deepcopy(M.default), palette)
util.bg = colors.bg
colors.black = util.darken(colors.bg, 0.8, "#000000")
colors.border = colors.black
-- Separator lines, matching WinSeparator
colors.border = colors.base02
-- Popups and statusline always get a dark background
colors.bg_popup = colors.base04

View file

@ -19,7 +19,7 @@ function M.generate(colors)
border.fg=${base01}
border.bg=${bg}
title.fg=${black}
title.fg=${base04}
title.bg=${blue}
title.bold=true
@ -29,7 +29,7 @@ header.bold=true
tab.fg=${base01}
tab.bg=${bg_statusline}
tab.selected.fg=${black}
tab.selected.fg=${base04}
tab.selected.bg=${blue}
statusline_default.fg=${fg}

View file

@ -22,7 +22,7 @@ colors:
# Normal colors
normal:
black: '${black}'
black: '${base04}'
red: '${red}'
green: '${green}'
yellow: '${yellow}'

View file

@ -175,7 +175,7 @@ function M.generate(colors)
--spoiler-revealed-background: ${bg_highlight};
--spoiler-hidden-background: ${base01};
--android-navigation-bar-background: ${bg_highlight};
--android-ripple: ${black}4C;
--android-ripple: ${base04}4C;
--bg-mod-faint: ${base03};
--bg-mod-subtle: ${bg};
--focus-primary: ${blue};

View file

@ -23,7 +23,7 @@ selection-foreground=${fg}
selection-background=${blue700}
urls=${green500}
regular0=${black}
regular0=${base04}
regular1=${red}
regular2=${green}
regular3=${yellow}

View file

@ -27,14 +27,14 @@ active_tab_background ${cyan}
active_tab_foreground ${base4}
inactive_tab_background ${bg_highlight}
inactive_tab_foreground ${base00}
#tab_bar_background ${black}
#tab_bar_background ${base04}
# Windows
active_border_color ${blue}
inactive_border_color ${bg_highlight}
# normal
color0 ${black}
color0 ${base04}
color1 ${red}
color2 ${green}
color3 ${yellow}

View file

@ -31,15 +31,15 @@ style:
categoryFgColor: '${blue700}'
dialog:
fgColor: '${blue300}'
bgColor: '${black}'
bgColor: '${base04}'
contrastBgColor: '${bg}'
attentionBgColor: '${red300}'
buttonFgColor: '${black}'
buttonFgColor: '${base04}'
buttonBgColor: '${bg_highlight}'
buttonFocusFgColor: '${black}'
buttonFocusFgColor: '${base04}'
buttonFocusBgColor: '${blue}'
labelFgColor: '${yellow}'
fieldFgColor: '${black}'
fieldFgColor: '${base04}'
fieldBgColor: '${blue700}'
]=],
colors

View file

@ -7,7 +7,7 @@ function M.generate(colors)
local terminator = util.template(
[=[
[[${_style_name}]]
palette = "${black}:${red}:${green}:${yellow}:${blue}:${magenta}:${cyan}:${base0}:${bg}:${red}:${green}:${yellow}:${blue}:${magenta}:${cyan}:${violet500}"
palette = "${base04}:${red}:${green}:${yellow}:${blue}:${magenta}:${cyan}:${base0}:${bg}:${red}:${green}:${yellow}:${blue}:${magenta}:${cyan}:${violet500}"
background_color = "${bg}"
foreground_color = "${fg}"
]=],

View file

@ -13,7 +13,7 @@ function M.generate(colors)
"foreground-color": "${fg}",
"background-color": "${bg}",
"palette": [
"${black}",
"${base04}",
"${red}",
"${green}",
"${yellow}",

View file

@ -30,10 +30,10 @@ set -g status-right-length "100"
set -g status-left-style ${none}
set -g status-right-style ${none}
set -g status-left "#[fg=${black},bg=${blue},bold] #S #[fg=${blue},bg=${bg_statusline},nobold,nounderscore,noitalics]"
set -g status-right "#[fg=${bg_statusline},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${bg_statusline}] #{prefix_highlight} #[fg=${base02},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${base02}] %Y-%m-%d  %I:%M %p #[fg=${blue},bg=${base02},nobold,nounderscore,noitalics]#[fg=${black},bg=${blue},bold] #h "
set -g status-left "#[fg=${base04},bg=${blue},bold] #S #[fg=${blue},bg=${bg_statusline},nobold,nounderscore,noitalics]"
set -g status-right "#[fg=${bg_statusline},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${bg_statusline}] #{prefix_highlight} #[fg=${base02},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${base02}] %Y-%m-%d  %I:%M %p #[fg=${blue},bg=${base02},nobold,nounderscore,noitalics]#[fg=${base04},bg=${blue},bold] #h "
if-shell '[ "$(tmux show-option -gqv "clock-mode-style")" == "24" ]' {
set -g status-right "#[fg=${bg_statusline},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${bg_statusline}] #{prefix_highlight} #[fg=${base02},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${base02}] %Y-%m-%d  %H:%M #[fg=${blue},bg=${base02},nobold,nounderscore,noitalics]#[fg=${black},bg=${blue},bold] #h "
set -g status-right "#[fg=${bg_statusline},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${bg_statusline}] #{prefix_highlight} #[fg=${base02},bg=${bg_statusline},nobold,nounderscore,noitalics]#[fg=${blue},bg=${base02}] %Y-%m-%d  %H:%M #[fg=${blue},bg=${base02},nobold,nounderscore,noitalics]#[fg=${base04},bg=${blue},bold] #h "
}
setw -g window-status-activity-style "underscore,fg=${fg_sidebar},bg=${bg_statusline}"

View file

@ -15,7 +15,7 @@ cursor_fg = "${bg}"
selection_bg = "${blue700}"
selection_fg = "${fg}"
ansi = ["${black}", "${red}", "${green}", "${yellow}", "${blue}", "${magenta}", "${cyan}", "${base0}"]
ansi = ["${base04}", "${red}", "${green}", "${yellow}", "${blue}", "${magenta}", "${cyan}", "${base0}"]
brights = ["${bg}", "${red}", "${green}", "${yellow}", "${blue}", "${magenta}", "${cyan}", "${fg}"]
[colors.tab_bar]

View file

@ -10,7 +10,7 @@ function M.generate(colors)
# https://learn.microsoft.com/en-us/windows/terminal/customize-settings/color-schemes#creating-your-own-color-scheme
{
"background": "${bg}",
"black": "${black}",
"black": "${base04}",
"blue": "${blue}",
"brightBlack": "${bg}",
"brightBlue": "${blue}",

View file

@ -14,7 +14,7 @@ ColorForeground=${fg}
ColorSelectionBackground=${blue700}
ColorSelection=${fg}
ColorPalette=${black};${red};${green};${yellow};${blue};${magenta};${cyan};${base0};${bg};${red};${green};${yellow};${blue};${magenta};${cyan};${fg}
ColorPalette=${base04};${red};${green};${yellow};${blue};${magenta};${cyan};${base0};${bg};${red};${green};${yellow};${blue};${magenta};${cyan};${fg}
]],
colors
)

View file

@ -11,7 +11,7 @@ function M.generate(colors)
*background: ${bg}
*foreground: ${fg}
*color0: ${black}
*color0: ${base04}
*color1: ${red}
*color2: ${green}
*color3: ${yellow}

View file

@ -43,13 +43,13 @@ border_symbol = "│"
border_style = { fg = "${border_highlight}" }
[mode]
normal_main = { fg = "${black}", bg = "${blue}", bold = true }
normal_main = { fg = "${base04}", bg = "${blue}", bold = true }
normal_alt = { fg = "${blue}", bg = "${base01}" }
select_main = { fg = "${black}", bg = "${magenta}", bold = true }
select_main = { fg = "${base04}", bg = "${magenta}", bold = true }
select_alt = { fg = "${magenta}", bg = "${base01}" }
unset_main = { fg = "${black}", bg = "${violet500}", bold = true }
unset_main = { fg = "${base04}", bg = "${violet500}", bold = true }
unset_alt = { fg = "${violet500}", bg = "${base01}" }
[status]

View file

@ -1,5 +1,3 @@
local Util = require("solarized-osaka.util")
local M = {}
function M.get(c, opts)
@ -32,17 +30,17 @@ function M.get(c, opts)
BufferVisibleMod = { bg = c.bg_statusline, fg = c.warning },
BufferVisibleSign = { bg = c.bg_statusline, fg = c.info },
BufferVisibleTarget = { bg = c.bg_statusline, fg = c.red },
BufferInactive = { bg = Util.darken(c.bg_highlight, 0.4), fg = Util.darken(c.violet500, 0.8) },
BufferInactiveERROR = { bg = Util.darken(c.bg_highlight, 0.4), fg = Util.darken(c.error, 0.8) },
BufferInactiveHINT = { bg = Util.darken(c.bg_highlight, 0.4), fg = Util.darken(c.hint, 0.8) },
BufferInactiveINFO = { bg = Util.darken(c.bg_highlight, 0.4), fg = Util.darken(c.info, 0.8) },
BufferInactiveWARN = { bg = Util.darken(c.bg_highlight, 0.4), fg = Util.darken(c.warning, 0.8) },
BufferInactiveIndex = { bg = Util.darken(c.bg_highlight, 0.4), fg = c.violet500 },
BufferInactiveMod = { bg = Util.darken(c.bg_highlight, 0.4), fg = Util.darken(c.warning, 0.8) },
BufferInactiveSign = { bg = Util.darken(c.bg_highlight, 0.4), fg = c.bg },
BufferInactiveTarget = { bg = Util.darken(c.bg_highlight, 0.4), fg = c.red },
BufferInactive = { bg = c.bg, fg = c.violet600 },
BufferInactiveERROR = { bg = c.bg, fg = c.red600 },
BufferInactiveHINT = { bg = c.bg, fg = c.cyan600 },
BufferInactiveINFO = { bg = c.bg, fg = c.blue600 },
BufferInactiveWARN = { bg = c.bg, fg = c.yellow600 },
BufferInactiveIndex = { bg = c.bg, fg = c.violet500 },
BufferInactiveMod = { bg = c.bg, fg = c.yellow600 },
BufferInactiveSign = { bg = c.bg, fg = c.bg },
BufferInactiveTarget = { bg = c.bg, fg = c.red },
BufferOffset = { bg = c.bg_statusline, fg = c.violet500 },
BufferTabpageFill = { bg = Util.darken(c.bg_highlight, 0.8), fg = c.violet500 },
BufferTabpageFill = { bg = c.bg_highlight, fg = c.violet500 },
BufferTabpages = { bg = c.bg_statusline, fg = c.none },
}
end

View file

@ -6,7 +6,7 @@ function M.get(c, opts)
MiniJump = { bg = c.magenta500, fg = c.base4 },
MiniJump2dDim = { fg = c.base01 },
MiniJump2dSpot = { fg = c.magenta500, bold = true, nocombine = true },
MiniJump2dSpotAhead = { fg = c.cyan500, bg = c.black, nocombine = true },
MiniJump2dSpotAhead = { fg = c.cyan500, bg = c.base04, nocombine = true },
MiniJump2dSpotUnique = { fg = c.yellow500, bold = true, nocombine = true },
}
end

View file

@ -7,12 +7,12 @@ function M.get(c, opts)
MiniStatuslineFileinfo = { fg = c.base01, bg = c.bg_highlight },
MiniStatuslineFilename = { fg = c.base01, bg = c.bg_highlight },
MiniStatuslineInactive = { fg = opts.hide_inactive_statusline and c.bg or c.blue, bg = opts.hide_inactive_statusline and c.none or c.bg_statusline, sp = opts.hide_inactive_statusline and c.border or c.none, underline = opts.hide_inactive_statusline },
MiniStatuslineModeCommand = { fg = c.black, bg = c.yellow, bold = true },
MiniStatuslineModeInsert = { fg = c.black, bg = c.green, bold = true },
MiniStatuslineModeNormal = { fg = c.black, bg = c.blue, bold = true },
MiniStatuslineModeOther = { fg = c.black, bg = c.cyan500, bold = true },
MiniStatuslineModeReplace = { fg = c.black, bg = c.red, bold = true },
MiniStatuslineModeVisual = { fg = c.black, bg = c.magenta, bold = true },
MiniStatuslineModeCommand = { fg = c.base04, bg = c.yellow, bold = true },
MiniStatuslineModeInsert = { fg = c.base04, bg = c.green, bold = true },
MiniStatuslineModeNormal = { fg = c.base04, bg = c.blue, bold = true },
MiniStatuslineModeOther = { fg = c.base04, bg = c.cyan500, bold = true },
MiniStatuslineModeReplace = { fg = c.base04, bg = c.red, bold = true },
MiniStatuslineModeVisual = { fg = c.base04, bg = c.magenta, bold = true },
}
end

View file

@ -3,7 +3,7 @@ local M = {}
function M.get(c, opts)
-- stylua: ignore
return {
MiniSurround = { bg = c.orange, fg = c.black },
MiniSurround = { bg = c.orange, fg = c.base04 },
}
end

View file

@ -4,7 +4,7 @@ function M.get(c, opts)
-- stylua: ignore
return {
MiniTablineCurrent = { fg = c.fg, bg = c.base02, bold = true },
MiniTablineFill = { bg = c.black },
MiniTablineFill = { bg = c.base04 },
MiniTablineHidden = { fg = c.violet500, bg = c.bg_statusline },
MiniTablineModifiedCurrent = { fg = c.base02, bg = c.fg, bold = true },
MiniTablineModifiedHidden = { fg = c.bg_statusline, bg = c.violet500 },

View file

@ -1,5 +1,3 @@
local Util = require("solarized-osaka.util")
local M = {}
function M.get(c, opts)
@ -7,11 +5,11 @@ function M.get(c, opts)
return {
NotifyBackground = { fg = c.fg, bg = c.bg },
--- Border
NotifyERRORBorder = { fg = Util.darken(c.error, 0.3), bg = opts.transparent and c.none or c.bg },
NotifyWARNBorder = { fg = Util.darken(c.warning, 0.3), bg = opts.transparent and c.none or c.bg },
NotifyINFOBorder = { fg = Util.darken(c.info, 0.3), bg = opts.transparent and c.none or c.bg },
NotifyDEBUGBorder = { fg = Util.darken(c.base01, 0.3), bg = opts.transparent and c.none or c.bg },
NotifyTRACEBorder = { fg = Util.darken(c.violet500, 0.3), bg = opts.transparent and c.none or c.bg },
NotifyERRORBorder = { fg = c.red900, bg = opts.transparent and c.none or c.bg },
NotifyWARNBorder = { fg = c.yellow900, bg = opts.transparent and c.none or c.bg },
NotifyINFOBorder = { fg = c.blue900, bg = opts.transparent and c.none or c.bg },
NotifyDEBUGBorder = { fg = c.base02, bg = opts.transparent and c.none or c.bg },
NotifyTRACEBorder = { fg = c.violet900, bg = opts.transparent and c.none or c.bg },
--- Icons
NotifyERRORIcon = { fg = c.error },
NotifyWARNIcon = { fg = c.warning },

View file

@ -33,8 +33,8 @@ end
---@param colors ColorScheme
function M.terminal(colors)
-- dark
vim.g.terminal_color_0 = colors.black
vim.g.terminal_color_8 = colors.black
vim.g.terminal_color_0 = colors.base04
vim.g.terminal_color_8 = colors.base04
-- light
vim.g.terminal_color_7 = colors.fg

View file

@ -1,33 +1,5 @@
local M = {}
M.bg = "#000000"
---@param c string
local function hexToRgb(c)
c = string.lower(c)
return { tonumber(c:sub(2, 3), 16), tonumber(c:sub(4, 5), 16), tonumber(c:sub(6, 7), 16) }
end
---@param foreground string foreground color
---@param background string background color
---@param alpha number|string number between 0 and 1. 0 results in bg, 1 results in fg
function M.blend(foreground, background, alpha)
alpha = type(alpha) == "string" and (tonumber(alpha, 16) / 0xff) or alpha
local bg = hexToRgb(background)
local fg = hexToRgb(foreground)
local blendChannel = function(i)
local ret = (alpha * fg[i] + ((1 - alpha) * bg[i]))
return math.floor(math.min(math.max(0, ret), 255) + 0.5)
end
return string.format("#%02x%02x%02x", blendChannel(1), blendChannel(2), blendChannel(3))
end
function M.darken(hex, amount, bg)
return M.blend(hex, bg or M.bg, amount)
end
--- Raises a color's perceptual lightness without draining its colorfulness.
---
---@param hex string