Skip to content

Conversation

@mao-yining
Copy link

@mao-yining
Copy link
Author

The 256 color and so on is generated by AI temporarily

@romainl
Copy link
Collaborator

romainl commented Sep 14, 2025

Thank you.

This is not a thorough review, I will need more time for that, but I noticed that the completion menu lacks contrast in "dark" mode:

Capture d’écran 2025-09-14 à 14 21 01

The contrast is better in "light" mode but the selected line doesn't have a background, which is not very good for usability:

Capture d’écran 2025-09-14 à 14 25 04

The statusline (both active and inactive) is not optimal either in "light" mode,:

Capture d’écran 2025-09-14 à 14 27 03

same for the tabline:

Capture d’écran 2025-09-14 à 14 29 23

It is better in "dark" mode but not by much.

As I said I need more time to play with this but I can already say two things:

  • the syntax highlighting proper is pretty nice,
  • the UI needs more work.

@mao-yining
Copy link
Author

May I ask you weather I can support all four favour of themes in one colorscheme?

@lifepillar
Copy link
Contributor

lifepillar commented Sep 19, 2025

May I ask you weather I can support all four favour of themes in one colorscheme?

That is possible, but I wouldn't recommend that. The original theme doesn't do that either. FWIW, you could define a discriminator in the Colortemplate template, e.g.:

#const flavor = get(g:, 'captuccin_flavor', 'mocha')

Then define all color palettes:

Color text_mocha ...
Color text_frappe ...
Color base_mocha ...
Color base_frappe ...
...

And finally define variants for each highlight group (the default variant corresponding to “mocha” in my example), e.g.:

Normal  text_mocha  base_mocha
 +flavor "frappe"  text_frappe base_frappe
 +flavor "latte" text_latte base_latte
...

Then, you could choose the flavor of the color scheme by setting the global option:

let g:captuccin_flavor = "latte"
colorscheme catpuccin

It's cleaner to just have four color schemes, imo.

@lifepillar
Copy link
Contributor

lifepillar commented Sep 19, 2025

Btw, color schemes to be included in Vim should have no options. So, the above is probably ruled out if you want your color scheme to be included in Vim.

@romainl
Copy link
Collaborator

romainl commented Sep 19, 2025

Indeed we don't want to add too much complexity to the colorschemes distributed with Vim.

Making one colorscheme work equally well with bg=light and bg=dark is already relatively challenging so don't make it too hard. Moreover, of the four CatPuccin variants, the three dark ones are too similar to warrant the effort. Picking one is more than enough.

Did you have any feedback from the upstream maintainers? If your version is visually/functionally identical to the original one, then you should submit it in the original repo as it will make it easier for you to follow the original.

@mao-yining
Copy link
Author

Did you have any feedback from the upstream maintainers? If your version is visually/functionally identical to the original one, then you should submit it in the original repo as it will make it easier for you to follow the original.

Not yet. It seems that the vim repo is less active than the nvim repo, I am considering translate some catppuccin/nvim's features into it.

@mao-yining
Copy link
Author

Which one do you think is the best?

ToolbarButton rosewater none bold
ToolbarButton green surface1 bold

@mao-yining
Copy link
Author

@romainl Can you help me to test that problem you tested still exist? On my gVim on Windows it don't have the problem as you said.

@habamax
Copy link
Collaborator

habamax commented Sep 19, 2025

I believe he is checking it in terminal vim with 256 colors.

@habamax
Copy link
Collaborator

habamax commented Sep 19, 2025

Pmenu needs to be addressed:

image

TODO in diff colors:

image

Added/Changed/Removed
image

It is quite hard to quickly see the active window for me, but I guess this is a design choice?

image

Additionally, we avoid using italic:
image

Although, it is possible to set it for gui vim only which should be fine.

@mao-yining
Copy link
Author

It is quite hard to quickly see the active window for me, but I guess this is a design choice?

Yes. Is it need to be solved?

Pmenu needs to be addressed:

