catppuccin / nvim

🍨 Soothing pastel theme for (Neo)vim
MIT License
5.52k stars 246 forks source link

Announcement: breaking changes #44

Closed pocco81 closed 2 years ago

pocco81 commented 3 years ago

Note: Subscribe to the issue to get notified about Catppuccin's progess

Edit: refer to this project, which tracks Catppuccin's initial release.

Hello everyone! thanks for using Catppuccino.nvim and taking time to read this.

After the initial release I've been thinking about adding some new stuff and replacing other things. However, throughout the development I've found certain incongruences around it... Hence this issue.

Ideas

All of the following ideas are oriented towards improving consistency and code quality:

  1. The name of the themes: after looking around and nitpicking over how other themes (not only for nvim) are naming the "variants" of their themes (e.g. a light version, dark version, ...), I've decided to do the same for Catppuccino. Consistency is key and naming the themes like how is being done regardless of them following a convention, feels inconsistent. Therefore themes will be named: [adjective] Catppuccino (e.g. Neon Catppuccino). Suggestions are welcomed.

  2. Let's talk about the color palette(s): initially the idea with Catppuccino, unlike other color palettes, was create other color palettes based on a "base color palette". This was kind of accomplished. I created the Catppuccino color palette (which was once in the repo AFAIR) and as you may have already noticed, all the themes share several colors like the white, pink, magenta, red, etc. But lately with the introduction of new variants this hasn't been quite as true as it used to, giving a feel that they are different themes (not THAT different but you get the idea). Because of this, the color palettes will be refactored as well.

  3. Syntax: syntax and UI highlighting is the most important thing following the color palettes. I personally think that the syntax highlighting in Catppuccino is just awesome, it's really what makes Catppuccino Catppuccino. Further improvements and suggestions are very welcomed nonetheless.

  4. New objective: "be an eye-candy and easy on the eyes colorscheme suited for various degrees of lightless and easy to adapt to other environments (web sites, WebApps, DEs, ...)" and it will, of course, accomplish this with the numerous things mentioned above.

  5. I'm thinking about removing Soft Manilo after #43 gets merged (before it has to be refactored taking into account the aforementioned ideas). Perhaps it'd be good to stick with the following styles:

Style Flavor Name
Dark Dark Catppuccino
Light Light Melya
Neon Neon Latte
Pale Misty Moka
  1. If people really really like this I will consider turning this into an org and extend the boundaries of Catppuccino, making it available as themes for web browsers, desktop environments, other editors, other applications (tmux, terminal emulators, ...) etc... Of course, people willing to maintain Catppuccino for x thing (e.g. for Firefox) would be welcomed to the org.

  2. The doc gotta be improved. Edit: the best option would be to auto generate documentation based on the README (or any other file for this matter) and perhaps do this through CI using md2vim. I'll write some shell scripts for this.

  3. The project hasn't had any speed related issues, yet, I'll add asynchronous loading to enhance the theme for users who like to load theirs like this.

Objectives

New Ideas <-- read this

Edit 1: I’ve been reading about themes lately and I’ve two new ideas, which are just IDEAS at the moment:

  1. Perhaps create geometric color palettes? I was reading about Dracula PRO (an awesome theme indeed) and it follows a mathematical approach as opposed to what the standard colors of the Dracula theme used to follow in order to “normalize lightness and saturation”. This is an awesome idea and it’s the first theme I’ve seen doing such a thing.
  2. Perhaps standardizing a single color palette? Following my point above about Catppuccino “not seeming to be anything in particular but aspiring to be everything”: I was checking big names in the colorscheme forest (most notably Nord, Dracula, One Dark, Gruvbox, Molokai) and… they all have one single palette (notice that not all of them have the same amount of colors and some have specific colors for syntax related stuff). That would be a nice approach to follow if we try to project Catppuccino to other platforms in terms of maintainability and stability. Furthermore, having one single color palette will make it a more identifiable theme, because as of now, if one sees one of the current themes one won’t be able to tell they have the same root. If this EVER TAKES PLACE I expect people to be mad because this would imply the removal of some themes in order to stick with one (which could be the result of a fusion between the current one), I'll fork this project and maintain it.
luissolanodev commented 3 years ago

