@ -3,6 +3,7 @@
& . chinese {
& . chinese {
text-indent : 1 .5 em ;
text-indent : 1 .5 em ;
font-weight : 300 ;
font-weight : 300 ;
h1 ,
h1 ,
h2 ,
h2 ,
h3 ,
h3 ,
@ -20,131 +21,145 @@
}
}
}
}
}
}
. markdown-body {
. markdown-body {
--color-base : #ef4444 ;
--color-base : var ( -- color - accent-fg ) ;
--markdown-bg : transparent ;
--color-soft-bg : color-mix ( in srgb , var ( -- color - base ) 8 % , transparent ) ;
--color-bg : #ff4747 9 c ;
--color-softer-bg : color-mix ( in srgb , var ( -- color - base ) 4 % , transparent ) ;
--color-light : #ef4444 1 a ;
--markdown-bg : color-mix ( in srgb , var ( -- color - canvas-default ) 92 % , transparent ) ;
--color-extra : rgba ( 239 , 68 , 68 , 0 .3 ) ;
--markdown-shadow : 0 2 px 8 px rgba ( 15 , 23 , 42 , 0 .08 ) ;
--color-more : rgba ( 239 , 68 , 68 , 0 .4 ) ;
--markdown-radius : 10 px ;
--markdown-padding : 1 .6 em ;
}
. dark . markdown-body {
--color-fg-default : #e5e7eb ;
--color-fg-muted : #c0c7d1 ;
--color-fg-subtle : #9ca3af ;
--color-canvas-default : #111827 ;
--color-canvas-subtle : #1f2937 ;
--color-border-default : #374151 ;
--color-border-muted : #2c3646 ;
--color-neutral-muted : rgba ( 148 , 163 , 184 , 0 .25 ) ;
--color-accent-fg : #60a5fa ;
--markdown-bg : color-mix ( in srgb , var ( -- color - canvas-default ) 86 % , transparent ) ;
--markdown-shadow : 0 10 px 28 px rgba ( 2 , 6 , 23 , 0 .28 ) ;
--code-bg : #0f172a ;
--code-head-bg : #172133 ;
--code-border : #334155 ;
--code-shadow : rgba ( 2 , 6 , 23 , 0 .45 ) ;
}
}
. markdown-body . green {
. markdown-body . green {
background-color : var ( -- markdown-bg ) ;
background-color : var ( -- markdown-bg ) ;
box-shadow : 0 2 px 8 px rgba ( 0 , 0 , 0 , 0 .1 ) ;
border-radius : var ( -- markdown-radius ) ;
border-radius : 10 px ;
padding : var ( -- markdown-padding ) ;
padding : 1 .6 em ;
box-shadow : var ( -- markdown-shadow ) ;
border : 1 px solid color-mix ( in srgb , var ( -- color - border-default ) 72 % , transparent ) ;
color : var ( -- color - fg-default ) ;
font-size : 1 rem ;
line-height : 1 .9 ;
letter-spacing : 0 .01 em ;
@media screen and ( max-width : 768 px ) {
@media screen and ( max-width : 768 px ) {
padding : 0 ;
background : transparent ;
border : 0 ;
box-shadow : none ;
box-shadow : none ;
border-radius : 0 ;
padding : 0 ;
font-size : 0 .98 rem ;
line-height : 1 .85 ;
}
}
strong {
p {
& : : before {
color : var ( -- color - fg-default ) ;
content : " 『 " ;
}
}
& : : after {
content : " 』 " ;
h1 ,
}
h2 ,
/ / color : # ff4d20 ;
h3 ,
h4 ,
h5 ,
h6 {
margin-top : 1 .35 em ;
margin-bottom : 0 .65 em ;
line-height : 1 .35 ;
color : var ( -- color - fg-default ) ;
scroll-margin-top : 5 rem ;
}
}
/* 块/段落引用 */
h1 {
/ / blockquote {
font-size : 2 em ;
/ / position : relative ;
}
/ / / / color : # 555 ;
/ / font-weight : 400 ;
/ / border-left : 6px solid var ( - - color-base ) ;
/ / padding-left : 1em ;
/ / margin-left : 0 ;
/ / padding : 1em ;
/ / background-color : var ( - - color-light ) ;
/ / }
blockquote {
h2 {
position : relative ;
font-size : 1 .65 em ;
z-index : 600 ;
padding-bottom : 0 .25 em ;
padding : 20 px 20 px 15 px 20 px ;
border-bottom : 1 px solid var ( -- color - border-muted ) ;
line-height : 1 .4 !important ;
background-color : rgba ( 239 , 68 , 68 , 0 .06 ) ;
border-radius : .4 em ;
> * {
position : relative ;
& : first-child : before {
content : ' \201C ' ;
color : var ( -- color - light ) ;
font-size : 6 .5 em ;
font-weight : 700 ;
transform : rotate ( 15 deg ) translateX ( - 10 px ) ;
opacity : 1 ;
position : absolute ;
top : - .4 em ;
left : - .2 em ;
text-shadow : none ;
z-index : - 10 ;
}
}
h3 {
font-size : 1 .35 em ;
}
}
h4 {
font-size : 1 .15 em ;
}
}
. tabs {
margin-top : 0 ;
margin-bottom : 1 em ;
}
/* 让链接在 hover 状态下显示下划线 */
/ / a {
/ / color : var ( - - color-base ) ;
/ / text-decoration : none ;
/ / & : hover {
/ / text-decoration : underline ;
/ / }
/ / }
a {
a {
position : relative ;
z-index : 10 ;
transition : color 0 .3 s linear ;
cursor : pointer ;
font-weight : bolder ;
/ / text-decoration : underline # c7254e ;
text-decoration : none ;
color : var ( -- color - base ) ;
color : var ( -- color - base ) ;
border-bottom : 1 px solid currentColor ;
text-decoration : underline ;
padding : 0 4 px ;
text-decoration-thickness : 1 px ;
& [ data-footnote-backref ] ,
text-decoration-color : color-mix ( in srgb , var ( -- color - base ) 45 % , transparent ) ;
& [ data-footnote-ref ] {
text-underline-offset : 0 .18 em ;
/ / text-decoration : non e ;
transition : color 0 .2 s ease , text - decoration-color 0 .2 s ease ;
border : none ;
& : hover {
& : hover {
background : none ;
color : color-mix ( in srgb , var ( -- color - base ) 78 % , var ( -- color - fg-default )) ;
animation : none ;
text-decoration-color : currentColor ;
}
}
}
}
& : hover {
content : ' ' ;
blockquote {
/ / text-decoration : none ;
margin-left : 0 ;
border : none ;
padding : 0 .95 em 1 .05 em ;
background : url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 4'%3E%3Cpath fill='none' stroke='%23ff4d20' d='M0 3.5c5 0 5-3 10-3s5 3 10 3 5-3 10-3 5 3 10 3'/%3E%3C/svg%3E" )
border-left : 4 px solid var ( -- color - base ) ;
repeat-x 0 100 % ;
border-radius : 0 .55 rem ;
background-size : 20 px auto ;
background : var ( -- color - softer-bg ) ;
animation : waveMove 1 s infinite linear ;
color : var ( -- color - fg-muted ) ;
}
}
@keyframes waveMove {
0 % {
hr {
background-position : 0 100 % ;
height : 1 px ;
margin : 1 .6 rem 0 ;
background : var ( -- color - border-muted ) ;
}
}
100 % {
background-position : - 20 px 100 % ;
img {
border-radius : 0 .8 rem ;
border : 1 px solid var ( -- color - border-default ) ;
box-shadow : 0 6 px 20 px rgba ( 15 , 23 , 42 , 0 .08 ) ;
}
}
figure {
margin : 1 .4 em auto ;
}
}
figcaption {
margin-top : 0 .55 rem ;
font-size : 0 .82 em ;
color : var ( -- color - fg-subtle ) ;
text-align : center ;
}
}
pre {
: not ( pre ) > code {
background : #f7f7f7 ;
padding : 0 .12 em 0 .48 em ;
font-size : 0 .95 em ;
margin : 0 0 .12 em ;
/ / / * border : 1px solid # ddd ; * /
border-radius : 0 .4 rem ;
/ / padding : 1em 1 . 5em ;
background : var ( -- color - soft-bg ) ;
display : block ;
border : 1 px solid color-mix ( in srgb , var ( -- color - base ) 26 % , var ( -- color - border-default )) ;
-webkit-overflow-scrolling : touch ;
color : color-mix ( in srgb , var ( -- color - base ) 72 % , var ( -- color - fg-default )) ;
font-size : 0 .92 em ;
}
}
pre ,
pre ,
@ -152,140 +167,100 @@
font-family : " JetBrains Mono " , " Fira Code " , Consolas , monospace ;
font-family : " JetBrains Mono " , " Fira Code " , Consolas , monospace ;
}
}
/ / / * 底部印刷体 、 版本等标记 * /
small ,
/* 图片说明 */
figcaption {
font-size : 0 .75 em ;
color : #888 ;
}
/ / . markdown-body {
legend {
color : #000 ;
font-weight : inherit ;
}
caption {
color : #000 ;
font-weight : inherit ;
}
del {
text-decoration : line-through var ( -- color - base ) 2 px ;
}
/* 行内代码:仅匹配非代码块场景,避免和 pre/code 嵌套互相覆盖 */
: not ( pre ) > code {
color : #d73a49 ;
background-color : rgba ( 160 , 174 , 192 , 0 .25 ) ;
font-family : inherit ;
font-size : 1 em ;
border-radius : 4 px ;
padding : 1 px 6 px ;
margin : 0 2 px ;
vertical-align : bottom ;
}
/* MarkdownIt highlight 输出的代码块容器 */
. code-block-wrapper {
. code-block-wrapper {
margin : 1 rem 0 ;
margin : 1 rem 0 1 .25 rem ;
border-radius : 10 px ;
border : 1 px solid var ( -- color - border-default ) ;
border-radius : 0 .8 rem ;
overflow : hidden ;
overflow : hidden ;
box-shadow : 0 2 px 8 px rgba ( 0 , 0 , 0 , 0 .15 ) ;
background : var ( -- color - canvas-subtle ) ;
background : #f7f7f7 ;
color : var ( -- color - fg-default ) ;
color : #333 ;
box-shadow : 0 4 px 14 px rgba ( 15 , 23 , 42 , 0 .07 ) ;
font-family : " JetBrains Mono " , " Fira Code " , Consolas , monospace ;
font-size : 0 .95 em ;
line-height : 1 .5 ;
. code-header {
. code-header {
display : flex ;
display : flex ;
align-items : center ;
align-items : center ;
justify-content : space-between ;
justify-content : space-between ;
padding : 0 .6 rem 1 rem ;
gap : 0 .75 rem ;
background : #efefef ;
padding : 0 .55 rem 0 .85 rem ;
border-bottom : 1 px solid var ( -- color - border-default ) ;
background : color-mix ( in srgb , var ( -- color - base ) 7 % , var ( -- color - canvas-subtle )) ;
. code-lang {
. code-lang {
font-size : 0 .78 rem ;
font-size : 0 .76 rem ;
font-weight : 600 ;
font-weight : 600 ;
letter-spacing : 0 .02 em ;
letter-spacing : 0 .05 em ;
color : #64748b ;
color : var ( -- color - fg-subtle ) ;
text-transform : uppercase ;
text-transform : uppercase ;
}
}
. copy-btn {
. copy-btn {
border : 1 px solid #d0d7de ;
border : 1 px solid var ( -- color - border-default ) ;
background : #fff ;
background : var ( -- color - canvas-default ) ;
color : #475569 ;
color : var ( -- color - fg-muted ) ;
border-radius : 6 px ;
border-radius : 0 .45 rem ;
padding : 0 .2 rem 0 .6 rem ;
padding : 0 .2 rem 0 .58 rem ;
font-size : 0 .75 rem ;
font-size : 0 .74 rem ;
line-height : 1 .3 ;
line-height : 1 .35 ;
cursor : pointer ;
cursor : pointer ;
transition : all 0 .18 s ease ;
transition : all 0 .18 s ease ;
& : hover {
& : hover {
background : #f8fafc ;
border-color : var ( -- color - base ) ;
border-color : #b8c2cc ;
color : var ( -- color - base ) ;
color : #334155 ;
}
}
& . is-copied {
& . is-copied {
background : #dcfce7 ;
border-color : #22c55e ;
border- color: #86efac ;
color : #16a34a ;
color : #166534 ;
background : color-mix ( in srgb , #22c55e 12 % , var ( -- color - canvas-default )) ;
}
}
}
}
}
}
pre {
pre {
margin : 0 ;
margin : 0 ;
padding : 1 .2 rem ;
padding : 1 .05 rem 1 .1 rem ;
overflow-x : auto ;
overflow-x : auto ;
background : transparent ;
background : transparent ;
box-shadow : none ;
box-shadow : none ;
code {
display : block ;
padding : 0 ;
margin : 0 ;
color : inherit ;
background : transparent ;
border-radius : 0 ;
white-space : pre ;
}
}
}
}
}
table {
table {
width : fit-content ;
width : max-content ;
min-width : 0 ;
display : block ;
display : block ;
max-width : 100 % ;
max-width : 100 % ;
overflow-x : auto ;
overflow-x : auto ;
border : 1 px solid var ( -- color - light ) ;
margin : 1 .2 rem 0 ;
border-radius : 8 px ;
border : 1 px solid color-mix ( in srgb , var ( -- color - border-default ) 88 % , transparent ) ;
border-radius : 0 .8 rem ;
border-collapse : separate ;
border-collapse : separate ;
border-spacing : 0 ;
border-spacing : 0 ;
margin : 1 rem 0 ;
background : color-mix ( in srgb , var ( -- color - canvas-default ) 94 % , transparent ) ;
background : #fff ;
box-shadow : 0 6 px 16 px rgba ( 15 , 23 , 42 , 0 .08 ) ;
caption {
caption {
padding : 0 .6 em 1 em ;
padding : 0 .62 em 0 .95 em ;
text-align : left ;
text-align : left ;
color : var ( -- color - fg-subtle ) ;
color : var ( -- color - fg-subtle ) ;
border-bottom : 1 px solid var ( -- color - ligh t) ;
border-bottom : 1 px solid color-mix ( in srgb , var ( -- color - border-default ) 84 % , transparen t) ;
background : #fff ;
background : color-mix ( in srgb , var ( -- color - canvas-subtle ) 80 % , transparent ) ;
}
}
thead th {
thead th {
background : var ( -- color - extra ) ;
border-bottom : 1 px solid var ( -- color - light ) ;
font-weight : 600 ;
font-weight : 600 ;
color : var ( -- color - fg-default ) ;
background : color-mix ( in srgb , var ( -- color - base ) 12 % , var ( -- color - canvas-default )) ;
border-bottom : 1 px solid color-mix ( in srgb , var ( -- color - border-default ) 86 % , transparent ) ;
}
}
th ,
th ,
td {
td {
padding : 0 .55 em 1 em ;
padding : 0 .62 em 0 .95 em ;
white-space : nowrap ;
white-space : nowrap ;
border-right : 1 px solid var ( -- color - ligh t) ;
border-right : 1 px solid color-mix ( in srgb , var ( -- color - border-default ) 82 % , transparen t) ;
border-bottom : 1 px solid var ( -- color - ligh t) ;
border-bottom : 1 px solid color-mix ( in srgb , var ( -- color - border-default ) 82 % , transparen t) ;
}
}
th : last - child ,
th : last - child ,
@ -297,68 +272,85 @@
border-bottom : 0 ;
border-bottom : 0 ;
}
}
tbody tr : nth-child ( even ) td {
background : color-mix ( in srgb , var ( -- color - canvas-subtle ) 52 % , transparent ) ;
}
tbody tr : hover td {
tbody tr : hover td {
background : var ( -- color - light ) ;
background : color-mix ( in srgb , var ( -- color - base ) 10 % , var ( -- color - canvas-subtle ) );
}
}
}
}
h1 ,
h2 ,
ul . toc li {
h3 ,
list-style-type : none ;
h4 ,
h5 ,
a {
h6 {
border : 0 ;
margin-top : 1 .2 em ;
text-decoration : none ;
margin-bottom : 0 .6 em ;
line-height : 1 .35 ;
position : relative ;
}
}
h1 {
font-size : 1 .8 em ;
}
}
h2 {
font-size : 1 .6 em ;
@include chinese ;
}
}
h3 {
font-size : 1 .4 em ;
. dark . markdown-body . green {
. code-block-wrapper {
border-color : var ( -- code-border ) ;
background : var ( -- code-bg ) ;
box-shadow : 0 10 px 26 px var ( -- code-shadow ) ;
. code-header {
border-bottom-color : var ( -- code-border ) ;
background : var ( -- code-head-bg ) ;
. code-lang {
color : #bfdbfe ;
}
}
h4 {
font-size : 1 .2 em ;
. copy-btn {
border-color : #475569 ;
background : #1e293b ;
color : #cbd5e1 ;
& : hover {
border-color : #60a5fa ;
background : #0f172a ;
color : #93c5fd ;
}
& . is-copied {
border-color : #22c55e ;
color : #86efac ;
background : #052e16 ;
}
}
h5 {
font-size : 1 em ;
}
}
h6 {
font-size : 1 em ;
}
}
: : -webkit-calendar-picker-indicator {
pre {
filter : invert ( 50 % ) ;
background : transparent ;
}
}
em {
/ / color : # 000 ;
font-weight : inherit ;
position : relative ;
& : after {
position : absolute ;
top : 0 .65 em ;
left : 0 ;
width : 100 % ;
overflow : hidden ;
white-space : nowrap ;
pointer-events : none ;
color : var ( -- color - base ) ;
content : ' ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ' ;
}
}
table {
border-color : color-mix ( in srgb , var ( -- color - border-default ) 92 % , transparent ) ;
background : color-mix ( in srgb , var ( -- color - canvas-default ) 90 % , transparent ) ;
box-shadow : 0 10 px 24 px rgba ( 2 , 6 , 23 , 0 .26 ) ;
caption {
background : color-mix ( in srgb , var ( -- color - canvas-subtle ) 90 % , transparent ) ;
border-bottom-color : color-mix ( in srgb , var ( -- color - border-default ) 90 % , transparent ) ;
}
thead th {
background : color-mix ( in srgb , var ( -- color - base ) 18 % , var ( -- color - canvas-subtle )) ;
}
}
ul . toc {
li {
tbody tr : nth-child ( even ) td {
list-style-type : none ;
background : color-mix ( in srgb , var ( -- color - canvas-subtle ) 70 % , transparent ) ;
a {
text-decoration : none ;
border : 0 ;
list-style-type : none ;
}
}
tbody tr : hover td {
background : color-mix ( in srgb , var ( -- color - base ) 16 % , var ( -- color - canvas-subtle )) ;
}
}
}
}
@include chinese ;
}
}