Files
blog/themes/Ying/assets/css/main.css
T
zqlit 72bbf9db3e fix(pjax): 样式表版本同步修复部署后旧会话裸奔 + 关于页 CSS 冗余清理
- pjax:success 时比对新取 HTML 的样式表指纹,不一致则整页 reload 一次
  (sessionStorage 防循环)—— 根治「部署换了 CSS 指纹后,PJAX 旧会话
  永远跑旧样式」的线上 bug(2026-10-07 关于页裸奔实锤)
- cacheBust: true —— PJAX 请求加时间戳,绕开 HTML 长缓存
- main.css:删整段重复的响应式块/死选择器 .uk-scrollspy-inview .ab-bar/
  死代码 .about-card;.ab-stat 悬停归位进布局区
2026-10-07 22:54:28 +08:00

6256 lines
178 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@charset "UTF-8";:root {
--background-color: #fafafa;
--background-dark-color: #020617;
--text-content-color: #24292e;
--text-content-dark-color: #d1d5db;
--text-title-color: #111827;
--text-title-dark-color: #e5e7eb;
--text-highlight-color: #696565;
--frame-dark-color: #1f2933;
--frame-color: #eee;
--at-color-bg: #fff;
--at-color-border: #eee;
--artalk-editer-color: #333333;
--erji-color: #666;
--sanji-color: #999;
--bankuai-color: #f6f6f6;
--link-color-light: #374151;
--link-hover-color-light: #111827;
--link-color-dark: #e5e7eb;
--link-hover-color-dark: #d1d5db;
--card-shadow-light: 0 10px 20px 0 rgba(236, 236, 236, 0.86);
--card-shadow-dark: 0 18px 45px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(148, 163, 184, 0.45);
}
html {
scroll-behavior: smooth;
}
[data-theme="dark"] body {
color: var(--text-content-dark-color);
background-color: var(--background-dark-color);
background-image: url(/image/background/deno.webp) !important;
background-repeat: round !important;
background-size: contain !important;
background-attachment: fixed !important;
}
[data-theme="dark"] body::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.4);
pointer-events: none;
z-index: -1;
}
[data-theme="dark"] .main {
background: rgba(15, 23, 42, 0.99); /* Increased opacity for readability */
box-shadow: var(--card-shadow-dark);
/* Removed glassmorphism blur as requested */
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
[data-theme="dark"] .header nav {
border-top-color: #1f2933;
}
[data-theme="dark"] .header nav ul.flat li a {
color: #9ca3af;
}
[data-theme="dark"] .header nav ul.flat li.active a {
color: #e5e7eb;
}
.meta {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 10px;
margin-bottom: 20px;
color: #999;
font-size: 0.9rem;
line-height: 1.6;
}
.meta-item {
white-space: nowrap;
}
[data-theme="dark"] .meta {
color: #9ca3af;
}
[data-theme="dark"] .footer {
border-top-color: #1f2933;
color: #6b7280;
}
[data-theme="dark"] .post-content {
color: var(--text-content-dark-color);
}
.post-title {
color: var(--text-title-color);
}
[data-theme="dark"] .post-title {
color: var(--text-title-dark-color);
}
.theme-toggle-button {
border: none;
background: transparent;
cursor: pointer;
font-size: 14px;
padding: 4px 8px;
color: #586069;
}
.theme-toggle-button:focus {
outline: none;
}
[data-theme="dark"] .theme-toggle-button {
color: #e5e7eb;
}
::-webkit-scrollbar {
width: 13px;
}
::-webkit-scrollbar-button {
display: none;
}
::-webkit-scrollbar-thumb {
min-height: 16px;
background-color: #999999;
background-clip: padding-box;
border: 3px solid #fdfdfd;
border-radius: 5px;
}
::selection {
background: #444;
color: #fff;
}
body {
font-family: 'zql', serif;
color: var(--text-content-color);
line-height: 1.6;
font-size: 16px;
background: var(--background-color);
background-image: url('../image/bg.svg');
/* background-image: url(https://usj.cc/usr/uploads/2023/06/3287615239.jpg); */
background-image:url(data:image/webp;base64,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);
background-repeat: space;
background-size: cover;
/* 小恐龙背景css */
background-repeat: round;
background-size: contain;
/* 结束 */
/* background-repeat: initial;
background-size: inherit; */
background-attachment: fixed;
z-index: 5;
transition: background-color 0.3s ease, color 0.3s ease;
}
hr {
display: block;
height: 1px;
border: 0;
border-top: 1px solid #cccccc;
margin: 1rem 0;
padding: 0;
}
/* ── 内容分割线:图片样式(由 hugo.toml 的 [params.divider].style 切换) ── */
.post-divider-image {
display: flex;
justify-content: center;
align-items: center;
margin: 1.6rem 0;
line-height: 0;
}
.post-divider-image img {
display: block;
width: 100%;
height: auto;
max-width: 100%;
/* --divider-max-h 仅作保护上限:正常内容宽度下高度远达不到,
不会触发收缩,图片始终铺满整行 */
max-height: var(--divider-max-h, 140px);
object-fit: contain;
opacity: 0.92;
transition: opacity 0.3s ease;
}
.post-divider-image img:hover {
opacity: 1;
}
@media screen and (max-width: 480px) {
.post-divider-image {
margin: 1.2rem 0;
}
.post-divider-image img {
max-width: 100%;
}
}
[data-theme="dark"] hr {
border-top-color: rgba(255, 255, 255, 0.2);
}
img {
max-width: 100%;
border-radius: 5px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
vertical-align: middle
}
.icon {
width: 1.8em;
height: 1.8em;
vertical-align: -1em;
fill: currentColor;
overflow: hidden;
}
a img {
border: none;
}
pre,
code {
font-family: 'JetBrains Mono', 'Fira Code', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
font-size: 14px;
border-radius: 4px;
background-color: #f6f8fa; /* Day Mode */
color: #24292e;
border: 1px solid #d0d7de;
/* Hide scrollbar but allow scrolling */
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE 10+ */
}
pre::-webkit-scrollbar,
code::-webkit-scrollbar {
display: none; /* Chrome/Safari/Webkit */
}
/* Code Folding */
.code-fold-container {
position: relative;
margin-bottom: 1rem;
border-radius: 4px;
display: flex;
flex-direction: column;
padding-bottom: 40px;
}
.code-fold-container.collapsed {
padding-bottom: 0;
}
.code-fold-container.collapsed .highlight,
.code-fold-container.collapsed pre {
max-height: 360px;
overflow: hidden;
mask-image: linear-gradient(to bottom, black 280px, transparent 360px);
-webkit-mask-image: linear-gradient(to bottom, black 280px, transparent 360px);
}
/* Ensure inner code blocks don't have bottom margin when wrapped */
.code-fold-container .highlight,
.code-fold-container pre {
margin-bottom: 0;
}
.code-expand-btn {
display: flex;
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
width: auto;
margin: 0;
z-index: 10;
text-align: center;
border: none;
background: transparent;
color: #586069;
cursor: pointer;
font-size: 13px;
transition: all 0.2s;
align-items: center;
justify-content: center;
padding: 0;
}
.code-fold-container:not(.collapsed) .code-expand-btn {
position: absolute !important;
bottom: 10px !important;
left: 50% !important;
margin: 0 !important;
transform: translateX(-50%) !important;
display: flex !important;
justify-content: center !important;
align-items: center !important;
width: auto !important;
padding: 0 !important;
}
/* Button Pill Style */
.code-expand-btn span {
background: rgba(255, 255, 255, 0.9);
padding: 6px 16px;
border-radius: 20px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
display: flex;
align-items: center;
border: 1px solid rgba(0,0,0,0.05);
transition: all 0.2s ease;
}
.code-expand-btn:hover span {
background: #fff;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.12);
color: var(--at-color-bg);
}
/* Dark Mode Support */
[data-theme="dark"] .code-expand-btn {
color: #f8f8f2;
}
[data-theme="dark"] .code-expand-btn span {
background: rgba(68, 71, 90, 0.8);
border-color: rgba(255,255,255,0.05);
}
[data-theme="dark"] .code-expand-btn:hover span {
background: #44475a;
color: #8be9fd;
}
/* Link Status Badge - Optimized */
.links-item {
position: relative;
}
/* Card View - Active */
.link-active-badge {
position: absolute;
top: 8px;
right: 8px;
width: 8px;
height: 8px;
background-color: #9ca3af; /* Soft Gray */
border-radius: 50%;
border: 2px solid #fff;
box-shadow: none;
z-index: 10;
}
[data-theme="dark"] .link-active-badge {
background-color: #d1d5db; /* Softer White (Gray 300) */
border-color: #1f2933;
box-shadow: none;
}
/* Card View - Dead */
.link-dead-badge {
position: absolute;
top: 8px;
right: 8px;
width: 8px;
height: 8px;
background-color: #fff; /* White Center */
border-radius: 50%;
border: 2px solid #9ca3af; /* Gray Border = Hollow Ring */
box-shadow: none;
z-index: 10;
}
[data-theme="dark"] .link-dead-badge {
background-color: #1f2933; /* Dark Center */
border-color: #d1d5db; /* Softer White Border */
box-shadow: none;
}
/* List View - Common */
.links ul>li.link-active-li,
.links ul>li.link-dead-li {
position: relative;
}
/* List View - Active */
.links ul>li.link-active-li::before {
content: "";
display: block;
position: absolute;
top: 10px; /* Aligned with text usually */
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #9ca3af !important; /* Soft Gray */
box-shadow: none;
}
/* List View - Dead */
.links ul>li.link-dead-li::before {
content: "";
display: block;
position: absolute;
top: 10px;
width: 4px; /* Slightly smaller to account for border */
height: 4px;
border-radius: 50%;
background-color: #fff !important;
border: 1px solid #9ca3af; /* Gray Hollow Ring */
box-shadow: none;
}
[data-theme="dark"] .links ul>li.link-active-li::before {
background-color: #d1d5db !important; /* Softer White */
}
[data-theme="dark"] .links ul>li.link-dead-li::before {
background-color: #1f2933 !important;
border-color: #d1d5db;
}
.atk-list.has-ai-comment .atk-list-no-comment {
display: none !important;
}
/* Generic badge base */
[data-theme="dark"] pre,
[data-theme="dark"] code {
background-color: #282a36; /* Night Mode */
color: #f8f8f2;
border-color: #44475a;
}
code {
padding: 2px 6px;
word-break: break-all; /* Prevent inline code from breaking layout */
}
pre {
padding: 10px;
overflow-x: auto;
max-width: 100%; /* Fix mobile overflow */
}
pre>code {
background-color: transparent;
color: inherit;
padding: 0;
border: 0;
word-break: normal;
}
table {
border-collapse: collapse;
border-spacing: 0;
word-break: break-all;
}
table th {
background-color: #f6f8fa;
}
table th,
table td {
padding: 10px 20px;
border: 1px solid #dfe2e5;
}
blockquote {
position: relative;
margin: 1.2rem 0;
padding: 14px 17px 14px 20px;
border: 1px solid rgba(0, 0, 0, 0.08);
border-left: 4px solid rgba(0, 0, 0, 0.72);
border-radius: 12px;
background: linear-gradient(135deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));
color: rgba(30, 30, 30, 0.92);
font-size: 0.95em;
font-weight: 400;
line-height: 1.68;
word-break: break-word;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}
blockquote::before {
content: "“";
position: absolute;
top: -8px;
left: 13px;
color: rgba(0, 0, 0, 0.08);
font-size: 42px;
line-height: 1;
font-family: Georgia, serif;
pointer-events: none;
}
blockquote p {
position: relative;
margin: 0.25rem 0 !important;
}
[data-theme="dark"] blockquote {
border-color: rgba(148, 163, 184, 0.18);
border-left-color: rgba(168, 181, 205, 0.82);
background: linear-gradient(135deg, rgba(30, 41, 59, 0.92), rgba(15, 23, 42, 0.78));
color: rgba(226, 232, 240, 0.96);
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}
[data-theme="dark"] blockquote::before {
color: rgba(203, 213, 225, 0.16);
}
a {
color: var(--link-color-light);
text-decoration: none;
transition: color 0.35s ease;
touch-action: manipulation;
}
a:hover {
color: var(--link-hover-color-light);
text-decoration: underline;
}
[data-theme="dark"] a {
color: var(--link-color-dark);
}
[data-theme="dark"] a:hover {
color: var(--link-hover-color-dark);
}
h1,
h2,
h3,
h4,
h5,
h6 {
line-height: 1.2;
font-weight: 400;
}
h1 {
font-size: 1.5rem;
}
h2 {
font-size: 1.375rem;
}
h3 {
font-size: 1.25rem;
}
h4,
h5,
h6 {
font-size: 1.125rem;
}
ul {
padding-left: 0px;
list-style-type: disc;
list-style: none;
}
/*默认 box-shadow 数值:rgba(236, 236, 236, 0.86)*/
.main {
max-width: 618px; /* Reduced from 680px based on user feedback "narrower again" */
overflow: hidden;
margin: 60px auto;
padding: 50px;
background: rgba(255, 255, 255, 0.8);
box-shadow: var(--card-shadow-light);
border-radius: 8px;
z-index: 10;
position: relative;
text-align: center;
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
/* Smoother transition */
transition: background-color 0.5s cubic-bezier(0.4, 0, 0.2, 1),
color 0.5s cubic-bezier(0.4, 0, 0.2, 1);
will-change: transform; /* Promote to layer for smoother scrolling */
}
/* Optimize article content rendering */
/* Removed content-visibility to fix clipping issue with overflowing elements (e.g. friend circle shadows/transform) */
/* .post-content {
content-visibility: auto;
contain-intrinsic-size: 1000px;
} */
@media (min-width: 768px) {
.main {
background: rgba(255, 255, 255, 0.88);
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
}
[data-theme="dark"] #pjax-loading-skeleton {
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
.atk-loading {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
}
/* Theme Toggle Icon Animation */
#theme-toggle i {
transition: transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
}
#theme-toggle.rotate i {
transform: rotate(360deg);
}
.header {
margin-bottom: 10px;
padding-bottom: 10px;
display: flex;
flex-direction: column;
align-items: stretch;
gap: 16px;
text-align: left; /* Reset text align from .main center */
}
/* ── Markdown 表格样式 ── */
.post-content table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
margin: 1.5em 0;
font-size: 0.95em;
line-height: 1.6;
border-radius: 12px;
overflow: hidden;
border: 1px solid rgba(0, 0, 0, 0.08);
background: rgba(255, 255, 255, 0.95);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.post-content thead {
background: linear-gradient(135deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.01));
}
.post-content th {
padding: 14px 20px;
text-align: left;
font-weight: 600;
color: rgba(30, 30, 30, 0.92);
border-bottom: 2px solid rgba(0, 0, 0, 0.1);
white-space: nowrap;
font-size: 0.95em;
}
.post-content td {
padding: 14px 20px;
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
color: rgba(30, 30, 30, 0.85);
vertical-align: top;
}
.post-content tbody tr:last-child td {
border-bottom: none;
}
/* 斑马条纹 */
.post-content tbody tr:nth-child(even) {
background-color: rgba(0, 0, 0, 0.015);
}
/* 悬停效果 */
.post-content tbody tr {
transition: background-color 0.3s ease;
}
.post-content tbody tr:hover {
background-color: rgba(0, 0, 0, 0.04);
}
/* 表格内的链接 */
.post-content table a {
color: var(--link-color-light);
text-decoration: none;
border-bottom: 1px dashed rgba(0, 0, 0, 0.3);
transition: all 0.3s ease;
}
.post-content table a:hover {
color: var(--link-hover-color-light);
border-bottom-style: solid;
border-bottom-color: var(--link-hover-color-light);
}
/* 表格内的代码 */
.post-content table code {
background: rgba(0, 0, 0, 0.04);
padding: 2px 8px;
border-radius: 6px;
font-size: 0.85em;
color: rgba(30, 30, 30, 0.9);
border: 1px solid rgba(0, 0, 0, 0.06);
}
/* 表格内的图片 */
.post-content table img {
max-width: 100px;
height: auto;
border-radius: 8px;
margin: 4px 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
/* 响应式表格 - 移动端 */
@media (max-width: 768px) {
.post-content table {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
font-size: 0.85em;
border-radius: 8px;
}
.post-content th,
.post-content td {
padding: 12px 14px;
min-width: 100px;
}
/* 第一列固定 */
.post-content th:first-child,
.post-content td:first-child {
position: sticky;
left: 0;
z-index: 2;
min-width: 120px;
/* 背景色在下方单独设置 */
}
/* 浅色模式 - 奇数行第一列 */
.post-content tbody tr:nth-child(odd) th:first-child,
.post-content tbody tr:nth-child(odd) td:first-child {
background: rgba(255, 255, 255, 0.95);
}
/* 浅色模式 - 偶数行第一列(斑马纹) */
.post-content tbody tr:nth-child(even) th:first-child,
.post-content tbody tr:nth-child(even) td:first-child {
background: rgba(0, 0, 0, 0.015);
}
/* 浅色模式 - 表头第一列 */
.post-content thead th:first-child {
background: linear-gradient(135deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.01));
}
}
/* ── 深色模式表格样式 ── */
[data-theme="dark"] .post-content table {
background: rgba(15, 23, 42, 0.95);
border-color: rgba(148, 163, 184, 0.18);
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}
[data-theme="dark"] .post-content thead {
background: linear-gradient(135deg, rgba(30, 41, 59, 0.92), rgba(15, 23, 42, 0.78));
}
[data-theme="dark"] .post-content th {
color: rgba(203, 213, 225, 0.85);
border-bottom-color: rgba(148, 163, 184, 0.15);
}
[data-theme="dark"] .post-content td {
border-bottom-color: rgba(148, 163, 184, 0.08);
color: rgba(203, 213, 225, 0.8);
}
[data-theme="dark"] .post-content tbody tr:nth-child(even) {
background-color: rgba(30, 41, 59, 0.5);
}
[data-theme="dark"] .post-content tbody tr:hover {
background-color: rgba(30, 41, 59, 0.8);
}
[data-theme="dark"] .post-content table a {
color: var(--link-color-dark);
border-bottom-color: rgba(148, 163, 184, 0.4);
}
[data-theme="dark"] .post-content table a:hover {
color: var(--link-hover-color-dark);
border-bottom-color: var(--link-hover-color-dark);
}
[data-theme="dark"] .post-content table code {
background: rgba(148, 163, 184, 0.12);
color: rgba(203, 213, 225, 0.9);
border-color: rgba(148, 163, 184, 0.15);
}
[data-theme="dark"] .post-content th:first-child,
[data-theme="dark"] .post-content td:first-child {
/* 基础背景在下方按行设置 */
z-index: 2;
}
/* 深色模式 - 奇数行第一列 */
[data-theme="dark"] .post-content tbody tr:nth-child(odd) th:first-child,
[data-theme="dark"] .post-content tbody tr:nth-child(odd) td:first-child {
background: rgba(15, 23, 42, 0.95) !important;
}
/* 深色模式 - 偶数行第一列(斑马纹) */
[data-theme="dark"] .post-content tbody tr:nth-child(even) th:first-child,
[data-theme="dark"] .post-content tbody tr:nth-child(even) td:first-child {
background: rgba(30, 41, 59, 0.5) !important;
}
/* 深色模式 - 表头第一列 */
[data-theme="dark"] .post-content thead th:first-child {
background: linear-gradient(135deg, rgba(30, 41, 59, 0.92), rgba(15, 23, 42, 0.78)) !important;
}
/* 深色模式 - 悬停时第一列 */
[data-theme="dark"] .post-content tbody tr:hover th:first-child,
[data-theme="dark"] .post-content tbody tr:hover td:first-child {
background: rgba(30, 41, 59, 0.8) !important;
}
/* ── 表格变体样式 ── */
/* 紧凑型表格 */
.post-content table.compact th,
.post-content table.compact td {
padding: 10px 14px;
font-size: 0.9em;
}
/* 无边框表格 */
.post-content table.borderless {
border: none;
box-shadow: none;
background: transparent;
}
.post-content table.borderless th,
.post-content table.borderless td {
border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.post-content table.borderless thead {
background: transparent;
}
[data-theme="dark"] .post-content table.borderless {
border-color: transparent;
background: transparent;
}
[data-theme="dark"] .post-content table.borderless th,
[data-theme="dark"] .post-content table.borderless td {
border-bottom-color: rgba(148, 163, 184, 0.15);
}
[data-theme="dark"] .post-content table.borderless thead {
background: transparent;
}
/* 高亮表格 */
.post-content table.highlight {
border-left: 4px solid rgba(0, 0, 0, 0.6);
}
.post-content table.highlight thead {
background: linear-gradient(135deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.03));
}
.post-content table.highlight th {
border-bottom-color: rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .post-content table.highlight {
border-left-color: rgba(168, 181, 205, 0.7);
}
[data-theme="dark"] .post-content table.highlight thead {
background: linear-gradient(135deg, rgba(30, 41, 59, 0.95), rgba(15, 23, 42, 0.85));
}
[data-theme="dark"] .post-content table.highlight th {
border-bottom-color: rgba(148, 163, 184, 0.25);
}
.header-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.header-avatar {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
margin-right: 16px;
padding: 8px 10px 8px 0;
border-radius: 999px;
cursor: pointer;
-webkit-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
}
.avatar-theme-tip {
margin-left: 0;
pointer-events: none;
padding: 4px 12px;
border-radius: 999px;
background: #111827;
color: #f9fafb;
font-size: 11px;
white-space: nowrap;
box-shadow: 0 12px 30px rgba(15, 23, 42, 0.25);
opacity: 0;
transform: translateY(2px) scale(0.98);
transition: opacity 0.4s ease;
}
.avatar-theme-tip.is-visible {
opacity: 1;
animation: avatar-tip-float 2.2s ease-in-out infinite;
}
.avatar-theme-tip.is-hidden {
opacity: 0;
transform: translateY(-4px) scale(0.96);
animation: none;
pointer-events: none;
}
[data-theme="dark"] .avatar-theme-tip {
background: #f9fafb;
color: #111827;
box-shadow: 0 14px 36px rgba(0, 0, 0, 0.6);
}
@keyframes avatar-tip-float {
0% {
transform: translateY(2px) scale(0.98);
}
50% {
transform: translateY(-2px) scale(1);
}
100% {
transform: translateY(2px) scale(0.98);
}
}
.header h1,
.header h2 {
margin: 0;
padding: 0;
font-size: 1.6rem;
margin-bottom: 10px;
}
.header h2 {
font-size: .9rem;
line-height: 2rem;
margin-bottom: 0;
}
/* Updated Header Semantics */
.header-menu {
border-top: 1px solid #f4f4f4;
transition: border-color 0.35s ease;
}
.header-menu ul,
.header-menu li {
margin: 0;
}
.header-menu ul.flat {
padding: 0;
/* Flexbox layout for easier spacing control */
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 20px; /* [PC Setting] Adjust this value to change spacing between items */
}
.header-menu ul.flat li {
display: block;
list-style: none;
margin: 10px 0 0 0;
text-transform: capitalize;
}
.header-menu ul.flat li.active a {
color: #24292e;
}
.header-menu ul.flat li a {
color: #586069;
}
.header-menu ul.flat li a:hover {
color: #646464;
text-decoration: none;
}
.header-info {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 0;
}
@media (max-width: 768px) {
.header-top {
justify-content: flex-start;
}
.header-avatar {
margin-right: 0;
justify-content: flex-start;
}
.header-info {
display: flex;
flex-direction: column; /* Stack vertically */
align-content: flex-end; /* Push to bottom */
justify-content: flex-end; /* Push to bottom */
align-items: center; /* Center align horizontally */
margin-left: 10px;
/* height: 80px; */ /* 移动端一言居中解开这个注释即可 */
width: calc(100vw - 140px);
padding-bottom: 0px;
}
.header-social {
display: flex;
align-items: center;
flex-wrap: nowrap;
gap: 12px; /* Increased gap for better spacing */
margin-bottom: 2px; /* Add small space between rows */
margin-right: 0;
width: 100%;
justify-content: center; /* Center align icons */
height: 24px;
}
.header-social a {
margin: 0 !important;
display: flex;
align-items: center;
}
.header-bio {
display: block;
font-size: 0.85rem;
line-height: 24px;
min-height: 24px;
margin: 0;
opacity: 0.8;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%; /* Full width */
text-align: center; /* Center align text */
/* Typewriter Effect Cursor */
border-right: 2px solid transparent;
}
/* Cursor Animation Class */
.header-bio.typing::after {
content: '|';
animation: cursor-blink 1s step-end infinite;
color: var(--text-content-color);
margin-left: 2px;
}
}
@keyframes cursor-blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.header-social {
margin: 0;
padding: 0;
border: none;
min-width: 50px;
margin-bottom: 0;
text-align: center;
/* Reset gap for social icons as they rely on margin */
gap: 2;
}
.header-social a {
display: inline-block;
margin: 0 5px;
text-decoration: none;
transition: all 0.2s ease;
}
.header-social a i {
font-size: 1.15rem;
vertical-align: middle;
}
.header-social a:hover {
color: #24292e;
transform: scale(1.2);
}
/* Searchable Header Styles */
.searchable-header-container {
position: relative;
margin-bottom: 15px;
height: 40px; /* Fixed height to prevent layout jump */
display: flex;
align-items: center;
}
.section-header.normal-mode {
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 3px;
transition: all 0.3s ease;
margin: 0; /* Reset margin */
position: relative; /* Ensure wrapper is positioned relative to this */
}
/* Search Hint Wrapper */
.search-hint-wrapper {
position: absolute;
left: 100%;
top: 50%;
transform: translateY(-50%) translateX(10px);
display: flex;
align-items: center;
gap: 8px;
opacity: 0;
visibility: hidden;
transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
pointer-events: none;
z-index: 10;
white-space: nowrap;
margin-left: 10px;
}
.search-hint-wrapper.visible {
opacity: 1;
visibility: visible;
transform: translateY(-50%) translateX(10px); /* Match the base/hover position */
}
.section-header.normal-mode:hover .search-hint-wrapper {
opacity: 1;
visibility: visible;
}
/* Mascot - Emoticon */
.search-mascot {
width: 32px;
height: 32px;
object-fit: contain;
/* Remove shadow/border as requested */
border: none;
box-shadow: none;
filter: none;
animation: mascot-shake 2.5s infinite ease-in-out;
transform-origin: bottom center;
}
@keyframes mascot-shake {
0%, 100% { transform: rotate(0deg); }
10% { transform: rotate(5deg); }
20% { transform: rotate(-5deg); }
30% { transform: rotate(3deg); }
40% { transform: rotate(-3deg); }
50% { transform: rotate(0deg); }
}
/* Clean Bubble Style - Mimic .barrage-bubble */
.search-hint {
background: #000000; /* Pure Black Background */
color: #ffffff;
padding: 7px 12px;
border-radius: 8px;
font-size: 13px;
font-weight: 600;
line-height: 1.4;
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
border: none;
position: relative;
display: flex;
align-items: center;
height: auto;
min-height: auto;
white-space: nowrap;
width: fit-content;
max-width: none;
margin-top: 1px;
z-index: 10;
}
/* Arrow - Optimized tip */
.search-hint::before {
content: '';
position: absolute;
top: 50%;
left: -5px;
margin-top: -5px;
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-right: 5px solid #000000; /* Match black background */
background: transparent;
box-shadow: none;
transform: none;
filter: drop-shadow(-2px 0 2px rgba(0,0,0,0.1));
}
[data-theme="dark"] .search-hint {
background: #ffffff; /* White background for dark mode contrast */
color: #000000;
border: none;
box-shadow: 0 4px 15px rgba(0,0,0,0.5);
}
[data-theme="dark"] .search-hint::before {
background: transparent;
border-right-color: #ffffff;
border-left: none;
border-bottom: 5px solid transparent;
filter: none;
}
[data-theme="dark"] .search-mascot {
filter: none;
}
.search-mode {
width: 100%;
animation: fadeIn 0.3s ease;
}
/* Modern Minimalist Search Styles - Bottom Border Only */
.search-input-group {
position: relative;
display: flex;
align-items: center;
width: 100%; /* Responsive width */
max-width: 300px; /* Maximum width for PC */
border: none;
border-bottom: 1px solid #000000;
border-radius: 0;
padding: 0 4px 6px 0; /* Slightly more bottom padding */
background: transparent;
transition: all 0.3s ease;
box-shadow: none;
}
.search-input-group i {
border: none; /* Ensure icons have no border */
background: transparent;
}
.search-input-group:hover {
background: transparent;
border-bottom-color: #666;
}
.search-input-group:focus-within {
background: transparent;
border-bottom-color: #000;
box-shadow: none;
}
[data-theme="dark"] .search-input-group {
background: transparent;
border-bottom-color: #ffffff;
box-shadow: none;
}
[data-theme="dark"] .search-input-group:hover {
background: transparent;
border-bottom-color: #ccc;
}
[data-theme="dark"] .search-input-group:focus-within {
background: transparent;
border-bottom-color: #fff;
box-shadow: none;
}
.search-input-group input {
width: 100%;
border: none !important;
border-radius: 0 !important;
background: transparent;
padding: 0 4px !important;
padding-left: 8px !important;
padding-right: 20px !important; /* Prevent text overlap with close icon */
font-size: 1rem;
color: #000000;
outline: none;
height: 24px;
font-weight: 500;
}
/* Text color on focus */
.search-input-group:focus-within input {
color: #000;
}
[data-theme="dark"] .search-input-group input {
color: #ffffff;
}
[data-theme="dark"] .search-input-group:focus-within input {
color: #ffffff;
}
/* Search Icon */
.search-icon {
color: #000000;
font-size: 1.1rem;
transition: color 0.3s ease;
}
.search-input-group:focus-within .search-icon {
color: #000000;
}
[data-theme="dark"] .search-icon {
color: #ffffff;
}
[data-theme="dark"] .search-input-group:focus-within .search-icon {
color: #ffffff;
}
/* Close icon */
.close-icon {
position: absolute;
right: 0;
font-size: 1rem;
color: #999;
cursor: pointer;
transition: all 0.2s;
opacity: 0;
transform: scale(0.8);
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
border-radius: 50%;
}
.search-input-group:focus-within .close-icon {
color: #cccccc;
}
.close-icon:hover {
background: rgba(0,0,0,0.1);
color: #000;
}
.search-input-group:focus-within .close-icon:hover {
background: rgba(255,255,255,0.2);
color: #fff;
}
[data-theme="dark"] .close-icon {
color: #aaa;
}
[data-theme="dark"] .search-input-group:focus-within .close-icon {
color: #666;
}
[data-theme="dark"] .close-icon:hover {
background: rgba(255,255,255,0.1);
color: #fff;
}
[data-theme="dark"] .search-input-group:focus-within .close-icon:hover {
background: rgba(0,0,0,0.1);
color: #000;
}
.search-input-group.has-value .close-icon {
opacity: 1;
transform: scale(1);
}
.search-dropdown {
position: absolute;
top: 100%;
left: 0;
right: 0;
background: #ffffff;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.1); /* Soft shadow */
border: 1px solid #f0f0f0; /* Subtle border */
margin-top: 8px; /* Spacing from input */
overflow: hidden;
z-index: 100;
opacity: 0;
transform: translateY(5px);
visibility: hidden;
transition: all 0.2s ease;
}
.search-dropdown.show {
opacity: 1;
transform: translateY(0);
visibility: visible;
}
[data-theme="dark"] .search-dropdown {
background: #2a2a2a;
border: 1px solid #444;
box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.search-result-item {
padding: 10px 14px;
border-bottom: 1px solid #f0f0f0;
display: flex;
flex-direction: column;
transition: background-color 0.2s;
}
[data-theme="dark"] .search-result-item {
border-bottom: 1px solid #333;
}
.search-result-item:last-child {
border-bottom: none;
}
.search-result-meta {
display: flex;
justify-content: flex-start; /* Left align */
gap: 10px;
font-size: 0.75rem;
color: #666;
margin-top: 2px;
}
[data-theme="dark"] .search-result-meta {
color: #aaa;
}
.search-result-summary-text {
max-width: 80%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.no-result {
text-align: left;
color: #666;
padding: 12px 16px;
font-size: 0.9rem;
cursor: default;
}
[data-theme="dark"] .no-result {
color: #aaa;
}
.search-result-item:hover {
background: #f5f5f5;
}
[data-theme="dark"] .search-result-item:hover {
background: #1a1a1a;
}
.search-result-title {
display: block;
font-weight: 600;
font-size: 0.95rem;
color: #000000;
margin-bottom: 0;
}
[data-theme="dark"] .search-result-title {
color: #ffffff;
}
.search-result-date {
font-size: 0.75rem;
color: #666;
margin-right: 10px;
}
.search-result-summary {
font-size: 0.85rem;
color: #444;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
margin-top: 4px;
}
[data-theme="dark"] .search-result-summary {
color: #ccc;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideDown {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
/* Mobile Adaptation */
@media (max-width: 767px) {
.mobile-hide {
display: none !important;
}
.recent-posts .posts .post:first-of-type {
margin-top: -10px;
}
.header {
margin-bottom: 0px!important;
}
.searchable-header-container {
flex-wrap: wrap;
height: auto;
min-height: 40px;
}
.section-header.normal-mode {
font-size: 1rem;
}
/* Adjust Hint Wrapper Position for Mobile */
.search-hint-wrapper {
position: relative;
left: auto;
top: auto;
transform: none !important;
margin-left: 8px;
opacity: 1;
}
.search-hint-wrapper.visible {
transform: none !important;
}
.search-mascot {
width: 28px;
height: 28px;
}
.search-hint {
opacity: 1;
font-size: 12px;
padding: 5px 10px;
margin-top: 0;
white-space: normal;
max-width: 200px;
}
/* Ensure Input Group fits and is comfortable */
.search-input-group {
padding: 0 0 6px 0;
margin-top: 5px;
background: transparent;
width: 100%;
max-width: 280px; /* Slightly wider on mobile for better usability */
}
[data-theme="dark"] .search-input-group {
background: transparent;
}
.search-input-group input {
font-size: 16px; /* 16px prevents iOS zoom entirely */
padding-right: 20px;
height: 24px;
padding-left: 5px;
}
.close-icon {
right: 0;
width: 20px;
height: 20px;
}
.search-dropdown {
width: 100%;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
border: none;
}
}
.pjax-leave {
position: absolute;
top: 0;
width: 100%;
animation: pjax-fade-out 0.3s ease-in forwards;
z-index: 0;
}
.pjax-enter {
animation: pjax-fade-in 0.3s ease-out forwards;
z-index: 1;
position: relative;
}
@keyframes pjax-fade-in {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pjax-fade-out {
from {
opacity: 1;
transform: translateY(0);
}
to {
opacity: 0;
transform: translateY(-10px);
}
}
.section .section-header {
font-size: 0.88rem;
font-weight: 600;
text-transform: uppercase;
color: #999999;
margin-bottom: 15px;
letter-spacing: 1px;
}
.recent-posts .posts .post {
margin-bottom: 20px;
margin-top: 20px;
}
.recent-posts .posts .post .time,
.post .post-header .time,
.list .posts .post .time {
font-size: 0.725rem;
color: #bec8d2;
margin-bottom: 2px;
}
.meta {
margin-top: 10px;
font-size: 12px;
color: #999999;
margin-bottom: 2px
}
.post-tags {
margin-top: 20px;
}
.post-tags .tags {
margin-top: 40px;
}
.post-tags .tags a {
display: inline-block;
border-radius: 2px;
padding: 0.1rem 0.4rem;
color: #fff;
line-height: 20px;
font-size: 12px;
text-decoration: none;
margin: 0 1px;
border: 1px solid #41464b;
background-color: #41464b;
}
.footer {
text-align: right;
font-size: 0.75em;
color: #999999;
border-top: 1px solid #f4f4f4;
padding-top: 10px;
margin-top: 10px;
/* transition handled by global rule */
}
/* 代码高亮 Mac 风格样式 */
.highlight {
background: #f6f8fa; /* Day Mode: Light BG (GitHub) */
color: #24292e; /* Day Mode: Dark Text */
border-radius: 10px;
border: 1px solid #d0d7de; /* Day Mode Border */
box-shadow: none; /* Remove Shadow */
margin: 20px 0;
overflow: hidden;
position: relative;
transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
/* Code Block Controls */
.code-controls {
position: absolute;
top: 5px;
right: 10px;
display: flex;
gap: 8px;
z-index: 10;
opacity: 0;
transition: opacity 0.3s ease;
}
.highlight:hover .code-controls {
opacity: 1;
}
.code-btn {
background: rgba(0,0,0,0.5);
color: white;
border: none;
border-radius: 4px;
padding: 4px 8px;
font-size: 12px;
cursor: pointer;
transition: background 0.2s;
}
.code-btn:hover {
background: rgba(0,0,0,0.7);
}
[data-theme="dark"] .highlight {
background: #282a36; /* Night Mode: Dark BG (Dracula) */
color: #f8f8f2; /* Night Mode: Light Text */
border: 1px solid #44475a; /* Night Mode Border */
box-shadow: none; /* Remove Shadow */
}
.highlight::before {
content: " ";
display: block;
height: 12px;
width: 12px;
margin: 15px;
background: #ff5f56;
border-radius: 50%;
box-shadow: 20px 0 0 #ffbd2e, 40px 0 0 #27c93f;
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
.highlight pre,
.highlight code,
.highlight kbd,
.highlight samp {
font-family: 'JetBrains Mono', 'Fira Code', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
font-size: 14px;
line-height: 1.6;
font-weight: normal;
white-space: pre;
}
.highlight pre {
margin: 0;
padding: 45px 15px 15px; /* Top padding for Mac dots */
overflow: auto;
background-color: transparent !important; /* Override inline style */
border: none !important; /* Remove conflicting border */
border-radius: 0 !important; /* Reset border radius inside container */
}
.highlight pre code {
padding: 0;
background-color: transparent !important;
color: inherit;
}
/* 滚动条样式 */
.highlight pre::-webkit-scrollbar {
height: 8px;
width: 8px;
}
.highlight pre::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.2); /* Day Mode: Dark scrollbar */
border-radius: 4px;
}
[data-theme="dark"] .highlight pre::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.2); /* Night Mode: Light scrollbar */
}
.highlight pre::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.3);
}
[data-theme="dark"] .highlight pre::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.3);
}
.highlight pre::-webkit-scrollbar-track {
background: transparent;
}
@media (max-width: 767px) {
h1 {
font-size: 1.375rem;
}
h2 {
font-size: 1.25rem;
}
h3 {
font-size: 1.125rem;
}
h4,
h5,
h6 {
font-size: 1rem;
}
body {
background: #ffffff;
}
.main {
padding: 20px;
margin: 0 auto;
box-shadow: none;
}
.header h2 {
display: none;
}
.container {
margin-top: 10px;
}
.highlight pre::-webkit-scrollbar {
display: none;
}
/* Mobile Navigation Optimization - Single Line Scrollable */
.header-menu {
overflow-x: auto;
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Firefox */
margin-left: -30px; /* Extend to edges */
margin-right: -30px;
padding-left: 30px; /* Start content aligned */
/* border-top: 1px solid #f4f4f4; */
border-top: none;
}
.header-menu::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome/Safari */
}
.header-menu ul.flat {
display: flex;
flex-wrap: nowrap; /* Prevent wrapping */
white-space: nowrap;
gap: 20px; /* Comfortable touch spacing */
align-items: center;
padding-right: 30px; /* Ensure scrolling reaches the end with padding */
}
.header-menu ul.flat li {
flex: 0 0 auto; /* Do not shrink */
margin-top: 10px; /* Maintain vertical spacing from border */
}
}
/* 代码复制按钮 */
.copy-code-btn {
position: absolute;
top: 10px;
right: 10px;
background: rgba(0, 0, 0, 0.05);
border: none;
border-radius: 4px;
color: #555;
padding: 4px 8px;
cursor: pointer;
font-size: 16px;
transition: all 0.2s;
opacity: 0;
z-index: 10;
}
[data-theme="dark"] .copy-code-btn {
background: rgba(255, 255, 255, 0.1);
color: #f8f8f2;
}
.highlight:hover .copy-code-btn {
opacity: 1;
}
.copy-code-btn:hover {
background: rgba(0, 0, 0, 0.1);
transform: scale(1.1);
}
[data-theme="dark"] .copy-code-btn:hover {
background: rgba(255, 255, 255, 0.2);
}
.comment-form-author {
width: 45% !important;
float: right;
/*margin-right: 5%;*/
}
.comment-form-email {
width: 45% !important;
float: left;
}
#cancel-huifu {
position: relative;
left: 53px !important;
}
.header img {
width: 75px !important;
height: 75px !important;
}
.site-description {
margin-top: 10px !important;
}
.itp-index {
width: 100% !important;
}
#scrollUp {
right: 35px !important;
}
}
/*回到顶部*/
#scrollUp {
bottom: 50px;
right: 50px;
background: #ffffff;
height: 40px;
width: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
color: #111827;
text-decoration: none;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.06);
z-index: 900; /* Ensure it's on top */
cursor: pointer;
}
#scrollUp::before {
content: "⇡";
}
[data-theme="dark"] #scrollUp {
background: rgba(15, 23, 42, 0.95);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.55);
color: #e5e7eb;
}
/*美化框*/
#mhz,
#szh,
#yyz {
/*圆角值,在此定义*/
border-radius: 8px;
}
/*迷幻紫*/
#mhz {
color: #555555;
overflow: hidden;
margin: 10px 0;
padding: 15px 15px 15px 35px;
/*border-radius: 10px;*/
box-shadow: 6px 0 12px -5px rgb(190, 196, 252), -6px 0 12px -5px rgb(189, 196, 252);
background-color: #8EC5FC;
background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%);
background-image: -webkit-linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%);
}
/*优雅紫*/
#yyz {
color: #ffffff;
overflow: hidden;
margin: 10px 0;
padding: 15px 15px 15px 35px;
/*border-radius: 10px;*/
box-shadow: 6px 0 12px -5px rgb(175, 160, 208), -6px 0 12px -5px rgba(177, 161, 207, 0);
background-image: radial-gradient(circle farthest-corner at 10% 20%, rgba(95, 117, 227, 1) 0%, rgba(188, 167, 205, 1) 90%);
}
/*深邃黑*/
#szh {
color: #c7c7c7;
overflow: hidden;
margin: 10px 0;
padding: 15px 15px 15px 35px;
/*border-radius: 5px;*/
box-shadow: 6px 0 14px -6px rgba(15, 23, 42, 0.85), -6px 0 14px -6px rgba(15, 23, 42, 0.55);
background-image: radial-gradient(circle farthest-corner at 10% 20%, rgba(0, 0, 0, 1) 0%, rgba(64, 64, 64, 1) 90.2%);
}
/*隐藏文字*/
darkb-text {
background-color: #12121c;
color: #12121c;
text-shadow: none;
transition: color 0.3s;
/*padding-top: 3px;*/
padding: 2px 2px 2px 2px;
font-size: 14px;
border-radius: 4px;
}
darkb-text:hover,
darkb-text:active {
color: #FFF;
}
/* 分页 */
.pagination {
margin: 0;
padding: 10px 0 0;
text-align: left;
display: flex;
justify-content: space-between;
}
.pagination li {
list-style: none;
display: inline-block;
margin: 0;
padding: 0;
}
.pagination .page-previous {
/* margin-right: 20px; */
/* padding-right: 20px; */
}
.pagination .page-item.page-previous {
text-align: right;
}
.pagination .page-item.page-next {
text-align: right;
}
/* 骨架屏动画 */
.skeleton-line {
background: #e0e0e0;
border-radius: 4px;
background-image: linear-gradient(90deg, #e0e0e0 0px, #f5f5f5 40px, #e0e0e0 80px);
background-size: 600px;
animation: skeleton-loading 1.6s infinite ease-out;
}
@keyframes skeleton-loading {
0% {
background-position: -100px;
}
100% {
background-position: 140px;
}
}
[data-theme="dark"] #pjax-loading-skeleton {
background: rgba(15, 23, 42, 0.94) !important;
box-shadow: var(--card-shadow-dark) !important;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
[data-theme="dark"] .skeleton-line {
background: #1f2937;
background-image: linear-gradient(90deg, #1f2937 0px, #374151 40px, #1f2937 80px);
}
position: relative;
border-radius: 5px;
padding-bottom: 66.5%;
height: 0;
border: 6px solid #f0f0f0;
overflow: hidden;
}
.size-video iframe {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
/*归档页面*/
.a-title {
font-size: 24px;
word-wrap: break-word;
line-height: 1.4;
box-shadow: inset 0 -7px 0 0 rgb(52 58 64 / 10%);
display: inline;
}
.link-title {
text-align: center;
margin-top: 20px;
margin-bottom: 14px;
}
.link-title span {
display: inline-block;
margin-top: 6px;
margin-bottom: 6px;
font-size: 1.35rem;
font-weight: 650;
letter-spacing: 0.12em;
text-transform: none;
color: #4b5563;
}
[data-theme="dark"] .link-title span {
color: #e5e7eb;
}
h3.diy-h3 {
cursor: pointer;
font-size: 1.05rem;
padding-left: 1px;
margin-top: 0.5em;
margin-bottom: 5px;
}
.a-archives {
margin-top: 6px;
display: inline-block;
color: #374151;
font-size: 0.95rem;
}
.articles_date_time {
padding: 3px 5px;
font-size: 0.75rem;
font-weight: 500;
line-height: 1;
background-color: rgba(52, 58, 64, .1);
color: #324b64;
margin-right: 5px;
border-radius: 999px;
}
[data-theme="dark"] .a-archives {
color: #e5e7eb;
}
[data-theme="dark"] .articles_date_time {
background-color: rgba(148, 163, 184, .25);
color: #e5e7eb;
}
/*友链*/
.link_box,
.link_marks {
float: left;
padding-right: 5px;
}
.yiyandes {
font-size: .9rem;
line-height: 2rem;
margin-top: -2px;
cursor: pointer;
transition: opacity 0.3s ease;
}
.yiyandes:hover {
opacity: 0.7;
}
.yiyandes.typing::after {
content: '|';
animation: blink 1s step-start infinite;
margin-left: 2px;
}
@keyframes blink {
50% { opacity: 0; }
}
/*comments*/
.comments-area {
/*padding-top: 25px;*/
/*border-top: 1px solid #eaeaea;*/
margin-top: 25px;
}
.comments-area ol {
list-style: none;
padding: 0;
}
.comments-area .comment-body {
border-bottom: 1px solid #f4f4f4;
padding-bottom: 20px;
margin-bottom: 20px;
}
.comment-meta {
margin-bottom: 16px;
}
.comment-meta a {
text-decoration: none;
}
.comment-author {
display: flex;
align-items: center;
}
.comment-author img {
border-radius: 50%;
}
.comment-author a {
color: #303135;
text-decoration: none;
font-weight: 700;
font-size: 16px;
}
.comment-metadata time {
color: gray;
font-size: 12px;
}
.comment-reply-title {
margin: 10px 0 5px;
}
.comment-respond input {
width: 100%;
}
.site-footer {
border-top: 1px solid #f4f4f4;
padding: 10px 0;
font-size: 13px;
}
.site-footer a {
color: rgb(0, 0, 0);
text-decoration: none;
}
.comment-form-author {
width: 48%;
float: right;
/*margin-right: 5%;*/
}
.comment-form-email {
width: 48%;
float: left;
}
.comment-form-url {
width: 100%;
float: right;
}
.comment-list li ol li {
padding-left: 1rem;
}
.reply {
margin-top: 16px;
}
.page-navigator {
display: flex;
width: 100%;
margin: 1rem 0;
}
.page-navigator li {
display: none;
}
.page-navigator .prev {
display: block;
flex: 1;
}
.page-navigator .next {
display: flex;
justify-content: flex-end;
}
.foot_bar {
z-index: 999;
position: fixed;
right: 2rem;
bottom: 2rem;
display: grid;
}
.foot_bar_items {
line-height: 24px;
text-align: center;
color: #000;
cursor: pointer;
display: inline-flex;
justify-content: center;
align-items: center;
margin: .5rem 0;
}
.changeMode {
background-color: #eee;
height: calc(26px*1);
width: calc(100px*1);
border-radius: calc(100px*1);
display: inline-block;
}
.toggle-dark-mode-ignore {
position: absolute;
width: 50%;
background-color: #fff;
box-shadow: 0 2px 15px rgb(0 0 0 / 15%);
transition: transform .3s cubic-bezier(.25, .46, .45, .94);
height: calc(26px*1);
border-radius: calc(100px*1);
display: inline-block;
left: 0;
}
.dark-mode-ignore {
width: 74%;
position: absolute;
display: flex;
justify-content: space-between;
user-select: none;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.switch-light-text {
font-size: calc(12px*1);
font-weight: 500;
color: #555;
margin: 0;
padding-bottom: 0;
}
.switch-dark-text {
font-size: calc(12px*1);
font-weight: 500;
color: #555;
margin: 0;
padding-bottom: 0;
opacity: .5;
}
img.biaoqing[src*="qutu"],
img.biaoqing[src*="huaji"] {
width: auto;
height: auto;
max-height: 5rem;
}
label {
font-size: 13px;
color: #9e9e9e;
}
.skills-section {
margin-top: 2.5rem;
}
.section-title {
font-size: 0.9rem;
letter-spacing: 0.16em;
text-transform: uppercase;
color: #9ca3af;
margin-bottom: 1.25rem;
}
.skills-container {
display: flex;
flex-direction: column;
gap: 0.75rem;
overflow: hidden;
}
.skills-row {
position: relative;
overflow: hidden;
}
.skills-track {
display: inline-flex;
align-items: center;
gap: 0.75rem;
white-space: nowrap;
animation: skills-scroll 26s linear infinite;
}
.skills-track-reverse {
animation-direction: reverse;
}
.skill-tag {
display: inline-flex;
align-items: center;
padding: 0.35rem 0.9rem;
border-radius: 999px;
border: 1px solid rgba(148, 163, 184, 0.7);
background: rgba(255, 255, 255, 0.86);
font-size: 0.8rem;
color: #374151;
}
@keyframes skills-scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}
[data-theme="dark"] .section-title {
color: #6b7280;
}
[data-theme="dark"] .skill-tag {
border-color: rgba(31, 41, 55, 0.85);
background: rgba(15, 23, 42, 0.96);
color: #e5e7eb;
}
textarea {
width: 100%;
overflow: auto;
}
input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea {
color: #666;
border: 1px solid #ccc;
border-radius: 3px;
padding: 8px;
}
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0;
}
button,
input[type=button],
input[type=reset],
input[type=submit] {
border: 1px solid;
border-color: #000 #000 #000;
border-radius: 3px;
background-color: #222;
color: #fff;
padding: 6px;
margin-top: 10px;
margin-left: 23%;
}
.ell {
white-space: normal;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.navigation:before,
.navigation:after {
content: "";
display: table;
table-layout: fixed;
}
.clear:after,
.entry-content:after,
.wrapper:after,
.navigation:after {
clear: both;
}
.site-header {
padding: 25px 0;
}
.site-branding {
float: left;
padding-top: 20px;
}
.site-title {
margin: 0;
line-height: 1;
font-size: 14px;
font-weight: 500;
}
.site-title a {
text-decoration: none;
color: #2d2e33;
font-size: 20px;
font-weight: bold;
}
#site-navigation {
display: block;
float: right;
}
#site-menu {
list-style: none;
margin: 0;
padding-left: 0;
}
#site-menu li {
float: left;
position: relative;
}
#site-menu li a {
display: block;
text-decoration: none;
color: #525252;
padding: 20px 0 20px 30px;
}
.site-content {
margin-bottom: 50px;
}
.archives__heading {
font-size: 24px;
margin-top: 0;
margin-bottom: 25px;
}
.archives__list {
list-style: none;
padding: 0;
}
.archives__list li {
padding: 5px 0;
font-size: 14px;
}
.archives__list li a {
max-width: 50%;
display: inline-block;
text-decoration: none;
}
.archives__list li span {
color: #a9a9a9;
max-width: 50%;
display: inline-block;
float: right;
text-align: right;
}
.entry-header {
margin-bottom: 32px;
}
.entry-title {
font-size: 30px;
margin: 0;
}
.entry-content p {
font-size: 14px;
}
.entry-content img {
clear: both;
display: block;
margin-left: auto;
margin-right: auto;
border-radius: 5px;
}
#showResult {
margin-top: 1rem;
}
#showResult .biaoqing {
width: 24px;
}
/*owo表情*/
.biaoqing[src*="bqb"] {
width: 77px;
display: block;
}
.OwO .OwO-body .OwO-items-image .OwO-item[data-input*="bqb"] {
max-width: calc(50% - 10px);
;
}
.biaoqing {
width: 36px;
display: inline;
box-shadow: 0 0px 0px rgb(0 0 0 / 0%) !important;
}
/*友圈微调*/
.cf-article[data-v-56cae500] {
border: 1px solid #43464A !important;
}
/*评论头衔*/
.badge-xztx {
margin-left: .2rem;
background-color: #000000;
color: #fff;
padding: 2px 5px;
border-radius: 5px;
font-size: .8rem;
font-weight: bold;
line-height: .8rem;
}
.visitor {
margin-left: .2rem;
background-color: #939393;
color: #fff;
padding: 2px 5px;
border-radius: 5px;
font-size: .8rem;
font-weight: bold;
line-height: .8rem;
}
/*评论取消按钮*/
#cancel-huifu {
position: relative;
left: 190px;
}
/*评论提醒*/
.pl-img {
width: 40px;
height: 40px;
border-radius: 0px;
animation: fade-in .65s ease-in none;
}
.massage-container {
/*display: flex;*/
height: 100%;
justify-content: center;
align-items: center;
}
.rectangle {
display: flex;
align-items: center;
justify-content: flex-start;
positon: relative;
width: 50px;
height: 40px;
background: #000000;
transform: scale(0);
border-radius: 50%;
color: white;
opacity: 0;
overflow: hidden;
animation: scale-in .3s ease-out forwards,
expand .35s .25s ease-out forwards;
}
.notification-text {
/*display: flex;*/
align-items: center;
padding: 0 16px;
font-family: 'Roboto', sans-serif;
font-size: 14px;
animation: fade-in .65s ease-in forwards;
}
@keyframes scale-in {
100% {
transform: scale(1);
opacity: 1;
}
}
@keyframes expand {
50% {
width: 350px;
border-radius: 6px;
}
100% {
width: 300px;
border-radius: 4px;
box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .2),
0px 1px 1px 0px rgba(0, 0, 0, .14),
0px 3px 3px -1px rgba(0, 0, 0, .12);
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: .8;
}
}
/*新文章提醒样式*/
.new-post-message {
content: '';
background: url(/img/1457247750.png) no-repeat;
width: 26px;
height: 14px;
background-size: contain;
display: inline-block;
vertical-align: middle;
margin-top: -2px;
margin-left: 1px;
}
/*文章图片懒加载*/
.load-img {
width: 100%;
height: auto;
background-color: #CCCCCC;
display: block;
}
/*模糊加载动画*/
@-webkit-keyframes blur {
0% {
-webkit-filter: blur(10px);
/* Chrome, Opera */
-moz-filter: blur(10px);
-ms-filter: blur(10px);
filter: blur(10px);
}
50% {
-webkit-filter: blur(50px);
-moz-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
}
100% {
-webkit-filter: blur(0px);
-moz-filter: blur(0px);
-ms-filter: blur(0px);
filter: blur(0px);
}
}
.lazy-img {
-webkit-animation-name: blur;
/*动画名称*/
-webkit-animation-duration: 2s;
/*动画持续时间*/
-webkit-animation-iteration-count: 1;
/*动画次数*/
-webkit-animation-delay: 0s;
/*延迟时间*/
}
.blog-img {
-webkit-animation-name: blur;
/*动画名称*/
-webkit-animation-duration: 1s;
/*动画持续时间*/
-webkit-animation-iteration-count: 1;
/*动画次数*/
-webkit-animation-delay: 0s;
/*延迟时间*/
}
/*弹幕相关css*/
.container {
text-align: initial !important;
}
.dm-biaoqing[src*="bqb"] {
width: 37px;
display: inline;
}
.dm-biaoqing {
width: 36px;
display: inline;
box-shadow: 0 0px 0px rgb(0 0 0 / 0%) !important;
}
/*wechat样式*/
@font-face {
font-family: 'Color Emoji';
src: local('Apple Color Emoji'), local('Segoe UI Emoji'), local('Segoe UI Symbol'), local('Noto Color Emoji');
}
.qmbox .container {
--background_color: #f3f3f3;
--text_color: #191919;
}
@media (prefers-color-scheme:dark) {
.qmbox .container {
--background_color: #111;
--text_color: #e6e6e6;
}
}
.qmbox .container {
--font_size_grande: 16px;
--font_size_tall: 14px;
--font_size_short: 12px;
--line_height_grande: 20px;
--line_height_tall: 22px;
--line_height_short: 20px;
}
.qmbox .container {
padding-top: var(--line_height_short);
padding-bottom: var(--line_height_short);
color: var(--text_color);
/*font: normal var(--font_size_grande) / var(--line_height_grande) 'PingFang SC', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif, 'Color Emoji';*/
background: var(--background_color);
}
@media screen and (min-width: 550px) {
.qmbox .g-width {
width: 550px;
margin: 0 auto;
}
}
@media screen and (max-width: 459px) {
.qmbox .g-width {
width: 100%;
min-width: 320px;
max-width: 460px;
}
}
.qmbox .g-clear-both::after {
display: block;
clear: both;
content: '';
}
.qmbox .g-left {
display: inline;
float: left;
}
.qmbox .g-right {
display: inline;
float: right;
}
.qmbox .g-inline-center {
text-align: center;
}
.qmbox .date {
--date_text_color: #aaa;
}
@media (prefers-color-scheme:dark) {
.qmbox .date {
--date_text_color: #595859;
}
}
.qmbox .date {
height: var(--line_height_short);
color: var(--date_text_color);
font-size: var(--font_size_short);
line-height: var(--line_height_short);
font-weight: 300;
}
.qmbox .dialog {
--message_text_color: #1e1e1e;
--message_background_color: #fff;
--reply_text_color: #0f170a;
--reply_background_color: #95ec69;
--quote_text_color: #7d7d7d;
--quote_background_color: #e8e8e8;
}
@media (prefers-color-scheme:dark) {
.qmbox .dialog {
--message_text_color: #eaeaea;
--message_background_color: #2c2c2c;
--reply_text_color: #04120a;
--reply_background_color: #28b561;
--quote_text_color: #989898;
--quote_background_color: #1a1a1a;
}
}
.qmbox .dialog {
--avatar_size: 36px;
--border_radius: 4px;
--bubble_lr_offset: 20px;
--bubble_arrow_size: 10px;
--bubble_padding_vertical: 10px;
--bubble_padding_vertical_quote: 8px;
--bubble_padding_horizontal: 12px;
margin-top: -10px;
}
.qmbox .bubble {
max-width: calc(100% - (var(--bubble_lr_offset) * 2) - var(--avatar_size) - var(--bubble_arrow_size));
margin-top: var(--line_height_short);
clear: both;
}
.qmbox .bubble:first-child {
margin-top: 0;
}
.qmbox .message {
margin-left: var(--bubble_lr_offset);
}
.qmbox .reply {
margin-right: var(--bubble_lr_offset);
}
.qmbox .bubble-text {
position: relative;
max-width: calc(100% - var(--avatar_size) - var(--bubble_arrow_size) - (var(--bubble_padding_horizontal) * 2));
padding: var(--bubble_padding_vertical) var(--bubble_padding_horizontal);
border-radius: var(--border_radius);
font-size: var(--font_size_tall);
line-height: var(--line_height_tall);
word-break: break-all;
}
.qmbox .bubble-text::after {
position: absolute;
top: calc((var(--avatar_size) - var(--bubble_arrow_size)) / 2);
display: block;
width: 0;
height: 0;
border: calc(var(--bubble_arrow_size) / 2) solid transparent;
content: '';
}
.qmbox .message-text {
margin-left: var(--bubble_arrow_size);
color: var(--message_text_color);
background-color: var(--message_background_color);
}
.qmbox .message-text::after {
left: calc(var(--bubble_arrow_size) / 2 * -1);
border-left: 0 none;
border-right: calc(var(--bubble_arrow_size) / 2) solid var(--message_background_color);
}
.qmbox .reply-text {
margin-right: var(--bubble_arrow_size);
color: var(--reply_text_color);
background-color: var(--reply_background_color);
}
.qmbox .reply-text::after {
right: calc(var(--bubble_arrow_size) / 2 * -1);
border-left: calc(var(--bubble_arrow_size) / 2) solid var(--reply_background_color);
border-right: 0 none;
}
.qmbox .bubble-avatar {
width: var(--avatar_size);
height: var(--avatar_size);
border-radius: var(--border_radius);
}
.qmbox .quote {
max-width: calc(100% - ((var(--bubble_arrow_size) + var(--avatar_size) + var(--bubble_lr_offset) + var(--bubble_padding_horizontal)) * 2));
margin-top: calc(var(--bubble_padding_horizontal) / 2);
padding: var(--bubble_padding_vertical_quote) var(--bubble_padding_horizontal);
border-radius: var(--border_radius);
color: var(--quote_text_color);
font-size: var(--font_size_short);
line-height: var(--line_height_short);
background-color: var(--quote_background_color);
word-break: break-all;
clear: both;
}
.qmbox .message+.quote {
margin-left: calc(var(--bubble_arrow_size) + var(--avatar_size) + var(--bubble_lr_offset));
}
.qmbox .reply+.quote {
margin-right: calc(var(--bubble_arrow_size) + var(--avatar_size) + var(--bubble_lr_offset));
}
.message-text img {
width: 25px !important;
display: inline;
box-shadow: 0 0px 0px rgb(0 0 0 / 0%) !important;
}
.reply-text img {
width: 25px !important;
display: inline;
box-shadow: 0 0px 0px rgb(0 0 0 / 0%) !important;
}
/*鱼塘*/
#random-post {
min-height: 32px;
}
.random-friends-post {
text-decoration: none;
font-weight: 700;
padding: 0 4px;
}
.random-friends-post:hover {
text-decoration: none;
border-radius: 4px;
}
.random-post-start {
transition: 2s;
}
#random-post {
min-height: 32px;
border-radius: 12px;
margin-top: 8px;
clear: both;
}
@media screen and (max-width: 3000px) {
.cf-article[data-v-56cae500] {
margin: 8px;
border-radius: 8px;
font-weight: bolder;
overflow: hidden;
transition: all .3s ease-out;
position: relative;
padding: 1rem;
border: var(--pyq-boder);
height: 160px;
display: flex;
align-content: space-between;
flex-direction: column;
justify-content: space-between;
box-shadow: var(--heo-shadow-border);
}
.cf-article-item[data-v-56cae500] {
width: 50% !important;
}
.cf-article-author[data-v-56cae500],
.cf-img-avatar[data-v-56cae500] {
align-self: center;
text-align: center;
transition: .3s;
}
.cf-img-avatar[data-v-56cae500] {
display: inline-block !important;
position: absolute;
width: 40%;
border-radius: 50%;
margin: 0 0 -4px !important;
background: #fff;
opacity: .1;
z-index: 0;
right: -20px;
bottom: -20px;
}
.cf-article-title[data-v-56cae500] {
font-weight: 500;
position: relative;
z-index: 2;
width: 100%;
display: block;
letter-spacing: 1.5px;
font-size: 18px;
align-self: start;
text-align: left;
line-height: 40px;
padding: 0;
margin-bottom: 10px;
transition: .3s;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box !important;
-webkit-box-orient: vertical;
}
.cf-article-time[data-v-56cae500] {
font-size: 12px;
text-align: right;
float: right;
font-weight: 400;
transition: .3s;
margin-left: auto;
z-index: 1;
}
.cf-article-author[data-v-56cae500] {
line-height: 1;
font-size: 14px;
font-weight: 700;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
z-index: 1;
color: var(--pyq-fontcolor);
font-size: .7rem;
background-color: var(--heo-gray-op);
padding: 8px;
border-radius: 20px;
/*display: flex;*/
align-items: center;
}
.cf-article-author[data-v-56cae500],
.cf-img-avatar[data-v-56cae500] {
align-self: center;
text-align: center;
transition: .3s;
}
#cf-footer[data-v-56cae500],
#cf-more[data-v-56cae500] {
display: flex;
flex-direction: column;
}
#cf-footer[data-v-56cae500] {
width: 100%;
margin-top: .5rem;
align-items: flex-end;
color: var(--pyq-secondtext);
}
}
@media screen and (max-width: 1400px) {
.cf-article-item[data-v-56cae500] {
width: 100%;
}
}
@media screen and (max-width: 768px) {
.cf-article-item[data-v-56cae500] {
width: 100% !important;
}
}
.lazyload {
width: 100%;
max-width: 100%;
height: auto;
}
.post-content img,
.entry-content img {
display: block;
max-width: 100%;
height: auto;
}
.post-content .sen-image-frame,
.entry-content .sen-image-frame {
position: relative;
display: block;
width: fit-content;
max-width: 100%;
margin: 1.2rem auto;
line-height: 0;
opacity: 1;
transform: none;
transition: opacity 0.6s cubic-bezier(0.22, 0.61, 0.36, 1),
transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
content-visibility: auto;
contain-intrinsic-size: auto 400px;
}
.post-content .sen-image-frame.reveal-pending:not(.is-visible),
.entry-content .sen-image-frame.reveal-pending:not(.is-visible) {
opacity: 0;
transform: translateY(14px);
}
.post-content .sen-image-frame.is-visible,
.entry-content .sen-image-frame.is-visible {
opacity: 1;
transform: none;
}
.post-content .sen-image-frame>img,
.entry-content .sen-image-frame>img {
display: block;
width: auto;
max-width: 100%;
margin: 0;
box-shadow: none;
}
/* 设置进度条的背景色 */
.bar {
background: #2aae67 !important;
}
/* 友联样式 */
.links-item {
padding: 10px 10px 15px 0px;
font-size: 14px;
width: 49%;
box-sizing: border-box;
display: inline-block;
vertical-align: top;
background: #fafafa;
background: var(--light-header);
border-radius: 4px
}
.links-item img {
border-radius: 4px;
float: left;
width: 45px;
height: 45px;
background: #fff
}
.links-item a {
display: block;
padding: 0 14px;
margin-top: 13px;
margin-left: 44px;
word-break: keep-all;
height: 32px;
}
.links-item {
width: 135px;
margin: 0 12px 12px 0;
}
@media only screen and (max-width: 683px) {
.links-item {
width: 144px;
/* margin: 0 0 8px */
}
}
.dark .links-item {
background: #252627;
background: var(--dark-header)
}
.tocify {
width: 20%;
max-height: 90%;
overflow: auto;
position: absolute;
right: 2%;
border-radius: 6px
}
.tocify ul,
.tocify li {
list-style: none;
margin: 0;
padding: 0;
border: none;
line-height: 30px
}
.tocify li a {
display: inline-block;
text-indent: 10px;
font-size: 14px;
text-decoration: none
}
.tocify ul ul li a:before {
content: "- "
}
@media only screen and (max-width: 683px) {
.tocify {
display: none
}
}
.dark .light-wormhole,
.dark-wormhole {
display: none
}
.dark .dark-wormhole {
display: block
}
/* 热力图css */
.ch-plugin-calendar-label {
position: absolute;
top: 20px;
left: 30px;
gutter: 5px;
}
/** 周几初标签部分样式 **/
.ch-plugin-calendar-label-text {
fill: var(--gray-500) !important;
font-size: 12px !important;
transform: translate(6px, 0px);
}
/** 隐藏月份信息 **/
.ch-domain-text {
display: none;
}
/* Migrated from assets/js/modules/style-fix.js */
#libabys:nth-of-type(-n+2) {
margin-left: -5px;
}
.itp-index:nth-child(even) {
float: right;
width: 48%;
}
/* 修改小方块的背景填充颜色 */
[data-theme=dark] .ch-subdomain-bg {
fill: var(--gray-200);
}
[data-theme="dark"] canvas[data-zr-dom-id] {
filter: brightness(0.78) contrast(0.9) saturate(0.85);
transition: filter 0.35s ease;
}
/* 弹幕css */
.barrager {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none; /* 容器不阻挡点击 */
z-index: 1; /* 在 main (z-index: 10) 背后,但在 body 背景之上 */
overflow: hidden;
/* 性能优化:CSS 隔离 */
contain: layout style paint;
/* 某些浏览器可能支持 content-visibility */
content-visibility: auto;
}
/* 弹幕条目 (左到右) */
.barrage-item {
position: absolute;
display: inline-flex;
align-items: flex-start; /* 顶部对齐 */
white-space: nowrap;
will-change: transform;
pointer-events: auto; /* 弹幕本身可点击 */
user-select: none;
transform: translateX(-100%); /* 初始在左侧外 */
z-index: 10;
/* 初始透明度,配合动画实现淡入淡出 */
opacity: 0.9;
/* 缩小整体尺寸 */
transform-origin: left top;
/* 硬件加速 */
backface-visibility: hidden;
-webkit-font-smoothing: antialiased;
}
/* 头像样式 */
.barrage-avatar {
width: 28px; /* 缩小头像 */
height: 28px;
border-radius: 50%;
margin-right: 8px;
object-fit: cover;
border: 1px solid rgba(0,0,0,0.05);
box-shadow: 0 1px 2px rgba(0,0,0,0.1);
flex-shrink: 0;
background: #fff;
}
/* 聊天气泡样式 (仿QQ/微信风格) */
.barrage-bubble {
background: #ffffff; /* QQ/微信 白底 */
color: #1f1f1f; /* 深黑文字 */
padding: 6px 10px; /* 缩小内边距 */
border-radius: 6px; /* 稍微减小圆角 */
font-size: 13px; /* 缩小字体 */
line-height: 1.4;
position: relative;
box-shadow: 0 1px 5px rgba(0,0,0,0.08);
max-width: 260px; /* 减小最大宽度 */
white-space: normal;
word-break: break-all;
}
/* 气泡小尾巴 */
.barrage-bubble::before {
content: '';
position: absolute;
top: 10px; /* 调整位置 */
left: -5px; /* 调整大小 */
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-right: 5px solid #ffffff;
}
/* 昼夜切换适配 */
[data-theme="dark"] .barrage-avatar {
border-color: #444;
background: #222;
}
[data-theme="dark"] .barrage-bubble {
background: #262626; /* 深色模式深灰底 */
color: #e5e5e5;
border: 1px solid rgba(255,255,255,0.05);
box-shadow: none;
}
[data-theme="dark"] .barrage-bubble::before {
border-right-color: #262626;
}
/* 悬停效果 */
.barrage-item:hover .barrage-bubble {
background: #f0f0f0; /* 悬停微暗 */
z-index: 100;
}
.barrage-item:hover .barrage-bubble::before {
border-right-color: #f0f0f0;
}
[data-theme="dark"] .barrage-item:hover .barrage-bubble {
background: #333;
}
[data-theme="dark"] .barrage-item:hover .barrage-bubble::before {
border-right-color: #333;
}
/* 左到右动画的关键帧 */
@keyframes barrage-slide-right {
0% {
transform: translateX(-100%); /* 左侧屏幕外 */
opacity: 0;
}
5% {
opacity: 1; /* 快速淡入 */
}
95% {
opacity: 1;
}
100% {
transform: translateX(100vw); /* 右侧屏幕外 */
opacity: 0; /* 淡出 */
}
}
#post-writing p{
margin-bottom: 10px;
}
#post-writing h2 {
position: relative; /* 确保伪元素的定位相对于 h2 元素 */
display: inline-block; /* 使 h2 的宽度适应内容 */
margin-top: 5px;
margin-bottom: 0px;
}
#post-writing h2:nth-child(1) {
position: relative; /* 确保伪元素的定位相对于 h2 元素 */
display: inline-block; /* 使 h2 的宽度适应内容 */
margin-top: 13px;
margin-bottom: 0px;
}
#post-writing h2::before {
content: "";
position: absolute;
height: 7px;
bottom: 0px;
left: -1px;
width: 100%; /* 使用 100% 使伪元素宽度跟随文字 */
z-index: -1;
background-color: #494949;
opacity: 0.15;
transform: skew(-35deg);
transition: opacity .2s ease;
border-radius: 3px 8px 10px 6px;
transition: 0.1s ease background-color;
}
#post-writing p>code{
font-size: 14px;
background-color: #e3e3e3!important;
color: #000000!important;
}
/* Hugo Chroma Syntax Highlighting */
/* Day Mode (GitHub) */
/* Background */ .bg { background-color:#fff; }
/* PreWrapper */ .chroma { color:#24292e;background-color:#fff; }
/* Other */ .chroma .x { }
/* Error */ .chroma .err { color:#a61717;background-color:#e3d2d2 }
/* CodeLine */ .chroma .cl { }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; }
/* LineHighlight */ .chroma .hl { background-color:#e5e5e5 }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#000;font-weight:bold }
/* KeywordConstant */ .chroma .kc { color:#000;font-weight:bold }
/* KeywordDeclaration */ .chroma .kd { color:#000;font-weight:bold }
/* KeywordNamespace */ .chroma .kn { color:#000;font-weight:bold }
/* KeywordPseudo */ .chroma .kp { color:#000;font-weight:bold }
/* KeywordReserved */ .chroma .kr { color:#000;font-weight:bold }
/* KeywordType */ .chroma .kt { color:#458;font-weight:bold }
/* Name */ .chroma .n { }
/* NameAttribute */ .chroma .na { color:#008080 }
/* NameBuiltin */ .chroma .nb { color:#0086b3 }
/* NameBuiltinPseudo */ .chroma .bp { color:#999 }
/* NameClass */ .chroma .nc { color:#458;font-weight:bold }
/* NameConstant */ .chroma .no { color:#008080 }
/* NameDecorator */ .chroma .nd { color:#3c5d5d;font-weight:bold }
/* NameEntity */ .chroma .ni { color:#800080 }
/* NameException */ .chroma .ne { color:#900;font-weight:bold }
/* NameFunction */ .chroma .nf { color:#900;font-weight:bold }
/* NameFunctionMagic */ .chroma .fm { }
/* NameLabel */ .chroma .nl { color:#900;font-weight:bold }
/* NameNamespace */ .chroma .nn { color:#555 }
/* NameOther */ .chroma .nx { }
/* NameProperty */ .chroma .py { }
/* NameTag */ .chroma .nt { color:#000080 }
/* NameVariable */ .chroma .nv { color:#008080 }
/* NameVariableClass */ .chroma .vc { color:#008080 }
/* NameVariableGlobal */ .chroma .vg { color:#008080 }
/* NameVariableInstance */ .chroma .vi { color:#008080 }
/* NameVariableMagic */ .chroma .vm { }
/* Literal */ .chroma .l { }
/* LiteralDate */ .chroma .ld { }
/* LiteralString */ .chroma .s { color:#d14 }
/* LiteralStringAffix */ .chroma .sa { color:#d14 }
/* LiteralStringBacktick */ .chroma .sb { color:#d14 }
/* LiteralStringChar */ .chroma .sc { color:#d14 }
/* LiteralStringDelimiter */ .chroma .dl { color:#d14 }
/* LiteralStringDoc */ .chroma .sd { color:#d14 }
/* LiteralStringDouble */ .chroma .s2 { color:#d14 }
/* LiteralStringEscape */ .chroma .se { color:#d14 }
/* LiteralStringHeredoc */ .chroma .sh { color:#d14 }
/* LiteralStringInterpol */ .chroma .si { color:#d14 }
/* LiteralStringOther */ .chroma .sx { color:#d14 }
/* LiteralStringRegex */ .chroma .sr { color:#009926 }
/* LiteralStringSingle */ .chroma .s1 { color:#d14 }
/* LiteralStringSymbol */ .chroma .ss { color:#990073 }
/* LiteralNumber */ .chroma .m { color:#099 }
/* LiteralNumberBin */ .chroma .mb { color:#099 }
/* LiteralNumberFloat */ .chroma .mf { color:#099 }
/* LiteralNumberHex */ .chroma .mh { color:#099 }
/* LiteralNumberInteger */ .chroma .mi { color:#099 }
/* LiteralNumberIntegerLong */ .chroma .il { color:#099 }
/* LiteralNumberOct */ .chroma .mo { color:#099 }
/* Operator */ .chroma .o { color:#000;font-weight:bold }
/* OperatorWord */ .chroma .ow { color:#000;font-weight:bold }
/* Punctuation */ .chroma .p { }
/* Comment */ .chroma .c { color:#998;font-style:italic }
/* CommentHashbang */ .chroma .ch { color:#998;font-style:italic }
/* CommentMultiline */ .chroma .cm { color:#998;font-style:italic }
/* CommentSingle */ .chroma .c1 { color:#998;font-style:italic }
/* CommentSpecial */ .chroma .cs { color:#999;font-weight:bold;font-style:italic }
/* CommentPreproc */ .chroma .cp { color:#999;font-weight:bold;font-style:italic }
/* CommentPreprocFile */ .chroma .cpf { color:#999;font-weight:bold;font-style:italic }
/* Generic */ .chroma .g { }
/* GenericDeleted */ .chroma .gd { color:#000;background-color:#fdd }
/* GenericEmph */ .chroma .ge { color:#000;font-style:italic }
/* GenericError */ .chroma .gr { color:#a00 }
/* GenericHeading */ .chroma .gh { color:#999 }
/* GenericInserted */ .chroma .gi { color:#000;background-color:#dfd }
/* GenericOutput */ .chroma .go { color:#888 }
/* GenericPrompt */ .chroma .gp { color:#555 }
/* GenericStrong */ .chroma .gs { font-weight:bold }
/* GenericSubheading */ .chroma .gu { color:#aaa }
/* GenericTraceback */ .chroma .gt { color:#a00 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }
/* TextWhitespace */ .chroma .w { color:#bbb }
/* Night Mode (Dracula) */
/* Background */ [data-theme="dark"] .bg { color:#f8f8f2;background-color:#282a36; }
/* PreWrapper */ [data-theme="dark"] .chroma { color:#f8f8f2;background-color:#282a36; }
/* Other */ [data-theme="dark"] .chroma .x { }
/* Error */ [data-theme="dark"] .chroma .err { }
/* CodeLine */ [data-theme="dark"] .chroma .cl { }
/* LineLink */ [data-theme="dark"] .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ [data-theme="dark"] .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ [data-theme="dark"] .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; }
/* LineHighlight */ [data-theme="dark"] .chroma .hl { background-color:#3d3f4a }
/* LineNumbersTable */ [data-theme="dark"] .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* LineNumbers */ [data-theme="dark"] .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* Line */ [data-theme="dark"] .chroma .line { display:flex; }
/* Keyword */ [data-theme="dark"] .chroma .k { color:#ff79c6 }
/* KeywordConstant */ [data-theme="dark"] .chroma .kc { color:#ff79c6 }
/* KeywordDeclaration */ [data-theme="dark"] .chroma .kd { color:#8be9fd;font-style:italic }
/* KeywordNamespace */ [data-theme="dark"] .chroma .kn { color:#ff79c6 }
/* KeywordPseudo */ [data-theme="dark"] .chroma .kp { color:#ff79c6 }
/* KeywordReserved */ [data-theme="dark"] .chroma .kr { color:#ff79c6 }
/* KeywordType */ [data-theme="dark"] .chroma .kt { color:#8be9fd }
/* Name */ [data-theme="dark"] .chroma .n { }
/* NameAttribute */ [data-theme="dark"] .chroma .na { color:#50fa7b }
/* NameBuiltin */ [data-theme="dark"] .chroma .nb { color:#8be9fd;font-style:italic }
/* NameBuiltinPseudo */ [data-theme="dark"] .chroma .bp { }
/* NameClass */ [data-theme="dark"] .chroma .nc { color:#50fa7b }
/* NameConstant */ [data-theme="dark"] .chroma .no { }
/* NameDecorator */ [data-theme="dark"] .chroma .nd { }
/* NameEntity */ [data-theme="dark"] .chroma .ni { }
/* NameException */ [data-theme="dark"] .chroma .ne { }
/* NameFunction */ [data-theme="dark"] .chroma .nf { color:#50fa7b }
/* NameFunctionMagic */ [data-theme="dark"] .chroma .fm { }
/* NameLabel */ [data-theme="dark"] .chroma .nl { color:#8be9fd;font-style:italic }
/* NameNamespace */ [data-theme="dark"] .chroma .nn { }
/* NameOther */ [data-theme="dark"] .chroma .nx { }
/* NameProperty */ [data-theme="dark"] .chroma .py { }
/* NameTag */ [data-theme="dark"] .chroma .nt { color:#ff79c6 }
/* NameVariable */ [data-theme="dark"] .chroma .nv { color:#8be9fd;font-style:italic }
/* NameVariableClass */ [data-theme="dark"] .chroma .vc { color:#8be9fd;font-style:italic }
/* NameVariableGlobal */ [data-theme="dark"] .chroma .vg { color:#8be9fd;font-style:italic }
/* NameVariableInstance */ [data-theme="dark"] .chroma .vi { color:#8be9fd;font-style:italic }
/* NameVariableMagic */ [data-theme="dark"] .chroma .vm { }
/* Literal */ [data-theme="dark"] .chroma .l { }
/* LiteralDate */ [data-theme="dark"] .chroma .ld { }
/* LiteralString */ [data-theme="dark"] .chroma .s { color:#f1fa8c }
/* LiteralStringAffix */ [data-theme="dark"] .chroma .sa { color:#f1fa8c }
/* LiteralStringBacktick */ [data-theme="dark"] .chroma .sb { color:#f1fa8c }
/* LiteralStringChar */ [data-theme="dark"] .chroma .sc { color:#f1fa8c }
/* LiteralStringDelimiter */ [data-theme="dark"] .chroma .dl { color:#f1fa8c }
/* LiteralStringDoc */ [data-theme="dark"] .chroma .sd { color:#f1fa8c }
/* LiteralStringDouble */ [data-theme="dark"] .chroma .s2 { color:#f1fa8c }
/* LiteralStringEscape */ [data-theme="dark"] .chroma .se { color:#f1fa8c }
/* LiteralStringHeredoc */ [data-theme="dark"] .chroma .sh { color:#f1fa8c }
/* LiteralStringInterpol */ [data-theme="dark"] .chroma .si { color:#f1fa8c }
/* LiteralStringOther */ [data-theme="dark"] .chroma .sx { color:#f1fa8c }
/* LiteralStringRegex */ [data-theme="dark"] .chroma .sr { color:#f1fa8c }
/* LiteralStringSingle */ [data-theme="dark"] .chroma .s1 { color:#f1fa8c }
/* LiteralStringSymbol */ [data-theme="dark"] .chroma .ss { color:#f1fa8c }
/* LiteralNumber */ [data-theme="dark"] .chroma .m { color:#bd93f9 }
/* LiteralNumberBin */ [data-theme="dark"] .chroma .mb { color:#bd93f9 }
/* LiteralNumberFloat */ [data-theme="dark"] .chroma .mf { color:#bd93f9 }
/* LiteralNumberHex */ [data-theme="dark"] .chroma .mh { color:#bd93f9 }
/* LiteralNumberInteger */ [data-theme="dark"] .chroma .mi { color:#bd93f9 }
/* LiteralNumberIntegerLong */ [data-theme="dark"] .chroma .il { color:#bd93f9 }
/* LiteralNumberOct */ [data-theme="dark"] .chroma .mo { color:#bd93f9 }
/* Operator */ [data-theme="dark"] .chroma .o { color:#ff79c6 }
/* OperatorWord */ [data-theme="dark"] .chroma .ow { color:#ff79c6 }
/* Punctuation */ [data-theme="dark"] .chroma .p { }
/* Comment */ [data-theme="dark"] .chroma .c { color:#6272a4 }
/* CommentHashbang */ [data-theme="dark"] .chroma .ch { color:#6272a4 }
/* CommentMultiline */ [data-theme="dark"] .chroma .cm { color:#6272a4 }
/* CommentSingle */ [data-theme="dark"] .chroma .c1 { color:#6272a4 }
/* CommentSpecial */ [data-theme="dark"] .chroma .cs { color:#6272a4 }
/* CommentPreproc */ [data-theme="dark"] .chroma .cp { color:#ff79c6 }
/* CommentPreprocFile */ [data-theme="dark"] .chroma .cpf { color:#ff79c6 }
/* Generic */ [data-theme="dark"] .chroma .g { }
/* GenericDeleted */ [data-theme="dark"] .chroma .gd { color:#f55 }
/* GenericEmph */ [data-theme="dark"] .chroma .ge { text-decoration:underline }
/* GenericError */ [data-theme="dark"] .chroma .gr { }
/* GenericHeading */ [data-theme="dark"] .chroma .gh { font-weight:bold }
/* GenericInserted */ [data-theme="dark"] .chroma .gi { color:#50fa7b;font-weight:bold }
/* GenericOutput */ [data-theme="dark"] .chroma .go { color:#44475a }
/* GenericPrompt */ [data-theme="dark"] .chroma .gp { }
/* Floating Tools */
/* Floating Tools */
.floating-tools {
position: fixed;
bottom: 24px;
right: 16px;
z-index: 900;
display: flex;
flex-direction: column;
gap: 9px;
align-items: center;
opacity: 1;
visibility: visible;
transition: opacity 0.2s ease, visibility 0.2s ease;
}
.floating-tools.hidden {
opacity: 0 !important;
visibility: hidden !important;
pointer-events: none !important;
}
.floating-tools a {
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
color: rgba(24, 24, 27, 0.75);
border-radius: 50%;
font-size: 18px;
cursor: pointer;
text-decoration: none;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
transition: all 0.2s ease;
}
.floating-tools a:hover {
background: rgba(255, 255, 255, 0.85);
color: rgba(24, 24, 27, 0.95);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}
[data-theme="dark"] .floating-tools a {
background: rgba(30, 41, 59, 0.6);
color: rgba(241, 245, 249, 0.75);
border-color: rgba(148, 163, 184, 0.15);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .floating-tools a:hover {
background: rgba(30, 41, 59, 0.85);
color: rgba(241, 245, 249, 0.95);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
/* ── ViewImage — Apple-style lightbox ── */
.view-image {
z-index: 2000 !important;
background: rgba(0, 0, 0, 0.92) !important;
}
/* Bottom toolbar */
.view-image-tools {
background: rgba(28, 28, 30, 0.72) !important;
-webkit-backdrop-filter: blur(20px) !important;
backdrop-filter: blur(20px) !important;
border: 1px solid rgba(255, 255, 255, 0.08) !important;
border-radius: 24px !important;
padding: 4px 8px 4px 14px !important;
max-width: 300px !important;
color: rgba(255, 255, 255, 0.9) !important;
box-shadow: none !important;
}
/* Counter */
.view-image-tools__count {
font-size: 13px;
font-weight: 500;
letter-spacing: 0.02em;
opacity: 0.7;
}
/* Buttons */
.view-image-btn {
width: 36px !important;
height: 36px !important;
border-radius: 50% !important;
background: transparent !important;
border: none !important;
color: rgba(255, 255, 255, 0.9);
transition: background 0.15s ease;
}
.view-image-btn:hover {
background: rgba(255, 255, 255, 0.12) !important;
}
.view-image-btn:active {
background: rgba(255, 255, 255, 0.2) !important;
transform: none;
}
/* Close button */
.view-image-tools .view-image-close {
margin: 0 0 0 6px !important;
}
/* Close overlay */
.view-image-close__full {
cursor: zoom-out;
}
/* Image */
.view-image-lead img {
border-radius: 4px !important;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important;
}
/* Dark mode */
[data-theme="dark"] .view-image {
background: rgba(0, 0, 0, 0.95) !important;
}
[data-theme="dark"] .view-image-tools {
background: rgba(28, 28, 30, 0.78) !important;
}
/* Mobile */
@media screen and (max-width: 768px) {
.view-image {
padding: 2% !important;
}
.view-image-tools {
max-width: calc(100% - 24px) !important;
border-radius: 24px !important;
padding: 4px 8px 4px 12px !important;
}
.view-image-btn {
width: 40px !important;
height: 40px !important;
}
}
/* ── Image Grid ── */
.img-grid {
display: grid;
gap: 4px;
margin: 0.2rem 0;
}
.img-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.img-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.img-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
/* Penetrate Markdown <p> wrappers so images become grid items */
.img-grid > p {
display: contents;
}
.img-grid .sen-image-frame {
margin: 0;
aspect-ratio: 1 / 1;
width: 100%;
max-width: 100%;
height: 100%;
overflow: hidden;
border-radius: 4px;
}
/* ══════════════════════════════════════════════
强制覆盖 - 深色模式表格样式(修复缓存问题)
══════════════════════════════════════════════ */
/* 强制深色模式表头文字颜色 */
[data-theme="dark"] .post-content table th,
[data-theme="dark"] .post-content th {
color: rgba(203, 213, 225, 0.85) !important;
border-bottom-color: rgba(148, 163, 184, 0.15) !important;
background: linear-gradient(135deg, rgba(30, 41, 59, 0.92), rgba(15, 23, 42, 0.78)) !important;
}
/* 强制深色模式单元格文字颜色 */
[data-theme="dark"] .post-content table td,
[data-theme="dark"] .post-content td {
color: rgba(203, 213, 225, 0.8) !important;
border-bottom-color: rgba(148, 163, 184, 0.08) !important;
border-right-color: rgba(148, 163, 184, 0.08) !important;
}
/* 强制深色模式表格背景 */
[data-theme="dark"] .post-content table {
background: rgba(15, 23, 42, 0.95) !important;
border-color: rgba(148, 163, 184, 0.18) !important;
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22) !important;
}
/* 强制深色模式表格所有边框 */
[data-theme="dark"] .post-content table th,
[data-theme="dark"] .post-content table td {
border: 1px solid rgba(148, 163, 184, 0.12) !important;
}
[data-theme="dark"] .post-content table th {
border-bottom: 2px solid rgba(148, 163, 184, 0.2) !important;
}
/* 强制深色模式代码样式 */
[data-theme="dark"] .post-content table code {
background: rgba(148, 163, 184, 0.12) !important;
color: rgba(203, 213, 225, 0.9) !important;
border-color: rgba(148, 163, 184, 0.15) !important;
}
/* 强制深色模式链接样式 */
[data-theme="dark"] .post-content table a {
color: var(--link-color-dark) !important;
border-bottom-color: rgba(148, 163, 184, 0.4) !important;
}
[data-theme="dark"] .post-content table a:hover {
color: var(--link-hover-color-dark) !important;
}
/* 强制深色模式斑马纹 */
[data-theme="dark"] .post-content table tbody tr:nth-child(even) {
background-color: rgba(30, 41, 59, 0.5) !important;
}
[data-theme="dark"] .post-content table tbody tr:hover {
background-color: rgba(30, 41, 59, 0.8) !important;
}
/* 强制深色模式冻结列(第一列) */
[data-theme="dark"] .post-content table thead th:first-child {
background: linear-gradient(135deg, rgba(30, 41, 59, 0.92), rgba(15, 23, 42, 0.78)) !important;
}
[data-theme="dark"] .post-content table tbody tr:nth-child(odd) td:first-child,
[data-theme="dark"] .post-content table tbody tr:nth-child(odd) th:first-child {
background: rgba(15, 23, 42, 0.95) !important;
}
[data-theme="dark"] .post-content table tbody tr:nth-child(even) td:first-child,
[data-theme="dark"] .post-content table tbody tr:nth-child(even) th:first-child {
background: rgba(30, 41, 59, 0.5) !important;
}
[data-theme="dark"] .post-content table tbody tr:hover td:first-child,
[data-theme="dark"] .post-content table tbody tr:hover th:first-child {
background: rgba(30, 41, 59, 0.8) !important;
}
/* ══════════════════════════════════════════════
深色模式滚动条样式
══════════════════════════════════════════════ */
/* 深色模式滚动条整体 */
[data-theme="dark"] ::-webkit-scrollbar {
width: 13px;
height: 13px;
background: rgba(15, 23, 42, 0.5);
}
/* 深色模式滚动条轨道 */
[data-theme="dark"] ::-webkit-scrollbar-track {
background: rgba(30, 41, 59, 0.3);
border-radius: 6px;
}
/* 深色模式滚动条滑块 */
[data-theme="dark"] ::-webkit-scrollbar-thumb {
min-height: 16px;
background-color: rgba(148, 163, 184, 0.4);
background-clip: padding-box;
border: 3px solid rgba(30, 41, 59, 0.8);
border-radius: 6px;
transition: background-color 0.2s ease;
}
/* 深色模式滚动条滑块悬停 */
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
background-color: rgba(148, 163, 184, 0.6);
}
/* 深色模式滚动条角落 */
[data-theme="dark"] ::-webkit-scrollbar-corner {
background: rgba(15, 23, 42, 0.5);
}
/* Firefox深色模式滚动条 */
[data-theme="dark"] * {
scrollbar-width: thin;
scrollbar-color: rgba(148, 163, 184, 0.4) rgba(30, 41, 59, 0.3);
}
/* ══════════════════════════════════════════════ */
/* 表格滚动条深色模式 */
[data-theme="dark"] .post-content table::-webkit-scrollbar {
height: 8px;
background: rgba(15, 23, 42, 0.3);
}
[data-theme="dark"] .post-content table::-webkit-scrollbar-thumb {
background-color: rgba(148, 163, 184, 0.3);
border: 2px solid rgba(30, 41, 59, 0.5);
border-radius: 4px;
}
[data-theme="dark"] .post-content table::-webkit-scrollbar-track {
background: rgba(30, 41, 59, 0.2);
border-radius: 4px;
}
.img-grid .sen-image-frame > img {
width: 100%;
height: 100%;
max-width: 100%;
object-fit: cover;
border-radius: 4px;
}
/* Mobile: reduce columns for smaller screens */
@media screen and (max-width: 640px) {
.img-grid.cols-3,
.img-grid.cols-4 {
grid-template-columns: repeat(2, 1fr);
}
.img-grid .sen-image-frame {
aspect-ratio: auto;
}
}
@media screen and (max-width: 400px) {
.img-grid.cols-2,
.img-grid.cols-3,
.img-grid.cols-4 {
grid-template-columns: 1fr;
}
}
/* ── Toast(Message.js / Qmsg 适配,见 assets/js/modules/toast.js)──
组件自带样式在 css/libs/message.min.css(随 style.css 打包)。
这里只做主题融合:跟随主题变量 + 暗色适配。 */
.qmsg {
border-radius: 8px;
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
}
.qmsg-content {
color: var(--text-main, #333);
font-weight: 500;
}
[data-theme="dark"] .qmsg {
background: #2a2e33;
box-shadow: 0 4px 12px rgba(0, 0, 0, .5);
}
[data-theme="dark"] .qmsg-content {
color: #d6dade;
}
[data-theme="dark"] .qmsg-close {
color: #7a828a;
}
[data-theme="dark"] .qmsg-close:hover {
color: #a8b0b8;
}
@media screen and (max-width: 480px) {
.qmsg {
padding: 8px 14px;
font-size: 12px;
}
}
/* Back to Top Button */
/* 匿名评论开关:插在 textarea 与底栏之间的独立一行(右对齐),不挤底栏 */
/* 悄悄话开关:底栏左侧(.atk-bottom-left)内、表情/预览按钮右边;
短文案 + 小 checkbox,与图标按钮同一行,移动端窄屏也不挤不换行 */
.atk-whisper-toggle {
display: inline-flex;
align-items: center;
gap: 4px;
margin-left: 10px;
font-size: 12px;
color: #9b9b9b;
cursor: pointer;
user-select: none;
-webkit-user-select: none;
white-space: nowrap;
}
.atk-whisper-toggle input {
margin: 0;
width: 13px;
height: 13px;
cursor: pointer;
accent-color: #373737;
}
.atk-whisper-toggle:hover {
color: #555;
}
[data-theme="dark"] .atk-whisper-toggle {
color: #8a8f98;
}
[data-theme="dark"] .atk-whisper-toggle:hover {
color: #c3c7cd;
}
[data-theme="dark"] .atk-whisper-toggle input {
accent-color: #d1d5db;
}
@media (max-width: 480px) {
.atk-whisper-toggle { margin-left: 8px; gap: 3px; }
}
/* 悄悄话评论:服务端已把内容从公开接口剥空,这里只画观感占位(浅灰小圆角条) */
.atk-whisper-note {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 7px 13px;
margin: 2px 0 4px;
border-radius: 9px;
background: rgba(134, 142, 150, 0.09);
color: #8a8e98;
font-size: 13px;
line-height: 1.5;
user-select: none;
-webkit-user-select: none;
}
[data-theme="dark"] .atk-whisper-note {
background: rgba(255, 255, 255, 0.06);
color: #8a8f98;
}
/* 表情面板「最近使用」:切换条里最前面的一个 tab(在「抖音」等分组左边)。
内容区与原生分组同构(.atk-grp[data-type=image],见 emoticon-recent.js),
63×63 网格、hover 底色、滚动条等排版全部继承 Artalk 原生样式,
所以这里只需要给 tab 一点点强调,不需要任何布局代码。
最近列表为空时整个 tab 不出现(由 JS 控制)。 */
.atk-editor-plug-emoticons > .atk-grp-switcher > span.atk-recent-tab {
font-weight: 600;
}
#back-to-top {
opacity: 0;
visibility: hidden;
height: 0;
width: 42px;
margin: 0;
padding: 0;
overflow: hidden;
/* Use translate3d for GPU acceleration instead of scale/translateY combo which might cause repaint */
transform: translate3d(0, 10px, 0) scale(0.8);
pointer-events: none;
border-width: 0;
transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s, height 0.3s ease, border-width 0.3s ease;
/* Explicitly tell browser to promote this layer */
will-change: opacity, transform, height;
}
/* Ensure consistent display state when active */
#back-to-top.show {
opacity: 1;
visibility: visible;
height: 42px;
width: 42px;
margin-top: 0;
transform: translate3d(0, 0, 0) scale(1);
pointer-events: auto;
border-width: 1px;
display: flex; /* Force flex display to keep icon centered */
}
#back-to-top.show:hover {
transform: translate3d(0, -3px, 0) scale(1);
}
/* GenericStrong */ [data-theme="dark"] .chroma .gs { }
/* GenericSubheading */ [data-theme="dark"] .chroma .gu { font-weight:bold }
/* GenericTraceback */ [data-theme="dark"] .chroma .gt { }
/* GenericUnderline */ [data-theme="dark"] .chroma .gl { text-decoration:underline }
/* TextWhitespace */ [data-theme="dark"] .chroma .w { }
/* ══════════════════════════════════════════════════════════════════════════
关于页 · B+C 方案(时间线 + 数据一览)
──────────────────────────────────────────────────────────────────────────
设计约束:只使用主题既有语言——618px 容器 / zql 衬线 / 8·12px 圆角 /
.section-title 大写小标题 / 黑白灰单色。不引入任何强调色。
数据由 partials/about-intro.html 在构建期从 content 实时统计。
★ 关于页文字必须显式左对齐 —— .main 上有 text-align:center,
靠继承会让整页居中。
── 字号阶梯(★ 全节唯一字号来源,不要再写裸 rem/px)──
之前每个元素各写各的 rem,实际算出 11.2 / 11.52 / 12.48 / 13.68 /
13.76 / 16.8 六七种「互不相干的小字」,视觉上就是"不统一"。
现在收敛成 4 档 + 2 个特例,所有小字只有「正文 / 标签 / 脚注」三种:
--ab-fs-title 17px 区块内小标题(衬线)
--ab-fs-body 14px 正文(衬线)
--ab-fs-label 13px 标签 · 元信息(等宽/无衬线)
--ab-fs-micro 12px 脚注 · 注脚(等宽/无衬线)
特例:--ab-fs-num 28px 数据大数字,--ab-fs-when 13px 时间线日期。
══════════════════════════════════════════════════════════════════════════ */
.about-page {
text-align: left;
/* 字号阶梯 */
--ab-fs-title: 1.0625rem; /* 17px 衬线小标题 */
--ab-fs-body: 0.875rem; /* 14px 正文 */
--ab-fs-label: 0.8125rem; /* 13px 标签/元信息 */
--ab-fs-micro: 0.75rem; /* 12px 脚注 */
--ab-fs-when: 0.8125rem; /* 13px 时间线日期 */
--ab-fs-num: 1.75rem; /* 28px 数据大字 */
/* 行高 */
--ab-lh-tight: 1.5;
--ab-lh-body: 1.85;
}
/* 区块间距统一在这里管:about-intro.html / about.html 里的分节
都用 .about-sec 包裹,不要再写内联 margin-top。 */
.about-page .about-sec { margin-top: 44px; }
.about-page .about-sec:first-child { margin-top: 0; }
/* 小节标题(section-title)本身已有 14px 下边距,紧邻区块时不用再加。
全局 .section-title 是 0.9rem(14.4px),比正文(14px)还小一点点、比标签(13px)大,
落在阶梯的缝里 —— 关于页统一压到「标签级」并加大字距,让它明显是"题头"而不是正文。 */
.about-page .section-title {
font-size: var(--ab-fs-label);
letter-spacing: 0.18em;
margin-bottom: 18px;
}
/* 移动端收紧 */
@media (max-width: 700px) {
.about-page .about-sec { margin-top: 34px; }
}
.ab-attrs { margin-top: 26px; border-top: 1px solid var(--frame-color); }
[data-theme="dark"] .ab-attrs { border-top-color: var(--frame-dark-color); }
.ab-attr {
display: flex; gap: 16px; align-items: baseline;
padding: 10px 0;
border-bottom: 1px solid var(--frame-color);
font-size: var(--ab-fs-body); line-height: var(--ab-lh-body);
}
[data-theme="dark"] .ab-attr { border-bottom-color: var(--frame-dark-color); }
.ab-attr:last-child { border-bottom: 0; }
.ab-attr .k {
flex: none; width: 64px;
font-size: var(--ab-fs-label); color: var(--sanji-color);
letter-spacing: 0.08em;
}
.ab-attr .v { color: var(--text-content-color); min-width: 0; }
[data-theme="dark"] .ab-attr .v { color: var(--text-content-dark-color); }
/* 技术栈标签:与主题 .skill-tag 同观感 */
.ab-stack { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.ab-tag {
display: inline-flex; align-items: center;
padding: 3px 11px; border-radius: 999px;
border: 1px solid rgba(148, 163, 184, 0.7);
background: rgba(255, 255, 255, 0.86);
font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
font-size: var(--ab-fs-micro); color: #374151;
letter-spacing: 0.01em;
}
[data-theme="dark"] .ab-tag {
border-color: rgba(31, 41, 55, 0.85);
background: rgba(15, 23, 42, 0.96);
color: #e5e7eb;
}
/* ── B 方案:时间线 ──
时间线紧跟在属性列表后面,需要一点上方留白把它和属性区分开 */
.ab-tl { position: relative; padding-left: 26px; margin-top: 30px; }
.ab-tl::before {
content: ''; position: absolute;
left: 5px; top: 7px; bottom: 7px;
width: 1px; background: var(--frame-color);
}
[data-theme="dark"] .ab-tl::before { background: var(--frame-dark-color); }
.ab-item { position: relative; padding-bottom: 26px; }
.ab-item:last-child { padding-bottom: 0; }
.ab-item::before {
content: ''; position: absolute;
left: -26px; top: 6px;
width: 11px; height: 11px; border-radius: 50%;
background: var(--background-color);
border: 1.5px solid #bec8d2;
box-sizing: border-box;
}
[data-theme="dark"] .ab-item::before {
background: #0f172a; border-color: #4b5563;
}
/* 当前节点:实心,用于标出"此刻" */
.ab-item.is-now::before {
background: #111827; border-color: #111827;
}
[data-theme="dark"] .ab-item.is-now::before {
background: #e5e7eb; border-color: #e5e7eb;
}
.ab-when {
font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
font-size: var(--ab-fs-when); letter-spacing: 0.06em;
color: #a8b3c0;
}
[data-theme="dark"] .ab-when { color: #6b7280; }
.ab-h {
font-family: 'zql', serif;
font-size: var(--ab-fs-title); line-height: var(--ab-lh-tight);
color: var(--text-title-color);
margin: 4px 0 6px;
}
[data-theme="dark"] .ab-h { color: var(--text-title-dark-color); }
.ab-p {
font-size: var(--ab-fs-body); line-height: var(--ab-lh-body);
color: var(--text-content-color);
margin: 0;
}
[data-theme="dark"] .ab-p { color: var(--text-content-dark-color); }
.ab-p em { font-style: normal; color: var(--sanji-color); }
/* ── C 方案:数据一览 ──
时间线结束 → 数据卡之间需要明显一档间距,否则和最后一条时间线粘在一起 */
.ab-stats {
display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
margin-top: 32px;
}
.ab-stat {
text-align: center; padding: 16px 6px;
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 12px;
}
[data-theme="dark"] .ab-stat { border-color: rgba(255, 255, 255, 0.08); }
.ab-stat .n {
display: block;
font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
font-size: var(--ab-fs-num); line-height: 1.1;
color: var(--text-title-color);
}
[data-theme="dark"] .ab-stat .n { color: var(--text-title-dark-color); }
.ab-stat .l {
display: block; margin-top: 7px;
font-size: var(--ab-fs-micro); letter-spacing: 0.1em;
color: var(--sanji-color);
}
/* 数据卡悬停:极轻的边框加深,与主题其他卡片观感一致(不加阴影跳变) */
.ab-stat { transition: border-color 0.25s ease; }
.ab-stat:hover { border-color: rgba(0, 0, 0, 0.16); }
[data-theme="dark"] .ab-stat:hover { border-color: rgba(255, 255, 255, 0.16); }
.ab-bars { margin-top: 26px; }
.ab-bar {
display: flex; align-items: center; gap: 12px;
margin-bottom: 11px; font-size: var(--ab-fs-label);
}
.ab-bar:last-child { margin-bottom: 0; }
.ab-bar .n {
flex: none; width: 58px;
font-size: var(--ab-fs-label); color: var(--erji-color);
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-theme="dark"] .ab-bar .n { color: #9ca3af; }
.ab-bar .t {
flex: 1; height: 6px; border-radius: 99px;
background: var(--bankuai-color); overflow: hidden;
}
[data-theme="dark"] .ab-bar .t { background: rgba(31, 41, 55, 0.75); }
.ab-bar .t i {
display: block; height: 100%; border-radius: 99px;
background: #bec8d2;
}
[data-theme="dark"] .ab-bar .t i { background: #6b7280; }
.ab-bar .c {
flex: none; width: 34px; text-align: right;
font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
font-size: var(--ab-fs-micro); color: #a8b3c0;
}
[data-theme="dark"] .ab-bar .c { color: #6b7280; }
.ab-footnote {
font-size: var(--ab-fs-micro); line-height: 1.75;
color: #a8b3c0;
margin: 16px 0 0;
}
[data-theme="dark"] .ab-footnote { color: #6b7280; }
/* ══════════════════════════════════════════════════════════════════════════
关于页 · 动效层(v7:纯 UIKit 官方写法,与其他页面完全同源,零自定义)
──────────────────────────────────────────────────────────────────────────
全部动画只由 UIKit scrollspy 驱动(归档页/文章页同款机制):
· 官方动画类:uk-animation-fade(0.8s 淡入)、
uk-animation-slide-{bottom,right}-medium(0.5s / 50px 滑入)
—— 官方默认时长就在打包 CSS 里:[class*=uk-animation-]{duration:.5s},
fade 0.8s。★ 这里不再覆盖时长/keyframes(v6 的自定义层已删,
之前注释里说的「主题 0.2s 压制」实测并不存在)。
· 内容组不写 repeat:首次滚进播一次,滚回时保持就位不重播(用户定案)。
本文件只保留两件 UIKit 管不了的事:分类条宽度填充、减弱动效守卫。
══════════════════════════════════════════════════════════════════════════ */
/* ── 1) 分类条:填充宽度从 0 长出 ──
UIKit 只管「淡入+位移」,宽度是它不管的,用 transition 补。
条体被 scrollspy 判定进视口后会带上 .uk-scrollspy-inview,以此放行到目标宽度;
不写 repeat → inview 类常驻,滚回时宽度保持、不重长。 */
.ab-bar .t i {
width: 0;
transition: width 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s;
}
/* scrollspy 的 target 就是 .ab-bar 自身 → inview 类落在条体上,
只此一个选择器即可(曾多写一条祖先版 .uk-scrollspy-inview .ab-bar,永不匹配) */
.ab-bar.uk-scrollspy-inview .t i {
width: var(--ab-bar-w, 0%);
}
/* ── 2) 无障碍:尊重系统「减弱动态效果」──
scrollspy 默认 hidden:true,会用**内联** visibility:hidden 把未进视口的
target 藏起来(注意是打在 target 指向的子元素上)。开了「减弱动效」的用户
若遇到观察器异常就会看到空白,所以这里一律放行可见 + 取消动画。
★ !important 必需 —— 对手是内联样式。 */
@media (prefers-reduced-motion: reduce) {
/* ★ 必须同时覆盖「带 uk-scrollspy 的元素本身」和它的后代:
scrollspy 把内联 visibility:hidden 打在 **target 指向的元素**上。
当 target 就是元素自身(如 .section-title 自己写 cls:)时,它自己中招;
当 target 是子元素(如 target: .ab-attr)时,子元素中招。
只写 `[uk-scrollspy] *` 会漏掉前一种情况 → 分节标题在 reduce 下空白。
两行都要有。 */
.about-page [uk-scrollspy],
.about-page [uk-scrollspy] *,
.about-page .uk-animation-fade,
.about-page .uk-animation-slide-bottom-medium,
.about-page .uk-animation-slide-right-medium,
.about-page .uk-animation-slide-top-medium,
.about-page .uk-animation-slide-left-medium,
.featc-item {
visibility: visible !important;
opacity: 1 !important;
transform: none !important;
animation: none !important;
}
.ab-bar .t i { width: var(--ab-bar-w, 0%); transition: none; }
}
/* ── 关于页响应式 ── */
@media (max-width: 700px) {
.ab-attr { gap: 12px; }
.ab-attr .k { width: 54px; }
.ab-stats { gap: 8px; }
.ab-stat { padding: 13px 4px; }
.ab-stat .n { font-size: 1.4rem; }
.ab-bar .n { width: 48px; }
}
/* Selection Popup (Quote Button) */
#selection-popup {
position: fixed;
display: none;
background: rgba(30, 30, 30, 0.9);
color: #fff;
padding: 8px 16px;
border-radius: 8px;
font-size: 14px;
cursor: pointer;
z-index: 2147483647;
transform: translate(-50%, -100%);
pointer-events: auto;
/* Removed backdrop-filter for performance */
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
transition: opacity 0.2s, transform 0.2s;
font-weight: 500;
line-height: 1.4;
user-select: none;
-webkit-user-select: none;
align-items: center;
gap: 6px;
white-space: nowrap;
will-change: transform, opacity;
animation: popIn 0.2s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
@keyframes popIn {
0% { transform: translate(-50%, -80%) scale(0.9); opacity: 0; }
100% { transform: translate(-50%, -100%) scale(1); opacity: 1; }
}
#selection-popup i {
font-size: 16px;
}
#selection-popup::after {
content: '';
position: absolute;
top: 100%;
left: 50%;
margin-left: -6px;
border-width: 6px;
border-style: solid;
border-color: rgba(30, 30, 30, 0.9) transparent transparent transparent;
}
#selection-popup:hover {
transform: translate(-50%, -110%) scale(1.05);
background: #000;
box-shadow: 0 6px 16px rgba(0,0,0,0.25);
}
[data-theme="dark"] #selection-popup {
background: rgba(255, 255, 255, 0.95);
color: #000;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
[data-theme="dark"] #selection-popup::after {
border-color: rgba(255, 255, 255, 0.95) transparent transparent transparent;
}
[data-theme="dark"] #selection-popup:hover {
background: #fff;
}
/* Category Page Styles */
.category-container {
max-width: 100%;
}
.category-header {
text-align: left;
margin-bottom: 10px;
padding-bottom: 20px;
border-bottom: 1px dashed var(--frame-color);
}
.cat-title {
font-size: 2.2rem;
font-weight: 700;
margin-bottom: 10px;
color: var(--text-title-color);
}
.cat-meta {
color: var(--text-highlight-color);
font-size: 0.95rem;
}
.year-group {
margin-bottom: 40px;
}
.year-title {
font-size: 1.8rem;
font-weight: bold;
margin-bottom: 20px;
color: var(--text-title-color);
position: relative;
padding-left: 15px;
border-left: 4px solid var(--text-title-color);
}
[data-theme="dark"] .year-title {
border-left-color: var(--text-title-dark-color);
}
.year-list {
list-style: none;
padding: 0;
}
.year-item {
display: flex;
align-items: center;
padding: 12px 15px;
border-bottom: 1px solid var(--frame-color);
transition: all 0.3s ease;
border-radius: 6px;
}
.year-item:hover {
background-color: rgba(0, 0, 0, 0.03);
padding-left: 25px;
}
[data-theme="dark"] .year-item:hover {
background-color: rgba(255, 255, 255, 0.03);
}
.item-date {
font-family: 'Monaco', 'Consolas', monospace;
color: var(--text-highlight-color);
margin-right: 20px;
font-size: 0.9rem;
min-width: 50px;
}
.item-link {
color: var(--text-content-color);
text-decoration: none;
font-size: 1.05rem;
font-weight: 500;
flex-grow: 1;
}
[data-theme="dark"] .item-link {
color: var(--text-content-dark-color);
}
.item-link:hover {
color: var(--link-hover-color-light);
}
[data-theme="dark"] .item-link:hover {
color: var(--link-hover-color-dark);
}
/* Category Page Dark Mode Fixes */
[data-theme="dark"] .category-header {
border-bottom-color: var(--frame-dark-color);
}
[data-theme="dark"] .cat-title {
color: var(--text-title-dark-color);
}
[data-theme="dark"] .cat-meta {
color: #9ca3af;
}
[data-theme="dark"] .year-title {
color: var(--text-title-dark-color);
}
[data-theme="dark"] .year-item {
border-bottom-color: var(--frame-dark-color);
}
[data-theme="dark"] .item-date {
color: #9ca3af;
}
/* ==========================================================================
Misc Overrides
========================================================================== */
[data-theme="dark"] .uk-divider-icon {
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%236b7280%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%3C%2Fsvg%3E");
}
[data-theme="dark"] .uk-divider-icon::after,
[data-theme="dark"] .uk-divider-icon::before {
border-bottom-color: #374151;
}
/* ==========================================================================
Artalk Comment System Optimization
========================================================================== */
/* --- Base Styles (Light Mode) --- */
.artalk {
margin-top: 20px;
--at-color-main: #666 !important;
--at-color-pink: var(--text-highlight-color) !important;
--at-color-light: var(--text-highlight-color) !important;
--at-color-meta: #999 !important;
--at-color-border: #DDD !important;
--at-color-bg-grey: #f9f9f9 !important;
}
/* Loading Skeleton */
.atk-loading-placeholder {
padding: 20px 0;
}
.atk-loading-item {
display: flex;
margin-bottom: 20px;
padding: 10px 0;
/* border-bottom: 1px dashed var(--at-color-border); */ /* Optional */
}
.atk-loading-avatar {
width: 32px;
height: 32px;
border-radius: 50%;
background-color: #f2f2f2;
margin-right: 15px;
margin-top: 5px;
flex-shrink: 0;
}
.atk-loading-content {
flex: 1;
}
.atk-loading-line {
height: 10px;
background-color: #f2f2f2;
border-radius: 4px;
margin-bottom: 8px;
}
.atk-loading-line.width-name { width: 100px; height: 12px; margin-bottom: 12px; }
.atk-loading-line.width-80 { width: 80%; }
.atk-loading-line.width-60 { width: 60%; }
.atk-loading-line.width-40 { width: 40%; }
/* Shimmer Effect */
@keyframes atk-skeleton-shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
.atk-loading-avatar, .atk-loading-line {
background: linear-gradient(90deg, #f0f0f0 25%, #f8f8f8 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: atk-skeleton-shimmer 1.5s infinite;
}
/* Dark Mode Skeleton */
[data-theme="dark"] .atk-loading-avatar,
[data-theme="dark"] .atk-loading-line {
background: linear-gradient(90deg, #2a2a2a 25%, #333 50%, #2a2a2a 75%);
background-size: 200% 100%;
}
/* Layout & Spacing */
.atk-comment { padding: 10px 0 !important; }
.atk-list-read-more { padding-bottom: 0 !important; }
.artalk > .atk-list > .atk-list-header { display: none !important; }
.artalk > .atk-list > .atk-list-footer { bottom: auto !important; }
.atk-main { margin-left: 34px !important; }
.atk-bottom { padding: 5px 10px 10px 5px !important; }
/* 底栏右侧(人机验证 + 发送按钮)换行修正:
移动端窄屏时右侧组会 flex-wrap 到第二行,space-between 对单元素行不生效,
整组会挤在左边、右侧留大片空白(iPhone SE / 16 Pro 实测)。
margin-left:auto 单行时与 space-between 等价(仍靠右),换行时把整组推到右边,
与桌面端「按钮在右下」的观感一致。 */
.atk-main-editor > .atk-bottom > .atk-item:last-child { margin-left: auto; }
/* 小屏(≤480,含 iPhone SE 375):底栏压进一行 —— 图标+悄悄话靠左、验证+发送靠右。
各元素收一点内边距/间距(375px 下自然宽度 324 vs 可用 316,只差一点就溢出换行)。
真放不下(如人机验证失败的长文案)仍按上面的规则优雅换行右对齐。 */
@media (max-width: 480px) {
.atk-main-editor > .atk-bottom .atk-plug-btn { padding: 0 8px; }
.atk-main-editor > .atk-bottom .atk-plug-btn:not(:last-child) { margin-right: 3px; }
.atk-whisper-toggle { margin-left: 6px; }
/* 提高特异性压过 human.js 动态注入的 @media(max-width:640px) 规则 */
.atk-main-editor .atk-human-tf { padding: 0 6px; gap: 5px; margin-right: 5px; }
.atk-main-editor > .atk-bottom .atk-send-btn { padding: 0 10px !important; }
}
.atk-comment-children > .atk-comment-wrap { margin-top: 6px !important; }
.atk-comment-children > .atk-comment-wrap > .atk-comment { padding: 0 !important; margin: auto; }
.atk-comment .atk-height-limit:after { margin-bottom: 20px; }
/* Avatar */
.atk-avatar img {
border-radius: 50% !important;
transition: transform 0.4s ease, box-shadow 0.4s ease !important;
box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
border: none !important; /* 去除边框 */
}
.atk-avatar img:hover {
transform: rotate(360deg) scale(1.1) !important;
box-shadow: 0 4px 8px rgba(0,0,0,0.15) !important;
}
.atk-comment > .atk-avatar img {
width: 32px !important; /* 从 32px 增加到 40px */
height: 32px !important;
/* margin-top: 4px; */
margin-right: 6px!important;
}
/* Content & Typography */
.atk-content { line-height: 1.6 !important; }
.atk-content p { font-size: 1rem !important; color: var(--text-content-color) !important; }
.atk-item.atk-nick, .atk-nick { color: var(--text-title-color) !important; font-weight: 700 !important; }
.atk-header .atk-nick { font-weight: normal !important; }
.atk-item.atk-nick a { color: var(--text-title-color) !important; }
.atk-ua { color: #999 !important; background: var(--frame-color) !important; }
.atk-ua-wrap { font-size: 11px; }
.atk-text { color: #999 !important; }
.atk-list-no-comment, .atk-copyright, .atk-copyright a { color: #999 !important; }
.atk-pinned-badge { background: #999 !important; }
/* Editor */
.atk-main-editor {
position: relative;
overflow: hidden;
background: var(--at-color-bg) !important;
border: 1px solid var(--at-color-border) !important;
border-radius: 6px;
margin-bottom: 10px;
}
.atk-textarea { min-height: 70px !important; padding: 10px !important; color: var(--text-content-color) !important; background: transparent !important; }
.atk-main-editor > .atk-header { padding: 10px 5px 0 !important; }
.atk-main-editor > .atk-plug-panel-wrap { border-top: 0.5px solid var(--at-color-border) !important; }
.atk-plug-panel-wrap { height: 110px !important; }
/* Light Mode Input Fields */
.artalk .atk-main-editor input.atk-nick,
.artalk .atk-main-editor input.atk-email,
.artalk .atk-main-editor input.atk-link {
color: var(--text-content-color) !important;
}
/* Buttons & Badges (Light Mode) */
.atk-send-btn {
padding: 0 12px !important;
min-width: 60px !important;
background-color: var(--background-dark-color) !important; /* 实心背景 */
color: #fff !important; /* 白色文字 */
border: none !important;
border-radius: 4px !important;
font-size: 13px !important;
transition: all 0.3s ease !important;
}
.atk-send-btn:hover {
opacity: 0.9;
/* transform: translateY(-1px); */
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
/* 评论徽章(博主/置顶等)的尺寸与配色统一由 layouts/partials/artalk.html 里的
.atk-cmt-badge 规则管理。这里保留兼容但不再强制 padding/font-size,避免
!important 覆盖导致博主/置顶徽章比其他徽章高 2px、宽 2px。 */
.atk-pinned-badge {
border-radius: 3px;
}
.atk-badge {
border-radius: 3px;
}
/* Emoticons & Images */
.atk-content img {
max-height: 1.25rem !important; /* 稍微调小一点,使其更贴合文字 */
vertical-align: sub !important; /* 改为 sub 对齐,通常比 text-bottom 更自然 */
margin: 0 1px !important; /* 减小间距 */
transition: transform 0.2s ease !important;
display: inline !important; /* 强制行内显示,防止换行 */
width: auto !important; /* 防止被拉伸 */
border: none !important; /* 去除边框 */
box-shadow: none !important; /* 去除阴影 */
background: transparent !important; /* 去除背景 */
}
.atk-content img:hover {
transform: scale(1.2) !important;
}
.atk-comment > .atk-main > .atk-body > .atk-content img {
/* 大图样式保持不变,但要区分开 */
display: inline-block; /* 默认大图也是行内块,除非特别大 */
}
/* 专门针对大图的覆盖样式(通过 JS 或特定类名判断通常较难,这里假设单独的 img 标签可能是大图,但 Artalk 结构统一,主要靠 max-height 控制) */
/* 更好的策略是:默认所有 img 都是小表情样式。如果是真正的图片附件,Artalk 通常会有特定包裹或类名,或者我们只能通过 CSS 区分 */
/* 修正:Artalk 的表情通常有 atk-emoticon 属性,或者是在 .atk-content 内部的 img */
/* 为了防止误伤大图,我们可以利用 Artalk 的结构特性 */
.atk-content .atk-emoticon {
display: inline !important; /* 关键:防止换行 */
height: 1.25rem !important;
max-height: 1.25rem !important;
margin: 0 1px !important;
vertical-align: sub !important;
box-shadow: none !important;
border-radius: 0 !important;
width: auto !important;
}
/* 针对非表情的大图(如果 Artalk 没有给表情加 atk-emoticon 类,这个可能会有冲突,但通常会有) */
/* 如果 img 标签有 alt 且 src 包含 emoticons 路径,通常是表情。这里主要依靠 max-height 限制 */
img[atk-emoticon] {
max-height: 20px !important;
display: inline !important;
vertical-align: sub !important;
}
.atk-editor-plug-emoticons > .atk-grp-wrap > .atk-grp[data-type=image] > .atk-item { height: 32px !important; width: 32px !important; }
.atk-editor-plug-emoticons > .atk-grp-wrap > .atk-grp > .atk-item { font-size: 24px !important; padding: 0 !important; }
/* Blockquote */
.atk-content blockquote {
margin: 10px 0 10px 0;
padding: 12px 16px;
background-color: #f8f9fa; /* 更清爽的浅灰背景 */
border-left: 4px solid var(--text-highlight-color);
border-radius: 4px;
color: #555; /* 深灰文字,提升阅读体验 */
font-size: 0.95rem;
font-style: normal;
line-height: 1.6;
position: relative;
transition: all 0.3s ease;
box-shadow: 0 1px 2px rgba(0,0,0,0.05); /* 轻微阴影增加层次 */
}
/* 引用块内的图标装饰 (可选) */
.atk-content blockquote::before {
content: "\201C"; /* 双引号 */
font-family: Georgia, serif;
font-size: 2rem;
position: absolute;
top: -5px;
right: 10px;
color: rgba(0,0,0,0.05);
pointer-events: none;
}
.atk-content blockquote + p { margin-top: 8px !important; }
.atk-content blockquote p {
margin: 0;
color: inherit !important;
font-size: inherit !important;
line-height: inherit !important;
}
/* Code */
.artalk code {
border: 1px solid #ffbe98 !important;
border-radius: 4px !important;
background: transparent !important;
margin: 0 4px !important;
}
/* Notifications */
.atk-notify.atk-fade-in { background: #666 !important; margin-bottom: 6px; }
/* Emoji Switcher */
.atk-grp-switcher span { color: var(--text-content-color) !important; }
/* Loading State (Light Mode) */
.atk-loading {
background: rgba(255, 255, 255, 0.8) !important;
box-shadow: none !important; /* 去除阴影,更简洁 */
border-radius: 8px !important;
backdrop-filter: none;
-webkit-backdrop-filter: none;
/* display: flex !important; <-- 移除这个强制显示 */
align-items: center;
justify-content: center;
min-height: 100px; /* 保证有足够的高度显示 loading */
}
/* 重新设计 Loading 动画圆圈 */
.atk-loading-spinner {
width: 40px !important;
height: 40px !important;
}
.atk-loading-spinner svg {
animation: atk-rotate 1.5s linear infinite !important;
}
.atk-loading-spinner svg circle {
stroke: var(--text-highlight-color) !important;
stroke-width: 3px !important;
stroke-dasharray: 100 !important;
stroke-dashoffset: 50 !important;
fill: transparent !important;
stroke-linecap: round !important;
animation: atk-dash 1.5s ease-in-out infinite !important;
}
@keyframes atk-rotate {
100% { transform: rotate(360deg); }
}
@keyframes atk-dash {
0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
}
/* --- Dark Mode Overrides --- */
/* --- Dark Mode Overrides (Fixed Syntax) --- */
[data-theme="dark"] .artalk {
--at-color-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0), #242021) !important;
--at-color-bg: #1A1718 !important;
--at-color-border: #332D2F !important;
--at-color-meta: #666 !important;
--at-color-bg-grey: #332D2E !important;
--at-color-grey: #747474 !important;
}
[data-theme="dark"] .artalk,
[data-theme="dark"] .atk-layer-wrap,
[data-theme="dark"] .atk-content,
[data-theme="dark"] .atk-header,
[data-theme="dark"] .atk-content p,
[data-theme="dark"] .pinglun {
color: var(--text-content-dark-color) !important;
}
[data-theme="dark"] .atk-item.atk-nick,
[data-theme="dark"] .atk-header .atk-nick,
[data-theme="dark"] .atk-item.atk-nick a {
color: var(--text-title-dark-color) !important;
}
[data-theme="dark"] .atk-main-editor {
background: transparent !important;
border: 1px solid var(--frame-dark-color) !important;
}
[data-theme="dark"] .atk-textarea {
color: var(--text-content-dark-color) !important;
background: transparent !important;
}
[data-theme="dark"] .artalk .atk-main-editor input.atk-nick,
[data-theme="dark"] .artalk .atk-main-editor input.atk-email,
[data-theme="dark"] .artalk .atk-main-editor input.atk-link {
color: var(--text-content-dark-color) !important;
}
[data-theme="dark"] .atk-ua {
color: #666 !important;
background: var(--background-dark-color) !important;
}
[data-theme="dark"] .atk-text,
[data-theme="dark"] .atk-list-no-comment,
[data-theme="dark"] .atk-copyright,
[data-theme="dark"] .atk-copyright a,
[data-theme="dark"] .atk-comment .atk-main .atk-footer .atk-actions span:hover {
color: #666 !important;
}
[data-theme="dark"] .atk-pinned-badge {
color: #e5e5e5 !important;
background: #332D2F !important; /* 与深色边框呼应 */
}
[data-theme="dark"] .atk-badge {
color: #e5e5e5 !important;
background: #444 !important;
}
[data-theme="dark"] .atk-reply-to {
border-left: 3px solid #242021 !important;
}
[data-theme="dark"] .atk-send-btn {
background: var(--date_text_color) !important; /* 深色实心背景 */
color: #e5e5e5 !important;
border: 1px solid rgba(255,255,255,0.1) !important;
}
[data-theme="dark"] .atk-send-btn:hover {
background: #444 !important;
color: #fff !important;
}
[data-theme="dark"] .atk-main-editor > .atk-bottom .atk-state-btn {
background: var(--background-dark-color) !important;
}
[data-theme="dark"] .atk-main-editor > .atk-bottom .atk-state-btn .atk-text-wrap {
color: #666;
}
/* Blockquote Dark Mode */
[data-theme="dark"] .atk-content blockquote {
background-color: #252526; /* 更深的背景 */
border-left-color: #444; /* 边框颜色与主题呼应 */
color: #b0b0b0; /* 柔和的灰白文字 */
box-shadow: none; /* 暗色模式去除阴影或减弱 */
}
[data-theme="dark"] .atk-content blockquote::before {
color: rgba(255,255,255,0.05); /* 暗色模式下的装饰引号 */
}
/* Emoji Switcher Dark Mode */
[data-theme="dark"] .atk-grp-switcher span {
color: var(--text-content-dark-color) !important;
}
/* Loading State (Dark Mode) */
[data-theme="dark"] .atk-loading {
background: rgba(30, 30, 30, 0.8) !important; /* 与白昼模式保持一致的透明度 */
box-shadow: none !important;
color: #e5e5e5 !important;
}
[data-theme="dark"] .atk-loading-spinner svg circle {
stroke: #e5e5e5 !important;
opacity: 0.8;
}
/* --- Global Theme Transition --- */
body,
.main,
body,
.main,
.header,
.footer,
.post-content,
.post-title,
.atk-main-editor,
.atk-textarea,
.atk-content,
.atk-content p,
.atk-item.atk-nick,
.atk-list-no-comment,
.atk-copyright,
.atk-send-btn,
.atk-loading,
.atk-layer-wrap,
.atk-comment .atk-main .atk-footer .atk-actions span,
.atk-ua,
.atk-grp-switcher span,
.atk-plug-panel-wrap,
.atk-loading-spinner svg circle,
.atk-content blockquote,
.floating-tools a,
.meta,
.meta-item,
hr,
[data-theme] {
/* Smoother, slightly longer transition for background/color/shadow */
transition: background-color 0.5s cubic-bezier(0.4, 0, 0.2, 1),
color 0.5s cubic-bezier(0.4, 0, 0.2, 1),
border-color 0.5s cubic-bezier(0.4, 0, 0.2, 1),
fill 0.5s cubic-bezier(0.4, 0, 0.2, 1),
opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
/* --- Transition Effects (Deprecated old block) --- */
/* .artalk, ... (Old selectors removed to avoid conflict) */
/* --- Force Light Mode Overrides (Fix for Day Mode visibility) --- */
/* Increasing specificity to override dark mode media query */
[data-theme="light"] .artalk,
[data-theme="light"] .atk-layer-wrap,
[data-theme="light"] .atk-content,
[data-theme="light"] .atk-header,
[data-theme="light"] .atk-content p,
[data-theme="light"] .pinglun,
html[data-theme="light"] .atk-item.atk-nick,
html[data-theme="light"] .atk-item.atk-nick a,
html[data-theme="light"] .atk-header .atk-nick,
html[data-theme="light"] .atk-main-editor input.atk-nick,
html[data-theme="light"] .atk-main-editor input.atk-email,
html[data-theme="light"] .atk-main-editor input.atk-link {
color: var(--text-content-color) !important;
}
/* Force Blockquote Light Mode */
html[data-theme="light"] .atk-content blockquote {
color: #555 !important;
background-color: #f8f9fa !important;
border-left-color: var(--text-highlight-color) !important;
}
html[data-theme="light"] .atk-content blockquote p {
color: #555 !important;
}
/* Force Loading Spinner Light Mode */
html[data-theme="light"] .atk-loading-spinner svg circle {
stroke: var(--text-highlight-color) !important;
opacity: 1 !important;
}
/* 修复 Artalk 加载完成后 loading 不消失的问题 */
/* 当 Artalk 加载完成后,通常会移除 atk-loading 类,或者添加 hidden 类 */
/* 强制 .atk-loading 只有在确实需要显示时才显示 */
.atk-loading {
display: none !important; /* 默认隐藏 */
}
/* 只有当它作为直接子元素且需要显示时才显示(Artalk 内部逻辑控制) */
/* 通常 Artalk 会在加载时插入这个元素。如果它一直显示,可能是 display: flex !important 覆盖了 Artalk 的隐藏逻辑 */
/* 我们需要找到一个更精确的选择器,或者去掉 !important */
/* 尝试移除 display: flex !important,改用更温和的方式 */
.artalk.atk-loading-wrap .atk-loading {
display: flex !important; /* 仅在父容器有 loading 状态时显示 */
}
.artalk .atk-loading {
/* 恢复默认行为,让 JS 控制显示隐藏 */
display: flex;
visibility: visible;
opacity: 1;
transition: opacity 0.3s ease, visibility 0.3s ease;
}
/* 当 Artalk 移除 loading 状态时(通常是移除元素或添加隐藏类) */
.atk-loading.atk-fade-out {
opacity: 0 !important;
visibility: hidden !important;
pointer-events: none !important;
}
.artalk.hidden { display: none; }
/* Search Modal Styles */
.search-modal {
position: fixed;
z-index: 1000;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.28);
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: opacity 0.28s ease, visibility 0.28s ease;
}
.search-modal.show {
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.search-modal-content {
background: rgba(255, 255, 255, 0.94);
margin: auto;
padding: 24px;
border: 1px solid rgba(0, 0, 0, 0.06);
width: 86%;
max-width: 540px;
border-radius: 14px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
opacity: 0;
transform: translateY(18px) scale(0.97);
transition: opacity 0.28s 0.04s ease, transform 0.32s 0.04s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.search-modal.show .search-modal-content {
opacity: 1;
transform: translateY(0) scale(1);
}
.search-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
}
.search-header h3 {
margin: 0;
font-size: 1.2rem;
color: #333;
}
.close-search {
color: #aaa;
font-size: 28px;
font-weight: bold;
cursor: pointer;
line-height: 1;
}
.close-search:hover,
.close-search:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
.search-input-wrapper {
display: flex;
align-items: center;
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 10px;
margin-bottom: 16px;
padding: 5px 10px;
background: rgba(0, 0, 0, 0.025);
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.search-input-wrapper:focus-within {
border-color: rgba(0, 0, 0, 0.18);
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.04);
}
.search-input-wrapper input {
flex: 1;
border: none;
background: transparent;
padding: 10px;
font-size: 16px;
outline: none;
}
.search-input-wrapper button {
background: none;
border: none;
cursor: pointer;
color: #666;
padding: 0 10px;
}
.search-results {
max-height: 400px;
overflow-y: auto;
}
.search-result-item {
padding: 14px 16px;
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
cursor: pointer;
transition: background 0.18s ease;
}
.search-result-item:last-child {
border-bottom: none;
}
.search-result-item:hover,
.search-result-item:focus-visible {
background: rgba(0, 0, 0, 0.04);
}
.search-result-title {
font-size: 15px;
font-weight: 600;
margin-bottom: 4px;
display: block;
color: var(--text-content-color, #24292e);
}
.search-result-date {
font-size: 12px;
color: #999;
margin-bottom: 4px;
display: block;
}
.search-result-summary {
font-size: 14px;
color: #666;
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.search-tip {
text-align: center;
color: #999;
padding: 20px;
}
/* Dark Mode Adaptation */
[data-theme="dark"] .search-modal {
background: rgba(0, 0, 0, 0.48);
}
[data-theme="dark"] .search-modal-content {
background: rgba(30, 33, 40, 0.94);
border-color: rgba(255, 255, 255, 0.08);
color: #e0e0e0;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .search-header {
border-bottom-color: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .search-header h3 {
color: #e5e7eb;
}
[data-theme="dark"] .close-search {
color: #888;
}
[data-theme="dark"] .search-result-item {
border-bottom-color: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .search-result-title {
color: #e5e7eb;
}
[data-theme="dark"] .search-result-summary {
color: #999;
}
[data-theme="dark"] .search-input-wrapper input {
background: rgba(255, 255, 255, 0.06);
border-color: rgba(255, 255, 255, 0.1);
color: #e0e0e0;
}
[data-theme="dark"] .search-tip {
color: #666;
}
[data-theme="dark"] .search-header {
border-bottom-color: #444;
}
[data-theme="dark"] .search-header h3 {
color: #e0e0e0;
}
[data-theme="dark"] .close-search {
color: #888;
}
[data-theme="dark"] .close-search:hover {
color: #fff;
}
[data-theme="dark"] .search-input-wrapper {
background: rgba(255, 255, 255, 0.04);
border-color: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .search-input-wrapper:focus-within {
border-color: rgba(255, 255, 255, 0.16);
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .search-input-wrapper button {
color: #aaa;
}
[data-theme="dark"] .search-result-item {
border-bottom-color: #444;
}
[data-theme="dark"] .search-result-item:hover {
background-color: #383838;
}
[data-theme="dark"] .search-result-title {
color: #e0e0e0;
}
[data-theme="dark"] .search-result-summary {
color: #aaa;
}
/* Inline Search Styles */
.searchable-header-container {
position: relative;
margin-top: 0px;
height: 13px;
display: flex;
align-items: center;
}
.section-header.normal-mode {
cursor: pointer;
transition: opacity 0.3s ease;
margin: 0;
user-select: none;
line-height: 1;
}
.section-header.normal-mode:hover {
opacity: 0.7;
}
/* Album / Light and Shadow Page Styles - Waterfall Flow Refined */
.album-content {
column-count: 4;
column-gap: 5px; /* Tighter gap */
margin-top: 20px;
}
.album-item {
position: relative;
width: 100%;
margin-bottom: 5px; /* Tighter vertical gap */
break-inside: avoid;
border-radius: 2px; /* Sharper corners */
background: #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
overflow: hidden;
backface-visibility: hidden;
opacity: 0; /* Start hidden for fade-in */
animation: fadeIn 0.6s ease forwards; /* Fade in animation */
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.album-img-box {
width: 100%;
position: relative;
font-size: 0;
}
.album-img-box img {
width: 100%;
height: auto;
display: block;
transition: transform 0.5s ease;
}
.album-item:hover .album-img-box img {
transform: scale(1.05); /* Subtler zoom */
}
/* Date Badge - Top Left */
.album-date-badge {
position: absolute;
top: 5px;
left: 5px;
background: rgba(0, 0, 0, 0.3);
backdrop-filter: blur(2px);
color: rgba(255, 255, 255, 0.9);
padding: 2px 6px;
border-radius: 2px;
font-size: 0.7rem;
pointer-events: none;
z-index: 2;
text-shadow: 0 1px 1px rgba(0,0,0,0.3);
}
/* Title Info - Bottom Overlay */
.album-info {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 30px 8px 8px;
background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 100%);
color: #fff;
opacity: 0; /* Default hidden */
transform: translateY(0); /* No movement, just fade */
transition: opacity 0.3s ease;
display: flex;
flex-direction: column;
justify-content: flex-end;
pointer-events: none;
}
.album-item:hover .album-info {
opacity: 1;
}
.album-title {
font-size: 0.85rem;
font-weight: 400;
text-shadow: 0 1px 2px rgba(0,0,0,0.8);
margin: 0;
line-height: 1.2;
}
/* Mobile Visibility Utilities */
.mobile-visible-only {
display: none !important;
}
@media (max-width: 768px) {
.mobile-visible-only {
display: block !important;
}
}
/* Dark Mode Adjustments */
[data-theme="dark"] .album-item {
background: #1a1a1a;
}
/* Responsive Adjustments */
@media (max-width: 1200px) {
.album-content {
column-count: 3;
}
}
@media (max-width: 768px) {
.album-content {
column-count: 2;
column-gap: 4px;
}
.album-item {
margin-bottom: 4px;
}
.album-info {
opacity: 1; /* Always show text on mobile */
background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 100%);
padding: 20px 6px 6px;
}
.album-title {
font-size: 0.8rem;
}
.album-date-badge {
top: 4px;
left: 4px;
font-size: 0.65rem;
padding: 1px 4px;
}
/* Hide specific elements on mobile */
.mobile-hidden {
display: none !important;
}
}
/* Link Card - Minimal Black/White Style */
a.link-card {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 16px;
margin: 1rem 0;
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 12px;
background: rgba(255, 255, 255, 0.85);
text-decoration: none !important;
color: #1a1a1a;
font-size: 14px;
line-height: 1.5;
max-width: 100%;
transition: all 0.25s ease;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
a.link-card:hover {
border-color: rgba(0, 0, 0, 0.15);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
transform: translateY(-2px);
text-decoration: none !important;
}
a.link-card .link-card-icon {
width: 28px;
height: 28px;
border-radius: 8px;
flex-shrink: 0;
object-fit: cover;
background: #f5f5f5;
padding: 4px;
transition: all 0.25s ease;
}
a.link-card:hover .link-card-icon {
background: #eee;
}
a.link-card .link-card-body {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
a.link-card .link-card-title {
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 14px;
color: #1a1a1a;
}
a.link-card .link-card-url {
font-size: 11px;
color: #666;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-family: -apple-system, BlinkMacSystemFont, 'SF Mono', Monaco, monospace;
}
a.link-card .link-card-arrow {
flex-shrink: 0;
color: #999;
font-size: 14px;
transition: all 0.25s ease;
}
a.link-card:hover .link-card-arrow {
color: #333;
transform: translateX(2px);
}
[data-theme="dark"] a.link-card {
border-color: rgba(255, 255, 255, 0.08);
background: rgba(30, 30, 30, 0.85);
color: #e5e5e5;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] a.link-card:hover {
border-color: rgba(255, 255, 255, 0.15);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] a.link-card .link-card-icon {
background: #2a2a2a;
}
[data-theme="dark"] a.link-card:hover .link-card-icon {
background: #333;
}
[data-theme="dark"] a.link-card .link-card-title {
color: #e5e5e5;
}
[data-theme="dark"] a.link-card .link-card-url {
color: #888;
}
[data-theme="dark"] a.link-card .link-card-arrow {
color: #666;
}
[data-theme="dark"] a.link-card:hover .link-card-arrow {
color: #ccc;
}
/* Reward System */
.reward-container {
text-align: center;
margin: 0px auto;
position: relative;
z-index: 10;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
clear: both;
}
.reward-btn {
background: transparent;
color: #444;
border: 1px solid #ccc;
padding: 2px 20px;
border-radius: 50px;
font-size: 1rem;
cursor: pointer;
transition: all 0.3s ease;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
box-shadow: none;
font-weight: 500;
margin-left: 0;
}
.reward-btn:hover {
border-color: #000;
color: #000;
background: rgba(0,0,0,0.03);
transform: translateY(-1px);
}
[data-theme='dark'] .reward-btn {
border-color: rgba(255,255,255,0.3);
color: #ccc;
}
[data-theme='dark'] .reward-btn:hover {
border-color: #fff;
color: #fff;
background: rgba(255,255,255,0.08);
}
.reward-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* background: rgba(0,0,0,0.6); */
z-index: 9999;
display: flex;
justify-content: center;
align-items: center;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}
.reward-modal.show {
opacity: 1;
visibility: visible;
}
.reward-content {
background: #ffffff;
padding: 48px 40px;
border-radius: 24px;
position: relative;
max-width: 90%;
width: fit-content;
min-width: 320px;
transform: scale(0.95) translateY(10px);
transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
text-align: center;
border: none;
}
.reward-modal.show .reward-content {
transform: scale(1) translateY(0);
}
[data-theme='dark'] .reward-content {
background: #1a1a1a;
color: #fff;
border: 1px solid #333;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}
.reward-close {
position: absolute;
top: 15px;
right: 15px;
font-size: 24px;
cursor: pointer;
color: #999;
transition: all 0.2s;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: rgba(0,0,0,0.05);
}
.reward-close:hover {
background: rgba(0,0,0,0.1);
color: #333;
transform: rotate(90deg);
}
[data-theme='dark'] .reward-close {
background: rgba(255,255,255,0.1);
}
[data-theme='dark'] .reward-close:hover {
background: rgba(255,255,255,0.2);
color: #fff;
}
.reward-title {
text-align: center;
margin-top: 0;
margin-bottom: 30px;
font-size: 1.25rem;
font-weight: 600;
color: #333;
letter-spacing: 1px;
}
[data-theme='dark'] .reward-title {
color: #fff;
}
.reward-qr-group {
display: flex;
justify-content: center;
gap: 30px;
flex-wrap: wrap;
}
.reward-qr-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.reward-qr-img-wrapper {
width: 180px;
height: 180px;
border-radius: 12px;
overflow: hidden;
border: 2px solid var(--line);
transition: transform 0.3s ease, box-shadow 0.3s ease;
background: #fff;
}
.reward-qr-img-wrapper img {
width: 100%;
height: 100%;
object-fit: cover;
}
.reward-qr-img-wrapper:hover {
transform: translateY(-5px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
.reward-qr-item span {
font-size: 14px;
color: #666;
font-weight: 500;
}
[data-theme='dark'] .reward-qr-item span {
color: #aaa;
}
@media (max-width: 600px) {
.reward-content {
padding: 30px 20px;
width: 90%;
border-radius: 16px;
}
.reward-qr-group {
gap: 15px;
}
}
/* Post Video */
.post-video {
display: block;
max-width: 100%;
margin: 1rem 0;
border-radius: 12px;
border: 1px solid rgba(0, 0, 0, 0.08);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
background: #000;
}
[data-theme="dark"] .post-video {
border-color: rgba(148, 163, 184, 0.15);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}
#szh .link-card:hover {
transform: none !important;
box-shadow: none !important;
}
#szh .link-card-icon,
#szh .link-card-body,
#szh .link-card-url,
#szh .link-card-arrow {
display: none !important;
}
#szh .link-card .link-card-title {
display: inline !important;
font-weight: inherit !important;
font-size: inherit !important;
color: var(--accent, #3b82f6) !important;
}
/* ==================== 视频样式(Amigo 风格) ==================== */
.video-wrap {
margin: 1.5rem 0;
}
/* GIF 模式:透明背景,图片显示 */
.gif-image {
display: block;
max-width: 100%;
height: auto;
border-radius: 12px;
margin: 0 auto;
background: transparent;
}
/* 视频播放器 */
.video-player {
position: relative;
width: 100%;
border-radius: 12px;
overflow: hidden;
background: #000;
cursor: pointer;
margin: 0;
}
.video-player video {
display: block;
width: 100%;
height: auto;
max-height: 80vh;
object-fit: contain;
}
.video-play-icon {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 56px;
height: 56px;
background: rgba(0, 0, 0, 0.5);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
transition: opacity 0.3s, transform 0.3s;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.video-play-icon svg {
width: 28px;
height: 28px;
margin-left: 3px;
}
.video-player.playing .video-play-icon {
opacity: 0;
transform: translate(-50%, -50%) scale(0.8);
pointer-events: none;
}
.video-player:hover .video-play-icon {
transform: translate(-50%, -50%) scale(1.08);
}
.video-controls {
position: absolute;
bottom: 0;
left: 0;
right: 0;
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.65));
opacity: 0;
transition: opacity 0.3s;
}
.video-player:hover .video-controls,
.video-player.playing .video-controls {
opacity: 1;
}
.video-ctrl-btn {
background: none !important;
border: none !important;
color: #fff !important;
font-size: 18px;
cursor: pointer;
padding: 4px !important;
margin: 0 !important;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
opacity: 0.85;
transition: opacity 0.2s;
border-radius: 0 !important;
}
.video-ctrl-btn:hover {
opacity: 1;
}
.video-ctrl-btn svg {
width: 20px;
height: 20px;
}
.video-progress {
flex: 1;
height: 4px;
background: rgba(255, 255, 255, 0.3);
border-radius: 2px;
cursor: pointer;
position: relative;
}
.video-progress-bar {
height: 100%;
background: #fff;
border-radius: 2px;
width: 0;
transition: width 0.1s linear;
}
.video-time {
color: #fff;
font-size: 12px;
flex-shrink: 0;
min-width: 36px;
text-align: center;
font-variant-numeric: tabular-nums;
}
.video-caption {
padding: 0.6rem 0;
text-align: center;
font-size: 0.82rem;
color: #9ca3af;
}
[data-theme="dark"] .video-player {
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .video-caption {
color: #6b7280;
}
/* Bilibili / YouTube 嵌入 */
.video-embed {
position: relative;
width: 100%;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
border-radius: 12px;
background: #000;
}
.video-embed iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
border-radius: 12px;
}
/* 移动端隐藏阅读时间 */
@media (max-width: 768px) {
.meta-item-reading-time {
display: none;
}
}