fix: Extract hardcoded color from syntax.scss

Syntax highlighting is hardcoded to support dark mode so I extract them into variables to enable customization.
This commit is contained in:
Vĩnh Phước
2025-03-08 15:21:48 +07:00
parent babd08dfba
commit 232748983c
6 changed files with 166 additions and 100 deletions

View File

@@ -1,8 +1,21 @@
:root {
--accent: #23B0FF;
--accent: #23b0ff;
--accent-contrast-color: black;
--article-link-color: var(inherit);
--background: color-mix(in srgb, var(--accent) 2%, #1D1E28 98%);
--border-color: rgba(255, 255, 255, .1);
--background: color-mix(in srgb, var(--accent) 2%, #1d1e28 98%);
--border-color: rgba(255, 255, 255, 0.1);
--color: white;
// Use in code syntax highlighting
--syntax-func-color: color-mix(in srgb, var(--accent) 70%, #999 30%);
--syntax-var-color: color-mix(in srgb, var(--accent) 90%, transparent);
--syntax-value-color: color-mix(in srgb, var(--accent), white);
--syntax-comment-color: rgba(255, 255, 255, 0.3);
--syntax-line-highlight-background-color: hsla(24, 20%, 50%, 0.4);
--syntax-line-highlight-color: hsl(24, 20%, 95%);
--syntax-line-highlight-box-shadow: white;
--syntax-code-border-color: rgba(255, 255, 255, 0.1);
--syntax-code-copy-button-background: hsla(0, 0%, 87.8%, 0.2);
--syntax-code-copy-button-color: #bbb;
--syntax-code-copy-button-box-shadow-color: rgba(0, 0, 0, 0.2);
}

View File

@@ -1,8 +1,21 @@
:root {
--accent: #78E2A0;
--accent: #78e2a0;
--accent-contrast-color: black;
--article-link-color: var(inherit);
--background: color-mix(in srgb, var(--accent) 2%, #1D1E28 98%);
--border-color: rgba(255, 255, 255, .1);
--background: color-mix(in srgb, var(--accent) 2%, #1d1e28 98%);
--border-color: rgba(255, 255, 255, 0.1);
--color: white;
// Use in code syntax highlighting
--syntax-func-color: color-mix(in srgb, var(--accent) 70%, #999 30%);
--syntax-var-color: color-mix(in srgb, var(--accent) 90%, transparent);
--syntax-value-color: color-mix(in srgb, var(--accent), white);
--syntax-comment-color: rgba(255, 255, 255, 0.3);
--syntax-line-highlight-background-color: hsla(24, 20%, 50%, 0.4);
--syntax-line-highlight-color: hsl(24, 20%, 95%);
--syntax-line-highlight-box-shadow: white;
--syntax-code-border-color: rgba(255, 255, 255, 0.1);
--syntax-code-copy-button-background: hsla(0, 0%, 87.8%, 0.2);
--syntax-code-copy-button-color: #bbb;
--syntax-code-copy-button-box-shadow-color: rgba(0, 0, 0, 0.2);
}

View File

@@ -1,8 +1,21 @@
:root {
--accent: #FFA86A;
--accent: #ffa86a;
--accent-contrast-color: black;
--article-link-color: var(inherit);
--background: color-mix(in srgb, var(--accent) 2%, #1D1E28 98%);
--border-color: rgba(255, 255, 255, .1);
--background: color-mix(in srgb, var(--accent) 2%, #1d1e28 98%);
--border-color: rgba(255, 255, 255, 0.1);
--color: white;
// Use in code syntax highlighting
--syntax-func-color: color-mix(in srgb, var(--accent) 70%, #999 30%);
--syntax-var-color: color-mix(in srgb, var(--accent) 90%, transparent);
--syntax-value-color: color-mix(in srgb, var(--accent), white);
--syntax-comment-color: rgba(255, 255, 255, 0.3);
--syntax-line-highlight-background-color: hsla(24, 20%, 50%, 0.4);
--syntax-line-highlight-color: hsl(24, 20%, 95%);
--syntax-line-highlight-box-shadow: white;
--syntax-code-border-color: rgba(255, 255, 255, 0.1);
--syntax-code-copy-button-background: hsla(0, 0%, 87.8%, 0.2);
--syntax-code-copy-button-color: #bbb;
--syntax-code-copy-button-box-shadow-color: rgba(0, 0, 0, 0.2);
}

View File

@@ -1,8 +1,21 @@
:root {
--accent: #EE72F1;
--accent: #ee72f1;
--accent-contrast-color: black;
--article-link-color: var(inherit);
--background: color-mix(in srgb, var(--accent) 2%, #1D1E28 98%);
--border-color: rgba(255, 255, 255, .1);
--background: color-mix(in srgb, var(--accent) 2%, #1d1e28 98%);
--border-color: rgba(255, 255, 255, 0.1);
--color: white;
// Use in code syntax highlighting
--syntax-func-color: color-mix(in srgb, var(--accent) 70%, #999 30%);
--syntax-var-color: color-mix(in srgb, var(--accent) 90%, transparent);
--syntax-value-color: color-mix(in srgb, var(--accent), white);
--syntax-comment-color: rgba(255, 255, 255, 0.3);
--syntax-line-highlight-background-color: hsla(24, 20%, 50%, 0.4);
--syntax-line-highlight-color: hsl(24, 20%, 95%);
--syntax-line-highlight-box-shadow: white;
--syntax-code-border-color: rgba(255, 255, 255, 0.1);
--syntax-code-copy-button-background: hsla(0, 0%, 87.8%, 0.2);
--syntax-code-copy-button-color: #bbb;
--syntax-code-copy-button-box-shadow-color: rgba(0, 0, 0, 0.2);
}

View File

@@ -1,8 +1,21 @@
:root {
--accent: #FF6266;
--accent: #ff6266;
--accent-contrast-color: black;
--article-link-color: var(inherit);
--background: color-mix(in srgb, var(--accent) 2%, #1D1E28 98%);
--border-color: rgba(255, 255, 255, .1);
--background: color-mix(in srgb, var(--accent) 2%, #1d1e28 98%);
--border-color: rgba(255, 255, 255, 0.1);
--color: white;
// Use in code syntax highlighting
--syntax-func-color: color-mix(in srgb, var(--accent) 70%, #999 30%);
--syntax-var-color: color-mix(in srgb, var(--accent) 90%, transparent);
--syntax-value-color: color-mix(in srgb, var(--accent), white);
--syntax-comment-color: rgba(255, 255, 255, 0.3);
--syntax-line-highlight-background-color: hsla(24, 20%, 50%, 0.4);
--syntax-line-highlight-color: hsl(24, 20%, 95%);
--syntax-line-highlight-box-shadow: white;
--syntax-code-border-color: rgba(255, 255, 255, 0.1);
--syntax-code-copy-button-background: hsla(0, 0%, 87.8%, 0.2);
--syntax-code-copy-button-color: #bbb;
--syntax-code-copy-button-box-shadow-color: rgba(0, 0, 0, 0.2);
}

View File

@@ -57,11 +57,11 @@ code.language-html,
.token.prolog,
.token.doctype,
.token.cdata {
color: rgba(255, 255, 255, .3) !important;
color: var(--syntax-comment-color) !important;
}
.token.namespace {
opacity: .7 !important;
opacity: 0.7 !important;
}
pre[data-line] {
@@ -92,23 +92,23 @@ pre[class*="language-"] {
content: attr(data-start);
position: absolute;
/* top: .4em; */
left: .6em;
left: 0.6em;
min-width: 1em;
padding: 0 .5em;
background-color: hsla(24, 20%, 50%, .4);
color: hsl(24, 20%, 95%);
padding: 0 0.5em;
background-color: var(--syntax-line-highlight-background-color);
color: var(--syntax-line-highlight-color);
font: bold 65%/1.5 sans-serif;
text-align: center;
vertical-align: .3em;
vertical-align: 0.3em;
border-radius: 999px;
text-shadow: none;
box-shadow: 0 1px white;
box-shadow: 0 1px var(--syntax-line-highlight-box-shadow);
}
.line-highlight[data-end]:after {
content: attr(data-end);
top: auto;
bottom: .4em;
bottom: 0.4em;
}
.line-numbers .line-highlight:before,
@@ -121,7 +121,7 @@ pre[class*="language-"] {
position: relative;
margin: var(--code-margin) 0;
padding: 20px;
border: 1px solid rgba(255, 255, 255, .1);
border: 1px solid var(--syntax-code-border-color);
+ .code-toolbar,
+ .highlight,
@@ -130,7 +130,8 @@ pre[class*="language-"] {
margin-top: calc(-1 * var(--code-margin));
}
pre, code {
pre,
code {
border: none;
}
@@ -141,14 +142,14 @@ pre[class*="language-"] {
> .toolbar {
button {
font-size: .8em !important;
background: hsla(0,0%,87.8%,.2) !important;
color: #bbb !important;
box-shadow: 0 2px 0 0 rgba(0,0,0,.2) !important;
font-size: 0.8em !important;
background: var(--syntax-code-copy-button-background) !important;
color: var(--syntax-code-copy-button-color) !important;
box-shadow: 0 2px 0 0 var(--syntax-code-copy-button-box-shadow-color) !important;
border-radius: 0 !important;
margin: 6px !important;
padding: 10px !important;
user-select:none
user-select: none;
}
}
}