955 lines
18 KiB
CSS
955 lines
18 KiB
CSS
/*
|
|
* QimingClaw - 现代简洁全局样式
|
|
* 基于 Ant Design, 风格参考 shadcn/ui
|
|
* 支持亮色/暗色主题
|
|
*/
|
|
|
|
/* ========== CSS 变量 - 亮色主题 ========== */
|
|
:root,
|
|
[data-theme="light"] {
|
|
--color-primary: #18181b;
|
|
--color-primary-hover: #27272a;
|
|
--color-primary-active: #3f3f46;
|
|
--color-success: #16a34a;
|
|
--color-error: #EF4444;
|
|
--color-warning: #F59E0B;
|
|
--color-info: #3B82F6;
|
|
--color-success-bg: #f0fdf4;
|
|
--color-error-bg: #fef2f2;
|
|
--color-warning-bg: #fffbeb;
|
|
|
|
--color-bg-layout: #F8F9FA;
|
|
--color-bg-container: #ffffff;
|
|
--color-bg-elevated: #ffffff;
|
|
--color-bg-header: #ffffff;
|
|
--color-bg-sider: #ffffff;
|
|
--color-bg-section: #ffffff;
|
|
--color-bg-section-header: #F9FAFB;
|
|
|
|
--color-border: #E5E7EB;
|
|
--color-border-secondary: #F3F4F6;
|
|
|
|
--color-text: #18181b;
|
|
--color-text-secondary: #6B7280;
|
|
--color-text-tertiary: #9CA3AF;
|
|
--color-text-quaternary: #D1D5DB;
|
|
|
|
--color-icon: #6B7280;
|
|
--color-divider: #F3F4F6;
|
|
|
|
--border-radius: 8px;
|
|
--border-radius-lg: 10px;
|
|
--border-radius-sm: 6px;
|
|
}
|
|
|
|
/* ========== CSS 变量 - 暗色主题 ========== */
|
|
[data-theme="dark"] {
|
|
--color-primary: #fafafa;
|
|
--color-primary-hover: #e4e4e7;
|
|
--color-primary-active: #d4d4d8;
|
|
--color-success: #22c55e;
|
|
--color-error: #EF4444;
|
|
--color-warning: #F59E0B;
|
|
--color-info: #3B82F6;
|
|
--color-success-bg: #052e16;
|
|
--color-error-bg: #450a0a;
|
|
--color-warning-bg: #422006;
|
|
|
|
--color-bg-layout: #09090b;
|
|
--color-bg-container: #18181b;
|
|
--color-bg-elevated: #27272a;
|
|
--color-bg-header: #18181b;
|
|
--color-bg-sider: #18181b;
|
|
--color-bg-section: #18181b;
|
|
--color-bg-section-header: #27272a;
|
|
|
|
--color-border: #27272a;
|
|
--color-border-secondary: #3f3f46;
|
|
|
|
--color-text: #fafafa;
|
|
--color-text-secondary: #a1a1aa;
|
|
--color-text-tertiary: #71717a;
|
|
--color-text-quaternary: #52525b;
|
|
|
|
--color-icon: #a1a1aa;
|
|
--color-divider: #27272a;
|
|
|
|
--border-radius: 8px;
|
|
--border-radius-lg: 10px;
|
|
--border-radius-sm: 6px;
|
|
}
|
|
|
|
/* ========== 基础重置 ========== */
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
#root {
|
|
height: 100%;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
body {
|
|
font-family:
|
|
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
|
|
Arial, "Noto Sans", sans-serif;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
color: var(--color-text);
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
background: var(--color-bg-layout);
|
|
transition: background-color 0.2s ease, color 0.2s ease;
|
|
}
|
|
|
|
/* ========== 布局 ========== */
|
|
.app-container {
|
|
height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
background: var(--color-bg-layout);
|
|
}
|
|
|
|
.app-header {
|
|
height: 48px;
|
|
background: var(--color-bg-header);
|
|
padding: 0 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-shrink: 0;
|
|
z-index: 100;
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
.app-header-logo {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.app-header-title {
|
|
color: var(--color-text);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
margin: 0 !important;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.app-header-update-tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
padding: 1px 8px;
|
|
border-radius: 10px;
|
|
line-height: 18px;
|
|
white-space: nowrap;
|
|
transition: opacity 0.2s, transform 0.15s;
|
|
}
|
|
|
|
.app-header-update-tag[role="button"] {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.app-header-update-tag[role="button"]:hover {
|
|
opacity: 0.85;
|
|
transform: scale(1.03);
|
|
}
|
|
|
|
.app-header-update-tag[role="button"]:active {
|
|
transform: scale(0.97);
|
|
}
|
|
|
|
.app-header-update-tag--available {
|
|
background: rgba(82, 196, 26, 0.12);
|
|
color: #52c41a;
|
|
border: 1px solid rgba(82, 196, 26, 0.25);
|
|
}
|
|
|
|
.app-header-update-tag--downloading {
|
|
background: rgba(22, 119, 255, 0.1);
|
|
color: #1677ff;
|
|
border: 1px solid rgba(22, 119, 255, 0.2);
|
|
}
|
|
|
|
.app-header-update-tag--install {
|
|
background: rgba(250, 173, 20, 0.12);
|
|
color: #faad14;
|
|
border: 1px solid rgba(250, 173, 20, 0.25);
|
|
}
|
|
|
|
.app-body {
|
|
flex: 1;
|
|
display: flex;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.app-sider {
|
|
width: 140px;
|
|
background: var(--color-bg-sider);
|
|
overflow-y: auto;
|
|
flex-shrink: 0;
|
|
border-right: 1px solid var(--color-border);
|
|
padding: 4px 0;
|
|
}
|
|
|
|
/* 英文菜单文案更长,单独加宽侧边栏,避免文本被截断 */
|
|
.app-sider.app-sider-en {
|
|
width: 160px;
|
|
}
|
|
|
|
.app-sider .ant-menu {
|
|
border-right: 0;
|
|
}
|
|
|
|
.app-content {
|
|
flex: 1;
|
|
padding: 20px 24px;
|
|
background: var(--color-bg-layout);
|
|
overflow-y: auto;
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 0;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
/* Full-width mode: no padding (used when webview is active) */
|
|
.app-content.app-content-fullwidth {
|
|
padding: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* ========== 滚动条 ========== */
|
|
::-webkit-scrollbar {
|
|
width: 5px;
|
|
height: 5px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--color-text-quaternary);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--color-text-tertiary);
|
|
}
|
|
|
|
/* ========== 侧边栏菜单 ========== */
|
|
/* Note: Selected colors handled by ConfigProvider in theme.ts */
|
|
.app-sider .ant-menu-light {
|
|
background: transparent;
|
|
border-inline-end: none;
|
|
}
|
|
|
|
.app-sider .ant-menu-light .ant-menu-item {
|
|
height: 32px;
|
|
line-height: 32px;
|
|
margin: 1px 6px;
|
|
padding: 0 10px !important;
|
|
font-size: 13px;
|
|
font-weight: 400;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.app-sider .ant-menu-light .ant-menu-item:hover {
|
|
background: #F3F4F6;
|
|
color: #18181b;
|
|
}
|
|
|
|
.app-sider .ant-menu-light .ant-menu-item .anticon {
|
|
font-size: 14px;
|
|
}
|
|
|
|
/* ========== 按钮 ========== */
|
|
/* Note: Primary button colors handled by ConfigProvider in theme.ts */
|
|
.ant-btn {
|
|
transition: all 0.15s ease;
|
|
font-weight: 500;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.ant-btn-default {
|
|
border-color: var(--color-border);
|
|
color: var(--color-text-secondary);
|
|
background: var(--color-bg-container);
|
|
}
|
|
|
|
.ant-btn-default:not(:disabled):hover {
|
|
border-color: var(--color-border-secondary);
|
|
color: var(--color-text);
|
|
background: var(--color-bg-elevated);
|
|
}
|
|
|
|
.ant-btn-text:not(:disabled):hover {
|
|
background: var(--color-bg-elevated);
|
|
}
|
|
|
|
/* 小号按钮更紧凑 */
|
|
.ant-btn-sm {
|
|
font-size: 12px;
|
|
padding: 0 8px;
|
|
height: 26px;
|
|
}
|
|
|
|
/* ========== 卡片 ========== */
|
|
.ant-card {
|
|
border: 1px solid #E5E7EB;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.ant-card-head {
|
|
min-height: auto;
|
|
padding: 10px 16px;
|
|
border-bottom: 1px solid #F3F4F6;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.ant-card-head-title {
|
|
font-weight: 500;
|
|
font-size: 13px;
|
|
color: #18181b;
|
|
}
|
|
|
|
.ant-card-body {
|
|
padding: 16px;
|
|
}
|
|
|
|
.ant-card-small .ant-card-head {
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.ant-card-small .ant-card-body {
|
|
padding: 12px;
|
|
}
|
|
|
|
/* ========== 标签 - 极简 ========== */
|
|
.ant-tag {
|
|
margin-right: 0;
|
|
padding: 0 6px;
|
|
border-radius: 6px;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
line-height: 20px;
|
|
border: 1px solid transparent;
|
|
}
|
|
|
|
.ant-tag-success,
|
|
.ant-tag-green {
|
|
background: #f0fdf4;
|
|
color: #15803d;
|
|
border-color: #dcfce7;
|
|
}
|
|
|
|
.ant-tag-error,
|
|
.ant-tag-red {
|
|
background: #FEF2F2;
|
|
color: #EF4444;
|
|
border-color: #FEE2E2;
|
|
}
|
|
|
|
.ant-tag-warning,
|
|
.ant-tag-orange {
|
|
background: #FFFBEB;
|
|
color: #D97706;
|
|
border-color: #FEF3C7;
|
|
}
|
|
|
|
.ant-tag-processing {
|
|
background: #F3F4F6;
|
|
color: #6B7280;
|
|
border-color: #E5E7EB;
|
|
}
|
|
|
|
.ant-tag-default {
|
|
background: #F3F4F6;
|
|
color: #6B7280;
|
|
border-color: #E5E7EB;
|
|
}
|
|
|
|
.ant-tag-blue {
|
|
background: #EFF6FF;
|
|
color: #2563EB;
|
|
border-color: #DBEAFE;
|
|
}
|
|
|
|
.ant-tag-purple {
|
|
background: #F5F3FF;
|
|
color: #7C3AED;
|
|
border-color: #EDE9FE;
|
|
}
|
|
|
|
.ant-tag-cyan {
|
|
background: #ECFEFF;
|
|
color: #0891B2;
|
|
border-color: #CFFAFE;
|
|
}
|
|
|
|
/* ========== 输入框 ========== */
|
|
.ant-input,
|
|
.ant-input-affix-wrapper,
|
|
.ant-input-number {
|
|
border-radius: 8px;
|
|
border-color: #E5E7EB;
|
|
}
|
|
|
|
.ant-input:focus,
|
|
.ant-input-affix-wrapper:focus,
|
|
.ant-input-affix-wrapper-focused,
|
|
.ant-input-number:focus,
|
|
.ant-input-number-focused {
|
|
border-color: #a1a1aa;
|
|
box-shadow: 0 0 0 2px rgba(24, 24, 27, 0.05);
|
|
}
|
|
|
|
.ant-input:hover,
|
|
.ant-input-affix-wrapper:hover,
|
|
.ant-input-number:hover {
|
|
border-color: #D1D5DB;
|
|
}
|
|
|
|
.ant-input::placeholder {
|
|
color: #9CA3AF;
|
|
}
|
|
|
|
/* ========== 表单 ========== */
|
|
.ant-form-item-label > label {
|
|
font-weight: 500;
|
|
font-size: 12px;
|
|
color: #6B7280;
|
|
}
|
|
|
|
.ant-form-item {
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
/* ========== 列表 ========== */
|
|
.ant-list-item {
|
|
transition: background-color 0.15s ease;
|
|
border-radius: 8px;
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.ant-list-item-meta-title {
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: #18181b;
|
|
}
|
|
|
|
.ant-list-item-meta-description {
|
|
font-size: 12px;
|
|
color: #6B7280;
|
|
}
|
|
|
|
/* ========== 警告框 - 更柔和 ========== */
|
|
.ant-alert {
|
|
border-radius: 8px;
|
|
border-width: 1px;
|
|
padding: 8px 12px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.ant-alert-success {
|
|
background: #f0fdf4;
|
|
border-color: #dcfce7;
|
|
}
|
|
|
|
.ant-alert-warning {
|
|
background: #FFFBEB;
|
|
border-color: #FEF3C7;
|
|
}
|
|
|
|
.ant-alert-error {
|
|
background: #FEF2F2;
|
|
border-color: #FEE2E2;
|
|
}
|
|
|
|
.ant-alert-info {
|
|
background: #F9FAFB;
|
|
border-color: #E5E7EB;
|
|
}
|
|
|
|
.ant-alert-message {
|
|
font-weight: 500;
|
|
color: var(--color-text);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.ant-alert-description {
|
|
font-size: 12px;
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* ========== 描述列表 ========== */
|
|
.ant-descriptions-item-label {
|
|
color: var(--color-text-secondary);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.ant-descriptions-item-content {
|
|
font-size: 13px;
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* ========== 开关 ========== */
|
|
/* Note: Switch colors handled by ConfigProvider in theme.ts */
|
|
|
|
/* ========== 选择器 ========== */
|
|
.ant-select-selector {
|
|
border-radius: 8px;
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
/* ========== 步骤条 ========== */
|
|
/* Note: Step colors handled by ConfigProvider in theme.ts */
|
|
|
|
/* ========== 进度条 ========== */
|
|
.ant-progress-text {
|
|
font-size: 11px;
|
|
color: #6B7280;
|
|
}
|
|
|
|
/* ========== Tabs ========== */
|
|
/* Note: Tab colors handled by ConfigProvider in theme.ts */
|
|
.ant-tabs .ant-tabs-tab {
|
|
font-size: 13px;
|
|
padding: 8px 0;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
/* ========== Modal ========== */
|
|
.ant-modal-content {
|
|
border-radius: 10px;
|
|
padding: 0;
|
|
}
|
|
|
|
.ant-modal-header {
|
|
padding: 16px 20px 12px;
|
|
}
|
|
|
|
.ant-modal-title {
|
|
font-weight: 500;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.ant-modal-body {
|
|
padding: 0 20px 16px;
|
|
font-size: 13px;
|
|
color: #52525b;
|
|
}
|
|
|
|
.ant-modal-footer {
|
|
padding: 12px 20px 16px;
|
|
border-top: 1px solid #F3F4F6;
|
|
}
|
|
|
|
/* ========== 徽章 ========== */
|
|
.ant-badge-status-text {
|
|
font-size: 12px;
|
|
color: #6B7280;
|
|
}
|
|
|
|
/* ========== Divider ========== */
|
|
.ant-divider {
|
|
border-color: #F3F4F6;
|
|
margin: 12px 0;
|
|
}
|
|
|
|
/* ========== Avatar ========== */
|
|
.ant-avatar {
|
|
border: none;
|
|
}
|
|
|
|
/* ========== Result ========== */
|
|
.ant-result-title {
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
color: #18181b;
|
|
}
|
|
|
|
.ant-result-subtitle {
|
|
font-size: 13px;
|
|
color: #71717a;
|
|
}
|
|
|
|
/* ========== 加载页面 ========== */
|
|
.app-loading {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 100vh;
|
|
background: #F8F9FA;
|
|
}
|
|
|
|
.app-loading-text {
|
|
margin-top: 16px;
|
|
color: #6B7280;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.app-loading .ant-spin-dot-item {
|
|
background-color: #18181b;
|
|
}
|
|
|
|
/* ========== 页面通用 ========== */
|
|
.page-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.page-title {
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
color: #18181b;
|
|
margin: 0;
|
|
}
|
|
|
|
.page-subtitle {
|
|
font-size: 12px;
|
|
color: #6B7280;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
/* 简洁的状态行 */
|
|
.status-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 8px 0;
|
|
border-bottom: 1px solid #F3F4F6;
|
|
}
|
|
|
|
.status-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.status-row-label {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 13px;
|
|
color: #3f3f46;
|
|
}
|
|
|
|
.status-row-value {
|
|
font-size: 13px;
|
|
color: #18181b;
|
|
}
|
|
|
|
/* 简洁信息网格 */
|
|
.info-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 8px 24px;
|
|
}
|
|
|
|
.info-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 6px 0;
|
|
}
|
|
|
|
.info-label {
|
|
font-size: 12px;
|
|
color: #6B7280;
|
|
}
|
|
|
|
.info-value {
|
|
font-size: 13px;
|
|
color: #18181b;
|
|
font-family:
|
|
ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
}
|
|
|
|
/* section 分隔 */
|
|
.section {
|
|
margin-bottom: 20px;
|
|
background: #ffffff;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: #6B7280;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
/* ========== 消息气泡 ========== */
|
|
.message-user {
|
|
background: #18181b;
|
|
color: #fff;
|
|
padding: 12px 16px;
|
|
border-radius: 12px;
|
|
max-width: 70%;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.message-assistant {
|
|
background: #F3F4F6;
|
|
color: #18181b;
|
|
padding: 12px 16px;
|
|
border-radius: 12px;
|
|
max-width: 70%;
|
|
}
|
|
|
|
/* ============================================
|
|
暗色主题覆盖 (Dark Theme Overrides)
|
|
============================================ */
|
|
[data-theme="dark"] {
|
|
/* 侧边栏菜单 */
|
|
.app-sider .ant-menu-light .ant-menu-item:hover {
|
|
background: var(--color-bg-elevated);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* 按钮 */
|
|
.ant-btn-default {
|
|
border-color: var(--color-border);
|
|
color: var(--color-text-secondary);
|
|
background: var(--color-bg-container);
|
|
}
|
|
|
|
.ant-btn-default:not(:disabled):hover {
|
|
border-color: var(--color-border-secondary);
|
|
color: var(--color-text);
|
|
background: var(--color-bg-elevated);
|
|
}
|
|
|
|
.ant-btn-text:not(:disabled):hover {
|
|
background: var(--color-bg-elevated);
|
|
}
|
|
|
|
.ant-btn:disabled {
|
|
border-color: var(--color-border);
|
|
color: var(--color-text-quaternary);
|
|
background: rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
/* 卡片 */
|
|
.ant-card {
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
.ant-card-head {
|
|
border-bottom-color: var(--color-border);
|
|
}
|
|
|
|
.ant-card-head-title {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* 标签 */
|
|
.ant-tag-processing,
|
|
.ant-tag-default {
|
|
background: var(--color-bg-elevated);
|
|
color: var(--color-text-secondary);
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
/* 输入框 */
|
|
.ant-input,
|
|
.ant-input-affix-wrapper,
|
|
.ant-input-number {
|
|
border-color: var(--color-border);
|
|
background: var(--color-bg-container);
|
|
}
|
|
|
|
.ant-input:focus,
|
|
.ant-input-affix-wrapper:focus,
|
|
.ant-input-affix-wrapper-focused,
|
|
.ant-input-number:focus,
|
|
.ant-input-number-focused {
|
|
border-color: var(--color-text-tertiary);
|
|
}
|
|
|
|
.ant-input:hover,
|
|
.ant-input-affix-wrapper:hover,
|
|
.ant-input-number:hover {
|
|
border-color: var(--color-border-secondary);
|
|
}
|
|
|
|
.ant-input::placeholder {
|
|
color: var(--color-text-quaternary);
|
|
}
|
|
|
|
/* 表单 */
|
|
.ant-form-item-label > label {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* 列表 */
|
|
.ant-list-item-meta-title {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.ant-list-item-meta-description {
|
|
color: var(--color-text-tertiary);
|
|
}
|
|
|
|
/* 警告框 */
|
|
.ant-alert-info,
|
|
.ant-alert-success,
|
|
.ant-alert-warning,
|
|
.ant-alert-error {
|
|
background: var(--color-bg-elevated);
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
.ant-alert-message {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.ant-alert-description {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* 描述列表 */
|
|
.ant-descriptions-item-label {
|
|
color: var(--color-text-tertiary);
|
|
}
|
|
|
|
.ant-descriptions-item-content {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* 选择器 */
|
|
.ant-select-selector {
|
|
border-color: var(--color-border) !important;
|
|
background: var(--color-bg-container) !important;
|
|
}
|
|
|
|
.ant-select-dropdown {
|
|
background: var(--color-bg-elevated) !important;
|
|
}
|
|
|
|
.ant-select-item {
|
|
color: var(--color-text) !important;
|
|
}
|
|
|
|
.ant-select-item-option-active {
|
|
background: var(--color-bg-elevated) !important;
|
|
}
|
|
|
|
.ant-select-item-option-selected {
|
|
background: var(--color-bg-elevated) !important;
|
|
color: var(--color-text) !important;
|
|
}
|
|
|
|
.ant-select-item:hover {
|
|
background: var(--color-primary-hover) !important;
|
|
color: var(--color-text) !important;
|
|
}
|
|
|
|
/* 进度条 */
|
|
.ant-progress-text {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* 开关 — darkAlgorithm + ConfigProvider token 已处理,无需额外覆盖 */
|
|
|
|
/* Modal */
|
|
.ant-modal-body {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.ant-modal-footer {
|
|
border-top-color: var(--color-border);
|
|
}
|
|
|
|
/* 徽章 */
|
|
.ant-badge-status-text {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* Divider */
|
|
.ant-divider {
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
/* Result */
|
|
.ant-result-title {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.ant-result-subtitle {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* 加载页面 */
|
|
.app-loading {
|
|
background: var(--color-bg-layout);
|
|
}
|
|
|
|
.app-loading-text {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.app-loading .ant-spin-dot-item {
|
|
background-color: var(--color-text);
|
|
}
|
|
|
|
/* 页面通用 */
|
|
.page-subtitle {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* 状态行 */
|
|
.status-row {
|
|
border-bottom-color: var(--color-border);
|
|
}
|
|
|
|
.status-row-label {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.status-row-value {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* 信息网格 */
|
|
.info-label {
|
|
color: var(--color-text-tertiary);
|
|
}
|
|
|
|
.info-value {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* section */
|
|
.section {
|
|
background: var(--color-bg-section);
|
|
}
|
|
|
|
.section-title {
|
|
color: var(--color-text-tertiary);
|
|
}
|
|
|
|
/* 消息气泡 */
|
|
.message-user {
|
|
background: var(--color-primary);
|
|
color: var(--color-bg-container);
|
|
}
|
|
|
|
.message-assistant {
|
|
background: var(--color-bg-elevated);
|
|
color: var(--color-text);
|
|
}
|
|
}
|