Files
DBClient/resources/style.qss
T
nngoandClaude Sonnet 4.6 b003976d39 theme: upgrade palette from Catppuccin Mocha to Frappé
Replaces all dark-Mocha colours (#1e1e2e base, #313244 surface0, etc.)
with the noticeably brighter Frappé variants (#303446 base, #414559
surface0, etc.) across the QSS and every hardcoded colour in Python
source files (syntax highlighter, completer popup, log viewer, explain
view, table viewer, schema browser, icons, etc.).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 16:51:37 -04:00

600 lines
16 KiB
Plaintext

/* ═══════════════════════════════════════════════════════════════════════════
DBClient — Dark Theme (Catppuccin Frappé palette)
═══════════════════════════════════════════════════════════════════════════ */
/* ── Variables via flat tokens ─────────────────────────────────────────────
base #303446 crust #232634
surface0 #414559 surface1 #51576d surface2 #626880
overlay #737994 subtext #a5adce text #c6d0f5
blue #8caaee lavender #babbf1 sapphire #85c1dc
green #a6d189 teal #81c8be sky #99d1db
mauve #ca9ee6 pink #f4b8e4 red #e78284
peach #ef9f76 yellow #e5c890
─────────────────────────────────────────────────────────────────────── */
/* ── Global reset ───────────────────────────────────────────────────────── */
* {
outline: none;
}
QMainWindow, QDialog {
background-color: #303446;
color: #c6d0f5;
}
QWidget {
background-color: #303446;
color: #c6d0f5;
font-family: "Segoe UI", "Inter", sans-serif;
font-size: 10pt;
}
/* ── Menu bar ───────────────────────────────────────────────────────────── */
QMenuBar {
background-color: #232634;
color: #c6d0f5;
border-bottom: 1px solid #414559;
padding: 2px 0;
}
QMenuBar::item {
padding: 4px 12px;
border-radius: 4px;
}
QMenuBar::item:selected {
background-color: #414559;
}
QMenu {
background-color: #292c3c;
border: 1px solid #51576d;
border-radius: 6px;
padding: 4px;
}
QMenu::item {
padding: 6px 24px 6px 12px;
border-radius: 4px;
color: #c6d0f5;
}
QMenu::item:selected {
background-color: #414559;
color: #c6d0f5;
}
QMenu::separator {
height: 1px;
background: #51576d;
margin: 4px 8px;
}
/* ── Status bar ─────────────────────────────────────────────────────────── */
QStatusBar {
background-color: #232634;
border-top: 1px solid #414559;
color: #a5adce;
font-size: 9pt;
padding: 2px 8px;
}
/* ── Scrollbars ─────────────────────────────────────────────────────────── */
QScrollBar:vertical {
background: #303446;
width: 10px;
margin: 0;
}
QScrollBar::handle:vertical {
background: #51576d;
border-radius: 5px;
min-height: 24px;
}
QScrollBar::handle:vertical:hover {
background: #626880;
}
QScrollBar:horizontal {
background: #303446;
height: 10px;
}
QScrollBar::handle:horizontal {
background: #51576d;
border-radius: 5px;
min-width: 24px;
}
QScrollBar::handle:horizontal:hover {
background: #626880;
}
QScrollBar::add-line, QScrollBar::sub-line { height: 0; width: 0; }
QScrollBar::add-page, QScrollBar::sub-page { background: transparent; }
/* ── Splitter ────────────────────────────────────────────────────────────── */
QSplitter::handle {
background-color: #414559;
}
QSplitter::handle:horizontal { width: 2px; }
QSplitter::handle:vertical { height: 2px; }
QSplitter::handle:hover {
background-color: #8caaee;
}
/* ── Sidebar ─────────────────────────────────────────────────────────────── */
#sidebarHeader {
background-color: #292c3c;
border-bottom: 1px solid #414559;
}
#sidebarTitle {
color: #8caaee;
font-size: 11pt;
font-weight: 600;
}
#newConnBtn {
background-color: #414559;
color: #8caaee;
border: 1px solid #51576d;
border-radius: 6px;
font-size: 14pt;
padding: 0;
}
#newConnBtn:hover {
background-color: #51576d;
color: #babbf1;
}
/* ── Tree widget ─────────────────────────────────────────────────────────── */
QTreeWidget {
background-color: #292c3c;
border: none;
color: #c6d0f5;
font-size: 10pt;
show-decoration-selected: 1;
}
QTreeWidget::item {
padding: 3px 4px;
border-radius: 4px;
}
QTreeWidget::item:hover {
background-color: #363a4f;
}
QTreeWidget::item:selected {
background-color: #414559;
color: #c6d0f5;
}
QTreeWidget::branch {
background: transparent;
}
/* ── Tab widget ──────────────────────────────────────────────────────────── */
QTabWidget::pane {
border: none;
border-top: 1px solid #414559;
background-color: #303446;
}
QTabBar {
background-color: #292c3c;
}
QTabBar::tab {
background-color: #292c3c;
color: #a5adce;
padding: 7px 16px;
border: none;
border-right: 1px solid #414559;
font-size: 10pt;
}
QTabBar::tab:selected {
background-color: #303446;
color: #c6d0f5;
border-bottom: 2px solid #8caaee;
}
QTabBar::tab:hover:!selected {
background-color: #353849;
color: #c6d0f5;
}
QTabBar::close-button {
subcontrol-position: right;
padding: 2px;
}
/* ── Table view ──────────────────────────────────────────────────────────── */
QTableView, QTableWidget {
background-color: #303446;
alternate-background-color: #363a4f;
gridline-color: #414559;
color: #c6d0f5;
border: none;
selection-background-color: #414559;
selection-color: #c6d0f5;
font-size: 10pt;
}
QTableView::item, QTableWidget::item {
padding: 2px 6px;
}
QHeaderView {
background-color: #292c3c;
}
QHeaderView::section {
background-color: #292c3c;
color: #8caaee;
border: none;
border-right: 1px solid #414559;
border-bottom: 1px solid #414559;
padding: 4px 8px;
font-weight: 600;
}
QHeaderView::section:hover {
background-color: #353849;
}
/* ── Plain text edit (SQL editor body) ───────────────────────────────────── */
QPlainTextEdit {
background-color: #303446;
color: #c6d0f5;
border: none;
selection-background-color: #51576d;
font-family: "Consolas", "JetBrains Mono", "Courier New", monospace;
font-size: 13pt;
line-height: 1.5;
}
/* ── Line number gutter ──────────────────────────────────────────────────── */
LineNumberArea {
background-color: #2a2d3e;
}
/* ── Buttons ─────────────────────────────────────────────────────────────── */
QPushButton {
background-color: #414559;
color: #c6d0f5;
border: 1px solid #51576d;
border-radius: 6px;
padding: 5px 14px;
font-size: 10pt;
}
QPushButton:hover {
background-color: #51576d;
border-color: #626880;
}
QPushButton:pressed {
background-color: #363849;
}
QPushButton:disabled {
color: #626880;
background-color: #363849;
border-color: #414559;
}
#runBtn {
background-color: #a6d189;
color: #303446;
font-weight: 700;
border: none;
}
#runBtn:hover {
background-color: #81c8be;
}
#stopBtn {
background-color: #e78284;
color: #303446;
font-weight: 700;
border: none;
}
#stopBtn:hover {
background-color: #ea999c;
}
#commitBtn {
background-color: #a6d189;
color: #303446;
font-weight: 700;
border: none;
}
#rollbackBtn {
background-color: #ef9f76;
color: #303446;
font-weight: 700;
border: none;
}
#crudAddBtn {
background-color: #414559;
color: #a6d189;
border: 1px solid #a6d189;
font-weight: 600;
}
#crudAddBtn:hover {
background-color: #a6d189;
color: #303446;
}
#crudDeleteBtn {
background-color: #414559;
color: #e78284;
border: 1px solid #e78284;
font-weight: 600;
}
#crudDeleteBtn:hover {
background-color: #e78284;
color: #303446;
}
/* ── Line edit ───────────────────────────────────────────────────────────── */
QLineEdit {
background-color: #414559;
color: #c6d0f5;
border: 1px solid #51576d;
border-radius: 6px;
padding: 5px 10px;
font-size: 10pt;
selection-background-color: #8caaee;
selection-color: #303446;
}
QLineEdit:focus {
border-color: #8caaee;
}
QLineEdit::placeholder {
color: #626880;
}
/* ── Combo box ───────────────────────────────────────────────────────────── */
QComboBox {
background-color: #414559;
color: #c6d0f5;
border: 1px solid #51576d;
border-radius: 6px;
padding: 5px 10px;
font-size: 10pt;
}
QComboBox:focus {
border-color: #8caaee;
}
QComboBox::drop-down {
border: none;
width: 24px;
}
QComboBox QAbstractItemView {
background-color: #292c3c;
color: #c6d0f5;
border: 1px solid #51576d;
selection-background-color: #414559;
}
/* ── Spin box ────────────────────────────────────────────────────────────── */
QSpinBox {
background-color: #414559;
color: #c6d0f5;
border: 1px solid #51576d;
border-radius: 6px;
padding: 4px 8px;
}
QSpinBox:focus { border-color: #8caaee; }
QSpinBox::up-button, QSpinBox::down-button {
background-color: #51576d;
border: none;
border-radius: 3px;
width: 16px;
}
/* ── Check box ───────────────────────────────────────────────────────────── */
QCheckBox {
color: #c6d0f5;
spacing: 8px;
}
QCheckBox::indicator {
width: 16px;
height: 16px;
border: 2px solid #51576d;
border-radius: 4px;
background: #414559;
}
QCheckBox::indicator:checked {
background-color: #8caaee;
border-color: #8caaee;
}
/* ── Dialog ──────────────────────────────────────────────────────────────── */
QDialog {
background-color: #303446;
}
QDialogButtonBox QPushButton {
min-width: 80px;
}
/* ── Form layout labels ──────────────────────────────────────────────────── */
QFormLayout QLabel {
color: #a5adce;
}
/* ── Tab widget in dialogs ───────────────────────────────────────────────── */
QTabWidget#dialogTabs::pane {
border: 1px solid #414559;
border-radius: 6px;
margin-top: -1px;
}
/* ── Group box ───────────────────────────────────────────────────────────── */
QGroupBox {
border: 1px solid #51576d;
border-radius: 6px;
margin-top: 1em;
color: #a5adce;
font-weight: 600;
}
QGroupBox::title {
subcontrol-origin: margin;
left: 10px;
padding: 0 4px;
}
/* ── Progress bar ────────────────────────────────────────────────────────── */
QProgressBar {
background-color: #414559;
border: 1px solid #51576d;
border-radius: 6px;
height: 10px;
text-align: center;
}
QProgressBar::chunk {
background-color: #8caaee;
border-radius: 5px;
}
/* ── Dock widget ─────────────────────────────────────────────────────────── */
QDockWidget {
color: #c6d0f5;
titlebar-close-icon: none;
font-weight: 600;
}
QDockWidget::title {
background-color: #292c3c;
padding: 6px;
border-bottom: 1px solid #414559;
}
/* ── Tool button ─────────────────────────────────────────────────────────── */
QToolButton {
background-color: #414559;
color: #c6d0f5;
border: 1px solid #51576d;
border-radius: 5px;
padding: 4px 8px;
font-size: 13pt;
}
QToolButton:hover {
background-color: #51576d;
}
/* ── Message box ─────────────────────────────────────────────────────────── */
QMessageBox {
background-color: #303446;
}
QMessageBox QLabel {
color: #c6d0f5;
font-size: 10pt;
}
/* ── Empty workspace label ───────────────────────────────────────────────── */
#emptyLabel {
color: #626880;
font-size: 14pt;
line-height: 2;
}
/* ── Status label in results toolbar ────────────────────────────────────── */
#statusLabel {
color: #a5adce;
font-size: 9pt;
padding-left: 4px;
}
/* ── DB label in SQL editor toolbar ─────────────────────────────────────── */
#dbLabel {
color: #737994;
font-size: 9pt;
padding-right: 4px;
}
/* ── Workspace tab widget ────────────────────────────────────────────────── */
#workspace > QTabBar::tab {
min-width: 120px;
}
/* ── Horizontal separator line in dialog ────────────────────────────────── */
QFrame[frameShape="4"] { /* HLine */
color: #414559;
margin: 4px 0;
}
/* ── Structure view title ────────────────────────────────────────────────── */
#structureTitle {
color: #babbf1;
}
/* ── Pagination bar ──────────────────────────────────────────────────────── */
#paginationBar {
background-color: #292c3c;
border-top: 1px solid #51576d;
min-height: 38px;
}
#pgBtn {
background-color: #363849;
color: #c6d0f5;
border: 1px solid #51576d;
border-radius: 5px;
padding: 4px 10px;
font-size: 9pt;
min-width: 52px;
}
#pgBtn:hover {
background-color: #414559;
border-color: #626880;
}
#pgBtn:disabled {
color: #51576d;
background-color: #303446;
border-color: #414559;
}
#pageLbl {
color: #8caaee;
font-size: 9pt;
font-weight: 600;
padding: 0 6px;
}
#rowCountLbl {
color: #a5adce;
font-size: 9pt;
padding-left: 8px;
}