What is the problem?

@habamax Other problems are solved.

@habamax
Copy link
Collaborator

habamax commented Sep 20, 2025

Pmenu needs to be addressed:

What is the problem?

image

PmenuExtra is

@mao-yining
Copy link
Author

mao-yining commented Sep 20, 2025

I noticed that, I'm afraid it is a disign choice.

If seems it as a bug, fixed like that:

diff --git a/colortemplate/catppuccin.colortemplate b/colortemplate/catppuccin.colortemplate
index db1ca34..4b6626d 100644
--- a/colortemplate/catppuccin.colortemplate
+++ b/colortemplate/catppuccin.colortemplate
@@ -143,8 +143,8 @@ ModeMsg              text              none              bold
 MoreMsg              blue              none
 NonText              overlay0          none
 Pmenu                overlay2          mantle
-PmenuExtra           overlay0          none
-PmenuExtraSel        overlay0          none              bold
+PmenuExtra           overlay0          mantle
+PmenuExtraSel        overlay0          surface0          bold
 PmenuSel             none              surface0          bold
 PmenuSbar            none              surface0
 PmenuThumb           none              overlay0

@mao-yining
Copy link
Author

Any problems about gui colors?

@mao-yining mao-yining marked this pull request as ready for review September 20, 2025 02:19
@habamax
Copy link
Collaborator

habamax commented Sep 21, 2025

For quickfix, it is not clear what is the quickfixline what is visual:

image

@habamax
Copy link
Collaborator

habamax commented Sep 21, 2025

The last } is not actually selected, but visually it looks like it is:

image

MatchParen needs to be distinguishable from Visual

Here it is visually selected and it has no difference with previous screenshot:
image

@mao-yining
Copy link
Author

Thanks for all your reviews. I will deal with these next Friday.

@habamax
Copy link
Collaborator

habamax commented Oct 8, 2025

We try to avoid adding non-bundled highlight groups (e.g. lsp, ale, etc).

There is one colorscheme where it kind of slipped in, lunaperche, because I forgot to delete them, but in general -- it is better not to add these highlights to the standard colorschemes.

@habamax
Copy link
Collaborator

habamax commented Oct 9, 2025

Linking QuickFixLine to Search might be not good enough, it obviously creates an issue figuring out where on that line Search highlight is:

image

Or just figure out where QuickFixLine is:

image

@habamax
Copy link
Collaborator

habamax commented Oct 9, 2025

There are some of the Pmenu* highlights missing too:

image image

PmenuMatch/PmenuMatchSel

Related: vim#285, catppuccin/vim#29

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
With some small changes:

CursorIM use 'mauve' instead of 'rosewater'
IncSearch -> Search

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Which one do you think is the best?

ToolbarButton        rosewater         none              bold
ToolbarButton        green             surface1       bold

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Differ from neovim's setting

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Differ from neovim's setting

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
@mao-yining
Copy link
Author

Quickfixline and Visual are indistinctive:

I thought I saw a fix to this but looks like it is not there?

It is waiting for catppuccin/nvim#941 to be merged

@habamax
Copy link
Collaborator

habamax commented Oct 31, 2025

While you're waiting for them to merge, you could probably continue with 16 and 8 colors.

Most probably vim9.2 would be released before christmas/new year, we have a chance to get this colorscheme in.

@mao-yining
Copy link
Author

@habamax While it merges into Vim, it may affect Neovim's colorschemes. How can we prevent it from loading when the catppuccin/nvim plugin is active? I tested it in Neovim and observed some visual differences.

The reason I started considering merging this colorscheme is that I noticed this project plans to include popular themes like tokyonight. For themes that are still actively maintained by the community, what is the intended relationship between the built-in themes and their plugin counterparts?

@habamax
Copy link
Collaborator

habamax commented Oct 31, 2025

I have no idea about how different neovim is with loading colorschemes. In vim it is simple, if you have a colorscheme installed as a plugin it would be loaded instead as it would be found first in runtime path.

