generated from cotes2020/chirpy-starter
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
297 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,297 @@ | ||
/* | ||
* The syntax highlight. | ||
*/ | ||
|
||
@import '../colors/syntax-light'; | ||
@import '../colors/catppuccin-syntax-dark'; | ||
|
||
html { | ||
@media (prefers-color-scheme: light) { | ||
&:not([data-mode]), | ||
&[data-mode='light'] { | ||
@include light-syntax; | ||
} | ||
|
||
&[data-mode='dark'] { | ||
@include dark-syntax; | ||
} | ||
} | ||
|
||
@media (prefers-color-scheme: dark) { | ||
&:not([data-mode]), | ||
&[data-mode='dark'] { | ||
@include dark-syntax; | ||
} | ||
|
||
&[data-mode='light'] { | ||
@include light-syntax; | ||
} | ||
} | ||
} | ||
|
||
/* -- code snippets -- */ | ||
|
||
pre, | ||
code { | ||
font-family: 'JetBrains Mono NL', monospace; | ||
} | ||
|
||
%code-snippet-bg { | ||
background-color: var(--highlight-bg-color); | ||
} | ||
|
||
%code-snippet-padding { | ||
padding-left: 1rem; | ||
padding-right: 1.5rem; | ||
} | ||
|
||
.highlighter-rouge { | ||
color: var(--highlighter-rouge-color); | ||
margin-top: 0.5rem; | ||
margin-bottom: 1.2em; /* Override BS Inline-code style */ | ||
} | ||
|
||
.highlight { | ||
@extend %rounded; | ||
@extend %code-snippet-bg; | ||
|
||
@at-root figure#{&} { | ||
@extend %code-snippet-bg; | ||
} | ||
|
||
overflow: auto; | ||
padding-bottom: 0.75rem; | ||
|
||
pre { | ||
margin-bottom: 0; | ||
font-size: $code-font-size; | ||
line-height: 1.4rem; | ||
word-wrap: normal; /* Fixed Safari overflow-x */ | ||
} | ||
|
||
table { | ||
td { | ||
&:first-child { | ||
display: inline-block; | ||
margin-left: 1rem; | ||
margin-right: 0.75rem; | ||
} | ||
|
||
&:last-child { | ||
padding-right: 2rem !important; | ||
} | ||
|
||
pre { | ||
overflow: visible; /* Fixed iOS safari overflow-x */ | ||
word-break: normal; /* Fixed iOS safari linenos code break */ | ||
} | ||
} | ||
} | ||
|
||
.lineno { | ||
text-align: right; | ||
color: var(--highlight-lineno-color); | ||
-webkit-user-select: none; | ||
-moz-user-select: none; | ||
-o-user-select: none; | ||
-ms-user-select: none; | ||
user-select: none; | ||
} | ||
} /* .highlight */ | ||
|
||
code { | ||
-webkit-hyphens: none; | ||
-ms-hyphens: none; | ||
hyphens: none; | ||
color: var(--code-color); | ||
|
||
&.highlighter-rouge { | ||
font-size: $code-font-size; | ||
padding: 3px 5px; | ||
word-break: break-word; | ||
border-radius: 4px; | ||
background-color: var(--inline-code-bg); | ||
} | ||
|
||
&.filepath { | ||
background-color: inherit; | ||
color: var(--filepath-text-color); | ||
font-weight: 600; | ||
padding: 0; | ||
} | ||
|
||
a > &.highlighter-rouge { | ||
padding-bottom: 0; /* show link's underlinke */ | ||
color: inherit; | ||
} | ||
|
||
a:hover > &.highlighter-rouge { | ||
border-bottom: none; | ||
} | ||
|
||
blockquote & { | ||
color: inherit; | ||
} | ||
} | ||
|
||
td.rouge-code { | ||
@extend %code-snippet-padding; | ||
|
||
/* | ||
Prevent some browser extends from | ||
changing the URL string of code block. | ||
*/ | ||
a { | ||
color: inherit !important; | ||
border-bottom: none !important; | ||
pointer-events: none; | ||
} | ||
} | ||
|
||
div[class^='language-'] { | ||
@extend %rounded; | ||
@extend %code-snippet-bg; | ||
|
||
box-shadow: var(--language-border-color) 0 0 0 1px; | ||
|
||
.content > & { | ||
@include ml-mr(-1rem); | ||
|
||
border-radius: 0; | ||
} | ||
|
||
.highlight { | ||
border-top-left-radius: 0; | ||
border-top-right-radius: 0; | ||
} | ||
} | ||
|
||
/* Hide line numbers for default, console, and terminal code snippets */ | ||
div { | ||
&.nolineno, | ||
&.language-plaintext, | ||
&.language-console, | ||
&.language-terminal { | ||
td:first-child { | ||
padding: 0 !important; | ||
margin-right: 0; | ||
|
||
.lineno { | ||
display: none; | ||
} | ||
} | ||
} | ||
} | ||
|
||
.code-header { | ||
@extend %no-cursor; | ||
|
||
display: flex; | ||
justify-content: space-between; | ||
align-items: center; | ||
height: $code-header-height; | ||
margin-left: 0.75rem; | ||
margin-right: 0.25rem; | ||
|
||
/* the label block */ | ||
span { | ||
line-height: $code-header-height; | ||
|
||
/* label icon */ | ||
i { | ||
font-size: 1rem; | ||
width: $code-icon-width; | ||
color: var(--code-header-icon-color); | ||
|
||
&.small { | ||
font-size: 70%; | ||
} | ||
} | ||
|
||
@at-root [file] #{&} > i { | ||
position: relative; | ||
top: 1px; /* center the file icon */ | ||
} | ||
|
||
/* label text */ | ||
&::after { | ||
content: attr(data-label-text); | ||
font-size: 0.85rem; | ||
font-weight: 600; | ||
color: var(--code-header-text-color); | ||
} | ||
} | ||
|
||
/* clipboard */ | ||
button { | ||
@extend %cursor-pointer; | ||
@extend %rounded; | ||
|
||
border: 1px solid transparent; | ||
height: $code-header-height; | ||
width: $code-header-height; | ||
padding: 0; | ||
background-color: inherit; | ||
|
||
i { | ||
color: var(--code-header-icon-color); | ||
} | ||
|
||
&[timeout] { | ||
&:hover { | ||
border-color: var(--clipboard-checked-color); | ||
} | ||
|
||
i { | ||
color: var(--clipboard-checked-color); | ||
} | ||
} | ||
|
||
&:focus { | ||
outline: none; | ||
} | ||
|
||
&:not([timeout]):hover { | ||
background-color: rgba(128, 128, 128, 0.37); | ||
|
||
i { | ||
color: white; | ||
} | ||
} | ||
} | ||
} | ||
|
||
@media all and (min-width: 576px) { | ||
div[class^='language-'] { | ||
.content > & { | ||
@include ml-mr(0); | ||
|
||
border-radius: $base-radius; | ||
} | ||
|
||
.code-header { | ||
@include ml-mr(0); | ||
|
||
$dot-margin: 1rem; | ||
|
||
&::before { | ||
content: ''; | ||
display: inline-block; | ||
margin-left: $dot-margin; | ||
width: $code-dot-size; | ||
height: $code-dot-size; | ||
border-radius: 50%; | ||
background-color: var(--code-header-muted-color); | ||
box-shadow: ($code-dot-size + $code-dot-gap) 0 0 | ||
var(--code-header-muted-color), | ||
($code-dot-size + $code-dot-gap) * 2 0 0 | ||
var(--code-header-muted-color); | ||
} | ||
|
||
span { | ||
// center the text of label | ||
margin-left: calc(($dot-margin + $code-dot-size) / 2 * -1); | ||
} | ||
} | ||
} | ||
} |