/* 奶酪云工具箱 - 暗色主题样式表 */ /* 精确还原 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; }