From 995dbfcce6ec4a194c7d846cb4e9aa689ac2029a Mon Sep 17 00:00:00 2001 From: meowrain Date: Sat, 19 Jul 2025 15:17:25 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=20CSS=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=A0=BC=E5=BC=8F=EF=BC=8C=E5=A2=9E=E5=BC=BA=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7=E5=92=8C=E4=B8=80=E8=87=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/main.css | 247 ++++++++++++++++++++++------------------ src/styles/markdown.css | 217 ++++++++++++++++++----------------- 2 files changed, 248 insertions(+), 216 deletions(-) diff --git a/src/styles/main.css b/src/styles/main.css index d6af28e..dd3016c 100644 --- a/src/styles/main.css +++ b/src/styles/main.css @@ -1,141 +1,166 @@ @tailwind components; @layer components { - .card-base { - @apply rounded-[var(--radius-large)] overflow-hidden bg-[var(--card-bg)] transition; - } - h1, h2, h3, h4, h5, h6, p, a, span, li, ul, ol, blockquote, code, pre, table, th, td, strong { - @apply transition; - } - .card-shadow { - @apply drop-shadow-[0_2px_4px_rgba(0,0,0,0.005)] - } - .expand-animation { - @apply relative before:ease-out before:transition active:bg-none hover:before:bg-[var(--btn-plain-bg-hover)] active:before:bg-[var(--btn-plain-bg-active)] z-0 - before:absolute before:rounded-[inherit] before:inset-0 before:scale-[0.85] hover:before:scale-100 before:-z-10 - } - .link { - @apply transition rounded-md p-1 -m-1 expand-animation; - } - .link-lg { - @apply transition rounded-md p-1.5 -m-1.5 expand-animation; - } - .float-panel { - @apply top-[5.25rem] rounded-[var(--radius-large)] overflow-hidden bg-[var(--float-panel-bg)] transition shadow-xl dark:shadow-none - } - .float-panel-closed { - @apply -translate-y-1 opacity-0 pointer-events-none - } - .search-panel mark { - @apply bg-transparent text-[var(--primary)] - } + .card-base { + @apply rounded-[var(--radius-large)] overflow-hidden bg-[var(--card-bg)] transition; + } + h1, + h2, + h3, + h4, + h5, + h6, + p, + a, + span, + li, + ul, + ol, + blockquote, + code, + pre, + table, + th, + td, + strong { + @apply transition; + } + .card-shadow { + @apply drop-shadow-[0_2px_4px_rgba(0,0,0,0.005)]; + } + .expand-animation { + @apply relative before:ease-out before:transition active:bg-none hover:before:bg-[var(--btn-plain-bg-hover)] active:before:bg-[var(--btn-plain-bg-active)] z-0 + before:absolute before:rounded-[inherit] before:inset-0 before:scale-[0.85] hover:before:scale-100 before:-z-10; + } + .link { + @apply transition rounded-md p-1 -m-1 expand-animation; + } + .link-lg { + @apply transition rounded-md p-1.5 -m-1.5 expand-animation; + } + .float-panel { + @apply top-[5.25rem] rounded-[var(--radius-large)] overflow-hidden bg-[var(--float-panel-bg)] transition shadow-xl dark:shadow-none; + } + .float-panel-closed { + @apply -translate-y-1 opacity-0 pointer-events-none; + } + .search-panel mark { + @apply bg-transparent text-[var(--primary)]; + } - .btn-card { - @apply transition flex items-center justify-center bg-[var(--card-bg)] hover:bg-[var(--btn-card-bg-hover)] - active:bg-[var(--btn-card-bg-active)] - } - .btn-card.disabled { - @apply pointer-events-none text-black/10 dark:text-white/10 - } - .btn-plain { - @apply transition relative flex items-center justify-center bg-none + .btn-card { + @apply transition flex items-center justify-center bg-[var(--card-bg)] hover:bg-[var(--btn-card-bg-hover)] + active:bg-[var(--btn-card-bg-active)]; + } + .btn-card.disabled { + @apply pointer-events-none text-black/10 dark:text-white/10; + } + .btn-plain { + @apply transition relative flex items-center justify-center bg-none text-black/75 hover:text-[var(--primary)] dark:text-white/75 dark:hover:text-[var(--primary)]; - &:not(.scale-animation) { - @apply hover:bg-[var(--btn-plain-bg-hover)] active:bg-[var(--btn-plain-bg-active)] - } - &.scale-animation { - @apply expand-animation; - &.current-theme-btn { - @apply before:scale-100 before:opacity-100 before:bg-[var(--btn-plain-bg-hover)] text-[var(--primary)] - } - } + &:not(.scale-animation) { + @apply hover:bg-[var(--btn-plain-bg-hover)] active:bg-[var(--btn-plain-bg-active)]; } - .btn-regular { - @apply transition flex items-center justify-center bg-[var(--btn-regular-bg)] hover:bg-[var(--btn-regular-bg-hover)] active:bg-[var(--btn-regular-bg-active)] - text-[var(--btn-content)] dark:text-white/75 + &.scale-animation { + @apply expand-animation; + &.current-theme-btn { + @apply before:scale-100 before:opacity-100 before:bg-[var(--btn-plain-bg-hover)] text-[var(--primary)]; + } } + } + .btn-regular { + @apply transition flex items-center justify-center bg-[var(--btn-regular-bg)] hover:bg-[var(--btn-regular-bg-hover)] active:bg-[var(--btn-regular-bg-active)] + text-[var(--btn-content)] dark:text-white/75; + } - .link-underline { - @apply transition underline decoration-2 decoration-dashed decoration-[var(--link-underline)] - hover:decoration-[var(--link-hover)] active:decoration-[var(--link-active)] underline-offset-[0.25rem] - } + .link-underline { + @apply transition underline decoration-2 decoration-dashed decoration-[var(--link-underline)] + hover:decoration-[var(--link-hover)] active:decoration-[var(--link-active)] underline-offset-[0.25rem]; + } - .toc-hide, - .toc-not-ready { - @apply opacity-0 pointer-events-none - } + .toc-hide, + .toc-not-ready { + @apply opacity-0 pointer-events-none; + } - #toc-inner-wrapper { - mask-image: linear-gradient(to bottom, transparent 0%, black 2rem, black calc(100% - 2rem), transparent 100%); - } + #toc-inner-wrapper { + mask-image: linear-gradient( + to bottom, + transparent 0%, + black 2rem, + black calc(100% - 2rem), + transparent 100% + ); + } - .hide-scrollbar { - scrollbar-width: none; - -ms-overflow-style: none; - } - .hide-scrollbar::-webkit-scrollbar { - display: none; - } + .hide-scrollbar { + scrollbar-width: none; + -ms-overflow-style: none; + } + .hide-scrollbar::-webkit-scrollbar { + display: none; + } - .text-90 { - @apply text-black/90 dark:text-white/90 - } - .text-75 { - @apply text-black/75 dark:text-white/75 - } - .text-50 { - @apply text-black/50 dark:text-white/50 - } - .text-30 { - @apply text-black/30 dark:text-white/30 - } - .text-25 { - @apply text-black/25 dark:text-white/25 - } + .text-90 { + @apply text-black/90 dark:text-white/90; + } + .text-75 { + @apply text-black/75 dark:text-white/75; + } + .text-50 { + @apply text-black/50 dark:text-white/50; + } + .text-30 { + @apply text-black/30 dark:text-white/30; + } + .text-25 { + @apply text-black/25 dark:text-white/25; + } - .meta-icon { - @apply w-8 h-8 transition rounded-md flex items-center justify-center bg-[var(--btn-regular-bg)] - text-[var(--btn-content)] mr-2 - } - .with-divider { - @apply before:content-['/'] before:ml-1.5 before:mr-1.5 before:text-[var(--meta-divider)] before:text-sm - before:font-medium before:first-of-type:hidden before:transition - } + .meta-icon { + @apply w-8 h-8 transition rounded-md flex items-center justify-center bg-[var(--btn-regular-bg)] + text-[var(--btn-content)] mr-2; + } + .with-divider { + @apply before:content-['/'] before:ml-1.5 before:mr-1.5 before:text-[var(--meta-divider)] before:text-sm + before:font-medium before:first-of-type:hidden before:transition; + } - .btn-regular-dark { - @apply flex items-center justify-center + .btn-regular-dark { + @apply flex items-center justify-center bg-[oklch(0.45_0.01_var(--hue))] hover:bg-[oklch(0.50_0.01_var(--hue))] active:bg-[oklch(0.55_0.01_var(--hue))] - dark:bg-[oklch(0.30_0.02_var(--hue))] dark:hover:bg-[oklch(0.35_0.03_var(--hue))] dark:active:bg-[oklch(0.40_0.03_var(--hue))] - } - .btn-regular-dark.success { - @apply bg-[oklch(0.75_0.14_var(--hue))] dark:bg-[oklch(0.75_0.14_var(--hue))] - } + dark:bg-[oklch(0.30_0.02_var(--hue))] dark:hover:bg-[oklch(0.35_0.03_var(--hue))] dark:active:bg-[oklch(0.40_0.03_var(--hue))]; + } + .btn-regular-dark.success { + @apply bg-[oklch(0.75_0.14_var(--hue))] dark:bg-[oklch(0.75_0.14_var(--hue))]; + } } -.custom-md img, #post-cover img { - @apply cursor-zoom-in +.custom-md img, +#post-cover img { + @apply cursor-zoom-in; } ::selection { - background-color: var(--selection-bg) + background-color: var(--selection-bg); } .dash-line { - position: relative; + position: relative; } .dash-line::before { - content: ""; - position: absolute; - width: 10%; - height: 100%; - left: calc(50% - 1px); - border-left: 2px dashed var(--line-color); - pointer-events: none; - transition: all 0.3s; - transform: translateY(-50%); + content: ""; + position: absolute; + width: 10%; + height: 100%; + left: calc(50% - 1px); + border-left: 2px dashed var(--line-color); + pointer-events: none; + transition: all 0.3s; + transform: translateY(-50%); } .collapsed { - height: var(--collapsedHeight); + height: var(--collapsedHeight); } diff --git a/src/styles/markdown.css b/src/styles/markdown.css index 17d89db..67f9bad 100644 --- a/src/styles/markdown.css +++ b/src/styles/markdown.css @@ -1,120 +1,127 @@ .custom-md { - h1 { - @apply text-3xl; + h1 { + @apply text-3xl; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + .anchor { + @apply transition -m-0.5 ml-[0.2ch] p-0.5 select-none opacity-0 no-underline !important; + + .anchor-icon { + @apply mx-[0.45ch] !important; + } } - h1, h2, h3, h4, h5, h6 { - .anchor { - @apply transition -m-0.5 ml-[0.2ch] p-0.5 select-none opacity-0 no-underline !important; - - .anchor-icon { - @apply mx-[0.45ch] !important; - } - } - - &:hover { - .anchor { - @apply opacity-100 !important; - } - } + &:hover { + .anchor { + @apply opacity-100 !important; + } } + } - a:not(.no-styling) { - @apply relative bg-none link font-medium text-[var(--primary)] + a:not(.no-styling) { + @apply relative bg-none font-medium text-[var(--primary)] transition rounded-md p-1 -m-1 underline decoration-[var(--link-underline)] decoration-1 decoration-dashed underline-offset-4; - box-decoration-break: clone; - -webkit-box-decoration-break: clone; - - &:hover, &:active { - @apply decoration-transparent; - background: var(--btn-plain-bg-hover); - border-bottom: 1px dashed var(--link-hover); - text-decoration: none; - } + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + + &:hover, + &:active { + @apply decoration-transparent; + background: var(--btn-plain-bg-hover); + border-bottom: 1px dashed var(--link-hover); + text-decoration: none; + } + } + + code { + @apply bg-[var(--inline-code-bg)] text-[var(--inline-code-color)] px-1 py-0.5 rounded-md overflow-hidden; + + font-family: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, + Monaco, Consolas, Liberation Mono, Courier New, monospace; + &:before { + content: none; + } + &:after { + content: none; } - code { - @apply bg-[var(--inline-code-bg)] text-[var(--inline-code-color)] px-1 py-0.5 rounded-md overflow-hidden; + counter-reset: line; + span.line { + &:before { + @apply text-white/25 mr-4 w-4 inline-block; + content: counter(line); + counter-increment: line; + direction: rtl; + } + &:last-child:empty, + &:last-child:has(> span:empty:only-child) { + display: none; + } + } + } - font-family: 'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace; - &:before { - content:none; - } - &:after { - content:none; - } + .copy-btn { + all: initial; + @apply btn-regular-dark opacity-0 shadow-lg shadow-black/50 absolute active:scale-90 h-8 w-8 top-3 right-3 text-sm rounded-lg transition-all ease-in-out z-20 cursor-pointer; + } + .frame:hover .copy-btn { + opacity: 1; + } - counter-reset: line; - span.line { - &:before { - @apply text-white/25 mr-4 w-4 inline-block; - content: counter(line); - counter-increment: line; - direction: rtl; - } - &:last-child:empty, &:last-child:has(> span:empty:only-child) { - display: none; - } - } + .copy-btn-icon { + @apply absolute top-1/2 left-1/2 transition -translate-x-1/2 -translate-y-1/2 w-4 h-4 fill-white pointer-events-none; + } + .copy-btn .copy-icon { + @apply opacity-100 fill-white dark:fill-white/75; + } + .copy-btn.success .copy-icon { + @apply opacity-0 fill-[var(--deep-text)]; + } + .copy-btn .success-icon { + @apply opacity-0 fill-white; + } + .copy-btn.success .success-icon { + @apply opacity-100; + } + + .expressive-code { + @apply my-4; + ::selection { + @apply bg-[var(--codeblock-selection)]; + } + } + + ul, + ol { + li::marker { + @apply text-[var(--primary)]; + } + } + + blockquote { + @apply not-italic border-transparent relative; + font-weight: inherit; + + &:before { + @apply content-[''] absolute -left-1 block transition bg-[var(--btn-regular-bg)] h-full w-1 rounded-full; } - .copy-btn { - all: initial; - @apply btn-regular-dark opacity-0 shadow-lg shadow-black/50 absolute active:scale-90 h-8 w-8 top-3 right-3 text-sm rounded-lg transition-all ease-in-out z-20 cursor-pointer; - } - .frame:hover .copy-btn { - opacity: 1; + /* Remove the double quotes from default styles */ + p:before, + p:after { + @apply content-none; } + } - .copy-btn-icon { - @apply absolute top-1/2 left-1/2 transition -translate-x-1/2 -translate-y-1/2 w-4 h-4 fill-white pointer-events-none; - } - .copy-btn .copy-icon { - @apply opacity-100 fill-white dark:fill-white/75; - } - .copy-btn.success .copy-icon { - @apply opacity-0 fill-[var(--deep-text)] - } - .copy-btn .success-icon { - @apply opacity-0 fill-white; - } - .copy-btn.success .success-icon { - @apply opacity-100 - } - - .expressive-code { - @apply my-4; - ::selection { - @apply bg-[var(--codeblock-selection)]; - } - } - - - ul, ol { - li::marker { - @apply text-[var(--primary)]; - } - } - - blockquote { - @apply not-italic border-transparent relative; - font-weight: inherit; - - &:before { - @apply content-[''] absolute -left-1 block transition bg-[var(--btn-regular-bg)] h-full w-1 rounded-full; - } - - /* Remove the double quotes from default styles */ - p:before, p:after { - @apply content-none; - } - - } - - .katex-display-container { - max-width: 100%; - overflow-x: auto; - margin: 1em 0; - } - + .katex-display-container { + max-width: 100%; + overflow-x: auto; + margin: 1em 0; + } }