catppuccin / obsidian

💎 Soothing pastel theme for Obsidian
MIT License
340 stars 15 forks source link

Allow more text colouring #27

Closed qdgiang closed 1 year ago

qdgiang commented 1 year ago

Would be great if we are able to colour the bold, italic, quoted… text like Things theme combined with the Style settings plugin. Texts will be much clearer and also take advantage of the full colour palette.

AnubisNekhet commented 1 year ago

@mbeckrich this should be doable but it'll need a dedicated decorations.scss file I think Using catppuccin accents for decorations which can be selected independently means that we'll need to add individual selector classes for both bold and italic elements

mbeckrich commented 1 year ago

@qdgiang01 Will implement.

@AnubisNekhet Sounds good, going to get started on it rn but have appointments all afternoon so might not get done until tomorrow-ish.

mbeckrich commented 1 year ago

This is what I'm looking at right now for the full palette theme @AnubisNekhet. Open to any changes, put this on development for the time being. Will tackle the Style Settings/accent themes when I get home.

image

AnubisNekhet commented 1 year ago

Sounds good 👍

mbeckrich commented 1 year ago

A first go at this has just been pushed to main. I'll leave this issue open for the time being in case anyone has feedback. Didn't have time tonight, but I will integrate the font color choices with Style Settings soon.

mbeckrich commented 1 year ago

As of https://github.com/catppuccin/obsidian/commit/24020e3cc8c30c11613264f63a4ae543459653de, people with the Style Settings plugin should be able to swap out the default theme's colors for headings, italics, bold, strikethrough, and blockquote with their preferred colors from the palette.

For anyone who wants to make their own modifications (e.g. change default colors themselves, mess with opacity, etc.), I thought I would be able to do something in Style Settings like:

id: ctp-bold
type: variable-select
default: var(--ctp-sapphire)
strong,
cm-strong {
--bold-color: rgb(var(--ctp-bold);
}

But this method only works once the user selects a color. The --ctp-sapphire variable doesn't seem to go anywhere until then and if you do pick the color and then hit the plugin's default button, the color resets to grey and not the default from the yaml. If this is common knowledge, my bad, but the type: class-select in Anubis's contribution works how I would have expected type: variable-select to work, so this threw me for a loop. Anyway, I found I needed to add a fallback variable as the real default (the user-selected color seems to persist through opening/closing the app and enabling/disabling the plugin, but not sure if that will always be the case):

/*_typography.scss*/
strong,
.cm-strong {
  --bold-color: rgb(var(--ctp-bold, var(--ctp-sapphire)));
}