Hey! this seems legit to me! I love the idea of standarization so we have guidelines to stick to and solid purposes/objectives. I'll give my feedback on each point and throw some doubts as well:

  1. Naming is very important. I think names will rely on the principle stablished for favlors, and taking point 2 in consideration it's probably better to have names ending with Catpuccino as you said. Don't you think we could run out of adjectives at some point though? or that it may be hard to find an adjective that fits some flavor? Idk.
  2. I like that idea a lot, initially I thought of porting every colorscheme I like to Catppuccino to take adventage of the integration it has with many plugins, but this seems much more fair because it'd make Catppuccino unique and sticked to semantics of it being one more color scheme, with different variants, but still Catppuccino, if you want try something different anytime you'd probably want to have more than one color scheme installed, and that's perfectly fine!
  3. I agree, syntax highlighting is nice, but sometimes I feel there's a lot of magenta going on! haha so it would be good to know what particular things make Catppuccino Catppuccino. I use to find myself wanting to change some highlights on the neon variant to make it look more colorful (like nebulous's twilight variant) thinking it'd be good, but if this goes out of the scope or misses the point then I shouldn't be thinking that way and install nebulous too instead. Anyway, I think syntax can also be discussed, but it would be good to have that starting point.
  4. Amazing! related to my previous point. To take in mind when writing all these variants and selecting highlight groups.
  5. Yeah I think they're pretty similar. Misty moka definitely needs refactor to match the new objective. Also the current colors are very bright and sometimes are hard to read. Style is good, for flavor names I like the new idea you mentioned in point 1. On the other hand, it probably breaks the semantics to have one flavor named the same as the color scheme (Catppuccino), having them all ending with Catppuccino would fix this and give flavors that meaning of still being Catppuccino.
  6. That's the next step! sounds great, I think when the refactor is completed and all these conventions are well stablished it'll be good to go. A lot of ideas come to my mind when making that step to creating an org.
  7. I can come up with ideas to improve docs. A list of detailed todo's and epics would help to a better contribution. I will think of this.

It was very long, but I had to say it. This is a good step to take Catppuccino to a new level, keep the good work going! Cheers bro.

pocco81 commented 3 years ago

Don't you think we could run out of adjectives at some point though? or that it may be hard to find an adjective that fits some flavor?

That's the thing, there won't be many themes as mentioned above, or there might only be one, who knows, it's just an idea ATM.

I like that idea a lot, initially I thought of porting every colorscheme I like to Catppuccino to take adventage of the integration it has with many plugins

In that case then forking Catppuccino might be a better idea since this doesn't go along with the current objectives sorry :(

if you want try something different anytime you'd probably want to have more than one color scheme installed, and that's perfectly fine!

I just commented something at bottom of the first comment in this issues (point number two to be more precise). Read it and please let me know what you think :1st_place_medal:

I agree, syntax highlighting is nice, but sometimes I feel there's a lot of magenta going on!

Sorry! that was very opinionated, and since I hadn't gotten any suggestions for that I didn't change it. I'll reconsider this in the "big refactor".

I use to find myself wanting to change some highlights on the neon variant to make it look more colorful (like nebulous's twilight variant) thinking it'd be good, but if this goes out of the scope or misses the point then I shouldn't be thinking that way and install nebulous too instead

yes but remember that with Catppuccino you can edit both the colors and the highlights.

Also the current colors are very bright and sometimes are hard to read.

it's a fork of Nord, so I guess it inherited that from it.

That's the next step! sounds great, I think when the refactor is completed and all these conventions are well stablished it'll be good to go. A lot of ideas come to my mind when making that step to creating an org.

You would be welcome to join anytime :+1:. Once again, I'd recommend you to read what's at the bottom of the first comment in this issues (point number two again).

luissolanodev commented 3 years ago

Perhaps standardizing a single color palette?

Hey! I'm very interested on which colors will be picked and how. Have you made any decisions so far?

quantum-booty commented 3 years ago

Can we maybe get a softer light theme too? The constract of light_melya is a bit too harse atm.

pocco81 commented 3 years ago

Hey! I'm very interested on which colors will be picked and how. Have you made any decisions so far?

Yes, but I still need to polish this, not to mention that I haven't written any code (I'll get to this, eventually). So far there are a few things I do wish the color palette was/could accomplish:

  1. Medium-contrast: so that it ain't painful to look at for prolonged periods of time.
  2. 16 colors: following the idea of base16 themes here.
  3. Low saturation: so that it's comfortable to look at.
  4. Narrow tone: because a warmer look will make it seem friendlier [at least I hope so]