However, if you think your theme might diverge from the original, It would be better to rename it, e.g. retrobox is close but a bit different to gruvbox, hence, difference in the name.

@romainl
Copy link
Collaborator

romainl commented Oct 31, 2025

How can we prevent it from loading when the catppuccin/nvim plugin is active?

We won't do that because the colorschemes we are building here are for vanilla Vim only. That they happen to work in Neovim is more of a happy coincidence than anything. On the same note, we try to keep the colorschemes as agnostic as we can: no attempt whatsoever is made to adapt them to third-party plugins.

The reason I started considering merging this colorscheme is that I noticed this project plans to include popular themes like tokyonight.

The initial discussion that prompted the creation of this project effectively revolved around including a number of popular colorschemes in Vim's runtime, but we quickly found a few problems with that idea:

  • licensing can be problematic
  • lots of popular colorschemes need options to work or are unusable in many circumstances (GUI-only design, etc.), which means also including related documentation, etc.
  • differences of priorities
  • bad code
  • project is abandoned
  • etc.

So we moved to a different model, where we welcome colorschemes made specifically for Vim that may or may not be inspired by popular colorschemes, not actual popular colorschemes.

For themes that are still actively maintained by the community, what is the intended relationship between the built-in themes and their plugin counterparts?

That is why I told you right at the beginning that you needed to clear things with the catppuccin people on your side before anything. We can't include a "catpuccin" colorscheme if the owner of catppuccin doesn't explicitly give us the authorization and the owner of catppuccin would have to switch to the same templating system that we use in order to make it painless for everyone, them included. And they would have to align their priorities on ours, etc. That's a lot to ask so we have no plan to establish any particular relationship between us and "plugin counterparts".

If the people behind catppuccin are not 100% on board, we simply can't include a "catppuccin" colorscheme. We can only include a catppuccin-inspired colorscheme with another name, developed separately from the original.

@mao-yining
Copy link
Author

Thank you. I've realized that the previous test failed due to some issues related to lazy loading.

I will keep this in mind going forward and make sure to communicate thoroughly with the community

@backwardspy
Copy link

backwardspy commented Oct 31, 2025

hi! i represent catppuccin's core maintainers.

we've discussed this internally and decided that we're happy for an upstream theme to exist with the name "catppuccin" that is inspired by, or based on, the downstream catppuccin/vim repository, however we're not prepared to take on the maintenance burden of developing it ourselves. as @romainl has pointed out there are a lot of aspects to consider here and we think it would be best if the two themes existed in parallel.

we do something similar with the helix editor; there are both upstream and downstream copies of the theme. fixes in one tend to make it to the other, but we don't put particular effort into syncing them both or even building them in the same way.

the way i see this working is this builtin theme would represent our mocha (dark) and latte (light) flavours only, with no plugin support, while benefiting from being immediately available for use in vim and receiving updates from you guys. meanwhile, our plugin would have all four flavours with plugin support as it always has.

does that sound reasonable to everyone? we're eager to hear your feedback.

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
@habamax
Copy link
Collaborator

habamax commented Nov 1, 2025

does that sound reasonable to everyone? we're eager to hear your feedback.

sounds good to me.

Signed-off-by: 毛逸宁 <mao.yining@outlook.com>
@mao-yining
Copy link
Author

@habamax Could you told me what should I do for 8 colors? It sounds the same as 16 colors on my MS-Windows' terminal.

Signed-off-by: 毛逸宁 <mao.yining@outlook.com>
@habamax
Copy link
Collaborator

habamax commented Nov 1, 2025

@habamax Could you told me what should I do for 8 colors? It sounds the same as 16 colors on my MS-Windows' terminal.

  • use only 8 named colors (black, darkred, darkgreen, darkyellow, darkblue, darkmagenta, darkcyan, gray)
  • test with a terminal that can fake 8 colors (:set t_Co=8)

