"""@file theme.py @brief Единая спокойная тёмная тема каталогизатора без внешних ресурсов. Палитра и правила оформления совпадают со стилем SETGUI, чтобы обе программы выглядели частями одного инструментария. """ APP_STYLESHEET = """ QWidget { background: #10151d; color: #dce6f2; font-family: "Segoe UI", "SF Pro Text", "Helvetica Neue", "Noto Sans", sans-serif; font-size: 10pt; } QMainWindow { background: #0d1219; } QFrame#header { background: #151d28; border-bottom: 1px solid #263345; } QFrame[panel="true"] { background: #151d28; border: 1px solid #263345; border-radius: 8px; } QLabel[muted="true"] { color: #8291a5; } QLabel[title="true"] { color: #f4f8fc; font-size: 15pt; font-weight: 600; } QLabel[section="true"] { color: #f4f8fc; font-size: 11pt; font-weight: 600; } QPushButton { background: #243247; border: 1px solid #344762; border-radius: 5px; padding: 7px 14px; } QPushButton:hover { background: #2d405b; } QPushButton:pressed { background: #1c293b; } QPushButton:disabled { color: #627086; background: #192230; } QPushButton[primary="true"] { background: #1570d8; border-color: #2584ec; font-weight: 600; } QPushButton[primary="true"]:hover { background: #2584ec; } QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox { background: #0d131c; border: 1px solid #34445a; border-radius: 5px; padding: 6px; selection-background-color: #1570d8; } QComboBox::drop-down { border: 0; width: 24px; } QComboBox QAbstractItemView { background: #0d131c; border: 1px solid #34445a; selection-background-color: #1570d8; } QTabWidget::pane { border: 1px solid #263345; background: #10151d; } QTabBar::tab { background: #151d28; color: #91a0b4; border: 1px solid #263345; padding: 9px 15px; } QTabBar::tab:selected { color: #ffffff; background: #1c2838; border-bottom: 2px solid #2f91ff; } QHeaderView::section { background: #1b2635; color: #b9c5d5; border: 0; border-right: 1px solid #2b394c; padding: 6px; } QTableWidget, QTreeWidget { background: #0d131c; alternate-background-color: #111a25; gridline-color: #263345; border: 1px solid #263345; selection-background-color: #1570d8; selection-color: #ffffff; } QTextBrowser, QPlainTextEdit { background: #090e14; color: #aabbd0; border: 1px solid #263345; font-family: "Cascadia Mono", "SF Mono", Menlo, "DejaVu Sans Mono", monospace; font-size: 9pt; } QProgressBar { background: #0d131c; border: 1px solid #34445a; border-radius: 5px; text-align: center; } QProgressBar::chunk { background: #1570d8; border-radius: 4px; } QScrollBar:vertical { background: #10151d; width: 11px; margin: 0; } QScrollBar::handle:vertical { background: #34445a; min-height: 24px; border-radius: 5px; } QSplitter::handle { background: #1b2635; } QStatusBar { background: #151d28; color: #8291a5; } """ #: Цвета карточки документа: HTML-разметка QTextBrowser темы не наследует. CARD_CSS = """ body { color: #dce6f2; font-family: "Segoe UI", "SF Pro Text", "Helvetica Neue", sans-serif; font-size: 10pt; } h2 { color: #f4f8fc; font-size: 12pt; margin: 0 0 4px 0; } .facts { color: #8291a5; font-size: 9pt; margin-bottom: 10px; } .desc { margin-bottom: 10px; } .label { color: #2f91ff; font-weight: 600; } li { margin-bottom: 4px; } .kw { color: #b9c5d5; } .mine { color: #2f91ff; font-weight: 600; } .path { color: #627086; font-family: "Cascadia Mono", "SF Mono", Menlo, monospace; font-size: 8pt; } mark { background: #1570d8; color: #ffffff; } """