Closed DubiousCactus closed 1 year ago
Hi there @DubiousCactus !
I assume you mean callouts with the icon and gradient border like this:
It should be possible! Part of the problem is that my callouts require the Style Settings plugin, because I opted to not make them the default. Same for the circled numbered lists.
I think at this stage I feel safe to make my style the default, and require users to install style settings to turn them off. Doing that should also enable them on your publish site.
I'm rather busy today but might look into this on the weekend
Aaah yes I see! Those are what I meant yes. I've had similar issues with other themes that use Style Settings, and saw on the forums that it's quite tricky to bundle it in a Publish theme... If I have some time I'll try to figure that out, but I would greatly appreciate it if you'd make it the default style :)
Hi @hungsu ! Any news on this? I'd be happy to help if you could point me where to work in the CSS :)
Hi @DubiousCactus ! I'm so so sorry, I had forgotten all about this! As it happens, I've actually been working on a very similar problem of getting CSS working with Digital Garden. I'm at work but I can get to this tonight. If you haven't heard from me by tomorrow feel free to nudge me again
Hi @DubiousCactus , one thing you can try:
Copy the code below, save it to your Obsidian Vault as publish.css
, then publish your site. I haven't ever used Obsidian Publish, but in theory this should work!
.callout {
background-color: transparent !important;
border-style: solid;
border-width: 1px 1px 1px 0;
border-image: linear-gradient(90deg, transparent, rgba(var(--callout-color), 0.25)) 1;
}
.callout .callout-icon {
padding-right: 10px;
}
.callout svg {
transform: scale(1.25);
}
.callout .callout-title {
padding-left: 0;
padding-top: 1em;
padding-bottom: 1em;
}
.callout .callout-content {
padding-left: 32px;
}
.callout .callout-content p:first-child {
margin-top: 0;
}
Thanks a lot, @hungsu, that works! I've had to append it to my publish.css
, which is a copy of your theme CSS.
However, there's a slight inconsistency: links are purple instead of light blue/cyan in the callouts. Maybe you forgot to style them in the CSS?
And also, the page title (when using the note title) isn't stylised like in Obsidian, as you can see on the picture:
But thank you so much for this, I love your theme!
Glad we have progress @DubiousCactus ! Could you link me to your publish site so I can see where the CSS is breaking? If you'd like to send it to me privately you can email me at hi@hung.su
Glad we have progress @DubiousCactus ! Could you link me to your publish site so I can see where the CSS is breaking? If you'd like to send it to me privately you can email me at hi@hung.su
No problem, my site is https://notes.theomorales.com
Thanks for helping me!
Hi @DubiousCactus , thanks for giving me a chance to see how Publish works.
It appears that Publish users have no control of the HTML so you don't have a way of adding Style Settings which is frustrating.
I will have to give you a custom set of publish CSS for now. This should suit you
@charset "UTF-8";
@import url(https://fonts.bunny.net/css?family=spectral:200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i);
@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap");
:root {
/*
Font size variables, made with https://type-scale.com/ and https://fluid-typography.netlify.app/
Major Second scale of 1.125 seems comfortable on my phone
Minor Third scale of 1.2 seems good on desktop
window width where things start to wrap when Readable line length setting is turned on seems to be around 782px
*/
--h6-size: clamp(1.125em, calc(1rem + 3vw), 1.2em);
--h5-size: clamp(1.266em, calc(1rem + 3vw), 1.44em);
--h4-size: clamp(1.424em, calc(1rem + 3vw), 1.728em);
--h3-size: clamp(1.602em, calc(0.8rem + 2.5vw), 2.074em);
--h2-size: clamp(1.802em, calc(0.6rem + 3.7vw), 2.488em);
--h1-size: clamp(2.027em, calc(0.4rem + 5.1vw), 2.986em);
}
body.type-scale-none {
--h6-size: var(--font-text-size);
--h5-size: var(--font-text-size);
--h4-size: var(--font-text-size);
--h3-size: var(--font-text-size);
--h2-size: var(--font-text-size);
--h1-size: var(--font-text-size);
}
body.type-scale-slight {
--h6-size: 1rem;
--h5-size: clamp(1rem, 12vw - 3.7rem, 1.1rem);
--h4-size: clamp(1rem, 12vw - 3.7rem, 1.2rem);
--h3-size: clamp(1.125rem, 12vw - 3.7rem, 1.3rem);
--h2-size: clamp(1.125rem, 12vw - 3.7rem, 1.4rem);
--h1-size: clamp(1.125rem, 12vw - 3.7rem, 1.5rem);
}
/* 1.125 */
body.type-scale-minor-second {
--h6-size: 1.067em;
--h5-size: 1.138em;
--h4-size: 1.215em;
--h3-size: 1.296em;
--h2-size: 1.383em;
--h1-size: 1.476em;
}
/* 1.125 */
body.type-scale-major-second {
--h6-size: 1.125em;
--h5-size: 1.266em;
--h4-size: 1.424em;
--h3-size: 1.602em;
--h2-size: 1.802em;
--h1-size: 2.027em;
}
/* 1.2 */
body.type-scale-minor-third {
--h6-size: 1.2em;
--h5-size: 1.44em;
--h4-size: 1.728em;
--h3-size: 2.074em;
--h2-size: 2.488em;
--h1-size: 2.986em;
}
/* 1.25 */
body.type-scale-major-third {
--h6-size: 1.25em;
--h5-size: 1.563em;
--h4-size: 1.953em;
--h3-size: 2.441em;
--h2-size: 3.052em;
--h1-size: 3.815em;
}
/* latin-ext */
@font-face {
font-family: "Source Sans Pro";
font-style: italic;
font-weight: 300;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Source Sans Pro";
font-style: italic;
font-weight: 300;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Source Sans Pro";
font-style: italic;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Source Sans Pro";
font-style: italic;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Source Sans Pro";
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Source Sans Pro";
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Source Sans Pro";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Source Sans Pro";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Source Sans Pro";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Source Sans Pro";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/sourcesanspro/v19/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Amiri";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/amiri/v17/J7aRnpd8CGxBHpUutLM.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: "Amiri";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/amiri/v17/J7acnpd8CGxBHp2VkaY_zp4.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Amiri";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/amiri/v17/J7acnpd8CGxBHp2VkaYxzp5yGw.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Bitter";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8SjYOLjOXQ.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Bitter";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8SjYOLbOXWh2.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
/* A good Title font should have a beautiful Ampersand (&) and ligatures */
--font-title: "Amiri";
--line-height-headings: 1.2;
--heading-weight: 600;
}
h1,
h1.embedded-note-title,
.cm-header.cm-header-1,
.inline-title,
.cm-s-obsidian .cm-header.cm-header-1,
.HyperMD-header-1.HyperMD-header .cm-header-1,
.markdown-preview-view h1 {
font-weight: 700;
color: var(--text-title-h1);
font-family: var(--font-title);
padding-bottom: 7px;
}
.css-settings-manager h1,
.css-settings-manager h1.embedded-note-title,
.css-settings-manager .cm-header.cm-header-1,
.css-settings-manager .inline-title {
font-weight: var(--title-weight);
}
h1.embedded-note-title.embedded-note-title,
.cm-header-1,
.markdown-preview-view h1,
.cm-header-2,
.markdown-preview-view h2,
.cm-header-3,
.markdown-preview-view h3,
.cm-header-4,
.markdown-preview-view h4,
.cm-header-5,
.markdown-preview-view h5,
.cm-header-6,
.markdown-preview-view h6 {
line-height: var(--line-height-headings);
}
.cm-s-obsidian .cm-header,
h2,
h3,
h4,
h5,
h6 {
font-weight: var(--heading-weight);
}
.cm-header-2,
.markdown-preview-view h2,
.cm-header-3,
.markdown-preview-view h3,
.cm-header-4,
.markdown-preview-view h4,
.cm-header-5,
.markdown-preview-view h5,
.cm-header-6,
.markdown-preview-view h6 {
font-weight: var(--heading-weight);
letter-spacing: -0.03em;
}
/* @settings
name: Typomagical Headings
id: typomagical-title
settings:
-
id: font-title
title: Title font
description: Titles, or H1s, are special. Thus, they should look special. Choose a Title font that suits you!
type: variable-select
default: Amiri
options:
- Amiri
- Bitter
- Playfair Display
-
id: title-weight
title: Title weight
description: The boldness of H1 text
type: variable-number-slider
default: 650
min: 400
max: 900
step: 25
-
id: alignment-title
title: Title alignment
description: The horizontal alignment
type: class-select
default: align-title-center
options:
-
label: Left
value: align-title-left
-
label: Centered
value: align-title-center
-
id: title-gradient
title: Title gradient
description: Apply a vertical gradient to titles
type: class-select
allowEmpty: false
default: ss-title-solid
options:
-
label: No gradient
value: ss-title-solid
-
label: Vertical gradient
value: ss-title-gradient
-
id: heading-weight
title: Heading weight
description: The boldness of headings. I recommend choosing something different from your Title weight, and Body weight
type: variable-number-slider
default: 600
min: 200
max: 800
step: 100
-
id: text-scale
title: Heading scale
description: The rate of growth between text and heading sizes. No scaling means headings and body text are the same size. Blank means Typomagical will attempt to choose the right scale based on your screen size.
type: class-select
allowEmpty: true
default: none
options:
-
label: 1.00 No scaling
value: type-scale-none
-
label: 1.067 Minor Second
value: type-scale-minor-second
-
label: 1.125 Major Second
value: type-scale-major-second
-
label: 1.20 Minor Third
value: type-scale-minor-third
-
label: 1.25 Major Third
value: type-scale-major-third
-
id: line-height-headings
title: Heading line height
description: Height of each line in headings. I recommend around 1.2. If you have Embedded Note Titles plugin, that setting overrides this.
type: variable-number-slider
default: 1.2
min: 1.00
max: 2.00
step: 0.05
-
id: heading-ligatures
title: Heading ligatures
description: Decorative conjoined characters, such as the "ffi" in "office" and "ft" in "often".
type: class-toggle
default: true
*/
.theme-light {
--title-gradient-top: var(--link-color);
--title-gradient-bottom: hsl(249, 34%, 35%);
}
.theme-dark {
--title-gradient-top: var(--text-normal);
--title-gradient-bottom: var(--link-color);
}
.ss-title-gradient h1,
.ss-title-gradient .inline-title,
.ss-title-gradient h1.embedded-note-title.embedded-note-title.embedded-note-title,
.ss-title-gradient .cm-header-1 {
background-image: -webkit-linear-gradient(-90deg, var(--title-gradient-top) 0%, var(--title-gradient-bottom) 100%);
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}
.ss-title-gradient h1 .is-unresolved.is-unresolved {
background-image: -webkit-linear-gradient(-90deg, var(--title-gradient-top) 0%, var(--title-gradient-bottom) 100%);
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}
.ss-title-gradient.vileplume .cm-header-1,
.ss-title-gradient.vileplume .markdown-preview-section.markdown-preview-section h1 {
text-shadow: none !important;
}
body:not(.align-title-left) .HyperMD-header-line.HyperMD-header-line-1.cm-line,
body:not(.align-title-left) .inline-title,
body:not(.align-title-left) .embedded-note-title.embedded-note-title,
body:not(.align-title-left) .HyperMD-header-1,
body:not(.align-title-left) .markdown-preview-section.markdown-preview-section h1 {
text-align: center;
}
.cm-header-2,
.markdown-preview-section h2 {
color: var(--text-title-h2);
}
.cm-header-3,
.markdown-preview-section h3 {
color: var(--text-title-h3);
}
.cm-header-4,
.markdown-preview-section h4 {
color: var(--text-title-h4);
}
.cm-header-5,
.markdown-preview-section h5 {
color: var(--text-title-h5);
}
.cm-header-6,
.markdown-preview-section h6 {
color: var(--text-title-h6);
}
.css-settings-manager h1,
.css-settings-manager h2,
.css-settings-manager h3,
.css-settings-manager h4,
.css-settings-manager h5,
.css-settings-manager h6 {
font-variant-ligatures: none;
}
.css-settings-manager.heading-ligatures h1,
.css-settings-manager.heading-ligatures .cm-header-1,
.css-settings-manager.heading-ligatures .inline-title,
.css-settings-manager.heading-ligatures h2,
.css-settings-manager.heading-ligatures .cm-header-2,
.css-settings-manager.heading-ligatures h3,
.css-settings-manager.heading-ligatures .cm-header-3,
.css-settings-manager.heading-ligatures h4,
.css-settings-manager.heading-ligatures .cm-header-4,
.css-settings-manager.heading-ligatures h5,
.css-settings-manager.heading-ligatures .cm-header-5,
.css-settings-manager.heading-ligatures h6,
.css-settings-manager.heading-ligatures .cm-header-6 {
font-variant-ligatures: common-ligatures;
font-feature-settings: "liga";
}
/* Headings END */
.mod-left-split .workspace-tabs .workspace-leaf-content h1, .mod-left-split .workspace-tabs .workspace-leaf-content h1.embedded-note-title.embedded-note-title {
font-size: var(--h2-size);
}
body:not(.no-image-alttext-caption) .image-embed[alt]:not([alt$=".png"], [alt$=".jpg"], [alt$=".jpeg"], [alt$=".tiff"])::after {
display: block;
content: attr(alt);
color: var(--text-muted);
margin-bottom: 1em;
text-align: center;
}
/*
Links
[[]]
*/
/* latin */
@font-face {
font-family: "Alegreya SC";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/alegreyasc/v15/taiOGmRtCJ62-O0HhNEa-Z6v2ZA.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Alegreya SC";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/alegreyasc/v15/taiOGmRtCJ62-O0HhNEa-Z6h2ZAJaQ.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Alegreya SC";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/alegreyasc/v15/taiTGmRtCJ62-O0HhNEa-ZYU_IU2SKo.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: "Alegreya SC";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/alegreyasc/v15/taiTGmRtCJ62-O0HhNEa-ZYU_IU4SKqGFQ.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
body {
--font-links: "Alegreya SC", "Spectral", serif;
}
a,
.cm-url,
.cm-hmd-internal-link,
.cm-s-obsidian span.cm-hmd-internal-link,
.cm-link,
.markdown-rendered .internal-link,
.markdown-preview-view .internal-link {
font-family: var(--font-links);
font-variant-ligatures: none;
}
.markdown-rendered .internal-link:hover {
text-decoration: underline;
}
.markdown-source-view.mod-cm6 .cm-url,
.markdown-source-view.mod-cm6 .cm-underline {
text-decoration: none;
}
body.ss-links-spectral {
--font-links: "Spectral", serif;
}
body.ss-links-sans {
--font-links: "Source Sans Pro", sans-serif;
}
.markdown-source-view.mod-cm6 .cm-url {
font-family: var(--font-monospace);
font-size: 0.8em;
color: var(--link-external-color);
}
.cm-s-obsidian .cm-formatting-hashtag {
font-family: var(--font-normal);
}
.empty-state-action {
color: var(--link-color);
}
.cm-s-obsidian .cm-formatting-hashtag,
.cm-hashtag {
font-size: 0.8em;
font-family: var(--font-monospace);
}
.is-live-preview .external-link {
position: relative;
top: -4px;
background-position-y: 0;
}
/* Lists START */
/*
Concourse Index by Matthew Butterick
https://practicaltypography.com/concourse-index.html
Encoded to base64 for CSS using https://hellogreg.github.io/woff2base/
14KB
*/
@font-face {
font-family: "Concourse Index";
src: url(data:application/octet-stream;base64,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);
}
/* List font END */
ul {
list-style-type: circle;
}
ol {
padding-inline-start: 36px;
counter-reset: foobar;
}
ol li {
list-style: none;
margin-left: 0;
}
ol li::before {
counter-increment: foobar;
content: counter(foobar);
font-size: 1.1rem;
position: absolute;
margin-left: -2.3rem;
font-family: "Concourse Index";
font-variant-ligatures: common-ligatures;
}
.mod-top-left-space ol li::before {
font-size: 1em;
}
/* Lists END */
body {
--table-column-first-border-width: 0;
--table-column-last-border-width: 0;
--table-header-border-width: 0;
--table-row-last-border-width: 0;
}
.markdown-preview-view td,
.markdown-preview-view th {
border-right-color: transparent;
border-left-color: transparent;
}
.markdown-rendered table {
margin: 1.5em 0;
}
/*
Blockquotes
>
Official variables from app.css:
--blockquote-font-style: normal;
--blockquote-color: inherit;
--blockquote-background-color: transparent;
*/
body {
--blockquote-border-thickness: 1px;
--blockquote-border-color: var(--text-normal) ;
}
.blockquote-bustle blockquote {
padding: var(--size-4-4) 0 0 0;
margin-inline-start: 0;
margin-inline-end: 0;
font-size: 1.25em;
font-weight: 500;
letter-spacing: -0.05em;
border-top: 1px solid var(--blockquote-border-color);
border-left: none;
margin: 0 auto;
max-width: 20em;
}
.blockquote-bustle .mod-left-split blockquote {
margin-left: var(--size-4-4);
}
.blockquote-neuomorphic .markdown-preview-view blockquote {
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.03);
padding: 10px 20px;
position: relative;
box-shadow: -10px -10px 30px rgba(255, 255, 255, 0.05), 10px 10px 30px rgba(0, 0, 0, 0.2);
background-color: rgba(255, 255, 255, 0.01);
}
.callout {
background-color: transparent !important;
border-style: solid;
border-width: 1px 1px 1px 0;
border-image: linear-gradient(90deg, transparent, rgba(var(--callout-color), 0.25)) 1;
}
.callout .callout-icon {
padding-right: 10px;
}
.callout svg {
transform: scale(1.25);
}
.callout .callout-title {
padding-left: 0;
padding-top: 1em;
padding-bottom: 1em;
background-color: transparent;
}
.callout .callout-content {
padding-left: 32px;
}
.callout .callout-content p:first-child {
margin-top: 0;
}
.svg-icon.svg-icon.lucide-quote {
transform: rotate(180deg) scale(1.25);
}
.callout-quote-style [data-callout=quote].callout.callout {
background-color: transparent;
border: none;
display: flex;
flex-direction: column-reverse;
padding: 0;
}
.callout-quote-style [data-callout=quote].callout.callout .callout-icon {
display: none;
}
.callout-quote-style [data-callout=quote]::after {
font-family: "Times New Roman", "Playfair Display";
font-size: 3em;
text-align: center;
line-height: 1;
content: "“";
font-weight: 900;
}
.callout-quote-style [data-callout=quote] .callout-content.callout-content {
padding: 0;
font-size: 1.35em;
text-align: center;
font-weight: 300;
font-variant-ligatures: discretionary-ligatures;
font-feature-settings: "liga";
}
.callout-quote-style [data-callout=quote] .callout-title.callout-title {
padding-top: 0;
justify-content: center;
color: var(--text-normal);
}
.callout-quote-style [data-callout=quote] .callout-title.callout-title .callout-title-inner {
font-weight: 400;
}
.callout-quote-style [data-callout=quote] .callout-title.callout-title::before {
content: "―";
}
.callout-quote-style [data-callout=quote].is-collapsible .callout-title:hover {
cursor: pointer;
}
.callout-quote-style [data-callout=quote] .callout-fold {
transform: scale(0.75);
}
.callout-quote-style [data-callout=quote] .callout-fold svg {
stroke: var(--text-accent);
}
sup.footnote-ref {
position: relative;
bottom: 0.2em;
padding-left: 0.1em;
}
.footnote-link {
text-decoration: none;
font-weight: 500;
letter-spacing: 0.05em;
}
.footnote-link:hover {
text-decoration: none;
}
body.theme-light .modal-bg {
--background-modifier-cover: rgba(0,0,0,0.1) ;
}
body.theme-dark .modal-bg {
--background-modifier-cover: rgba(0,0,0,0.2) ;
}
.modal.mod-settings {
max-width: none;
width: 100%;
align-self: flex-end;
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);
}
.setting-item-description {
line-height: 1.4;
}
.community-theme.is-selected.is-selected .community-theme-info {
align-items: center;
justify-content: center;
flex-wrap: wrap;
}
.community-theme.is-selected.is-selected .community-theme-info::after {
content: "Customize using the Style Settings plugin!";
line-height: 1.4;
position: relative;
background: var(--background-primary-alt);
white-space: pre-wrap;
text-align: center;
padding: 0.5em;
}
body.ficus-ruby {
--link-external-color: #fa858f;
}
body.ficus-ruby.theme-dark {
--graph-line: #fa858f;
}
/* Same as Obsidian's default triangle but with #C94458 as fill colour. https://yoksel.github.io/url-encoder/ */
.ficus-ruby .dropdown {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='292.4' height='292.4'%3E%3Cpath fill='%23C94458' d='M287 69.4a17.6 17.6 0 0 0-13-5.4H18.4c-5 0-9.3 1.8-12.9 5.4A17.6 17.6 0 0 0 0 82.2c0 5 1.8 9.3 5.4 12.9l128 127.9c3.6 3.6 7.8 5.4 12.8 5.4s9.2-1.8 12.8-5.4L287 95c3.5-3.5 5.4-7.8 5.4-12.8 0-5-1.9-9.2-5.5-12.8z'/%3E%3C/svg%3E%0A");
}
body.ficus-ruby.theme-light {
--background-primary: #f5f5f5;
--background-primary-alt: hsl(180, 13%, 86%);
--background-secondary: #b0c6c2;
--background-secondary-alt: #d7e0e0;
--background-modifier-border: hsl(45, 27%, 65%);
--background-modifier-form-field: #fff;
--background-modifier-form-field-highlighted: #fff;
--background-modifier-box-shadow: rgba(0, 0, 0, 0.1);
--background-modifier-success: #a4e7c3;
--background-modifier-error: #990000;
--background-modifier-error-rgb: 230, 135, 135;
--background-modifier-error-hover: #bb0000;
--background-modifier-cover: rgba(0, 0, 0, 0.8);
--link-color: #800000;
--link-color-hover: #c94458;
--text-normal: #333834;
--text-muted: #525e5b;
--text-muted-rgb: 136, 136, 136;
--text-faint: #525e5b;
--text-error: #800000;
--text-error-hover: #990000;
--text-highlight-bg: rgba(201, 68, 88, 0.3);
--text-highlight-bg-active: rgba(255, 128, 0, 0.4);
--text-selection: rgba(242, 186, 179, 0.66);
--text-on-accent: #f2f2f2;
--text-title-h1: hsl(159, 17%, 41%);
--text-title-h2: #417262;
--text-title-h3: #E3764F;
--text-title-h4: #E66D9B;
--text-title-h5: #9359db;
--text-title-h6: #4065dc;
--interactive-normal: #f2f3f5;
--interactive-hover: #e9e9e9;
--interactive-accent: #c94458;
--interactive-accent-rgb: 201, 68, 88;
--interactive-accent-hover: #c94458;
--interactive-success: #333834;
--scrollbar-active-thumb-bg: rgba(0, 0, 0, 0.2);
--scrollbar-bg: rgba(0, 0, 0, 0.05);
--scrollbar-thumb-bg: rgba(0, 0, 0, 0.1);
--highlight-mix-blend-mode: darken;
}
body.ficus-ruby.theme-dark {
--background-primary: #305654;
--background-primary-alt: #1e3735;
--background-secondary: #305654;
--background-secondary-alt: #1e3735;
--background-accent: #fff;
--background-modifier-border: #e8aa99;
--background-modifier-form-field: rgba(0, 0, 0, 0.2);
--background-modifier-form-field-highlighted: rgba(0, 0, 0, 0.5);
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
--background-modifier-success: #197300;
--background-modifier-error: #361c1e;
--background-modifier-error-rgb: 61, 0, 0;
--background-modifier-error-hover: #563032;
--background-modifier-cover: rgba(0, 0, 0, 0.6);
--link-color: #fa858f;
--link-color-hover: #f4465d;
--text-normal: #f9ead9;
--text-muted: #d5c4a1;
--text-faint: #bdae93;
--text-highlight-bg: rgba(181, 118, 20, 0.5);
--text-error: #800000;
--text-error-hover: #990000;
--text-selection: rgba(89, 75, 95, 0.99);
--text-title-h2: #DADC8F;
--text-title-h3: #a5e6f9;
--text-title-h4: #D1ABFF;
--text-title-h5: #FFA3C6;
--text-title-h6: #e8bb89;
--text-on-accent: #fbf1c7;
--interactive-normal: #f4465d;
--interactive-hover: #f9a8b1;
--interactive-accent: #f4465d;
--interactive-accent-rgb: 205, 123, 130;
--interactive-accent-hover: #f9a8b1;
--scrollbar-active-thumb-bg: rgba(0, 0, 0, 0.4);
--scrollbar-bg: rgba(0, 0, 0, 0.05);
--scrollbar-thumb-bg: rgba(0, 0, 0, 0.2);
--inline-code: #b48ead;
--code-block: #b48ead;
--pre-code-bg: rgba(0, 0, 0, 0.2);
--blockquote-border: #b57614;
--vim-cursor: #d65d0e;
--border-color: #504945;
--hover-bg: rgba(0, 0, 0, 0.5);
}
body.ficus-ruby.theme-light .is-selected kbd {
background-color: var(--background-secondary-alt);
}
body.ficus-ruby.theme-light .view-header {
border-top: 1px solid var(--background-primary-alt);
border-bottom: 2px solid var(--background-primary-alt);
background-color: var(--background-primary-alt);
}
body.plugin-sliding-panes-rotate-header .workspace > .mod-root > .workspace-leaf > .workspace-leaf-content > .view-header > .view-header-title-container:before {
background: linear-gradient(to top, transparent, transparent) !important;
}
body.plugin-sliding-panes-rotate-header .workspace > .mod-root > .workspace-leaf > .workspace-leaf-content > .view-header > .view-header-title-container:after {
background: linear-gradient(to top, transparent, transparent) !important;
}
body.ficus-ruby.theme-light .workspace-ribbon.mod-right.is-collapsed {
border-left-color: var(--background-secondary-alt);
}
body.ficus-ruby.theme-light .workspace-ribbon {
border-left: 2px solid transparent;
}
body.ficus-ruby.theme-light .status-bar {
border-top: 2px solid var(--background-secondary-alt);
}
body.ficus-ruby.theme-light .view-action {
color: var(--text-muted);
}
body.ficus-ruby.theme-dark .view-action {
color: var(--text-muted);
}
body.ficus-ruby.theme-dark .suggestion-item.is-selected {
background-color: var(--link-color-hover);
}
body.ficus-ruby.theme-dark .workspace-ribbon.mod-right.is-collapsed {
border-left-color: var(--background-secondary-alt);
}
body.ficus-ruby.theme-dark .workspace-ribbon {
border-left: 2px solid transparent;
}
body.ficus-ruby.theme-dark .status-bar {
border-top: 2px solid var(--background-secondary-alt);
}
/* Calendar by liamcain START */
#calendar-container {
--color-background-today: var(--link-color);
}
#calendar-container .active .dot-container svg {
fill: white;
}
#calendar-container h3.title {
font-family: var(--font-title);
}
#calendar-container .year {
color: var(--text);
letter-spacing: -0.05em;
}
#calendar-container .month {
font-weight: 700;
}
#calendar-container .today {
font-style: italic;
}
#calendar-container .today:not(.active) {
color: var(--color-text-day);
box-shadow: inset 0 0 1px var(--link-color);
}
#calendar-container .reset-button {
color: var(--link-color);
text-transform: initial;
font-family: "Alegreya SC";
font-size: 0.9em;
font-weight: 500;
}
/* Calendar END */
ul.dataview-ul {
list-style: none;
padding-inline-start: 0;
margin-block-start: 0.5em;
margin-block-end: 0.5em;
}
.dataview.inline-field-value,
.dataview.inline-field-key {
font-family: var(--font-text);
padding: 0;
background-color: transparent;
}
.dataview.inline-field-value::before {
content: "·";
color: var(--text-muted);
padding: 0 var(--size-4-1);
}
body {
--font-default: "Spectral", -apple-system, BlinkMacSystemFont, "Segoe UI",
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", serif;
--font-text: var(--font-default);
--link-unresolved-color: #d5aecf;
--link-unresolved-opacity: 1;
--link-external-decoration: none;
--link-external-decoration-hover: underline;
--tag-color: #eeb662;
--tag-color-hover: #f7d865;
--code-normal: #62d770;
--link-decoration: none;
--modal-height: 75vh;
--line-height-body: 1.45;
}
.theme-light {
--code-normal: #4db95a;
--link-color-hover: #8177eb;
--link-external-color: #2f9bb7;
--link-external-color-hover: rgb(72, 191, 224);
--tag-color: var(--text-normal);
--tag-color-hover: var(--text-normal);
--tag-background: #eeb662;
--tag-background-hover: #f7d865;
}
.theme-dark {
--text-accent: hsl(248, 75%, 79%);
--text-accent-hover: #8177eb;
--link-external-color: #7fcae6;
--link-external-color-hover: #89ebe5;
}
body {
font-weight: var(--body-weight);
}
b,
.cm-s-obsidian .cm-strong {
font-weight: 600;
font-weight: var(--bold-weight);
}
.markdown-preview-view hr {
border-width: 1px 0 0;
border-style: dotted;
}
.hr-shadow .markdown-preview-view hr {
border: none;
height: 3em;
background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.2) 0, transparent 65%);
}
.hr-shadow .markdown-preview-view hr::after {
height: 1.5em;
content: " ";
display: block;
background-color: var(--background-primary);
}
.theme-light.hr-shadow .markdown-preview-view hr {
background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.05) 0, transparent 65%);
}
/* GRAPH */
.theme-light .graph-view.color-fill-tag {
color: #e07d1a;
}
.theme-dark .graph-view.color-fill-tag {
color: #df964e;
}
.theme-light .graph-view.color-fill-attachment {
color: #2f9bb7;
}
.theme-dark .graph-view.color-fill-attachment {
color: #7fcae6;
}
.markdown-preview-section iframe {
width: 100%;
}
/* Wrap long nav text*/
.nav-file-title,
.nav-folder-title,
.nav-file-title-content,
.nav-folder-title-content {
white-space: normal;
width: auto;
}
/* @settings
name: Typomagical Text
id: typomagical-text
settings:
-
id: body-ligatures
title: Text Ligatures
description: Decorative conjoined characters, such as the "ffi" in "office" and "ft" in "often".
type: class-toggle
-
id: mjx-font
title: MathJax font
description: Font for MathJax e.g. $inline equation$ and $$centered equation$$
type: class-select
default: mathjax-font-default
options:
-
label: MJXZERO, MJXTEX (Obsidian Default)
value: mathjax-font-default
-
label: Spectral
value: mathjax-font-typomagical
-
id: ordered-lists
title: List numbers
description: Whether numerical lists should have circled, or ordinary numbers
type: class-select
default: circled-ol
options:
-
label: Circled
value: circled-ol
-
label: Ordinary
value: ordinary-ol
-
id: font-default
title: Body font
description: The font for body
type: variable-select
default: Spectral
options:
-
label: Spectral
value: Spectral
-
label: Source Sans Pro
value: Source Sans Pro
-
id: body-weight
title: Body text weight
description: The boldness of body text. For high resolution displays I recommend 300 or 400.
type: variable-number-slider
default: 400
min: 200
max: 800
step: 100
-
id: bold-weight
title: Bold text weight
description: The boldness of **bold** text. I recommend 600 or 700.
type: variable-number-slider
default: 600
min: 200
max: 800
step: 100
-
id: line-height-body
title: Body line height
description: Height of each line in a multi-line passage. Obsidian default is 1.5.
type: variable-number-slider
default: 1.45
min: 1.00
max: 2.00
step: 0.05
-
id: link-font
title: Link font
description: The font for links
type: class-select
default: ss-links-sc
options:
-
label: Alegreya SC
value: ss-links-sc
-
label: Spectral (Serif)
value: ss-links-spectral
-
label: Source Sans Pro
value: ss-links-sans
-
id: blockquote
title: Blockquotes
description: How all blockquotes should look
type: class-select
default: blockquote-plain
options:
-
label: Plain box
value: blockquote-plain
-
label: Big with top border
value: blockquote-bustle
-
label: Neuomorphic soft shadows
value: blockquote-neuomorphic
-
id: callout-style
title: Callout style
type: class-select
default: callout-border-gradient
options:
-
label: Obsidian default
value: callout-default
-
label: Icon only
value: callout-icon-only
-
label: Icon and gradient border
value: callout-border-gradient
-
id: callout-quote-style
title: Quote Callout style
description: Change [!quote] callouts to magazine style
type: class-toggle
-
id: hr-shadow
title: Horizontal divider shadows
description: Add a subtle shadow to --- lines
type: class-toggle
-
id: alignment
title: Alignment
description: How all text is aligned
type: class-select
default: align-left
options:
-
label: Left
value: align-left
-
label: Justified
value: align-justified
*/
/* Change inline mhchem equations font to better blend with the text */
.mathjax-font-typomagical mjx-container mjx-math mjx-texatom {
font-family: var(--default-font);
}
/*
Ligatures
No class is needed for all-ligatures, because ligatures are enabled by default.
*/
body {
font-variant-ligatures: none;
}
body.css-settings-manager.body-ligatures {
font-variant-ligatures: common-ligatures;
font-feature-settings: "liga";
}
.ordinary-ol .markdown-source-view.mod-cm6 .cm-formatting-list-ol,
.ordinary-ol ol li::marker {
font-family: var(--default-font);
}
body {
--file-line-width: calc(var(--font-text-size) * 35);
}
.cm-content .cm-line,
.markdown-preview-view {
line-height: var(--line-height-body);
}
.align-justified p {
text-align: justify;
}
.is-mobile .markdown-rendered .heading-collapse-indicator {
margin-left: -30px;
transform: translateX(6px);
}
/* @settings
name: Typomagical Colour
id: typomagical-colour
settings:
-
id: theme-variant
title: Theme variant
description: Palette swaps. Don't see one you like? Let me know on forum.obsidian.md/u/hungsu!
type: class-select
allowEmpty: false
default: obsidian
options:
-
label: Obsidian
value: obsidian
-
label: Ficus Ruby
value: ficus-ruby
-
label: Vileplume
value: vileplume
-
label: Golden Ice
value: golden-ice
-
label: Obsidian High Contrast
value: obsidian-high-contrast
-
id: background-color-enable
title: Allow Background color override
description: The next setting will work when this is on
type: class-toggle
-
id: background-color
title: Background color
description: Overwrite background color with one of your choice
type: variable-color
opacity: false
format: hex
default: '#000000'
*/
.background-color-enable.background-color-enable.background-color-enable {
--background-primary: var(--background-color) ;
}
.markdown-source-view.mod-cm6 .cm-gutters {
background-color: transparent !important;
}
body.golden-ice {
--text-accent: hsl(33, 63%, 61%);
--text-accent-hover: hsl(33, 73%, 51%);
}
/* START Vileplume */
body.vileplume {
--dark0: hsl(219, 38%, 21%);
--dark1: hsl(219, 37%, 36%);
--dark2: hsl(220, 22%, 51%);
--dark3: hsl(221, 22%, 55%);
--light0: #d8dee9;
--light1: #e5e9f0;
--light2: #eceff4;
--light3: #ffffff;
--frost0: #8fbcbb;
--frost1: #88c0d0;
--red53: hsl(355, 35%, 53%);
--red: hsl(352, 56%, 62%);
--orange: #d08770;
--yellow59: hsl(24, 33%, 59%);
--yellow: hsl(27, 49%, 68%);
--green: #a3be8c;
--bloddish64: hsl(204, 24%, 64%);
--purple: #b48ead;
--text-title-h1: var(--red);
--text-title-h2: var(--orange);
--text-title-h3: var(--yellow);
--text-title-h4: var(--green);
--text-title-h5: var(--bloddish64);
--text-title-h6: var(--purple);
--text-mark: var(--red);
--pre-code: var(--dark1);
--text-highlight-bg: var(--red);
--interactive-accent: var(--yellow59);
--interactive-accent-hover: var(--red);
--interactive-hover: var(--dark0);
--interactive-before: var(--dark3);
--background-modifier-border: var(--dark2);
--link-color: var(--yellow);
--link-color-hover: var(--yellow59);
--interactive-accent-rgb: var(--orange);
--inline-code: var(--frost1);
--code-block: var(--frost1);
--vim-cursor: var(--orange);
--text-selection: var(
--red53
);
/* Annoying - affects both Edit and Preview, but Preview has translucency */
}
.vileplume ::-webkit-scrollbar {
background-color: transparent;
}
.vileplume.theme-dark ::-webkit-scrollbar-thumb {
background-color: var(--dark3);
}
body.vileplume.theme-dark {
--background-primary: var(--dark0);
--background-primary-alt: var(--dark0);
--background-secondary: var(--dark1);
--background-secondary-alt: var(--dark2);
--text-normal: var(--light2);
--text-faint: var(--light0);
--text-muted: var(--light1);
--text-link: var(--frost0);
--opacity-translucency: 0.9;
--title-gradient-bottom: var(--text-title-h1) ;
}
body.vileplume.theme-light {
--background-primary: var(--light3);
--background-primary-alt: var(--light3);
--background-secondary: var(--light2);
--background-secondary-alt: var(--light1);
--text-normal: var(--dark1);
--text-faint: var(--dark3);
--text-muted: var(--dark2);
--text-link: var(--frost0);
--text-highlight-bg: var(--light0);
--text-selection: var(--light0);
--link-color-hover: var(--yellow);
--link-color: var(--yellow59);
--title-gradient-top: var(--text-title-h1);
--title-gradient-bottom: var(--text-normal);
}
.vileplume .cm-header-1.cm-header-1,
.vileplume .markdown-preview-section.markdown-preview-section h1 {
color: var(--text-title-h1);
text-shadow: 1px 1px rgba(0, 0, 0, 0.05), 2px 2px rgba(0, 0, 0, 0.05), 3px 3px rgba(0, 0, 0, 0.05), 4px 4px rgba(0, 0, 0, 0.05), 5px 5px rgba(0, 0, 0, 0.05), 6px 6px rgba(0, 0, 0, 0.05), 7px 7px rgba(0, 0, 0, 0.05), 8px 8px rgba(0, 0, 0, 0.05), 9px 9px rgba(0, 0, 0, 0.05);
}
.vileplume.theme-light .cm-header-1.cm-header-1,
.vileplume.theme-light .markdown-preview-section.markdown-preview-section h1 {
text-shadow: 1px 1px rgba(235, 235, 235, 0.5), 2px 2px rgba(235, 235, 235, 0.5), 3px 3px rgba(235, 235, 235, 0.5), 4px 4px rgba(235, 235, 235, 0.4), 5px 5px rgba(235, 235, 235, 0.3), 6px 6px rgba(235, 235, 235, 0.2), 7px 7px rgba(235, 235, 235, 0.1), 8px 8px rgba(235, 235, 235, 0.1);
}
.vileplume .dropdown {
background-image: url("https://cdn.discordapp.com/attachments/560318304472793114/808721915627307058/lets_go_arrow.png");
}
.vileplume .side-dock-ribbon-tab:hover,
.vileplume .side-dock-ribbon-action:hover,
.vileplume .side-dock-ribbon-action.is-active:hover,
.vileplume .nav-action-button:hover,
.vileplume .side-dock-collapse-btn:hover {
color: var(--link-color);
}
.vileplume .graph-view.color-text {
color: var(--link-color-hover);
}
.vileplume .graph-view.graph-view.color-fill-focused {
color: var(--yellow59);
}
.vileplume.theme-dark .graph-view.color-fill {
color: white;
}
.vileplume.theme-light .graph-view.color-line {
color: #d9e1cc;
}
.vileplume.theme-light .graph-view.color-fill {
color: #62a368;
}
.vileplume.theme-light .graph-view.graph-view.color-fill-attachment {
color: #f19f65;
}
/* END Vileplume */
.side-dock-ribbon-tab:hover,
body.obsidian-high-contrast .side-dock-ribbon-action:hover {
color: var(--link-color-hover);
}
body.obsidian-high-contrast.theme-light {
--background-secondary: #fff;
--background-secondary-alt: #fff;
--link-color: hsl(250, 65%, 50%);
--link-external-color: hsl(193.2, 100%, 31.2%);
--link-external-color-hover: rgb(72, 191, 224);
}
body.obsidian-high-contrast.theme-dark {
--background-primary: hsl(0, 0%, 0%);
--background-primary-alt: black;
--background-secondary: hsl(0, 0%, 0%);
--text-faint: #ccc;
}
body.obsidian-high-contrast.theme-dark .checkbox-container {
box-shadow: 0 0 2px white;
}
body.obsidian-high-contrast.theme-dark .tooltip {
--tooltip-bg: white;
background-color: var(--tooltip-bg);
color: black;
}
/* tooltip appears below cursor */
body.obsidian-high-contrast.theme-dark .tooltip .tooltip-arrow {
border-bottom-color: var(--tooltip-bg);
}
body.obsidian-high-contrast.theme-dark .tooltip.mod-right .tooltip-arrow {
border-right-color: var(--tooltip-bg);
border-bottom-color: transparent;
}
body.obsidian-high-contrast.theme-dark .tooltip.mod-left .tooltip-arrow {
border-left-color: var(--tooltip-bg);
border-bottom-color: transparent;
}
body.obsidian-high-contrast.theme-dark .tooltip.mod-top .tooltip-arrow {
border-top-color: var(--tooltip-bg);
border-bottom-color: transparent;
}
body.obsidian-high-contrast.theme-dark .suggestion-item.is-selected {
color: black;
background-color: white;
}
/* kbd */
body.obsidian-high-contrast.theme-dark .suggestion-hotkey {
color: white;
}
/* kbd */
body.obsidian-high-contrast.theme-light .suggestion-hotkey {
color: var(--text-normal);
}
/* The Link icon when we embed with ![[]] */
.markdown-embed-link {
right: 0;
top: 0;
}
.markdown-embed .markdown-preview-view {
padding: 1em;
}
.workspace-ribbon.mod-left.is-collapsed {
border-right-color: transparent;
}
/* File explorer */
/* The name of the vault */
.mod-root > .nav-folder-title .nav-folder-title-content {
/* font-family: var(--font-title); */
font-weight: 700;
}
/* For wobbly inline mathjax - Issue #13 */
.math-inline mjx-math {
padding: 0;
}
Alternatively, here's a link https://res.cloudinary.com/didjqvf50/raw/upload/v1675237992/obsidian/publish-dubious-cactus.css
Thank you @hungsu ! I'm not sure what was added since your previous reply but it looks very close to how it is in Obsidian now! Thanks a ton!
Hi @hungsu , thanks for the time invested in this beautiful theme! I noticed that a lot of good CSS styling isn't being applied to my Publish blog, like numbered lists and callouts:
Is this something you can look into or is that a limitation of Obsidian Publish? EDIT: I found examples of blogs that do it, so it must be achievable: this one and that one RE-EDIT: Aaah, it seems that they're using custom-language code blocks to achieve that, as explained here. That's really disappointing, I love your callout styles but I can't get them on my blog :(