Rewrite bundled themes with comprehensive Fusion-style QSS covering all widget types and states
This commit is contained in:
parent
463f77d8bb
commit
507641596e
@ -1,17 +1,62 @@
|
|||||||
/* booru-viewer — Catppuccin Mocha */
|
/* booru-viewer — Catppuccin Mocha
|
||||||
|
*
|
||||||
|
* Comprehensive Fusion-style QSS. Mimics the visual feel of Qt's Fusion
|
||||||
|
* style + a dark KDE color scheme: subtle borders, modest corner radius,
|
||||||
|
* clear hover/pressed/focus states, transparent labels.
|
||||||
|
*
|
||||||
|
* Palette (edit these and the rest of the file together if you fork):
|
||||||
|
* bg #1e1e2e
|
||||||
|
* bg_alt #181825
|
||||||
|
* bg_subtle #313244
|
||||||
|
* bg_hover #45475a
|
||||||
|
* bg_active #585b70
|
||||||
|
* text #cdd6f4
|
||||||
|
* text_dim #a6adc8
|
||||||
|
* text_disabled #6c7086
|
||||||
|
* border #313244
|
||||||
|
* border_strong #45475a
|
||||||
|
* accent #cba6f7
|
||||||
|
* accent_text #1e1e2e
|
||||||
|
* accent_dim #b4befe
|
||||||
|
* link #89b4fa
|
||||||
|
* danger #f38ba8
|
||||||
|
* success #a6e3a1
|
||||||
|
* warning #f9e2af
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ---------- Base ---------- */
|
||||||
|
|
||||||
QWidget {
|
QWidget {
|
||||||
background-color: #1e1e2e;
|
background-color: #1e1e2e;
|
||||||
color: #cdd6f4;
|
color: #cdd6f4;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
selection-background-color: #cba6f7;
|
||||||
|
selection-color: #1e1e2e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget:disabled {
|
||||||
|
color: #6c7086;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Labels should never paint an opaque background — they sit on top of
|
||||||
|
* other widgets in many places (toolbars, info panels, overlays). */
|
||||||
|
QLabel {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow, QDialog {
|
||||||
|
background-color: #1e1e2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Buttons ---------- */
|
||||||
|
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: #313244;
|
background-color: #313244;
|
||||||
color: #cdd6f4;
|
color: #cdd6f4;
|
||||||
border: 1px solid #45475a;
|
border: 1px solid #45475a;
|
||||||
border-radius: 6px;
|
border-radius: 4px;
|
||||||
padding: 5px 14px;
|
padding: 5px 12px;
|
||||||
|
min-height: 18px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #45475a;
|
background-color: #45475a;
|
||||||
@ -25,102 +70,459 @@ QPushButton:checked {
|
|||||||
color: #1e1e2e;
|
color: #1e1e2e;
|
||||||
border-color: #cba6f7;
|
border-color: #cba6f7;
|
||||||
}
|
}
|
||||||
|
QPushButton:checked:hover {
|
||||||
|
background-color: #b4befe;
|
||||||
|
border-color: #b4befe;
|
||||||
|
}
|
||||||
|
QPushButton:disabled {
|
||||||
|
background-color: #181825;
|
||||||
|
color: #6c7086;
|
||||||
|
border-color: #313244;
|
||||||
|
}
|
||||||
|
QPushButton:flat {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:flat:hover {
|
||||||
|
background-color: #45475a;
|
||||||
|
}
|
||||||
|
|
||||||
QLineEdit, QSpinBox, QComboBox {
|
QToolButton {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QToolButton:hover {
|
||||||
|
background-color: #45475a;
|
||||||
|
border-color: #45475a;
|
||||||
|
}
|
||||||
|
QToolButton:pressed, QToolButton:checked {
|
||||||
|
background-color: #585b70;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Inputs ---------- */
|
||||||
|
|
||||||
|
QLineEdit, QSpinBox, QDoubleSpinBox, QTextEdit, QPlainTextEdit {
|
||||||
background-color: #313244;
|
background-color: #313244;
|
||||||
color: #cdd6f4;
|
color: #cdd6f4;
|
||||||
border: 1px solid #45475a;
|
border: 1px solid #45475a;
|
||||||
border-radius: 6px;
|
border-radius: 4px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
selection-background-color: #cba6f7;
|
selection-background-color: #cba6f7;
|
||||||
selection-color: #1e1e2e;
|
selection-color: #1e1e2e;
|
||||||
}
|
}
|
||||||
QLineEdit:focus, QSpinBox:focus {
|
QLineEdit:focus,
|
||||||
|
QSpinBox:focus,
|
||||||
|
QDoubleSpinBox:focus,
|
||||||
|
QTextEdit:focus,
|
||||||
|
QPlainTextEdit:focus {
|
||||||
border-color: #cba6f7;
|
border-color: #cba6f7;
|
||||||
}
|
}
|
||||||
|
QLineEdit:disabled,
|
||||||
|
QSpinBox:disabled,
|
||||||
|
QDoubleSpinBox:disabled,
|
||||||
|
QTextEdit:disabled,
|
||||||
|
QPlainTextEdit:disabled {
|
||||||
|
background-color: #181825;
|
||||||
|
color: #6c7086;
|
||||||
|
border-color: #313244;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
background-color: #313244;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: 1px solid #45475a;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-height: 18px;
|
||||||
|
}
|
||||||
|
QComboBox:hover {
|
||||||
|
border-color: #cba6f7;
|
||||||
|
}
|
||||||
|
QComboBox:focus {
|
||||||
|
border-color: #cba6f7;
|
||||||
|
}
|
||||||
QComboBox::drop-down {
|
QComboBox::drop-down {
|
||||||
border: none;
|
border: none;
|
||||||
width: 20px;
|
width: 18px;
|
||||||
}
|
}
|
||||||
QComboBox QAbstractItemView {
|
QComboBox QAbstractItemView {
|
||||||
background-color: #313244;
|
background-color: #313244;
|
||||||
color: #cdd6f4;
|
color: #cdd6f4;
|
||||||
border: 1px solid #45475a;
|
border: 1px solid #45475a;
|
||||||
selection-background-color: #45475a;
|
selection-background-color: #cba6f7;
|
||||||
|
selection-color: #1e1e2e;
|
||||||
|
outline: none;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Scrollbars ---------- */
|
||||||
|
|
||||||
QScrollBar:vertical {
|
QScrollBar:vertical {
|
||||||
background: #1e1e2e;
|
background: #1e1e2e;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical {
|
QScrollBar::handle:vertical {
|
||||||
background: #585b70;
|
background: #45475a;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-height: 20px;
|
min-height: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:vertical:hover {
|
||||||
|
background: #585b70;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:vertical,
|
||||||
|
QScrollBar::sub-line:vertical {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical,
|
||||||
|
QScrollBar::sub-page:vertical {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical:hover { background: #cba6f7; }
|
|
||||||
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
||||||
|
|
||||||
QScrollBar:horizontal {
|
QScrollBar:horizontal {
|
||||||
background: #1e1e2e;
|
background: #1e1e2e;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:horizontal {
|
QScrollBar::handle:horizontal {
|
||||||
background: #585b70;
|
background: #45475a;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:horizontal:hover {
|
||||||
|
background: #585b70;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:horizontal,
|
||||||
|
QScrollBar::sub-line:horizontal {
|
||||||
|
width: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:horizontal,
|
||||||
|
QScrollBar::sub-page:horizontal {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
||||||
|
|
||||||
QMenuBar, QMenu {
|
QScrollArea {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Menus ---------- */
|
||||||
|
|
||||||
|
QMenuBar {
|
||||||
background-color: #1e1e2e;
|
background-color: #1e1e2e;
|
||||||
color: #cdd6f4;
|
color: #cdd6f4;
|
||||||
border: 1px solid #313244;
|
border-bottom: 1px solid #313244;
|
||||||
|
}
|
||||||
|
QMenuBar::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 4px 10px;
|
||||||
|
}
|
||||||
|
QMenuBar::item:selected {
|
||||||
|
background-color: #45475a;
|
||||||
|
color: #cdd6f4;
|
||||||
|
}
|
||||||
|
QMenuBar::item:pressed {
|
||||||
|
background-color: #585b70;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu {
|
||||||
|
background-color: #313244;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: 1px solid #45475a;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
QMenu::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 5px 24px 5px 24px;
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
QMenu::item:selected {
|
||||||
background-color: #45475a;
|
background-color: #cba6f7;
|
||||||
|
color: #1e1e2e;
|
||||||
}
|
}
|
||||||
|
QMenu::item:disabled {
|
||||||
|
color: #6c7086;
|
||||||
|
}
|
||||||
|
QMenu::separator {
|
||||||
|
height: 1px;
|
||||||
|
background: #313244;
|
||||||
|
margin: 4px 8px;
|
||||||
|
}
|
||||||
|
QMenu::icon {
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Status bar ---------- */
|
||||||
|
|
||||||
QStatusBar {
|
QStatusBar {
|
||||||
background-color: #1e1e2e;
|
background-color: #1e1e2e;
|
||||||
color: #a6adc8;
|
color: #a6adc8;
|
||||||
|
border-top: 1px solid #313244;
|
||||||
}
|
}
|
||||||
|
QStatusBar::item {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Splitters ---------- */
|
||||||
|
|
||||||
QSplitter::handle {
|
QSplitter::handle {
|
||||||
background: #45475a;
|
background: #313244;
|
||||||
|
}
|
||||||
|
QSplitter::handle:horizontal {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
}
|
}
|
||||||
|
QSplitter::handle:vertical {
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:hover {
|
||||||
|
background: #cba6f7;
|
||||||
|
}
|
||||||
|
|
||||||
QLabel { background: transparent; }
|
/* ---------- Sliders ---------- */
|
||||||
|
|
||||||
QSlider::groove:horizontal {
|
QSlider::groove:horizontal {
|
||||||
background: #313244;
|
background: #313244;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
QSlider::sub-page:horizontal {
|
||||||
|
background: #cba6f7;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
QSlider::handle:horizontal {
|
QSlider::handle:horizontal {
|
||||||
background: #cba6f7;
|
background: #cba6f7;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
margin: -4px 0;
|
height: 12px;
|
||||||
|
margin: -5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background: #b4befe;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical {
|
||||||
|
background: #313244;
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
QSlider::handle:vertical {
|
||||||
|
background: #cba6f7;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin: 0 -5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTabBar::tab {
|
/* ---------- Progress ---------- */
|
||||||
background: #313244;
|
|
||||||
|
QProgressBar {
|
||||||
|
background-color: #313244;
|
||||||
color: #cdd6f4;
|
color: #cdd6f4;
|
||||||
border: 1px solid #45475a;
|
border: 1px solid #313244;
|
||||||
padding: 6px 16px;
|
border-radius: 3px;
|
||||||
border-radius: 4px 4px 0 0;
|
text-align: center;
|
||||||
|
height: 6px;
|
||||||
}
|
}
|
||||||
QTabBar::tab:selected {
|
QProgressBar::chunk {
|
||||||
background: #45475a;
|
background-color: #cba6f7;
|
||||||
color: #cba6f7;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Popout & preview overlay controls */
|
/* ---------- Checkboxes & radio buttons ---------- */
|
||||||
|
|
||||||
|
QCheckBox, QRadioButton {
|
||||||
|
background: transparent;
|
||||||
|
color: #cdd6f4;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #313244;
|
||||||
|
border: 1px solid #45475a;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QRadioButton::indicator {
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:hover, QRadioButton::indicator:hover {
|
||||||
|
border-color: #cba6f7;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
|
background-color: #cba6f7;
|
||||||
|
border-color: #cba6f7;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:disabled, QRadioButton::indicator:disabled {
|
||||||
|
background-color: #181825;
|
||||||
|
border-color: #313244;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tooltips ---------- */
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #313244;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: 1px solid #45475a;
|
||||||
|
padding: 4px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Item views (lists, trees, tables) ---------- */
|
||||||
|
|
||||||
|
QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget {
|
||||||
|
background-color: #1e1e2e;
|
||||||
|
alternate-background-color: #181825;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: 1px solid #313244;
|
||||||
|
selection-background-color: #cba6f7;
|
||||||
|
selection-color: #1e1e2e;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
QListView::item, QListWidget::item,
|
||||||
|
QTreeView::item, QTreeWidget::item,
|
||||||
|
QTableView::item, QTableWidget::item {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QListView::item:hover, QListWidget::item:hover,
|
||||||
|
QTreeView::item:hover, QTreeWidget::item:hover,
|
||||||
|
QTableView::item:hover, QTableWidget::item:hover {
|
||||||
|
background-color: #45475a;
|
||||||
|
}
|
||||||
|
QListView::item:selected, QListWidget::item:selected,
|
||||||
|
QTreeView::item:selected, QTreeWidget::item:selected,
|
||||||
|
QTableView::item:selected, QTableWidget::item:selected {
|
||||||
|
background-color: #cba6f7;
|
||||||
|
color: #1e1e2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
background-color: #313244;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: none;
|
||||||
|
border-right: 1px solid #313244;
|
||||||
|
padding: 4px 8px;
|
||||||
|
}
|
||||||
|
QHeaderView::section:hover {
|
||||||
|
background-color: #45475a;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tabs ---------- */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
border: 1px solid #313244;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
QTabBar::tab {
|
||||||
|
background: #313244;
|
||||||
|
color: #a6adc8;
|
||||||
|
border: 1px solid #313244;
|
||||||
|
border-bottom: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
|
}
|
||||||
|
QTabBar::tab:selected {
|
||||||
|
background: #1e1e2e;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border-color: #45475a;
|
||||||
|
}
|
||||||
|
QTabBar::tab:hover:!selected {
|
||||||
|
background: #45475a;
|
||||||
|
color: #cdd6f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Group boxes ---------- */
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
background: transparent;
|
||||||
|
color: #cdd6f4;
|
||||||
|
border: 1px solid #313244;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
padding: 0 6px;
|
||||||
|
color: #a6adc8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Frames ---------- */
|
||||||
|
|
||||||
|
QFrame[frameShape="4"], /* HLine */
|
||||||
|
QFrame[frameShape="5"] /* VLine */ {
|
||||||
|
background: #313244;
|
||||||
|
color: #313244;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Toolbars ---------- */
|
||||||
|
|
||||||
|
QToolBar {
|
||||||
|
background: #1e1e2e;
|
||||||
|
border: none;
|
||||||
|
spacing: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
QToolBar::separator {
|
||||||
|
background: #313244;
|
||||||
|
width: 1px;
|
||||||
|
margin: 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Dock widgets ---------- */
|
||||||
|
|
||||||
|
QDockWidget {
|
||||||
|
color: #cdd6f4;
|
||||||
|
titlebar-close-icon: none;
|
||||||
|
}
|
||||||
|
QDockWidget::title {
|
||||||
|
background: #313244;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid #313244;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Rubber band (multi-select drag rectangle) ---------- */
|
||||||
|
|
||||||
|
QRubberBand {
|
||||||
|
background: #cba6f7;
|
||||||
|
border: 1px solid #cba6f7;
|
||||||
|
/* Qt blends rubber band at ~30% so this reads as a translucent
|
||||||
|
* accent-tinted rectangle without needing rgba(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Popout & preview overlay controls ---------- */
|
||||||
|
|
||||||
QWidget#_preview_controls,
|
QWidget#_preview_controls,
|
||||||
QWidget#_slideshow_toolbar,
|
QWidget#_slideshow_toolbar,
|
||||||
QWidget#_slideshow_controls {
|
QWidget#_slideshow_controls {
|
||||||
background: rgba(0, 0, 0, 160);
|
background: rgba(0, 0, 0, 160);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Thumbnail dot indicators (Qt properties on ThumbnailWidget) ---------- */
|
||||||
|
|
||||||
|
ThumbnailWidget {
|
||||||
|
qproperty-savedColor: #22cc22; /* green dot: saved to library — universal "confirmed" feel */
|
||||||
|
qproperty-bookmarkedColor: #ffcc00; /* yellow star: bookmarked */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Info panel tag category colors ---------- */
|
||||||
|
|
||||||
|
InfoPanel {
|
||||||
|
qproperty-tagArtistColor: #f9e2af;
|
||||||
|
qproperty-tagCharacterColor: #a6e3a1;
|
||||||
|
qproperty-tagCopyrightColor: #cba6f7;
|
||||||
|
qproperty-tagSpeciesColor: #f38ba8;
|
||||||
|
qproperty-tagMetaColor: #a6adc8;
|
||||||
|
qproperty-tagLoreColor: #a6adc8;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,123 +1,528 @@
|
|||||||
/* booru-viewer — Everforest Dark */
|
/* booru-viewer — Everforest Dark
|
||||||
|
*
|
||||||
|
* Comprehensive Fusion-style QSS. Mimics the visual feel of Qt's Fusion
|
||||||
|
* style + a dark KDE color scheme: subtle borders, modest corner radius,
|
||||||
|
* clear hover/pressed/focus states, transparent labels.
|
||||||
|
*
|
||||||
|
* Palette (edit these and the rest of the file together if you fork):
|
||||||
|
* bg #2d353b
|
||||||
|
* bg_alt #232a2e
|
||||||
|
* bg_subtle #343f44
|
||||||
|
* bg_hover #3d484d
|
||||||
|
* bg_active #4f585e
|
||||||
|
* text #d3c6aa
|
||||||
|
* text_dim #9da9a0
|
||||||
|
* text_disabled #7a8478
|
||||||
|
* border #343f44
|
||||||
|
* border_strong #3d484d
|
||||||
|
* accent #a7c080
|
||||||
|
* accent_text #2d353b
|
||||||
|
* accent_dim #83c092
|
||||||
|
* link #7fbbb3
|
||||||
|
* danger #e67e80
|
||||||
|
* success #a7c080
|
||||||
|
* warning #dbbc7f
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ---------- Base ---------- */
|
||||||
|
|
||||||
QWidget {
|
QWidget {
|
||||||
background-color: #2d353b;
|
background-color: #2d353b;
|
||||||
color: #d3c6aa;
|
color: #d3c6aa;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
selection-background-color: #a7c080;
|
||||||
|
selection-color: #2d353b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget:disabled {
|
||||||
|
color: #7a8478;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Labels should never paint an opaque background — they sit on top of
|
||||||
|
* other widgets in many places (toolbars, info panels, overlays). */
|
||||||
|
QLabel {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow, QDialog {
|
||||||
|
background-color: #2d353b;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Buttons ---------- */
|
||||||
|
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: #343f44;
|
background-color: #343f44;
|
||||||
color: #d3c6aa;
|
color: #d3c6aa;
|
||||||
border: 1px solid #4f585e;
|
border: 1px solid #3d484d;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 5px 14px;
|
padding: 5px 12px;
|
||||||
|
min-height: 18px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #4f585e;
|
background-color: #3d484d;
|
||||||
border-color: #a7c080;
|
border-color: #a7c080;
|
||||||
}
|
}
|
||||||
QPushButton:pressed {
|
QPushButton:pressed {
|
||||||
background-color: #a7c080;
|
background-color: #4f585e;
|
||||||
color: #2d353b;
|
|
||||||
}
|
}
|
||||||
QPushButton:checked {
|
QPushButton:checked {
|
||||||
background-color: #a7c080;
|
background-color: #a7c080;
|
||||||
color: #2d353b;
|
color: #2d353b;
|
||||||
border-color: #a7c080;
|
border-color: #a7c080;
|
||||||
}
|
}
|
||||||
|
QPushButton:checked:hover {
|
||||||
|
background-color: #83c092;
|
||||||
|
border-color: #83c092;
|
||||||
|
}
|
||||||
|
QPushButton:disabled {
|
||||||
|
background-color: #232a2e;
|
||||||
|
color: #7a8478;
|
||||||
|
border-color: #343f44;
|
||||||
|
}
|
||||||
|
QPushButton:flat {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:flat:hover {
|
||||||
|
background-color: #3d484d;
|
||||||
|
}
|
||||||
|
|
||||||
QLineEdit, QSpinBox, QComboBox, QTextEdit {
|
QToolButton {
|
||||||
background-color: #272e33;
|
background-color: transparent;
|
||||||
color: #d3c6aa;
|
color: #d3c6aa;
|
||||||
border: 1px solid #4f585e;
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QToolButton:hover {
|
||||||
|
background-color: #3d484d;
|
||||||
|
border-color: #3d484d;
|
||||||
|
}
|
||||||
|
QToolButton:pressed, QToolButton:checked {
|
||||||
|
background-color: #4f585e;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Inputs ---------- */
|
||||||
|
|
||||||
|
QLineEdit, QSpinBox, QDoubleSpinBox, QTextEdit, QPlainTextEdit {
|
||||||
|
background-color: #343f44;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #3d484d;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
selection-background-color: #a7c080;
|
selection-background-color: #a7c080;
|
||||||
selection-color: #2d353b;
|
selection-color: #2d353b;
|
||||||
}
|
}
|
||||||
QLineEdit:focus, QSpinBox:focus, QTextEdit:focus {
|
QLineEdit:focus,
|
||||||
|
QSpinBox:focus,
|
||||||
|
QDoubleSpinBox:focus,
|
||||||
|
QTextEdit:focus,
|
||||||
|
QPlainTextEdit:focus {
|
||||||
border-color: #a7c080;
|
border-color: #a7c080;
|
||||||
}
|
}
|
||||||
|
QLineEdit:disabled,
|
||||||
QComboBox::drop-down { border: none; width: 20px; }
|
QSpinBox:disabled,
|
||||||
QComboBox QAbstractItemView {
|
QDoubleSpinBox:disabled,
|
||||||
background-color: #272e33;
|
QTextEdit:disabled,
|
||||||
color: #d3c6aa;
|
QPlainTextEdit:disabled {
|
||||||
border: 1px solid #4f585e;
|
background-color: #232a2e;
|
||||||
selection-background-color: #343f44;
|
color: #7a8478;
|
||||||
|
border-color: #343f44;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
background-color: #343f44;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #3d484d;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-height: 18px;
|
||||||
|
}
|
||||||
|
QComboBox:hover {
|
||||||
|
border-color: #a7c080;
|
||||||
|
}
|
||||||
|
QComboBox:focus {
|
||||||
|
border-color: #a7c080;
|
||||||
|
}
|
||||||
|
QComboBox::drop-down {
|
||||||
|
border: none;
|
||||||
|
width: 18px;
|
||||||
|
}
|
||||||
|
QComboBox QAbstractItemView {
|
||||||
|
background-color: #343f44;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #3d484d;
|
||||||
|
selection-background-color: #a7c080;
|
||||||
|
selection-color: #2d353b;
|
||||||
|
outline: none;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Scrollbars ---------- */
|
||||||
|
|
||||||
QScrollBar:vertical {
|
QScrollBar:vertical {
|
||||||
background: #2d353b;
|
background: #2d353b;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical {
|
QScrollBar::handle:vertical {
|
||||||
background: #4f585e;
|
background: #3d484d;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-height: 20px;
|
min-height: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:vertical:hover {
|
||||||
|
background: #4f585e;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:vertical,
|
||||||
|
QScrollBar::sub-line:vertical {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical,
|
||||||
|
QScrollBar::sub-page:vertical {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical:hover { background: #a7c080; }
|
|
||||||
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
||||||
|
|
||||||
QScrollBar:horizontal {
|
QScrollBar:horizontal {
|
||||||
background: #2d353b;
|
background: #2d353b;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:horizontal {
|
QScrollBar::handle:horizontal {
|
||||||
background: #4f585e;
|
background: #3d484d;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:horizontal:hover {
|
||||||
|
background: #4f585e;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:horizontal,
|
||||||
|
QScrollBar::sub-line:horizontal {
|
||||||
|
width: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:horizontal,
|
||||||
|
QScrollBar::sub-page:horizontal {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
||||||
|
|
||||||
QMenuBar, QMenu {
|
QScrollArea {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Menus ---------- */
|
||||||
|
|
||||||
|
QMenuBar {
|
||||||
background-color: #2d353b;
|
background-color: #2d353b;
|
||||||
color: #d3c6aa;
|
color: #d3c6aa;
|
||||||
border: 1px solid #343f44;
|
border-bottom: 1px solid #343f44;
|
||||||
|
}
|
||||||
|
QMenuBar::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 4px 10px;
|
||||||
|
}
|
||||||
|
QMenuBar::item:selected {
|
||||||
|
background-color: #3d484d;
|
||||||
|
color: #d3c6aa;
|
||||||
|
}
|
||||||
|
QMenuBar::item:pressed {
|
||||||
|
background-color: #4f585e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu {
|
||||||
|
background-color: #343f44;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #3d484d;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
QMenu::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 5px 24px 5px 24px;
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
QMenu::item:selected {
|
||||||
background-color: #343f44;
|
background-color: #a7c080;
|
||||||
|
color: #2d353b;
|
||||||
}
|
}
|
||||||
|
QMenu::item:disabled {
|
||||||
|
color: #7a8478;
|
||||||
|
}
|
||||||
|
QMenu::separator {
|
||||||
|
height: 1px;
|
||||||
|
background: #343f44;
|
||||||
|
margin: 4px 8px;
|
||||||
|
}
|
||||||
|
QMenu::icon {
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Status bar ---------- */
|
||||||
|
|
||||||
QStatusBar {
|
QStatusBar {
|
||||||
background-color: #272e33;
|
background-color: #2d353b;
|
||||||
color: #859289;
|
color: #9da9a0;
|
||||||
|
border-top: 1px solid #343f44;
|
||||||
}
|
}
|
||||||
|
QStatusBar::item {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Splitters ---------- */
|
||||||
|
|
||||||
QSplitter::handle {
|
QSplitter::handle {
|
||||||
background: #4f585e;
|
background: #343f44;
|
||||||
|
}
|
||||||
|
QSplitter::handle:horizontal {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
}
|
}
|
||||||
|
QSplitter::handle:vertical {
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:hover {
|
||||||
|
background: #a7c080;
|
||||||
|
}
|
||||||
|
|
||||||
QLabel { background: transparent; }
|
/* ---------- Sliders ---------- */
|
||||||
|
|
||||||
QSlider::groove:horizontal {
|
QSlider::groove:horizontal {
|
||||||
background: #343f44;
|
background: #343f44;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
QSlider::sub-page:horizontal {
|
||||||
|
background: #a7c080;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
QSlider::handle:horizontal {
|
QSlider::handle:horizontal {
|
||||||
background: #a7c080;
|
background: #a7c080;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
margin: -4px 0;
|
height: 12px;
|
||||||
|
margin: -5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background: #83c092;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical {
|
||||||
|
background: #343f44;
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
QSlider::handle:vertical {
|
||||||
|
background: #a7c080;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin: 0 -5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTabBar::tab {
|
/* ---------- Progress ---------- */
|
||||||
background: #343f44;
|
|
||||||
|
QProgressBar {
|
||||||
|
background-color: #343f44;
|
||||||
color: #d3c6aa;
|
color: #d3c6aa;
|
||||||
border: 1px solid #4f585e;
|
border: 1px solid #343f44;
|
||||||
padding: 6px 16px;
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
height: 6px;
|
||||||
}
|
}
|
||||||
QTabBar::tab:selected {
|
QProgressBar::chunk {
|
||||||
background: #4f585e;
|
background-color: #a7c080;
|
||||||
color: #a7c080;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Popout & preview overlay controls */
|
/* ---------- Checkboxes & radio buttons ---------- */
|
||||||
|
|
||||||
|
QCheckBox, QRadioButton {
|
||||||
|
background: transparent;
|
||||||
|
color: #d3c6aa;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #343f44;
|
||||||
|
border: 1px solid #3d484d;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QRadioButton::indicator {
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:hover, QRadioButton::indicator:hover {
|
||||||
|
border-color: #a7c080;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
|
background-color: #a7c080;
|
||||||
|
border-color: #a7c080;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:disabled, QRadioButton::indicator:disabled {
|
||||||
|
background-color: #232a2e;
|
||||||
|
border-color: #343f44;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tooltips ---------- */
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #343f44;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #3d484d;
|
||||||
|
padding: 4px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Item views (lists, trees, tables) ---------- */
|
||||||
|
|
||||||
|
QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget {
|
||||||
|
background-color: #2d353b;
|
||||||
|
alternate-background-color: #232a2e;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #343f44;
|
||||||
|
selection-background-color: #a7c080;
|
||||||
|
selection-color: #2d353b;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
QListView::item, QListWidget::item,
|
||||||
|
QTreeView::item, QTreeWidget::item,
|
||||||
|
QTableView::item, QTableWidget::item {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QListView::item:hover, QListWidget::item:hover,
|
||||||
|
QTreeView::item:hover, QTreeWidget::item:hover,
|
||||||
|
QTableView::item:hover, QTableWidget::item:hover {
|
||||||
|
background-color: #3d484d;
|
||||||
|
}
|
||||||
|
QListView::item:selected, QListWidget::item:selected,
|
||||||
|
QTreeView::item:selected, QTreeWidget::item:selected,
|
||||||
|
QTableView::item:selected, QTableWidget::item:selected {
|
||||||
|
background-color: #a7c080;
|
||||||
|
color: #2d353b;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
background-color: #343f44;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: none;
|
||||||
|
border-right: 1px solid #343f44;
|
||||||
|
padding: 4px 8px;
|
||||||
|
}
|
||||||
|
QHeaderView::section:hover {
|
||||||
|
background-color: #3d484d;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tabs ---------- */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
border: 1px solid #343f44;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
QTabBar::tab {
|
||||||
|
background: #343f44;
|
||||||
|
color: #9da9a0;
|
||||||
|
border: 1px solid #343f44;
|
||||||
|
border-bottom: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
|
}
|
||||||
|
QTabBar::tab:selected {
|
||||||
|
background: #2d353b;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border-color: #3d484d;
|
||||||
|
}
|
||||||
|
QTabBar::tab:hover:!selected {
|
||||||
|
background: #3d484d;
|
||||||
|
color: #d3c6aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Group boxes ---------- */
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
background: transparent;
|
||||||
|
color: #d3c6aa;
|
||||||
|
border: 1px solid #343f44;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
padding: 0 6px;
|
||||||
|
color: #9da9a0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Frames ---------- */
|
||||||
|
|
||||||
|
QFrame[frameShape="4"], /* HLine */
|
||||||
|
QFrame[frameShape="5"] /* VLine */ {
|
||||||
|
background: #343f44;
|
||||||
|
color: #343f44;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Toolbars ---------- */
|
||||||
|
|
||||||
|
QToolBar {
|
||||||
|
background: #2d353b;
|
||||||
|
border: none;
|
||||||
|
spacing: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
QToolBar::separator {
|
||||||
|
background: #343f44;
|
||||||
|
width: 1px;
|
||||||
|
margin: 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Dock widgets ---------- */
|
||||||
|
|
||||||
|
QDockWidget {
|
||||||
|
color: #d3c6aa;
|
||||||
|
titlebar-close-icon: none;
|
||||||
|
}
|
||||||
|
QDockWidget::title {
|
||||||
|
background: #343f44;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid #343f44;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Rubber band (multi-select drag rectangle) ---------- */
|
||||||
|
|
||||||
|
QRubberBand {
|
||||||
|
background: #a7c080;
|
||||||
|
border: 1px solid #a7c080;
|
||||||
|
/* Qt blends rubber band at ~30% so this reads as a translucent
|
||||||
|
* accent-tinted rectangle without needing rgba(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Popout & preview overlay controls ---------- */
|
||||||
|
|
||||||
QWidget#_preview_controls,
|
QWidget#_preview_controls,
|
||||||
QWidget#_slideshow_toolbar,
|
QWidget#_slideshow_toolbar,
|
||||||
QWidget#_slideshow_controls {
|
QWidget#_slideshow_controls {
|
||||||
background: rgba(0, 0, 0, 160);
|
background: rgba(0, 0, 0, 160);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Thumbnail dot indicators (Qt properties on ThumbnailWidget) ---------- */
|
||||||
|
|
||||||
|
ThumbnailWidget {
|
||||||
|
qproperty-savedColor: #22cc22; /* green dot: saved to library — universal "confirmed" feel */
|
||||||
|
qproperty-bookmarkedColor: #ffcc00; /* yellow star: bookmarked */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Info panel tag category colors ---------- */
|
||||||
|
|
||||||
|
InfoPanel {
|
||||||
|
qproperty-tagArtistColor: #dbbc7f;
|
||||||
|
qproperty-tagCharacterColor: #a7c080;
|
||||||
|
qproperty-tagCopyrightColor: #a7c080;
|
||||||
|
qproperty-tagSpeciesColor: #e67e80;
|
||||||
|
qproperty-tagMetaColor: #9da9a0;
|
||||||
|
qproperty-tagLoreColor: #9da9a0;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,123 +1,528 @@
|
|||||||
/* booru-viewer — Gruvbox Dark */
|
/* booru-viewer — Gruvbox Dark
|
||||||
|
*
|
||||||
|
* Comprehensive Fusion-style QSS. Mimics the visual feel of Qt's Fusion
|
||||||
|
* style + a dark KDE color scheme: subtle borders, modest corner radius,
|
||||||
|
* clear hover/pressed/focus states, transparent labels.
|
||||||
|
*
|
||||||
|
* Palette (edit these and the rest of the file together if you fork):
|
||||||
|
* bg #282828
|
||||||
|
* bg_alt #1d2021
|
||||||
|
* bg_subtle #3c3836
|
||||||
|
* bg_hover #504945
|
||||||
|
* bg_active #665c54
|
||||||
|
* text #ebdbb2
|
||||||
|
* text_dim #d5c4a1
|
||||||
|
* text_disabled #928374
|
||||||
|
* border #3c3836
|
||||||
|
* border_strong #504945
|
||||||
|
* accent #d79921
|
||||||
|
* accent_text #282828
|
||||||
|
* accent_dim #fabd2f
|
||||||
|
* link #83a598
|
||||||
|
* danger #fb4934
|
||||||
|
* success #b8bb26
|
||||||
|
* warning #fabd2f
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ---------- Base ---------- */
|
||||||
|
|
||||||
QWidget {
|
QWidget {
|
||||||
background-color: #282828;
|
background-color: #282828;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
selection-background-color: #d79921;
|
||||||
|
selection-color: #282828;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget:disabled {
|
||||||
|
color: #928374;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Labels should never paint an opaque background — they sit on top of
|
||||||
|
* other widgets in many places (toolbars, info panels, overlays). */
|
||||||
|
QLabel {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow, QDialog {
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Buttons ---------- */
|
||||||
|
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: #3c3836;
|
background-color: #3c3836;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
border: 1px solid #504945;
|
border: 1px solid #504945;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 5px 14px;
|
padding: 5px 12px;
|
||||||
|
min-height: 18px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #504945;
|
background-color: #504945;
|
||||||
border-color: #fe8019;
|
border-color: #d79921;
|
||||||
}
|
}
|
||||||
QPushButton:pressed {
|
QPushButton:pressed {
|
||||||
background-color: #fe8019;
|
background-color: #665c54;
|
||||||
color: #282828;
|
|
||||||
}
|
}
|
||||||
QPushButton:checked {
|
QPushButton:checked {
|
||||||
background-color: #fe8019;
|
background-color: #d79921;
|
||||||
color: #282828;
|
color: #282828;
|
||||||
border-color: #fe8019;
|
border-color: #d79921;
|
||||||
|
}
|
||||||
|
QPushButton:checked:hover {
|
||||||
|
background-color: #fabd2f;
|
||||||
|
border-color: #fabd2f;
|
||||||
|
}
|
||||||
|
QPushButton:disabled {
|
||||||
|
background-color: #1d2021;
|
||||||
|
color: #928374;
|
||||||
|
border-color: #3c3836;
|
||||||
|
}
|
||||||
|
QPushButton:flat {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:flat:hover {
|
||||||
|
background-color: #504945;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLineEdit, QSpinBox, QComboBox, QTextEdit {
|
QToolButton {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QToolButton:hover {
|
||||||
|
background-color: #504945;
|
||||||
|
border-color: #504945;
|
||||||
|
}
|
||||||
|
QToolButton:pressed, QToolButton:checked {
|
||||||
|
background-color: #665c54;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Inputs ---------- */
|
||||||
|
|
||||||
|
QLineEdit, QSpinBox, QDoubleSpinBox, QTextEdit, QPlainTextEdit {
|
||||||
background-color: #3c3836;
|
background-color: #3c3836;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
border: 1px solid #504945;
|
border: 1px solid #504945;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
selection-background-color: #fe8019;
|
selection-background-color: #d79921;
|
||||||
selection-color: #282828;
|
selection-color: #282828;
|
||||||
}
|
}
|
||||||
QLineEdit:focus, QSpinBox:focus, QTextEdit:focus {
|
QLineEdit:focus,
|
||||||
border-color: #fe8019;
|
QSpinBox:focus,
|
||||||
|
QDoubleSpinBox:focus,
|
||||||
|
QTextEdit:focus,
|
||||||
|
QPlainTextEdit:focus {
|
||||||
|
border-color: #d79921;
|
||||||
|
}
|
||||||
|
QLineEdit:disabled,
|
||||||
|
QSpinBox:disabled,
|
||||||
|
QDoubleSpinBox:disabled,
|
||||||
|
QTextEdit:disabled,
|
||||||
|
QPlainTextEdit:disabled {
|
||||||
|
background-color: #1d2021;
|
||||||
|
color: #928374;
|
||||||
|
border-color: #3c3836;
|
||||||
}
|
}
|
||||||
|
|
||||||
QComboBox::drop-down { border: none; width: 20px; }
|
QComboBox {
|
||||||
|
background-color: #3c3836;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: 1px solid #504945;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-height: 18px;
|
||||||
|
}
|
||||||
|
QComboBox:hover {
|
||||||
|
border-color: #d79921;
|
||||||
|
}
|
||||||
|
QComboBox:focus {
|
||||||
|
border-color: #d79921;
|
||||||
|
}
|
||||||
|
QComboBox::drop-down {
|
||||||
|
border: none;
|
||||||
|
width: 18px;
|
||||||
|
}
|
||||||
QComboBox QAbstractItemView {
|
QComboBox QAbstractItemView {
|
||||||
background-color: #3c3836;
|
background-color: #3c3836;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
border: 1px solid #504945;
|
border: 1px solid #504945;
|
||||||
selection-background-color: #504945;
|
selection-background-color: #d79921;
|
||||||
|
selection-color: #282828;
|
||||||
|
outline: none;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Scrollbars ---------- */
|
||||||
|
|
||||||
QScrollBar:vertical {
|
QScrollBar:vertical {
|
||||||
background: #282828;
|
background: #282828;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical {
|
QScrollBar::handle:vertical {
|
||||||
background: #665c54;
|
background: #504945;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-height: 20px;
|
min-height: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:vertical:hover {
|
||||||
|
background: #665c54;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:vertical,
|
||||||
|
QScrollBar::sub-line:vertical {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical,
|
||||||
|
QScrollBar::sub-page:vertical {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical:hover { background: #fe8019; }
|
|
||||||
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
||||||
|
|
||||||
QScrollBar:horizontal {
|
QScrollBar:horizontal {
|
||||||
background: #282828;
|
background: #282828;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:horizontal {
|
QScrollBar::handle:horizontal {
|
||||||
background: #665c54;
|
background: #504945;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:horizontal:hover {
|
||||||
|
background: #665c54;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:horizontal,
|
||||||
|
QScrollBar::sub-line:horizontal {
|
||||||
|
width: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:horizontal,
|
||||||
|
QScrollBar::sub-page:horizontal {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
||||||
|
|
||||||
QMenuBar, QMenu {
|
QScrollArea {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Menus ---------- */
|
||||||
|
|
||||||
|
QMenuBar {
|
||||||
background-color: #282828;
|
background-color: #282828;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
border: 1px solid #3c3836;
|
border-bottom: 1px solid #3c3836;
|
||||||
|
}
|
||||||
|
QMenuBar::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 4px 10px;
|
||||||
|
}
|
||||||
|
QMenuBar::item:selected {
|
||||||
|
background-color: #504945;
|
||||||
|
color: #ebdbb2;
|
||||||
|
}
|
||||||
|
QMenuBar::item:pressed {
|
||||||
|
background-color: #665c54;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu {
|
||||||
|
background-color: #3c3836;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: 1px solid #504945;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
QMenu::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 5px 24px 5px 24px;
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
QMenu::item:selected {
|
||||||
background-color: #504945;
|
background-color: #d79921;
|
||||||
|
color: #282828;
|
||||||
}
|
}
|
||||||
|
QMenu::item:disabled {
|
||||||
|
color: #928374;
|
||||||
|
}
|
||||||
|
QMenu::separator {
|
||||||
|
height: 1px;
|
||||||
|
background: #3c3836;
|
||||||
|
margin: 4px 8px;
|
||||||
|
}
|
||||||
|
QMenu::icon {
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Status bar ---------- */
|
||||||
|
|
||||||
QStatusBar {
|
QStatusBar {
|
||||||
background-color: #282828;
|
background-color: #282828;
|
||||||
color: #a89984;
|
color: #d5c4a1;
|
||||||
|
border-top: 1px solid #3c3836;
|
||||||
}
|
}
|
||||||
|
QStatusBar::item {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Splitters ---------- */
|
||||||
|
|
||||||
QSplitter::handle {
|
QSplitter::handle {
|
||||||
background: #504945;
|
background: #3c3836;
|
||||||
|
}
|
||||||
|
QSplitter::handle:horizontal {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
}
|
}
|
||||||
|
QSplitter::handle:vertical {
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:hover {
|
||||||
|
background: #d79921;
|
||||||
|
}
|
||||||
|
|
||||||
QLabel { background: transparent; }
|
/* ---------- Sliders ---------- */
|
||||||
|
|
||||||
QSlider::groove:horizontal {
|
QSlider::groove:horizontal {
|
||||||
background: #3c3836;
|
background: #3c3836;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
QSlider::sub-page:horizontal {
|
||||||
|
background: #d79921;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
QSlider::handle:horizontal {
|
QSlider::handle:horizontal {
|
||||||
background: #fe8019;
|
background: #d79921;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
margin: -4px 0;
|
height: 12px;
|
||||||
|
margin: -5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background: #fabd2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical {
|
||||||
|
background: #3c3836;
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
QSlider::handle:vertical {
|
||||||
|
background: #d79921;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin: 0 -5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTabBar::tab {
|
/* ---------- Progress ---------- */
|
||||||
background: #3c3836;
|
|
||||||
|
QProgressBar {
|
||||||
|
background-color: #3c3836;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
border: 1px solid #504945;
|
border: 1px solid #3c3836;
|
||||||
padding: 6px 16px;
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
height: 6px;
|
||||||
}
|
}
|
||||||
QTabBar::tab:selected {
|
QProgressBar::chunk {
|
||||||
background: #504945;
|
background-color: #d79921;
|
||||||
color: #fe8019;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Popout & preview overlay controls */
|
/* ---------- Checkboxes & radio buttons ---------- */
|
||||||
|
|
||||||
|
QCheckBox, QRadioButton {
|
||||||
|
background: transparent;
|
||||||
|
color: #ebdbb2;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #3c3836;
|
||||||
|
border: 1px solid #504945;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QRadioButton::indicator {
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:hover, QRadioButton::indicator:hover {
|
||||||
|
border-color: #d79921;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
|
background-color: #d79921;
|
||||||
|
border-color: #d79921;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:disabled, QRadioButton::indicator:disabled {
|
||||||
|
background-color: #1d2021;
|
||||||
|
border-color: #3c3836;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tooltips ---------- */
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #3c3836;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: 1px solid #504945;
|
||||||
|
padding: 4px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Item views (lists, trees, tables) ---------- */
|
||||||
|
|
||||||
|
QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget {
|
||||||
|
background-color: #282828;
|
||||||
|
alternate-background-color: #1d2021;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: 1px solid #3c3836;
|
||||||
|
selection-background-color: #d79921;
|
||||||
|
selection-color: #282828;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
QListView::item, QListWidget::item,
|
||||||
|
QTreeView::item, QTreeWidget::item,
|
||||||
|
QTableView::item, QTableWidget::item {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QListView::item:hover, QListWidget::item:hover,
|
||||||
|
QTreeView::item:hover, QTreeWidget::item:hover,
|
||||||
|
QTableView::item:hover, QTableWidget::item:hover {
|
||||||
|
background-color: #504945;
|
||||||
|
}
|
||||||
|
QListView::item:selected, QListWidget::item:selected,
|
||||||
|
QTreeView::item:selected, QTreeWidget::item:selected,
|
||||||
|
QTableView::item:selected, QTableWidget::item:selected {
|
||||||
|
background-color: #d79921;
|
||||||
|
color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
background-color: #3c3836;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: none;
|
||||||
|
border-right: 1px solid #3c3836;
|
||||||
|
padding: 4px 8px;
|
||||||
|
}
|
||||||
|
QHeaderView::section:hover {
|
||||||
|
background-color: #504945;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tabs ---------- */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
border: 1px solid #3c3836;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
QTabBar::tab {
|
||||||
|
background: #3c3836;
|
||||||
|
color: #d5c4a1;
|
||||||
|
border: 1px solid #3c3836;
|
||||||
|
border-bottom: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
|
}
|
||||||
|
QTabBar::tab:selected {
|
||||||
|
background: #282828;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border-color: #504945;
|
||||||
|
}
|
||||||
|
QTabBar::tab:hover:!selected {
|
||||||
|
background: #504945;
|
||||||
|
color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Group boxes ---------- */
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
background: transparent;
|
||||||
|
color: #ebdbb2;
|
||||||
|
border: 1px solid #3c3836;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
padding: 0 6px;
|
||||||
|
color: #d5c4a1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Frames ---------- */
|
||||||
|
|
||||||
|
QFrame[frameShape="4"], /* HLine */
|
||||||
|
QFrame[frameShape="5"] /* VLine */ {
|
||||||
|
background: #3c3836;
|
||||||
|
color: #3c3836;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Toolbars ---------- */
|
||||||
|
|
||||||
|
QToolBar {
|
||||||
|
background: #282828;
|
||||||
|
border: none;
|
||||||
|
spacing: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
QToolBar::separator {
|
||||||
|
background: #3c3836;
|
||||||
|
width: 1px;
|
||||||
|
margin: 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Dock widgets ---------- */
|
||||||
|
|
||||||
|
QDockWidget {
|
||||||
|
color: #ebdbb2;
|
||||||
|
titlebar-close-icon: none;
|
||||||
|
}
|
||||||
|
QDockWidget::title {
|
||||||
|
background: #3c3836;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid #3c3836;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Rubber band (multi-select drag rectangle) ---------- */
|
||||||
|
|
||||||
|
QRubberBand {
|
||||||
|
background: #d79921;
|
||||||
|
border: 1px solid #d79921;
|
||||||
|
/* Qt blends rubber band at ~30% so this reads as a translucent
|
||||||
|
* accent-tinted rectangle without needing rgba(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Popout & preview overlay controls ---------- */
|
||||||
|
|
||||||
QWidget#_preview_controls,
|
QWidget#_preview_controls,
|
||||||
QWidget#_slideshow_toolbar,
|
QWidget#_slideshow_toolbar,
|
||||||
QWidget#_slideshow_controls {
|
QWidget#_slideshow_controls {
|
||||||
background: rgba(0, 0, 0, 160);
|
background: rgba(0, 0, 0, 160);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Thumbnail dot indicators (Qt properties on ThumbnailWidget) ---------- */
|
||||||
|
|
||||||
|
ThumbnailWidget {
|
||||||
|
qproperty-savedColor: #22cc22; /* green dot: saved to library — universal "confirmed" feel */
|
||||||
|
qproperty-bookmarkedColor: #ffcc00; /* yellow star: bookmarked */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Info panel tag category colors ---------- */
|
||||||
|
|
||||||
|
InfoPanel {
|
||||||
|
qproperty-tagArtistColor: #fabd2f;
|
||||||
|
qproperty-tagCharacterColor: #b8bb26;
|
||||||
|
qproperty-tagCopyrightColor: #d79921;
|
||||||
|
qproperty-tagSpeciesColor: #fb4934;
|
||||||
|
qproperty-tagMetaColor: #d5c4a1;
|
||||||
|
qproperty-tagLoreColor: #d5c4a1;
|
||||||
|
}
|
||||||
|
|||||||
468
themes/nord.qss
468
themes/nord.qss
@ -1,17 +1,62 @@
|
|||||||
/* booru-viewer — Nord */
|
/* booru-viewer — Nord
|
||||||
|
*
|
||||||
|
* Comprehensive Fusion-style QSS. Mimics the visual feel of Qt's Fusion
|
||||||
|
* style + a dark KDE color scheme: subtle borders, modest corner radius,
|
||||||
|
* clear hover/pressed/focus states, transparent labels.
|
||||||
|
*
|
||||||
|
* Palette (edit these and the rest of the file together if you fork):
|
||||||
|
* bg #2e3440
|
||||||
|
* bg_alt #272b36
|
||||||
|
* bg_subtle #3b4252
|
||||||
|
* bg_hover #434c5e
|
||||||
|
* bg_active #4c566a
|
||||||
|
* text #eceff4
|
||||||
|
* text_dim #d8dee9
|
||||||
|
* text_disabled #4c566a
|
||||||
|
* border #3b4252
|
||||||
|
* border_strong #4c566a
|
||||||
|
* accent #88c0d0
|
||||||
|
* accent_text #2e3440
|
||||||
|
* accent_dim #81a1c1
|
||||||
|
* link #8fbcbb
|
||||||
|
* danger #bf616a
|
||||||
|
* success #a3be8c
|
||||||
|
* warning #ebcb8b
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ---------- Base ---------- */
|
||||||
|
|
||||||
QWidget {
|
QWidget {
|
||||||
background-color: #2e3440;
|
background-color: #2e3440;
|
||||||
color: #d8dee9;
|
color: #eceff4;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
selection-background-color: #88c0d0;
|
||||||
|
selection-color: #2e3440;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget:disabled {
|
||||||
|
color: #4c566a;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Labels should never paint an opaque background — they sit on top of
|
||||||
|
* other widgets in many places (toolbars, info panels, overlays). */
|
||||||
|
QLabel {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow, QDialog {
|
||||||
|
background-color: #2e3440;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Buttons ---------- */
|
||||||
|
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: #3b4252;
|
background-color: #3b4252;
|
||||||
color: #d8dee9;
|
color: #eceff4;
|
||||||
border: 1px solid #4c566a;
|
border: 1px solid #4c566a;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 5px 14px;
|
padding: 5px 12px;
|
||||||
|
min-height: 18px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #434c5e;
|
background-color: #434c5e;
|
||||||
@ -21,106 +66,463 @@ QPushButton:pressed {
|
|||||||
background-color: #4c566a;
|
background-color: #4c566a;
|
||||||
}
|
}
|
||||||
QPushButton:checked {
|
QPushButton:checked {
|
||||||
background-color: #5e81ac;
|
background-color: #88c0d0;
|
||||||
color: #eceff4;
|
color: #2e3440;
|
||||||
border-color: #5e81ac;
|
border-color: #88c0d0;
|
||||||
|
}
|
||||||
|
QPushButton:checked:hover {
|
||||||
|
background-color: #81a1c1;
|
||||||
|
border-color: #81a1c1;
|
||||||
|
}
|
||||||
|
QPushButton:disabled {
|
||||||
|
background-color: #272b36;
|
||||||
|
color: #4c566a;
|
||||||
|
border-color: #3b4252;
|
||||||
|
}
|
||||||
|
QPushButton:flat {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:flat:hover {
|
||||||
|
background-color: #434c5e;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLineEdit, QSpinBox, QComboBox {
|
QToolButton {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QToolButton:hover {
|
||||||
|
background-color: #434c5e;
|
||||||
|
border-color: #4c566a;
|
||||||
|
}
|
||||||
|
QToolButton:pressed, QToolButton:checked {
|
||||||
|
background-color: #4c566a;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Inputs ---------- */
|
||||||
|
|
||||||
|
QLineEdit, QSpinBox, QDoubleSpinBox, QTextEdit, QPlainTextEdit {
|
||||||
background-color: #3b4252;
|
background-color: #3b4252;
|
||||||
color: #eceff4;
|
color: #eceff4;
|
||||||
border: 1px solid #4c566a;
|
border: 1px solid #4c566a;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
selection-background-color: #5e81ac;
|
selection-background-color: #88c0d0;
|
||||||
selection-color: #eceff4;
|
selection-color: #2e3440;
|
||||||
}
|
}
|
||||||
QLineEdit:focus, QSpinBox:focus {
|
QLineEdit:focus,
|
||||||
|
QSpinBox:focus,
|
||||||
|
QDoubleSpinBox:focus,
|
||||||
|
QTextEdit:focus,
|
||||||
|
QPlainTextEdit:focus {
|
||||||
border-color: #88c0d0;
|
border-color: #88c0d0;
|
||||||
}
|
}
|
||||||
|
QLineEdit:disabled,
|
||||||
|
QSpinBox:disabled,
|
||||||
|
QDoubleSpinBox:disabled,
|
||||||
|
QTextEdit:disabled,
|
||||||
|
QPlainTextEdit:disabled {
|
||||||
|
background-color: #272b36;
|
||||||
|
color: #4c566a;
|
||||||
|
border-color: #3b4252;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
background-color: #3b4252;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid #4c566a;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-height: 18px;
|
||||||
|
}
|
||||||
|
QComboBox:hover {
|
||||||
|
border-color: #88c0d0;
|
||||||
|
}
|
||||||
|
QComboBox:focus {
|
||||||
|
border-color: #88c0d0;
|
||||||
|
}
|
||||||
QComboBox::drop-down {
|
QComboBox::drop-down {
|
||||||
border: none;
|
border: none;
|
||||||
width: 20px;
|
width: 18px;
|
||||||
}
|
}
|
||||||
QComboBox QAbstractItemView {
|
QComboBox QAbstractItemView {
|
||||||
background-color: #3b4252;
|
background-color: #3b4252;
|
||||||
color: #d8dee9;
|
color: #eceff4;
|
||||||
border: 1px solid #4c566a;
|
border: 1px solid #4c566a;
|
||||||
selection-background-color: #434c5e;
|
selection-background-color: #88c0d0;
|
||||||
|
selection-color: #2e3440;
|
||||||
|
outline: none;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Scrollbars ---------- */
|
||||||
|
|
||||||
QScrollBar:vertical {
|
QScrollBar:vertical {
|
||||||
background: #2e3440;
|
background: #2e3440;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical {
|
QScrollBar::handle:vertical {
|
||||||
background: #4c566a;
|
background: #434c5e;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-height: 20px;
|
min-height: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:vertical:hover {
|
||||||
|
background: #4c566a;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:vertical,
|
||||||
|
QScrollBar::sub-line:vertical {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical,
|
||||||
|
QScrollBar::sub-page:vertical {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical:hover { background: #5e81ac; }
|
|
||||||
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
||||||
|
|
||||||
QScrollBar:horizontal {
|
QScrollBar:horizontal {
|
||||||
background: #2e3440;
|
background: #2e3440;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:horizontal {
|
QScrollBar::handle:horizontal {
|
||||||
background: #4c566a;
|
background: #434c5e;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:horizontal:hover {
|
||||||
|
background: #4c566a;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:horizontal,
|
||||||
|
QScrollBar::sub-line:horizontal {
|
||||||
|
width: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:horizontal,
|
||||||
|
QScrollBar::sub-page:horizontal {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
||||||
|
|
||||||
QMenuBar, QMenu {
|
QScrollArea {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Menus ---------- */
|
||||||
|
|
||||||
|
QMenuBar {
|
||||||
background-color: #2e3440;
|
background-color: #2e3440;
|
||||||
color: #d8dee9;
|
color: #eceff4;
|
||||||
border: 1px solid #3b4252;
|
border-bottom: 1px solid #3b4252;
|
||||||
|
}
|
||||||
|
QMenuBar::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 4px 10px;
|
||||||
|
}
|
||||||
|
QMenuBar::item:selected {
|
||||||
|
background-color: #434c5e;
|
||||||
|
color: #eceff4;
|
||||||
|
}
|
||||||
|
QMenuBar::item:pressed {
|
||||||
|
background-color: #4c566a;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu {
|
||||||
|
background-color: #3b4252;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid #4c566a;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
QMenu::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 5px 24px 5px 24px;
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
QMenu::item:selected {
|
||||||
background-color: #434c5e;
|
background-color: #88c0d0;
|
||||||
|
color: #2e3440;
|
||||||
}
|
}
|
||||||
|
QMenu::item:disabled {
|
||||||
|
color: #4c566a;
|
||||||
|
}
|
||||||
|
QMenu::separator {
|
||||||
|
height: 1px;
|
||||||
|
background: #3b4252;
|
||||||
|
margin: 4px 8px;
|
||||||
|
}
|
||||||
|
QMenu::icon {
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Status bar ---------- */
|
||||||
|
|
||||||
QStatusBar {
|
QStatusBar {
|
||||||
background-color: #2e3440;
|
background-color: #2e3440;
|
||||||
color: #81a1c1;
|
color: #d8dee9;
|
||||||
|
border-top: 1px solid #3b4252;
|
||||||
}
|
}
|
||||||
|
QStatusBar::item {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Splitters ---------- */
|
||||||
|
|
||||||
QSplitter::handle {
|
QSplitter::handle {
|
||||||
background: #4c566a;
|
background: #3b4252;
|
||||||
|
}
|
||||||
|
QSplitter::handle:horizontal {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
}
|
}
|
||||||
|
QSplitter::handle:vertical {
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:hover {
|
||||||
|
background: #88c0d0;
|
||||||
|
}
|
||||||
|
|
||||||
QLabel { background: transparent; }
|
/* ---------- Sliders ---------- */
|
||||||
|
|
||||||
QSlider::groove:horizontal {
|
QSlider::groove:horizontal {
|
||||||
background: #3b4252;
|
background: #3b4252;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
QSlider::sub-page:horizontal {
|
||||||
|
background: #88c0d0;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
QSlider::handle:horizontal {
|
QSlider::handle:horizontal {
|
||||||
background: #88c0d0;
|
background: #88c0d0;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
margin: -4px 0;
|
height: 12px;
|
||||||
|
margin: -5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background: #81a1c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical {
|
||||||
|
background: #3b4252;
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
QSlider::handle:vertical {
|
||||||
|
background: #88c0d0;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin: 0 -5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Progress ---------- */
|
||||||
|
|
||||||
|
QProgressBar {
|
||||||
|
background-color: #3b4252;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid #3b4252;
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
QProgressBar::chunk {
|
||||||
|
background-color: #88c0d0;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Checkboxes & radio buttons ---------- */
|
||||||
|
|
||||||
|
QCheckBox, QRadioButton {
|
||||||
|
background: transparent;
|
||||||
|
color: #eceff4;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #3b4252;
|
||||||
|
border: 1px solid #4c566a;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QRadioButton::indicator {
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:hover, QRadioButton::indicator:hover {
|
||||||
|
border-color: #88c0d0;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
|
background-color: #88c0d0;
|
||||||
|
border-color: #88c0d0;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:disabled, QRadioButton::indicator:disabled {
|
||||||
|
background-color: #272b36;
|
||||||
|
border-color: #3b4252;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tooltips ---------- */
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #3b4252;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid #4c566a;
|
||||||
|
padding: 4px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Item views (lists, trees, tables) ---------- */
|
||||||
|
|
||||||
|
QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget {
|
||||||
|
background-color: #2e3440;
|
||||||
|
alternate-background-color: #272b36;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid #3b4252;
|
||||||
|
selection-background-color: #88c0d0;
|
||||||
|
selection-color: #2e3440;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
QListView::item, QListWidget::item,
|
||||||
|
QTreeView::item, QTreeWidget::item,
|
||||||
|
QTableView::item, QTableWidget::item {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QListView::item:hover, QListWidget::item:hover,
|
||||||
|
QTreeView::item:hover, QTreeWidget::item:hover,
|
||||||
|
QTableView::item:hover, QTableWidget::item:hover {
|
||||||
|
background-color: #434c5e;
|
||||||
|
}
|
||||||
|
QListView::item:selected, QListWidget::item:selected,
|
||||||
|
QTreeView::item:selected, QTreeWidget::item:selected,
|
||||||
|
QTableView::item:selected, QTableWidget::item:selected {
|
||||||
|
background-color: #88c0d0;
|
||||||
|
color: #2e3440;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
background-color: #3b4252;
|
||||||
|
color: #eceff4;
|
||||||
|
border: none;
|
||||||
|
border-right: 1px solid #3b4252;
|
||||||
|
padding: 4px 8px;
|
||||||
|
}
|
||||||
|
QHeaderView::section:hover {
|
||||||
|
background-color: #434c5e;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tabs ---------- */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
border: 1px solid #3b4252;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
QTabBar::tab {
|
QTabBar::tab {
|
||||||
background: #3b4252;
|
background: #3b4252;
|
||||||
color: #d8dee9;
|
color: #d8dee9;
|
||||||
border: 1px solid #4c566a;
|
border: 1px solid #3b4252;
|
||||||
padding: 6px 16px;
|
border-bottom: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
}
|
}
|
||||||
QTabBar::tab:selected {
|
QTabBar::tab:selected {
|
||||||
|
background: #2e3440;
|
||||||
|
color: #eceff4;
|
||||||
|
border-color: #4c566a;
|
||||||
|
}
|
||||||
|
QTabBar::tab:hover:!selected {
|
||||||
background: #434c5e;
|
background: #434c5e;
|
||||||
color: #88c0d0;
|
color: #eceff4;
|
||||||
border-bottom-color: #88c0d0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Popout & preview overlay controls */
|
/* ---------- Group boxes ---------- */
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
background: transparent;
|
||||||
|
color: #eceff4;
|
||||||
|
border: 1px solid #3b4252;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
padding: 0 6px;
|
||||||
|
color: #d8dee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Frames ---------- */
|
||||||
|
|
||||||
|
QFrame[frameShape="4"], /* HLine */
|
||||||
|
QFrame[frameShape="5"] /* VLine */ {
|
||||||
|
background: #3b4252;
|
||||||
|
color: #3b4252;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Toolbars ---------- */
|
||||||
|
|
||||||
|
QToolBar {
|
||||||
|
background: #2e3440;
|
||||||
|
border: none;
|
||||||
|
spacing: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
QToolBar::separator {
|
||||||
|
background: #3b4252;
|
||||||
|
width: 1px;
|
||||||
|
margin: 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Dock widgets ---------- */
|
||||||
|
|
||||||
|
QDockWidget {
|
||||||
|
color: #eceff4;
|
||||||
|
titlebar-close-icon: none;
|
||||||
|
}
|
||||||
|
QDockWidget::title {
|
||||||
|
background: #3b4252;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid #3b4252;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Rubber band (multi-select drag rectangle) ---------- */
|
||||||
|
|
||||||
|
QRubberBand {
|
||||||
|
background: #88c0d0;
|
||||||
|
border: 1px solid #88c0d0;
|
||||||
|
/* Qt blends rubber band at ~30% so this reads as a translucent
|
||||||
|
* accent-tinted rectangle without needing rgba(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Popout & preview overlay controls ---------- */
|
||||||
|
|
||||||
QWidget#_preview_controls,
|
QWidget#_preview_controls,
|
||||||
QWidget#_slideshow_toolbar,
|
QWidget#_slideshow_toolbar,
|
||||||
QWidget#_slideshow_controls {
|
QWidget#_slideshow_controls {
|
||||||
background: rgba(0, 0, 0, 160);
|
background: rgba(0, 0, 0, 160);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Thumbnail dot indicators (Qt properties on ThumbnailWidget) ---------- */
|
||||||
|
|
||||||
|
ThumbnailWidget {
|
||||||
|
qproperty-savedColor: #22cc22; /* green dot: saved to library — universal "confirmed" feel */
|
||||||
|
qproperty-bookmarkedColor: #ffcc00; /* yellow star: bookmarked */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Info panel tag category colors ---------- */
|
||||||
|
|
||||||
|
InfoPanel {
|
||||||
|
qproperty-tagArtistColor: #ebcb8b;
|
||||||
|
qproperty-tagCharacterColor: #a3be8c;
|
||||||
|
qproperty-tagCopyrightColor: #88c0d0;
|
||||||
|
qproperty-tagSpeciesColor: #bf616a;
|
||||||
|
qproperty-tagMetaColor: #d8dee9;
|
||||||
|
qproperty-tagLoreColor: #d8dee9;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,123 +1,528 @@
|
|||||||
/* booru-viewer — Solarized Dark */
|
/* booru-viewer — Solarized Dark
|
||||||
|
*
|
||||||
|
* Comprehensive Fusion-style QSS. Mimics the visual feel of Qt's Fusion
|
||||||
|
* style + a dark KDE color scheme: subtle borders, modest corner radius,
|
||||||
|
* clear hover/pressed/focus states, transparent labels.
|
||||||
|
*
|
||||||
|
* Palette (edit these and the rest of the file together if you fork):
|
||||||
|
* bg #002b36
|
||||||
|
* bg_alt #001f27
|
||||||
|
* bg_subtle #073642
|
||||||
|
* bg_hover #0d4654
|
||||||
|
* bg_active #586e75
|
||||||
|
* text #93a1a1
|
||||||
|
* text_dim #839496
|
||||||
|
* text_disabled #586e75
|
||||||
|
* border #073642
|
||||||
|
* border_strong #0d4654
|
||||||
|
* accent #268bd2
|
||||||
|
* accent_text #002b36
|
||||||
|
* accent_dim #2aa198
|
||||||
|
* link #2aa198
|
||||||
|
* danger #dc322f
|
||||||
|
* success #859900
|
||||||
|
* warning #b58900
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ---------- Base ---------- */
|
||||||
|
|
||||||
QWidget {
|
QWidget {
|
||||||
background-color: #002b36;
|
background-color: #002b36;
|
||||||
color: #839496;
|
color: #93a1a1;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
selection-background-color: #268bd2;
|
||||||
|
selection-color: #002b36;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget:disabled {
|
||||||
|
color: #586e75;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Labels should never paint an opaque background — they sit on top of
|
||||||
|
* other widgets in many places (toolbars, info panels, overlays). */
|
||||||
|
QLabel {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow, QDialog {
|
||||||
|
background-color: #002b36;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Buttons ---------- */
|
||||||
|
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: #073642;
|
background-color: #073642;
|
||||||
color: #93a1a1;
|
color: #93a1a1;
|
||||||
border: 1px solid #586e75;
|
border: 1px solid #0d4654;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 5px 14px;
|
padding: 5px 12px;
|
||||||
|
min-height: 18px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #586e75;
|
background-color: #0d4654;
|
||||||
color: #fdf6e3;
|
border-color: #268bd2;
|
||||||
}
|
}
|
||||||
QPushButton:pressed {
|
QPushButton:pressed {
|
||||||
background-color: #268bd2;
|
background-color: #586e75;
|
||||||
color: #fdf6e3;
|
|
||||||
}
|
}
|
||||||
QPushButton:checked {
|
QPushButton:checked {
|
||||||
background-color: #268bd2;
|
background-color: #268bd2;
|
||||||
color: #fdf6e3;
|
color: #002b36;
|
||||||
border-color: #268bd2;
|
border-color: #268bd2;
|
||||||
}
|
}
|
||||||
|
QPushButton:checked:hover {
|
||||||
|
background-color: #2aa198;
|
||||||
|
border-color: #2aa198;
|
||||||
|
}
|
||||||
|
QPushButton:disabled {
|
||||||
|
background-color: #001f27;
|
||||||
|
color: #586e75;
|
||||||
|
border-color: #073642;
|
||||||
|
}
|
||||||
|
QPushButton:flat {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:flat:hover {
|
||||||
|
background-color: #0d4654;
|
||||||
|
}
|
||||||
|
|
||||||
QLineEdit, QSpinBox, QComboBox, QTextEdit {
|
QToolButton {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QToolButton:hover {
|
||||||
|
background-color: #0d4654;
|
||||||
|
border-color: #0d4654;
|
||||||
|
}
|
||||||
|
QToolButton:pressed, QToolButton:checked {
|
||||||
|
background-color: #586e75;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Inputs ---------- */
|
||||||
|
|
||||||
|
QLineEdit, QSpinBox, QDoubleSpinBox, QTextEdit, QPlainTextEdit {
|
||||||
background-color: #073642;
|
background-color: #073642;
|
||||||
color: #93a1a1;
|
color: #93a1a1;
|
||||||
border: 1px solid #586e75;
|
border: 1px solid #0d4654;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
selection-background-color: #268bd2;
|
selection-background-color: #268bd2;
|
||||||
selection-color: #fdf6e3;
|
selection-color: #002b36;
|
||||||
}
|
}
|
||||||
QLineEdit:focus, QSpinBox:focus, QTextEdit:focus {
|
QLineEdit:focus,
|
||||||
|
QSpinBox:focus,
|
||||||
|
QDoubleSpinBox:focus,
|
||||||
|
QTextEdit:focus,
|
||||||
|
QPlainTextEdit:focus {
|
||||||
border-color: #268bd2;
|
border-color: #268bd2;
|
||||||
}
|
}
|
||||||
|
QLineEdit:disabled,
|
||||||
|
QSpinBox:disabled,
|
||||||
|
QDoubleSpinBox:disabled,
|
||||||
|
QTextEdit:disabled,
|
||||||
|
QPlainTextEdit:disabled {
|
||||||
|
background-color: #001f27;
|
||||||
|
color: #586e75;
|
||||||
|
border-color: #073642;
|
||||||
|
}
|
||||||
|
|
||||||
QComboBox::drop-down { border: none; width: 20px; }
|
QComboBox {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid #0d4654;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-height: 18px;
|
||||||
|
}
|
||||||
|
QComboBox:hover {
|
||||||
|
border-color: #268bd2;
|
||||||
|
}
|
||||||
|
QComboBox:focus {
|
||||||
|
border-color: #268bd2;
|
||||||
|
}
|
||||||
|
QComboBox::drop-down {
|
||||||
|
border: none;
|
||||||
|
width: 18px;
|
||||||
|
}
|
||||||
QComboBox QAbstractItemView {
|
QComboBox QAbstractItemView {
|
||||||
background-color: #073642;
|
background-color: #073642;
|
||||||
color: #93a1a1;
|
color: #93a1a1;
|
||||||
border: 1px solid #586e75;
|
border: 1px solid #0d4654;
|
||||||
selection-background-color: #586e75;
|
selection-background-color: #268bd2;
|
||||||
|
selection-color: #002b36;
|
||||||
|
outline: none;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Scrollbars ---------- */
|
||||||
|
|
||||||
QScrollBar:vertical {
|
QScrollBar:vertical {
|
||||||
background: #002b36;
|
background: #002b36;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical {
|
QScrollBar::handle:vertical {
|
||||||
background: #586e75;
|
background: #0d4654;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-height: 20px;
|
min-height: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:vertical:hover {
|
||||||
|
background: #586e75;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:vertical,
|
||||||
|
QScrollBar::sub-line:vertical {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical,
|
||||||
|
QScrollBar::sub-page:vertical {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical:hover { background: #268bd2; }
|
|
||||||
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
||||||
|
|
||||||
QScrollBar:horizontal {
|
QScrollBar:horizontal {
|
||||||
background: #002b36;
|
background: #002b36;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:horizontal {
|
QScrollBar::handle:horizontal {
|
||||||
background: #586e75;
|
background: #0d4654;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:horizontal:hover {
|
||||||
|
background: #586e75;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:horizontal,
|
||||||
|
QScrollBar::sub-line:horizontal {
|
||||||
|
width: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:horizontal,
|
||||||
|
QScrollBar::sub-page:horizontal {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
||||||
|
|
||||||
QMenuBar, QMenu {
|
QScrollArea {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Menus ---------- */
|
||||||
|
|
||||||
|
QMenuBar {
|
||||||
background-color: #002b36;
|
background-color: #002b36;
|
||||||
color: #839496;
|
color: #93a1a1;
|
||||||
border: 1px solid #073642;
|
border-bottom: 1px solid #073642;
|
||||||
|
}
|
||||||
|
QMenuBar::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 4px 10px;
|
||||||
|
}
|
||||||
|
QMenuBar::item:selected {
|
||||||
|
background-color: #0d4654;
|
||||||
|
color: #93a1a1;
|
||||||
|
}
|
||||||
|
QMenuBar::item:pressed {
|
||||||
|
background-color: #586e75;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid #0d4654;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
QMenu::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 5px 24px 5px 24px;
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
QMenu::item:selected {
|
||||||
background-color: #073642;
|
background-color: #268bd2;
|
||||||
|
color: #002b36;
|
||||||
}
|
}
|
||||||
|
QMenu::item:disabled {
|
||||||
|
color: #586e75;
|
||||||
|
}
|
||||||
|
QMenu::separator {
|
||||||
|
height: 1px;
|
||||||
|
background: #073642;
|
||||||
|
margin: 4px 8px;
|
||||||
|
}
|
||||||
|
QMenu::icon {
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Status bar ---------- */
|
||||||
|
|
||||||
QStatusBar {
|
QStatusBar {
|
||||||
background-color: #002b36;
|
background-color: #002b36;
|
||||||
color: #586e75;
|
color: #839496;
|
||||||
|
border-top: 1px solid #073642;
|
||||||
}
|
}
|
||||||
|
QStatusBar::item {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Splitters ---------- */
|
||||||
|
|
||||||
QSplitter::handle {
|
QSplitter::handle {
|
||||||
background: #586e75;
|
background: #073642;
|
||||||
|
}
|
||||||
|
QSplitter::handle:horizontal {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
}
|
}
|
||||||
|
QSplitter::handle:vertical {
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:hover {
|
||||||
|
background: #268bd2;
|
||||||
|
}
|
||||||
|
|
||||||
QLabel { background: transparent; }
|
/* ---------- Sliders ---------- */
|
||||||
|
|
||||||
QSlider::groove:horizontal {
|
QSlider::groove:horizontal {
|
||||||
background: #073642;
|
background: #073642;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
QSlider::sub-page:horizontal {
|
||||||
|
background: #268bd2;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
QSlider::handle:horizontal {
|
QSlider::handle:horizontal {
|
||||||
background: #268bd2;
|
background: #268bd2;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
margin: -4px 0;
|
height: 12px;
|
||||||
|
margin: -5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background: #2aa198;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical {
|
||||||
|
background: #073642;
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
QSlider::handle:vertical {
|
||||||
|
background: #268bd2;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin: 0 -5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Progress ---------- */
|
||||||
|
|
||||||
|
QProgressBar {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid #073642;
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
QProgressBar::chunk {
|
||||||
|
background-color: #268bd2;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Checkboxes & radio buttons ---------- */
|
||||||
|
|
||||||
|
QCheckBox, QRadioButton {
|
||||||
|
background: transparent;
|
||||||
|
color: #93a1a1;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #073642;
|
||||||
|
border: 1px solid #0d4654;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QRadioButton::indicator {
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:hover, QRadioButton::indicator:hover {
|
||||||
|
border-color: #268bd2;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
|
background-color: #268bd2;
|
||||||
|
border-color: #268bd2;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:disabled, QRadioButton::indicator:disabled {
|
||||||
|
background-color: #001f27;
|
||||||
|
border-color: #073642;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tooltips ---------- */
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid #0d4654;
|
||||||
|
padding: 4px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Item views (lists, trees, tables) ---------- */
|
||||||
|
|
||||||
|
QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget {
|
||||||
|
background-color: #002b36;
|
||||||
|
alternate-background-color: #001f27;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid #073642;
|
||||||
|
selection-background-color: #268bd2;
|
||||||
|
selection-color: #002b36;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
QListView::item, QListWidget::item,
|
||||||
|
QTreeView::item, QTreeWidget::item,
|
||||||
|
QTableView::item, QTableWidget::item {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QListView::item:hover, QListWidget::item:hover,
|
||||||
|
QTreeView::item:hover, QTreeWidget::item:hover,
|
||||||
|
QTableView::item:hover, QTableWidget::item:hover {
|
||||||
|
background-color: #0d4654;
|
||||||
|
}
|
||||||
|
QListView::item:selected, QListWidget::item:selected,
|
||||||
|
QTreeView::item:selected, QTreeWidget::item:selected,
|
||||||
|
QTableView::item:selected, QTableWidget::item:selected {
|
||||||
|
background-color: #268bd2;
|
||||||
|
color: #002b36;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: none;
|
||||||
|
border-right: 1px solid #073642;
|
||||||
|
padding: 4px 8px;
|
||||||
|
}
|
||||||
|
QHeaderView::section:hover {
|
||||||
|
background-color: #0d4654;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tabs ---------- */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
border: 1px solid #073642;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
QTabBar::tab {
|
QTabBar::tab {
|
||||||
background: #073642;
|
background: #073642;
|
||||||
color: #839496;
|
color: #839496;
|
||||||
border: 1px solid #586e75;
|
border: 1px solid #073642;
|
||||||
padding: 6px 16px;
|
border-bottom: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
}
|
}
|
||||||
QTabBar::tab:selected {
|
QTabBar::tab:selected {
|
||||||
background: #586e75;
|
background: #002b36;
|
||||||
color: #fdf6e3;
|
color: #93a1a1;
|
||||||
|
border-color: #0d4654;
|
||||||
|
}
|
||||||
|
QTabBar::tab:hover:!selected {
|
||||||
|
background: #0d4654;
|
||||||
|
color: #93a1a1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Popout & preview overlay controls */
|
/* ---------- Group boxes ---------- */
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
background: transparent;
|
||||||
|
color: #93a1a1;
|
||||||
|
border: 1px solid #073642;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
padding: 0 6px;
|
||||||
|
color: #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Frames ---------- */
|
||||||
|
|
||||||
|
QFrame[frameShape="4"], /* HLine */
|
||||||
|
QFrame[frameShape="5"] /* VLine */ {
|
||||||
|
background: #073642;
|
||||||
|
color: #073642;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Toolbars ---------- */
|
||||||
|
|
||||||
|
QToolBar {
|
||||||
|
background: #002b36;
|
||||||
|
border: none;
|
||||||
|
spacing: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
QToolBar::separator {
|
||||||
|
background: #073642;
|
||||||
|
width: 1px;
|
||||||
|
margin: 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Dock widgets ---------- */
|
||||||
|
|
||||||
|
QDockWidget {
|
||||||
|
color: #93a1a1;
|
||||||
|
titlebar-close-icon: none;
|
||||||
|
}
|
||||||
|
QDockWidget::title {
|
||||||
|
background: #073642;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid #073642;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Rubber band (multi-select drag rectangle) ---------- */
|
||||||
|
|
||||||
|
QRubberBand {
|
||||||
|
background: #268bd2;
|
||||||
|
border: 1px solid #268bd2;
|
||||||
|
/* Qt blends rubber band at ~30% so this reads as a translucent
|
||||||
|
* accent-tinted rectangle without needing rgba(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Popout & preview overlay controls ---------- */
|
||||||
|
|
||||||
QWidget#_preview_controls,
|
QWidget#_preview_controls,
|
||||||
QWidget#_slideshow_toolbar,
|
QWidget#_slideshow_toolbar,
|
||||||
QWidget#_slideshow_controls {
|
QWidget#_slideshow_controls {
|
||||||
background: rgba(0, 0, 0, 160);
|
background: rgba(0, 0, 0, 160);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Thumbnail dot indicators (Qt properties on ThumbnailWidget) ---------- */
|
||||||
|
|
||||||
|
ThumbnailWidget {
|
||||||
|
qproperty-savedColor: #22cc22; /* green dot: saved to library — universal "confirmed" feel */
|
||||||
|
qproperty-bookmarkedColor: #ffcc00; /* yellow star: bookmarked */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Info panel tag category colors ---------- */
|
||||||
|
|
||||||
|
InfoPanel {
|
||||||
|
qproperty-tagArtistColor: #b58900;
|
||||||
|
qproperty-tagCharacterColor: #859900;
|
||||||
|
qproperty-tagCopyrightColor: #268bd2;
|
||||||
|
qproperty-tagSpeciesColor: #dc322f;
|
||||||
|
qproperty-tagMetaColor: #839496;
|
||||||
|
qproperty-tagLoreColor: #839496;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,123 +1,528 @@
|
|||||||
/* booru-viewer — Tokyo Night */
|
/* booru-viewer — Tokyo Night
|
||||||
|
*
|
||||||
|
* Comprehensive Fusion-style QSS. Mimics the visual feel of Qt's Fusion
|
||||||
|
* style + a dark KDE color scheme: subtle borders, modest corner radius,
|
||||||
|
* clear hover/pressed/focus states, transparent labels.
|
||||||
|
*
|
||||||
|
* Palette (edit these and the rest of the file together if you fork):
|
||||||
|
* bg #1a1b26
|
||||||
|
* bg_alt #16161e
|
||||||
|
* bg_subtle #24283b
|
||||||
|
* bg_hover #292e42
|
||||||
|
* bg_active #3b4261
|
||||||
|
* text #c0caf5
|
||||||
|
* text_dim #a9b1d6
|
||||||
|
* text_disabled #565f89
|
||||||
|
* border #24283b
|
||||||
|
* border_strong #292e42
|
||||||
|
* accent #7aa2f7
|
||||||
|
* accent_text #1a1b26
|
||||||
|
* accent_dim #7dcfff
|
||||||
|
* link #7dcfff
|
||||||
|
* danger #f7768e
|
||||||
|
* success #9ece6a
|
||||||
|
* warning #e0af68
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ---------- Base ---------- */
|
||||||
|
|
||||||
QWidget {
|
QWidget {
|
||||||
background-color: #1a1b26;
|
background-color: #1a1b26;
|
||||||
color: #a9b1d6;
|
color: #c0caf5;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
selection-background-color: #7aa2f7;
|
||||||
|
selection-color: #1a1b26;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget:disabled {
|
||||||
|
color: #565f89;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Labels should never paint an opaque background — they sit on top of
|
||||||
|
* other widgets in many places (toolbars, info panels, overlays). */
|
||||||
|
QLabel {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow, QDialog {
|
||||||
|
background-color: #1a1b26;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Buttons ---------- */
|
||||||
|
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: #24283b;
|
background-color: #24283b;
|
||||||
color: #a9b1d6;
|
color: #c0caf5;
|
||||||
border: 1px solid #3b4261;
|
border: 1px solid #292e42;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 5px 14px;
|
padding: 5px 12px;
|
||||||
|
min-height: 18px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #3b4261;
|
background-color: #292e42;
|
||||||
border-color: #7aa2f7;
|
border-color: #7aa2f7;
|
||||||
}
|
}
|
||||||
QPushButton:pressed {
|
QPushButton:pressed {
|
||||||
background-color: #7aa2f7;
|
background-color: #3b4261;
|
||||||
color: #1a1b26;
|
|
||||||
}
|
}
|
||||||
QPushButton:checked {
|
QPushButton:checked {
|
||||||
background-color: #7aa2f7;
|
background-color: #7aa2f7;
|
||||||
color: #1a1b26;
|
color: #1a1b26;
|
||||||
border-color: #7aa2f7;
|
border-color: #7aa2f7;
|
||||||
}
|
}
|
||||||
|
QPushButton:checked:hover {
|
||||||
|
background-color: #7dcfff;
|
||||||
|
border-color: #7dcfff;
|
||||||
|
}
|
||||||
|
QPushButton:disabled {
|
||||||
|
background-color: #16161e;
|
||||||
|
color: #565f89;
|
||||||
|
border-color: #24283b;
|
||||||
|
}
|
||||||
|
QPushButton:flat {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:flat:hover {
|
||||||
|
background-color: #292e42;
|
||||||
|
}
|
||||||
|
|
||||||
QLineEdit, QSpinBox, QComboBox, QTextEdit {
|
QToolButton {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QToolButton:hover {
|
||||||
|
background-color: #292e42;
|
||||||
|
border-color: #292e42;
|
||||||
|
}
|
||||||
|
QToolButton:pressed, QToolButton:checked {
|
||||||
|
background-color: #3b4261;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Inputs ---------- */
|
||||||
|
|
||||||
|
QLineEdit, QSpinBox, QDoubleSpinBox, QTextEdit, QPlainTextEdit {
|
||||||
background-color: #24283b;
|
background-color: #24283b;
|
||||||
color: #a9b1d6;
|
color: #c0caf5;
|
||||||
border: 1px solid #3b4261;
|
border: 1px solid #292e42;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
selection-background-color: #7aa2f7;
|
selection-background-color: #7aa2f7;
|
||||||
selection-color: #1a1b26;
|
selection-color: #1a1b26;
|
||||||
}
|
}
|
||||||
QLineEdit:focus, QSpinBox:focus, QTextEdit:focus {
|
QLineEdit:focus,
|
||||||
|
QSpinBox:focus,
|
||||||
|
QDoubleSpinBox:focus,
|
||||||
|
QTextEdit:focus,
|
||||||
|
QPlainTextEdit:focus {
|
||||||
border-color: #7aa2f7;
|
border-color: #7aa2f7;
|
||||||
}
|
}
|
||||||
|
QLineEdit:disabled,
|
||||||
|
QSpinBox:disabled,
|
||||||
|
QDoubleSpinBox:disabled,
|
||||||
|
QTextEdit:disabled,
|
||||||
|
QPlainTextEdit:disabled {
|
||||||
|
background-color: #16161e;
|
||||||
|
color: #565f89;
|
||||||
|
border-color: #24283b;
|
||||||
|
}
|
||||||
|
|
||||||
QComboBox::drop-down { border: none; width: 20px; }
|
QComboBox {
|
||||||
|
background-color: #24283b;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid #292e42;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-height: 18px;
|
||||||
|
}
|
||||||
|
QComboBox:hover {
|
||||||
|
border-color: #7aa2f7;
|
||||||
|
}
|
||||||
|
QComboBox:focus {
|
||||||
|
border-color: #7aa2f7;
|
||||||
|
}
|
||||||
|
QComboBox::drop-down {
|
||||||
|
border: none;
|
||||||
|
width: 18px;
|
||||||
|
}
|
||||||
QComboBox QAbstractItemView {
|
QComboBox QAbstractItemView {
|
||||||
background-color: #24283b;
|
background-color: #24283b;
|
||||||
color: #a9b1d6;
|
color: #c0caf5;
|
||||||
border: 1px solid #3b4261;
|
border: 1px solid #292e42;
|
||||||
selection-background-color: #3b4261;
|
selection-background-color: #7aa2f7;
|
||||||
|
selection-color: #1a1b26;
|
||||||
|
outline: none;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Scrollbars ---------- */
|
||||||
|
|
||||||
QScrollBar:vertical {
|
QScrollBar:vertical {
|
||||||
background: #1a1b26;
|
background: #1a1b26;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical {
|
QScrollBar::handle:vertical {
|
||||||
background: #3b4261;
|
background: #292e42;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-height: 20px;
|
min-height: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:vertical:hover {
|
||||||
|
background: #3b4261;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:vertical,
|
||||||
|
QScrollBar::sub-line:vertical {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:vertical,
|
||||||
|
QScrollBar::sub-page:vertical {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:vertical:hover { background: #7aa2f7; }
|
|
||||||
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
||||||
|
|
||||||
QScrollBar:horizontal {
|
QScrollBar:horizontal {
|
||||||
background: #1a1b26;
|
background: #1a1b26;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
QScrollBar::handle:horizontal {
|
QScrollBar::handle:horizontal {
|
||||||
background: #3b4261;
|
background: #292e42;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
QScrollBar::handle:horizontal:hover {
|
||||||
|
background: #3b4261;
|
||||||
|
}
|
||||||
|
QScrollBar::add-line:horizontal,
|
||||||
|
QScrollBar::sub-line:horizontal {
|
||||||
|
width: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QScrollBar::add-page:horizontal,
|
||||||
|
QScrollBar::sub-page:horizontal {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
||||||
|
|
||||||
QMenuBar, QMenu {
|
QScrollArea {
|
||||||
background-color: #1a1b26;
|
background: transparent;
|
||||||
color: #a9b1d6;
|
border: none;
|
||||||
border: 1px solid #24283b;
|
|
||||||
}
|
}
|
||||||
QMenu::item:selected {
|
|
||||||
|
/* ---------- Menus ---------- */
|
||||||
|
|
||||||
|
QMenuBar {
|
||||||
|
background-color: #1a1b26;
|
||||||
|
color: #c0caf5;
|
||||||
|
border-bottom: 1px solid #24283b;
|
||||||
|
}
|
||||||
|
QMenuBar::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 4px 10px;
|
||||||
|
}
|
||||||
|
QMenuBar::item:selected {
|
||||||
|
background-color: #292e42;
|
||||||
|
color: #c0caf5;
|
||||||
|
}
|
||||||
|
QMenuBar::item:pressed {
|
||||||
background-color: #3b4261;
|
background-color: #3b4261;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStatusBar {
|
QMenu {
|
||||||
background-color: #1a1b26;
|
background-color: #24283b;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid #292e42;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
QMenu::item {
|
||||||
|
background: transparent;
|
||||||
|
padding: 5px 24px 5px 24px;
|
||||||
|
}
|
||||||
|
QMenu::item:selected {
|
||||||
|
background-color: #7aa2f7;
|
||||||
|
color: #1a1b26;
|
||||||
|
}
|
||||||
|
QMenu::item:disabled {
|
||||||
color: #565f89;
|
color: #565f89;
|
||||||
}
|
}
|
||||||
|
QMenu::separator {
|
||||||
QSplitter::handle {
|
height: 1px;
|
||||||
background: #3b4261;
|
background: #24283b;
|
||||||
width: 2px;
|
margin: 4px 8px;
|
||||||
|
}
|
||||||
|
QMenu::icon {
|
||||||
|
padding-left: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLabel { background: transparent; }
|
/* ---------- Status bar ---------- */
|
||||||
|
|
||||||
|
QStatusBar {
|
||||||
|
background-color: #1a1b26;
|
||||||
|
color: #a9b1d6;
|
||||||
|
border-top: 1px solid #24283b;
|
||||||
|
}
|
||||||
|
QStatusBar::item {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Splitters ---------- */
|
||||||
|
|
||||||
|
QSplitter::handle {
|
||||||
|
background: #24283b;
|
||||||
|
}
|
||||||
|
QSplitter::handle:horizontal {
|
||||||
|
width: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:vertical {
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
QSplitter::handle:hover {
|
||||||
|
background: #7aa2f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Sliders ---------- */
|
||||||
|
|
||||||
QSlider::groove:horizontal {
|
QSlider::groove:horizontal {
|
||||||
background: #24283b;
|
background: #24283b;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
QSlider::sub-page:horizontal {
|
||||||
|
background: #7aa2f7;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
QSlider::handle:horizontal {
|
QSlider::handle:horizontal {
|
||||||
background: #7aa2f7;
|
background: #7aa2f7;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
margin: -4px 0;
|
height: 12px;
|
||||||
|
margin: -5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background: #7dcfff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical {
|
||||||
|
background: #24283b;
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
QSlider::handle:vertical {
|
||||||
|
background: #7aa2f7;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin: 0 -5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Progress ---------- */
|
||||||
|
|
||||||
|
QProgressBar {
|
||||||
|
background-color: #24283b;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid #24283b;
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
QProgressBar::chunk {
|
||||||
|
background-color: #7aa2f7;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Checkboxes & radio buttons ---------- */
|
||||||
|
|
||||||
|
QCheckBox, QRadioButton {
|
||||||
|
background: transparent;
|
||||||
|
color: #c0caf5;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #24283b;
|
||||||
|
border: 1px solid #292e42;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QRadioButton::indicator {
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:hover, QRadioButton::indicator:hover {
|
||||||
|
border-color: #7aa2f7;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
|
background-color: #7aa2f7;
|
||||||
|
border-color: #7aa2f7;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:disabled, QRadioButton::indicator:disabled {
|
||||||
|
background-color: #16161e;
|
||||||
|
border-color: #24283b;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tooltips ---------- */
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #24283b;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid #292e42;
|
||||||
|
padding: 4px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Item views (lists, trees, tables) ---------- */
|
||||||
|
|
||||||
|
QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget {
|
||||||
|
background-color: #1a1b26;
|
||||||
|
alternate-background-color: #16161e;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid #24283b;
|
||||||
|
selection-background-color: #7aa2f7;
|
||||||
|
selection-color: #1a1b26;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
QListView::item, QListWidget::item,
|
||||||
|
QTreeView::item, QTreeWidget::item,
|
||||||
|
QTableView::item, QTableWidget::item {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
QListView::item:hover, QListWidget::item:hover,
|
||||||
|
QTreeView::item:hover, QTreeWidget::item:hover,
|
||||||
|
QTableView::item:hover, QTableWidget::item:hover {
|
||||||
|
background-color: #292e42;
|
||||||
|
}
|
||||||
|
QListView::item:selected, QListWidget::item:selected,
|
||||||
|
QTreeView::item:selected, QTreeWidget::item:selected,
|
||||||
|
QTableView::item:selected, QTableWidget::item:selected {
|
||||||
|
background-color: #7aa2f7;
|
||||||
|
color: #1a1b26;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
background-color: #24283b;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: none;
|
||||||
|
border-right: 1px solid #24283b;
|
||||||
|
padding: 4px 8px;
|
||||||
|
}
|
||||||
|
QHeaderView::section:hover {
|
||||||
|
background-color: #292e42;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Tabs ---------- */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
border: 1px solid #24283b;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
QTabBar::tab {
|
QTabBar::tab {
|
||||||
background: #24283b;
|
background: #24283b;
|
||||||
color: #a9b1d6;
|
color: #a9b1d6;
|
||||||
border: 1px solid #3b4261;
|
border: 1px solid #24283b;
|
||||||
padding: 6px 16px;
|
border-bottom: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
}
|
}
|
||||||
QTabBar::tab:selected {
|
QTabBar::tab:selected {
|
||||||
background: #3b4261;
|
background: #1a1b26;
|
||||||
color: #7aa2f7;
|
color: #c0caf5;
|
||||||
|
border-color: #292e42;
|
||||||
|
}
|
||||||
|
QTabBar::tab:hover:!selected {
|
||||||
|
background: #292e42;
|
||||||
|
color: #c0caf5;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Popout & preview overlay controls */
|
/* ---------- Group boxes ---------- */
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
background: transparent;
|
||||||
|
color: #c0caf5;
|
||||||
|
border: 1px solid #24283b;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
padding: 0 6px;
|
||||||
|
color: #a9b1d6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Frames ---------- */
|
||||||
|
|
||||||
|
QFrame[frameShape="4"], /* HLine */
|
||||||
|
QFrame[frameShape="5"] /* VLine */ {
|
||||||
|
background: #24283b;
|
||||||
|
color: #24283b;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Toolbars ---------- */
|
||||||
|
|
||||||
|
QToolBar {
|
||||||
|
background: #1a1b26;
|
||||||
|
border: none;
|
||||||
|
spacing: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
QToolBar::separator {
|
||||||
|
background: #24283b;
|
||||||
|
width: 1px;
|
||||||
|
margin: 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Dock widgets ---------- */
|
||||||
|
|
||||||
|
QDockWidget {
|
||||||
|
color: #c0caf5;
|
||||||
|
titlebar-close-icon: none;
|
||||||
|
}
|
||||||
|
QDockWidget::title {
|
||||||
|
background: #24283b;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid #24283b;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Rubber band (multi-select drag rectangle) ---------- */
|
||||||
|
|
||||||
|
QRubberBand {
|
||||||
|
background: #7aa2f7;
|
||||||
|
border: 1px solid #7aa2f7;
|
||||||
|
/* Qt blends rubber band at ~30% so this reads as a translucent
|
||||||
|
* accent-tinted rectangle without needing rgba(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Popout & preview overlay controls ---------- */
|
||||||
|
|
||||||
QWidget#_preview_controls,
|
QWidget#_preview_controls,
|
||||||
QWidget#_slideshow_toolbar,
|
QWidget#_slideshow_toolbar,
|
||||||
QWidget#_slideshow_controls {
|
QWidget#_slideshow_controls {
|
||||||
background: rgba(0, 0, 0, 160);
|
background: rgba(0, 0, 0, 160);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Thumbnail dot indicators (Qt properties on ThumbnailWidget) ---------- */
|
||||||
|
|
||||||
|
ThumbnailWidget {
|
||||||
|
qproperty-savedColor: #22cc22; /* green dot: saved to library — universal "confirmed" feel */
|
||||||
|
qproperty-bookmarkedColor: #ffcc00; /* yellow star: bookmarked */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------- Info panel tag category colors ---------- */
|
||||||
|
|
||||||
|
InfoPanel {
|
||||||
|
qproperty-tagArtistColor: #e0af68;
|
||||||
|
qproperty-tagCharacterColor: #9ece6a;
|
||||||
|
qproperty-tagCopyrightColor: #7aa2f7;
|
||||||
|
qproperty-tagSpeciesColor: #f7768e;
|
||||||
|
qproperty-tagMetaColor: #a9b1d6;
|
||||||
|
qproperty-tagLoreColor: #a9b1d6;
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user