Files
dsh 0b99eabfbe 评论区改为自托管 twikoo 前端,并适配主题
- 前端脚本从 jsDelivr 改为自托管 public/assets/js/twikoo.min.js,
  版本与后端对齐(1.7.20)。国内访问 jsDelivr 实测 3 秒以上且常被墙,
  是评论区空白的根因
- 新增 public/assets/css/twikoo-custom.css 主题适配层:选择器加 #twikoo
  前缀以覆盖运行时注入的样式,颜色引用主题变量,自动跟随亮/暗色
- 修复首屏重复初始化:astro:page-load 在首屏也会触发,用 dataset.mounted 去重
- 评论配置移除已无用的 version 字段;README 与操作指南同步更新
2026-09-14 20:58:37 +08:00

179 lines
3.7 KiB
CSS
Raw Permalink 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.
/*
* twikoo 评论区的主题适配(朱墨留白 / VermilionVoid)
*
* twikoo 的样式是脚本运行时注入到 <head> 的,会排在本文件之后,
* 所以这里的选择器统一加 #twikoo 前缀提高优先级,保证能覆盖它。
*
* 颜色全部引用主题 CSS 变量,因此会自动跟随亮色/暗色,
* 以及 src/data/site.ts 里的 themeHue 主题色。
*/
/* ---------- 容器 ---------- */
#twikoo {
color: var(--foreground);
font-size: 0.9375rem;
line-height: 1.75;
}
#twikoo .tk-comments-title,
#twikoo .tk-comments-title h4 {
color: var(--foreground);
}
/* 评论条数等次要文字 */
#twikoo .tk-comments-count,
#twikoo .tk-comments-count span {
color: var(--muted-foreground);
}
/* ---------- 单条评论 ---------- */
#twikoo .tk-comment {
border-radius: var(--radius);
padding: 0.75rem 0;
}
#twikoo .tk-comment .tk-content {
color: var(--content-secondary);
line-height: 1.8;
}
#twikoo .tk-comment .tk-content a,
#twikoo .tk-content a {
color: var(--primary);
text-decoration: none;
}
#twikoo .tk-comment .tk-content a:hover {
text-decoration: underline;
}
/* 昵称 */
#twikoo .tk-nick,
#twikoo .tk-nick-link {
color: var(--foreground);
font-weight: 500;
}
/* 时间、设备等元信息 */
#twikoo .tk-time,
#twikoo .tk-meta,
#twikoo .tk-tag {
color: var(--muted-foreground);
}
/* 头像圆角跟随主题 */
#twikoo .tk-avatar,
#twikoo .tk-avatar-img {
border-radius: 9999px;
}
/* 展开/回复等操作 */
#twikoo .tk-action-link,
#twikoo .tk-action-icon {
color: var(--muted-foreground);
transition: color 0.2s ease;
}
#twikoo .tk-action-link:hover,
#twikoo .tk-action-icon:hover,
#twikoo .tk-action-icon.tk-is-active {
color: var(--primary);
}
/* 子评论缩进区域 */
#twikoo .tk-replies {
border-left: 2px solid var(--border);
margin-left: 0.5rem;
padding-left: 1rem;
}
/* 分隔线 */
#twikoo hr,
#twikoo .tk-comment + .tk-comment {
border-color: var(--border);
}
/* ---------- 输入区 ---------- */
#twikoo .tk-submit {
color: var(--foreground);
}
#twikoo .tk-input .el-textarea__inner,
#twikoo .el-textarea__inner,
#twikoo .el-input__inner {
background-color: var(--card);
border-color: var(--border);
border-radius: var(--radius);
color: var(--foreground);
box-shadow: none;
}
#twikoo .el-textarea__inner::placeholder,
#twikoo .el-input__inner::placeholder {
color: var(--muted-foreground);
}
#twikoo .el-textarea__inner:focus,
#twikoo .el-input__inner:focus {
border-color: var(--primary);
}
/* 发送按钮 */
#twikoo .el-button--primary {
background-color: var(--primary);
border-color: var(--primary);
color: var(--primary-foreground);
border-radius: var(--radius);
}
#twikoo .el-button--primary:hover,
#twikoo .el-button--primary:focus {
background-color: var(--primary);
border-color: var(--primary);
opacity: 0.88;
}
#twikoo .el-button {
border-radius: var(--radius);
}
/* 登录方式 / 提示文字 */
#twikoo .tk-login-msg,
#twikoo .tk-login-msg a,
#twikoo .tk-admin-warn {
color: var(--muted-foreground);
}
#twikoo .tk-login-msg a:hover {
color: var(--primary);
}
/* 表情面板 */
#twikoo .tk-panel {
background-color: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
}
/* ---------- 分页 ---------- */
#twikoo .tk-pagination .el-pager li,
#twikoo .tk-pagination button {
background-color: transparent;
color: var(--muted-foreground);
}
#twikoo .tk-pagination .el-pager li.is-active {
color: var(--primary);
}
/* ---------- 暗色模式微调 ---------- */
.dark #twikoo .tk-comment .tk-content {
color: var(--foreground);
}
.dark #twikoo .el-textarea__inner,
.dark #twikoo .el-input__inner {
background-color: var(--surface-subtle);
color: var(--foreground);
}