383 lines
12 KiB
CSS
383 lines
12 KiB
CSS
/* ============================================================
|
||
Halo Dark Mode — 第三方插件页面覆盖
|
||
针对用户服务器上已安装插件的内部 UI 残留。
|
||
⚠️ 这些插件使用 Vue scoped 样式 ([data-v-xxx]),
|
||
需用 !important 才能稳定覆盖。
|
||
============================================================ */
|
||
|
||
[data-halo-theme="dark"] {
|
||
/* ===== 装备管理插件 (halo-plugin-equipments) ===== */
|
||
.equipments .group,
|
||
.equipment-group .group,
|
||
main .group {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.equipment-card,
|
||
.equipment-card__name,
|
||
.equipment-card__desc,
|
||
[class*="equipment"] {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 日程日历插件 (plugin-calendar) ===== */
|
||
.week-picker {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.week-picker select,
|
||
.week-picker input,
|
||
.week-picker button {
|
||
background-color: var(--halo-bg-input) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-input) !important;
|
||
}
|
||
.day-column__body {
|
||
background-color: var(--halo-bg-content) !important;
|
||
border-color: var(--halo-border-light) !important;
|
||
}
|
||
.day-column,
|
||
.calendar-column,
|
||
[class*="day-column"] {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
[class*="calendar"] th,
|
||
[class*="calendar"] td {
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
|
||
/* ===== 心愿便签插件 (plugin-wishboard) ===== */
|
||
.ah-body {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.wb-s-card {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.wb-s-card-title {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.wb-s-card-count {
|
||
color: var(--halo-accent-primary) !important;
|
||
}
|
||
.wb-s-list,
|
||
.wb-s-list-item,
|
||
[class*="wb-s-"] {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 瞬间插件 (plugin-moments) ===== */
|
||
.moment-editor,
|
||
.editor-main,
|
||
.moment-editor .card,
|
||
.editor-main .card {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.moments-content .card,
|
||
.moments-content .preview,
|
||
.moment-preview,
|
||
.moment-card,
|
||
[class*="moment-"] .card {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.moment-author-name,
|
||
.moment-content,
|
||
.moment-time,
|
||
[class*="moment"] p,
|
||
[class*="moment"] span,
|
||
[class*="moment"] div {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.moment-editor input,
|
||
.moment-editor textarea,
|
||
.editor-main input,
|
||
.editor-main textarea {
|
||
background-color: var(--halo-bg-input) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-input) !important;
|
||
}
|
||
|
||
/* ===== 抽奖插件 (plugin-lottery) ===== */
|
||
[class*="lottery"] {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 存储工具箱 (plugin-storage-toolkit) ===== */
|
||
.toolkit-wrapper,
|
||
.st-scope {
|
||
background-color: var(--halo-bg-content) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.st-pill-tabs,
|
||
.stat-card.st-card,
|
||
.panel-card.st-card,
|
||
.st-card {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.st-card h3,
|
||
.st-card h4,
|
||
.st-card p,
|
||
.st-card span,
|
||
.st-card li,
|
||
[class*="st-"] .title,
|
||
[class*="st-"] .name {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
[class*="st-"] {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 应用市场已安装 (Halo 内置 app-store) ===== */
|
||
.tabbar-wrapper,
|
||
.tabbar-outline,
|
||
[class*="tabbar"] {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.tabbar-item,
|
||
[class*="tabbar"] a,
|
||
[class*="tabbar"] span {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.tabbar-item:hover,
|
||
[class*="tabbar"] a:hover {
|
||
background-color: var(--halo-bg-active) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
/* 已安装应用页的筛选和卡片 */
|
||
.app-card,
|
||
.app-card-header,
|
||
.app-card-body,
|
||
[class*="app-card"] {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.app-card .title,
|
||
.app-card .name,
|
||
.app-card .desc,
|
||
[class*="app-card"] h3,
|
||
[class*="app-card"] p {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 文档/示例页面 (docs__box) ===== */
|
||
.docs__box {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
.docs__box h3,
|
||
.docs__box h4,
|
||
.docs__box p,
|
||
.docs__box li,
|
||
.docs__box a {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.docs__box a:hover {
|
||
color: var(--halo-text-link) !important;
|
||
}
|
||
|
||
/* ===== 通用:任何插件页面的亮色卡片兜底 ===== */
|
||
main .bg-gray-50,
|
||
main .bg-gray-100,
|
||
main .bg-gray-200 {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
}
|
||
main .bg-white {
|
||
background-color: var(--halo-bg-card) !important;
|
||
}
|
||
|
||
/* ===== 应用卡片内筛选 tab(UnoCSS hash 类,用上下文定位) ===== */
|
||
.card-wrapper .card-header [class*="i-"],
|
||
.card-header [class*="i-"],
|
||
.card-wrapper .card-body [class*="i-"],
|
||
.card-body [class*="i-"],
|
||
[class*="app-card"] [class*="i-"] {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.card-wrapper .card-header [class*="i-"]:hover,
|
||
.card-header [class*="i-"]:hover,
|
||
.card-wrapper .card-body [class*="i-"]:hover,
|
||
.card-body [class*="i-"]:hover {
|
||
background-color: var(--halo-bg-active) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 存储工具箱表格表头 (col-*) ===== */
|
||
.col-name,
|
||
.col-count,
|
||
.col-size,
|
||
.col-percent,
|
||
[class*="col-"] {
|
||
background-color: var(--halo-table-header-bg) !important;
|
||
color: var(--halo-text-secondary) !important;
|
||
}
|
||
|
||
/* ===== 侧边栏用户资料(Halo Pro 特有) ===== */
|
||
.sidebar__profile .user-profile {
|
||
background-color: transparent !important;
|
||
}
|
||
.user-profile__name {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
.user-profile__roles .tag-default,
|
||
.user-profile__roles .tag-wrapper {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-secondary) !important;
|
||
}
|
||
.user-profile__action-button {
|
||
color: var(--halo-text-secondary) !important;
|
||
background-color: transparent !important;
|
||
}
|
||
.user-profile__action-button:hover {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
}
|
||
/* ===== AstraHub / 心愿便签(共用 ah-* UI) ===== */
|
||
html[data-halo-theme="dark"] .ah-card,
|
||
html[data-halo-theme="dark"] .ah-topbar,
|
||
html[data-halo-theme="dark"] .ah-topbar-search,
|
||
html[data-halo-theme="dark"] .ah-float-nav {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .ah-topbar-search {
|
||
background-color: var(--halo-bg-input) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .ah-topbar-brand,
|
||
html[data-halo-theme="dark"] .planet-hero-title {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .ah-topbar-search input {
|
||
background-color: transparent !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .planet-links-more {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-secondary) !important;
|
||
}
|
||
|
||
/* ===== RSS 订阅(links/rss) ===== */
|
||
html[data-halo-theme="dark"] .subscription-panel,
|
||
html[data-halo-theme="dark"] .feed-main,
|
||
html[data-halo-theme="dark"] .feed-toolbar,
|
||
html[data-halo-theme="dark"] .feed-stream,
|
||
html[data-halo-theme="dark"] .feed-stream__footer {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .feed-status-tabs {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-secondary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .feed-brief__title,
|
||
html[data-halo-theme="dark"] .feed-stream p,
|
||
html[data-halo-theme="dark"] .feed-stream a,
|
||
html[data-halo-theme="dark"] .subscription-panel a,
|
||
html[data-halo-theme="dark"] .subscription-panel span {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 私密文章插件 ===== */
|
||
html[data-halo-theme="dark"] .focus-card,
|
||
html[data-halo-theme="dark"] .overview-card,
|
||
html[data-halo-theme="dark"] .list-card,
|
||
html[data-halo-theme="dark"] .empty-state {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .overview-card h2,
|
||
html[data-halo-theme="dark"] .page-shell h2,
|
||
html[data-halo-theme="dark"] .overview-stats dd,
|
||
html[data-halo-theme="dark"] .overview-stats dt {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== AI 评论自动处理插件 ===== */
|
||
html[data-halo-theme="dark"] .settings-container,
|
||
html[data-halo-theme="dark"] .setting-panel,
|
||
html[data-halo-theme="dark"] .tabs-wrap,
|
||
html[data-halo-theme="dark"] .sidebar-card,
|
||
html[data-halo-theme="dark"] .list-empty,
|
||
html[data-halo-theme="dark"] .reply-card {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .form-row,
|
||
html[data-halo-theme="dark"] .list-col,
|
||
html[data-halo-theme="dark"] .panel-header,
|
||
html[data-halo-theme="dark"] .card-footer {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .section-header__text h3,
|
||
html[data-halo-theme="dark"] .sidebar-header h4,
|
||
html[data-halo-theme="dark"] .panel-header h3,
|
||
html[data-halo-theme="dark"] .reply-card h3 {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .wake-word-tag {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-secondary) !important;
|
||
}
|
||
|
||
/* ===== 数据工坊 / 代码注入器等工具页语义容器 ===== */
|
||
html[data-halo-theme="dark"] .data-studio-card-body,
|
||
html[data-halo-theme="dark"] .injector-view-card-body,
|
||
html[data-halo-theme="dark"] .injector-editor-container {
|
||
background-color: var(--halo-bg-card) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 示例插件页 ===== */
|
||
html[data-halo-theme="dark"] main section#plugin-starter {
|
||
background-color: var(--halo-bg-body) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 友链卡片徽章 ===== */
|
||
html[data-halo-theme="dark"] .link-badge {
|
||
background-color: var(--halo-bg-hover) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
/* ===== 日程日历插件(time-column 布局) ===== */
|
||
html[data-halo-theme="dark"] .time-column__header,
|
||
html[data-halo-theme="dark"] .time-column__body,
|
||
html[data-halo-theme="dark"] [class*="time-column"] {
|
||
background-color: var(--halo-bg-card) !important;
|
||
color: var(--halo-text-primary) !important;
|
||
border-color: var(--halo-border-base) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .entry-card-header__title {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
|
||
/* ===== 存储工具箱补充类 ===== */
|
||
html[data-halo-theme="dark"] .stat-value,
|
||
html[data-halo-theme="dark"] .stat-card .card-title,
|
||
html[data-halo-theme="dark"] .panel-card .card-title {
|
||
color: var(--halo-text-primary) !important;
|
||
}
|
||
html[data-halo-theme="dark"] .bar-track {
|
||
background-color: var(--halo-bg-disabled) !important;
|
||
} |