What do I have so far? A color palette with 9 (10?) colors, but I just started it very recently. Yet again, I'm no artist and still need to learn about color properties and how to calculate their values so as to "get it right first try". But still, I don't want to overly complicate myself since this single-palette is, after all, just an idea ATM, tho I will make sure all the colors follow a trend to make it more unique.

luissolanodev commented 3 years ago

Sounds great! My question is because I like a lot the neon variant and it's actually the only one I use, so I don't know what to expect from Catppuccino after this big refactor. Will it have some kind of similarity to one of the variants?

pocco81 commented 3 years ago

I don't know what to expect from Catppuccino after this big refactor

Expect a dark theme (that doesn't use too much magenta lol) with a mid-tone background and just a few "protagonist" colors instead of having a single one (which is where I failed at with Neon Latte), probably magenta, pink, red and orange. (I might also change syntax highlighting)

I'll make sure to put something together in a couple of hours...

Edit: I may need a bit more time :+1:

pocco81 commented 2 years ago

Excuse the delay, hope it was worth it. Introducing...

Remastered Catppuccino!

image

Color palette:

image image

You can view it here

(Note: had to exclude the white because the webapp only allowed 10 colors)

Specs

Syntax

Given the fact that no changes whatsoever were made to the codebase, syntax highlighting in this theme is the same as in any of the current Catppuccino.nvim themes. This might change in the future.

Personal Opinion

I love this theme and the color palette too. It's gorgeous IMHO. Many personal choices were made so yeah my opinion is very biased.

How to test it?

Currently I haven't made any changes to the codebase. To test this theme edit Catppuccino.nvim's source code locally. Replace the contents of one of your currently active Catppuccino themes with this:

local util = require("catppuccino.utils.util")

local colors = {
    none = "NONE",
    bg = "#16131F", -- nvim bg                  -- yeah
    fg = "#A7B6DC",                             -- yeah
    fg_gutter = "#3e4058",                      -- not relevant
    black = "#323448",                          -- not relevant?
    gray = "#2C2E3D",                           -- yeah
    red = "#E28D8D",                            -- yeah
    green = "#ADD692",                          -- yeah
    yellow = "#E3DAA3",                         -- yeah
    blue = "#7EA1C8",                           -- yeah
    magenta = "#F0A8E4", -- real: #A28BD0       -- yeah
    cyan = "#FD0DA9",                           -- yeah
    white = "#F2F2F7",                          -- yeah
    orange = "#E7A988",                        -- yeah
    pink = "#F0A8E4", -- real: #F0A8E4          -- not relevant?
    black_br = "#ffffff",                       -- not relevant
    red_br = "#E28D8D",                         -- not relevant
    green_br = "#FD0DA9",                       -- not relevant
    yellow_br = "#E6DFB8",                      -- not relevant
    blue_br = "#7EA1C8",                        -- not relevant
    magenta_br = "#AE9AD6", --  #F094D9         -- yeah
    cyan_br = "#ffffff",                        -- not relevant?
    white_br = "#CDCEE2",                       -- yeah
    orange_br = "#E7A988",                      -- yeah
    pink_br = "#DF97DB",                        -- yeah
    comment = "#63718B",                        -- yeah
}

util.bg = colors.bg
colors.bg_alt = util.darken(colors.bg, 0.75, "#000000")
colors.bg_highlight = util.brighten(colors.bg, 0.05)
colors.fg_alt = util.darken(colors.fg, 0.80, "#000000")

colors.diff = { -- git and native diffs
    add = colors.blue,
    change = colors.yellow,
    delete = colors.red,
    text = colors.blue,
    conflict = colors.magenta,
}

colors.black = util.darken(colors.bg, 0.8, "#000000")
colors.border_highlight = colors.blue
colors.border = colors.black

-- Popups and statusline should always be darker
colors.bg_popup = colors.bg_alt
colors.bg_statusline = colors.bg_alt

-- Sidebar and Floats
colors.bg_sidebar = colors.bg_alt
colors.bg_float = colors.bg_alt

colors.bg_visual = util.darken(colors.blue, 0.2)
colors.bg_search = util.darken(colors.cyan, 0.3)
colors.fg_sidebar = colors.fg_alt

colors.error = colors.red_br
colors.warning = colors.yellow
colors.info = colors.blue
colors.hint = colors.white_br
colors.variable = colors.white

return colors

(Side note: the yeahs in the code represent how relevant the given color is. Furthermore, I know most colors don't match their names, but that's what it had to be done to be able to test this without having to make any changes to the core)

More Screenshots

Because why not?

image image image image image image

luissolanodev commented 2 years ago

Wow! This is very accurate! I'm gonna be testing it, looks great so far. Are you planning on making changes or is this the final color scheme for release? Just asking, so that I could give you feedback if any.

pocco81 commented 2 years ago

Oh man syntax will be different for sure. Like the colors for parenthesis and function arguments and red and orange respectively, and those colors have little to no contrast...

I'll probably make a new branch to develop it and see how it goes.

luissolanodev commented 2 years ago

Great! actually that'd be pretty much the feedback I'd have, syntax related stuff. Color scheme is great, looking forward to it.

luissolanodev commented 2 years ago

Hey! so far it's been all good, don't you think fuchsia is a little bright though? I find it a bit obtrusive sometimes when searching in Telescope.nvim.

pocco81 commented 2 years ago

You are right, I'll look into that.

Edit: https://coolors.co/fd0da9-d654c0-cc66c6-c277cb

image

Before:

image

After:

image

Edit:

I think I'm sticking with this one:

image

The initial fucshia is the first one, this one is the one with the arrow, and the one in the "After" section is the color next to this one (for reference). #D654C0 looks more like pink than fucshia IMO. It looks like this now:

After: image

As you can see this one ain't as pale as the second one.

pocco81 commented 2 years ago

Attention!

Development has started on the remastered version of Catppuccino under the dev-remaster branch.

Edit 0: thought I'd mention this: this is, by no means, stable ATM. I'll update this comment after it's stable enough for daily use. Edit 1: For consistency reasons, I'm going to be adding 4 bkg colors (including the current one), or 4 blacks if you will. Edit 2: The branch is stable enough for normal use as of https://github.com/Pocco81/Catppuccino.nvim/commit/52b2aea8373467f2ee9cac941aad6390940835f7! :champagne: :cake: Edit 3: All the integrations and base colors work and "merge" as expected since https://github.com/Pocco81/Catppuccino.nvim/commit/b2f56cede95705c993fccfe9020a0a532d1654a1 Edit 4; Successfully renamed the whole codebase to Katppuccino! https://github.com/Pocco81/Catppuccino.nvim/commit/a674217ce952da3ee7d2671e02a8df11fea99d09 Edit 5: Current state as of the commit 8956167756feb67d4c169adf7cf6c5b7bc7b6271: image

pocco81 commented 2 years ago

Damn... It seems like somebody is squatting the username @Catppuccino (there is no public activity as seen here)... @Catppuccino, in case you are reading this, I couldn't find any contact info in your profile, so thought I'd ask you publicly, would it be possible for you to release the name Catppuccino so that I claim it for an organization I was planning on making for this project?

Edit: well, this sucks. That account seems inactive since its creation so it's likely the person won't reply. Guess we'll have to wait :) if the person never replies then I guess we are gonna have to rebrand the project unfortunately, because I'm not naming the org catppuccino-theme, it ain't a mouthful but it's just too long.

pocco81 commented 2 years ago

It's finished, including integrations and extras/. The only thing missing is to update the docs.

pocco81 commented 2 years ago

Thank you! to everyone who has contributed to the project in one way or another! I'm gonna be moving this repo to the org (within a couple of hours, maybe a day), obviously after merging the dev-remaster branch.

The final version has changed since the last screenshot I posted on this issue (improved colors for better contrast). I'll add one to the README of this repo.

This project tracks the final things that need to be done before finally releasing Catppuccin officially!

cosmojg commented 1 year ago

Damn... It seems like somebody is squatting the username @Catppuccino (there is no public activity as seen here)... @Catppuccino, in case you are reading this, I couldn't find any contact info in your profile, so thought I'd ask you publicly, would it be possible for you to release the name Catppuccino so that I claim it for an organization I was planning on making for this project?

Edit: well, this sucks. That account seems inactive since its creation so it's likely the person won't reply. Guess we'll have to wait :) if the person never replies then I guess we are gonna have to rebrand the project unfortunately, because I'm not naming the org catppuccino-theme, it ain't a mouthful but it's just too long.

For future reference, GitHub Support is usually pretty helpful when it comes to reclaiming disused namespace, especially if the account in question is very clearly abandoned.