/* 奶酪云工具箱 - 暗色主题样式表 */
/* 精确还原 UI设计.html 配色 */
/* ==================== 配色变量参考 ==================== */
/*
cheese-400: #fbbf24 (主强调色)
cheese-500: #f59e0b (深强调色)
cheese-600: #d97706 (更深)
darkbg-900: #0f172a (主背景)
darkbg-800: #1e293b (侧边栏)
darkbg-700: #334155 (边框/悬浮)
slate-300: #cbd5e1 (主文字)
slate-400: #94a3b8 (次要文字)
slate-500: #64748b (弱文字)
slate-600: #475569 (placeholder)
*/
/* ==================== 全局样式 ==================== */
* {
font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}
QWidget {
background-color: #0f172a;
color: #cbd5e1;
}
/* ==================== 主窗口 ==================== */
QMainWindow {
background-color: #0f172a;
}
/* ==================== 滚动条 ==================== */
QScrollBar:vertical {
background: transparent;
width: 6px;
margin: 0;
}
QScrollBar::handle:vertical {
background: #334155;
border-radius: 3px;
min-height: 30px;
}
QScrollBar::handle:vertical:hover {
background: #475569;
}
QScrollBar::add-line:vertical,
QScrollBar::sub-line:vertical,
QScrollBar::add-page:vertical,
QScrollBar::sub-page:vertical {
background: transparent;
height: 0;
}
QScrollBar:horizontal {
background: transparent;
height: 6px;
margin: 0;
}
QScrollBar::handle:horizontal {
background: #334155;
border-radius: 3px;
min-width: 30px;
}
QScrollBar::handle:horizontal:hover {
background: #475569;
}
QScrollBar::add-line:horizontal,
QScrollBar::sub-line:horizontal,
QScrollBar::add-page:horizontal,
QScrollBar::sub-page:horizontal {
background: transparent;
width: 0;
}
/* ==================== 一级侧边栏 ==================== */
#primary_sidebar {
background-color: #1e293b;
border-right: 1px solid #334155;
}
/* ==================== 二级侧边栏 ==================== */
#secondary_sidebar {
background-color: rgba(30, 41, 59, 0.5);
border-right: 1px solid #334155;
}
/* ==================== 工作区 ==================== */
#workspace {
background-color: #0f172a;
}
/* ==================== 按钮样式 ==================== */
QPushButton {
background-color: #334155;
border: 1px solid #475569;
border-radius: 8px;
padding: 8px 16px;
color: #e2e8f0;
font-size: 13px;
}
QPushButton:hover {
background-color: #475569;
}
QPushButton:pressed {
background-color: #1e293b;
}
QPushButton:disabled {
background-color: #1e293b;
color: #64748b;
}
/* 主要按钮 */
#primary_btn {
background-color: #f59e0b;
border: none;
color: white;
font-weight: 600;
}
#primary_btn:hover {
background-color: #fbbf24;
}
#primary_btn:pressed {
background-color: #d97706;
}
/* 次要按钮 */
#secondary_btn {
background-color: transparent;
border: 1px solid #334155;
color: #cbd5e1;
}
#secondary_btn:hover {
background-color: #334155;
}
/* ==================== 输入框 ==================== */
QLineEdit {
background-color: #0f172a;
border: 1px solid #334155;
border-radius: 8px;
padding: 8px 12px;
color: #e2e8f0;
font-size: 13px;
selection-background-color: #fbbf24;
selection-color: white;
}
QLineEdit:focus {
border-color: rgba(251, 191, 36, 0.5);
}
QLineEdit::placeholder {
color: #475569;
}
/* ==================== 滑块 ==================== */
QSlider::groove:horizontal {
background: #0f172a;
height: 8px;
border-radius: 4px;
}
QSlider::handle:horizontal {
background: #fbbf24;
width: 18px;
height: 18px;
margin: -5px 0;
border-radius: 9px;
}
QSlider::handle:horizontal:hover {
background: #fcd34d;
}
QSlider::sub-page:horizontal {
background: #fbbf24;
border-radius: 4px;
}
/* ==================== 进度条 ==================== */
QProgressBar {
background-color: #0f172a;
border: none;
border-radius: 4px;
height: 8px;
text-align: center;
color: transparent;
}
QProgressBar::chunk {
background-color: #fbbf24;
border-radius: 4px;
}
/* ==================== 表格 ==================== */
QTableWidget {
background-color: #1e293b;
border: 1px solid #334155;
border-radius: 8px;
gridline-color: #334155;
alternate-background-color: #0f172a;
}
QTableWidget::item {
padding: 8px;
color: #e2e8f0;
border: none;
}
QTableWidget::item:selected {
background-color: rgba(251, 191, 36, 0.2);
color: #fbbf24;
}
QHeaderView::section {
background-color: #0f172a;
color: #94a3b8;
padding: 10px;
border: none;
border-bottom: 1px solid #334155;
font-weight: 600;
}
/* ==================== 列表 ==================== */
QListWidget {
background-color: rgba(15, 23, 42, 0.5);
border: 1px solid #334155;
border-radius: 8px;
padding: 4px;
outline: none;
}
QListWidget::item {
background-color: #1e293b;
border: 1px solid #334155;
border-radius: 8px;
padding: 8px;
margin: 4px;
color: #e2e8f0;
}
QListWidget::item:hover {
border-color: rgba(251, 191, 36, 0.3);
}
QListWidget::item:selected {
background-color: rgba(251, 191, 36, 0.1);
border-color: #fbbf24;
color: #fbbf24;
}
/* ==================== 标签页 ==================== */
QTabWidget::pane {
background-color: transparent;
border: none;
}
QTabBar::tab {
background-color: transparent;
color: #94a3b8;
padding: 10px 20px;
border: none;
border-bottom: 2px solid transparent;
}
QTabBar::tab:hover {
color: #e2e8f0;
}
QTabBar::tab:selected {
color: #fbbf24;
border-bottom: 2px solid #fbbf24;
}
/* ==================== 单选按钮 ==================== */
QRadioButton {
color: #e2e8f0;
spacing: 8px;
}
QRadioButton::indicator {
width: 18px;
height: 18px;
border-radius: 9px;
border: 2px solid #475569;
background-color: #0f172a;
}
QRadioButton::indicator:hover {
border-color: #fbbf24;
}
QRadioButton::indicator:checked {
background-color: #fbbf24;
border-color: #fbbf24;
}
/* ==================== 复选框 ==================== */
QCheckBox {
color: #e2e8f0;
spacing: 8px;
}
QCheckBox::indicator {
width: 18px;
height: 18px;
border-radius: 4px;
border: 2px solid #475569;
background-color: #0f172a;
}
QCheckBox::indicator:hover {
border-color: #fbbf24;
}
QCheckBox::indicator:checked {
background-color: #fbbf24;
border-color: #fbbf24;
}
/* ==================== 下拉框 ==================== */
QComboBox {
background-color: #0f172a;
border: 1px solid #334155;
border-radius: 8px;
padding: 8px 12px;
color: #e2e8f0;
min-width: 120px;
}
QComboBox:hover {
border-color: #475569;
}
QComboBox:focus {
border-color: rgba(251, 191, 36, 0.5);
}
QComboBox::drop-down {
border: none;
padding-right: 8px;
}
QComboBox::down-arrow {
image: none;
border: none;
}
QComboBox QAbstractItemView {
background-color: #1e293b;
border: 1px solid #334155;
border-radius: 8px;
selection-background-color: rgba(251, 191, 36, 0.2);
selection-color: #fbbf24;
outline: none;
}
/* ==================== SpinBox ==================== */
QSpinBox {
background-color: #0f172a;
border: 1px solid #334155;
border-radius: 8px;
padding: 6px 10px;
color: #e2e8f0;
}
QSpinBox:focus {
border-color: rgba(251, 191, 36, 0.5);
}
QSpinBox::up-button, QSpinBox::down-button {
background: #334155;
border: none;
width: 20px;
}
QSpinBox::up-button:hover, QSpinBox::down-button:hover {
background: #475569;
}
/* ==================== 分组框 ==================== */
QGroupBox {
background-color: transparent;
border: 1px solid #334155;
border-radius: 12px;
margin-top: 16px;
padding: 16px;
padding-top: 24px;
}
QGroupBox::title {
color: #94a3b8;
font-size: 12px;
font-weight: 600;
subcontrol-origin: margin;
left: 16px;
top: 4px;
padding: 0 8px;
background: #0f172a;
}
/* ==================== 文本编辑器 ==================== */
QTextEdit {
background-color: #0f172a;
border: 1px solid #334155;
border-radius: 8px;
padding: 8px;
color: #e2e8f0;
font-family: "Consolas", "Courier New", monospace;
font-size: 12px;
selection-background-color: #fbbf24;
selection-color: #0f172a;
}
QTextEdit:focus {
border-color: rgba(251, 191, 36, 0.5);
}
/* ==================== 消息框 ==================== */
QMessageBox {
background-color: #1e293b;
}
QMessageBox QLabel {
color: #e2e8f0;
}
QMessageBox QPushButton {
min-width: 80px;
}
/* ==================== 对话框 ==================== */
QDialog {
background-color: #1e293b;
}
/* ==================== 工具提示 ==================== */
QToolTip {
background-color: #0f172a;
color: #e2e8f0;
border: 1px solid #334155;
border-radius: 4px;
padding: 6px 10px;
}
/* ==================== 菜单 ==================== */
QMenu {
background-color: #1e293b;
border: 1px solid #334155;
border-radius: 8px;
padding: 4px;
}
QMenu::item {
padding: 8px 24px;
border-radius: 4px;
color: #e2e8f0;
}
QMenu::item:selected {
background-color: rgba(251, 191, 36, 0.2);
color: #fbbf24;
}
/* ==================== 分割器 ==================== */
QSplitter::handle {
background-color: #334155;
}
QSplitter::handle:horizontal {
width: 1px;
}
QSplitter::handle:vertical {
height: 1px;
}
/* ==================== 文件对话框 ==================== */
QFileDialog {
background-color: #1e293b;
}
QFileDialog QListView,
QFileDialog QTreeView {
background-color: #0f172a;
border: 1px solid #334155;
border-radius: 8px;
}
QFileDialog QListView::item,
QFileDialog QTreeView::item {
padding: 4px;
color: #e2e8f0;
}
QFileDialog QListView::item:selected,
QFileDialog QTreeView::item:selected {
background-color: rgba(251, 191, 36, 0.2);
color: #fbbf24;
}
/* ==================== 卡片样式 ==================== */
#card {
background-color: rgba(30, 41, 59, 0.5);
border: 1px solid #334155;
border-radius: 16px;
}
#card:hover {
border-color: rgba(251, 191, 36, 0.5);
}
/* ==================== 标签样式 ==================== */
QLabel {
background: transparent;
}
/* ==================== 框架样式 ==================== */
QFrame {
background: transparent;
}
/* ==================== 动画相关样式 ==================== */
/* 注意: Qt不支持CSS动画,但我们可以通过QPropertyAnimation实现 */
/* ==================== 预览面板样式 ==================== */
ImagePreviewWidget {
background: rgba(15, 23, 42, 0.5);
border: 1px solid #334155;
border-radius: 12px;
}
ImagePreviewWidget:hover {
border-color: rgba(251, 191, 36, 0.3);
}
/* ==================== 双栏预览样式 ==================== */
DualPreviewWidget {
background: transparent;
}
/* ==================== 设置页面样式 ==================== */
SettingsPage QGroupBox {
background: rgba(30, 41, 59, 0.3);
border: 1px solid rgba(51, 65, 85, 0.5);
border-radius: 12px;
padding: 16px;
margin-top: 20px;
}
SettingsPage QGroupBox::title {
color: #e2e8f0;
font-size: 13px;
font-weight: 600;
background: transparent;
}
/* ==================== 滑块增强样式 ==================== */
QSlider::groove:horizontal {
background: #1e293b;
height: 6px;
border-radius: 3px;
}
QSlider::handle:horizontal {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #fbbf24, stop:1 #f59e0b);
width: 16px;
height: 16px;
margin: -5px 0;
border-radius: 8px;
border: 2px solid #fbbf24;
}
QSlider::handle:horizontal:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #fcd34d, stop:1 #fbbf24);
border-color: #fcd34d;
}
QSlider::sub-page:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #f59e0b, stop:1 #fbbf24);
border-radius: 3px;
}
/* ==================== 按钮过渡效果 ==================== */
QPushButton {
/* transition通过QPropertyAnimation实现 */
}
#primary_btn {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #fbbf24, stop:1 #f59e0b);
border: none;
border-radius: 10px;
color: white;
font-weight: 700;
padding: 10px 20px;
}
#primary_btn:hover {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #fcd34d, stop:1 #fbbf24);
}
#primary_btn:pressed {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #f59e0b, stop:1 #d97706);
}
/* ==================== 输入框焦点效果 ==================== */
QLineEdit:focus {
border-color: #fbbf24;
background: rgba(251, 191, 36, 0.05);
}
/* ==================== 进度条渐变 ==================== */
QProgressBar::chunk {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #f59e0b, stop:1 #fbbf24);
border-radius: 4px;
}
/* ==================== 卡片悬停效果 ==================== */
#card {
background: rgba(30, 41, 59, 0.5);
border: 1px solid #334155;
border-radius: 16px;
}
#card:hover {
border-color: rgba(251, 191, 36, 0.4);
background: rgba(30, 41, 59, 0.7);
}
/* ==================== 列表项选中高亮 ==================== */
QListWidget::item:selected {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 rgba(251, 191, 36, 0.15), stop:1 rgba(251, 191, 36, 0.05));
border-left: 3px solid #fbbf24;
color: #fbbf24;
}
/* ==================== 标签页增强 ==================== */
QTabBar::tab {
background: transparent;
color: #94a3b8;
padding: 12px 24px;
border: none;
border-bottom: 2px solid transparent;
font-weight: 500;
}
QTabBar::tab:hover {
color: #cbd5e1;
background: rgba(51, 65, 85, 0.3);
}
QTabBar::tab:selected {
color: #fbbf24;
border-bottom: 2px solid #fbbf24;
background: rgba(251, 191, 36, 0.05);
}
/* ==================== 复选框增强 ==================== */
QCheckBox::indicator:checked {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #fbbf24, stop:1 #f59e0b);
border-color: #fbbf24;
image: url(none);
}
QCheckBox::indicator:checked::after {
color: white;
}