Signed-off-by: 毛逸宁 <mao.yining@outlook.com>
From catppuccin/nvim#941

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
@habamax
Copy link
Collaborator

habamax commented Nov 6, 2025

dark 256c: Visual vs DiffChanged

The only difference is the bold text which is quite difficult to distinguish

image image

@habamax
Copy link
Collaborator

habamax commented Nov 6, 2025

Quickfixline is almost the same as Visual:

gui
image

tui 256

image

It is quite hard to figure out where visual starts/ends within quickfixline

Same for the light version

image

@habamax
Copy link
Collaborator

habamax commented Nov 6, 2025

light 256 statuslinenc is nearly impossible to read:

image

I would suggest to add contrast

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
@habamax
Copy link
Collaborator

habamax commented Nov 9, 2025

it is still very hard to figure out what is visually highlighted within quickfixline.

gui dark
image

256 dark
image

gui light

image

Can't quickfixline be just a completely different to grayish color? Currently it blends with Cursorline and Visual too much.

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
@habamax
Copy link
Collaborator

habamax commented Nov 16, 2025

Gui and 256 looks good to me.

@habamax
Copy link
Collaborator

habamax commented Nov 16, 2025

16c dark

  • Statusline should be different to StatuslineNC
  • VertSplit should be "something", not invisible
  • Visual and Search should be different
image
  • Comment should be different to the Normal
image
  • Tabline probably needs to be addressed too
image
  • PmenuSbar, is it supposed to be yellow? (It might be, just checking)
image

@habamax
Copy link
Collaborator

habamax commented Nov 17, 2025

Hi @romainl, could you double check 256 and gui variants?

@romainl
Copy link
Collaborator

romainl commented Nov 18, 2025

Hi @romainl, could you double check 256 and gui variants?

Yeah, I've just installed the colorscheme and will test the 256c all day and tomorrow. I will do spot checks in the MacVim GUI ASAP but that's not my main driver so it won't be as thorough.


update

256c/dark

Capture d’écran 2025-11-18 à 10 08 17 Capture d’écran 2025-11-18 à 10 10 49 Capture d’écran 2025-11-18 à 10 13 54 Capture d’écran 2025-11-18 à 10 17 30 Capture d’écran 2025-11-18 à 10 21 53
  • The syntax side of syntax highlighting is nice,
  • line numbers are barely readable,
  • statusline and tabline are inconsistent,
  • non-current statusline is unreadable,
  • visual selection works but could be more punchy,
  • window separation is barely visible,
  • when the quickfix window is opened the workspace becomes very noisy: current qf line is too visible vs non-current statusline.

256c/light

Capture d’écran 2025-11-18 à 10 28 13 Capture d’écran 2025-11-18 à 10 30 14
  • The same problems are present but to a lesser degree,
  • line numbers are perfect,
  • cursorline background is the same as statusline and tabline, this is confusing,
  • matchparen is barely visible.

@mao-yining
Copy link
Author

mao-yining commented Nov 21, 2025

16c dark

Statusline should be different to StatuslineNC

Indeed it has different fg color.
图片

VertSplit should be "something", not invisible

Done

Visual and Search should be different

set search to darkblue

Tabline probably needs to be addressed too

Indeed this theme is designed to use fg color to distinguish between different statuslines and tablines

PmenuSbar, is it supposed to be yellow? (It might be, just checking)

PmenuSbar DONE

256c/dark

line numbers are barely readable,
non-current statusline is unreadable,

Same problem. Add contrast.

statusline and tabline are inconsistent,
window separation is barely visible,

Designed like this.

visual selection works but could be more punchy,

I make a different choice. You can try it.

when the quickfix window is opened the workspace becomes very noisy: current qf line is too visible vs non-current statusline.

lower qfline.

256c/light

matchparen is barely visible.

It's a matter of cursor. My cursor is green for example, is visible.

cursorline background is the same as statusline and tabline, this is confusing,

change it. However it strange that cursorline on my platform is unavailable. maybe its a bug of microsoft terminal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants