/* * BreezeDark stylesheet. * * :author: Colin Duquesnoy * :editor: Alex Huszagh * :license: MIT, see LICENSE.md * * This is originally a fork of QDarkStyleSheet, and is based on Breeze/ * BreezeDark color scheme, but is in no way affiliated with KDE. * * --------------------------------------------------------------------- * The MIT License (MIT) * * Copyright (c) <2013-2014> * Copyright (c) <2015-2016> * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * --------------------------------------------------------------------- */ QToolTip { /* 0.2ex is the smallest value that's not ignored on Windows. */ border: 0.04em solid ^foreground^; background-color: ^background^; alternate-background-color: ^background:alternate^; color: ^foreground^; padding: 0.1em; opacity: 200; } QWidget { color: ^foreground^; background-color: ^background^; selection-background-color: ^highlight^; selection-color: ^foreground^; background-clip: border; border-image: none; } QWidget:disabled { color: ^button:disabled^; background-color: ^background^; } QCheckBox { spacing: 0.23em; outline: none; color: ^foreground^; margin-bottom: 0.09em; opacity: 200; } QCheckBox:disabled { color: ^midtone:light^; } QGroupBox { /* Need to make sure the groupbox doesn't compress below the title. */ min-height: 1.2em; border: 0.04em solid ^midtone^; border-radius: 0.09em; /** * This gives us enough space at the top to ensure we can move the * title to be inside the guidelines, and the padding at the top * ensures we have space below the title. */ margin-top: 0.5em; padding-top: 1em; } QGroupBox:focus { border: 0.04em solid ^midtone^; border-radius: 0.09em; } QGroupBox::title { /* We need to move 0.6em up to be inside the lines, +1em for padding. */ top: -1.6em; subcontrol-origin: content; subcontrol-position: top center; background: ^background^; padding-left: 0.2em; padding-right: 0.2em; } QCheckBox::indicator, QTreeView::indicator { width: 1em; height: 1em; } QCheckBox::indicator:unchecked, QCheckBox::indicator:unchecked:focus, QTreeView::indicator:unchecked, QTreeView::indicator:unchecked:focus { border-image: url(:/^style^/checkbox_unchecked_disabled.svg); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:pressed, QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:pressed, QGroupBox::indicator:unchecked, QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { border: none; border-image: url(:/^style^/checkbox_unchecked.svg); } QCheckBox::indicator:checked, QTreeView::indicator:checked, QGroupBox::indicator:checked { border-image: url(:/^style^/checkbox_checked.svg); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed, QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { border: none; border-image: url(:/^style^/checkbox_checked.svg); } QCheckBox::indicator:indeterminate, QTreeView::indicator:indeterminate { border-image: url(:/^style^/checkbox_indeterminate.svg); } QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:pressed { border-image: url(:/^style^/checkbox_indeterminate.svg); } QCheckBox::indicator:indeterminate:disabled, QTreeView::indicator:indeterminate:disabled { border-image: url(:/^style^/checkbox_indeterminate_disabled.svg); } QCheckBox::indicator:checked:disabled, QTreeView::indicator:checked:disabled, QGroupBox::indicator:checked:disabled { border-image: url(:/^style^/checkbox_checked_disabled.svg); } QCheckBox::indicator:unchecked:disabled, QTreeView::indicator:unchecked:disabled, QGroupBox::indicator:unchecked:disabled { border-image: url(:/^style^/checkbox_unchecked_disabled.svg); } QRadioButton { spacing: 0.23em; outline: none; color: ^foreground^; margin-bottom: 0.09em; } QRadioButton:disabled { color: ^midtone^; } QRadioButton::indicator { width: 1em; height: 1em; } QRadioButton::indicator:unchecked, QRadioButton::indicator:unchecked:focus { border-image: url(:/^style^/radio_unchecked_disabled.svg); } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { border: none; outline: none; border-image: url(:/^style^/radio_unchecked.svg); } QRadioButton::indicator:checked { border: none; outline: none; border-image: url(:/^style^/radio_checked.svg); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { border: none; outline: none; border-image: url(:/^style^/radio_checked.svg); } QRadioButton::indicator:checked:disabled { outline: none; border-image: url(:/^style^/radio_checked_disabled.svg); } QRadioButton::indicator:unchecked:disabled { border-image: url(:/^style^/radio_unchecked_disabled.svg); } QMenuBar { background-color: ^background^; color: ^foreground^; } QMenuBar::item { background: transparent; } QMenuBar::item:selected { background: transparent; } QMenuBar::item:pressed { background-color: ^highlight^; color: ^foreground^; margin-bottom: -0.09em; padding-bottom: 0.09em; } QMenu { color: ^foreground^; margin: 0.09em; } QMenu::icon { margin: 0.23em; } QMenu::item { /* Add extra padding on the right for the QMenu arrow */ padding: 0.23em 1.5em 0.23em 1.3em; border: 0.09em solid transparent; background: transparent; } QMenu::item:selected { color: ^foreground^; background-color: ^highlight^; } QMenu::item:hover { color: ^foreground^; background-color: ^highlight^; } QMenu::indicator { width: 1em; height: 1em; } QMenu::indicator:non-exclusive:unchecked { border-image: url(:/^style^/checkbox_unchecked_disabled.svg); } QMenu::indicator:non-exclusive:unchecked:selected { border-image: url(:/^style^/checkbox_unchecked_disabled.svg); } QMenu::indicator:non-exclusive:checked { border-image: url(:/^style^/checkbox_checked.svg); } QMenu::indicator:non-exclusive:checked:selected { border-image: url(:/^style^/checkbox_checked.svg); } QMenu::indicator:exclusive:unchecked { border-image: url(:/^style^/radio_unchecked_disabled.svg); } QMenu::indicator:exclusive:unchecked:selected { border-image: url(:/^style^/radio_unchecked_disabled.svg); } QMenu::indicator:exclusive:checked { border-image: url(:/^style^/radio_checked.svg); } QMenu::indicator:exclusive:checked:selected { border-image: url(:/^style^/radio_checked.svg); } QMenu::right-arrow { margin: 0.23em; border-image: url(:/^style^/right_arrow.svg); width: 0.5em; height: 0.8em; } QAbstractItemView { alternate-background-color: ^background^; color: ^foreground^; border: 0.09em solid ^view:border^; border-radius: 0.09em; } QMenuBar:focus { border: 0.04em solid ^highlight^; } QTabWidget:focus, QCheckBox:focus, QRadioButton:focus, QSlider:focus { border: none; } QLineEdit { background-color: ^text:background^; padding: 0.23em; border-style: solid; border: 0.04em solid ^midtone^; border-radius: 0.09em; color: ^foreground^; } QAbstractScrollArea { border-radius: 0.09em; border: 0.09em solid ^midtone^; background-color: transparent; } /** * This is the background for the box in the bottom-right corner * whene both scrollbars are active. */ QAbstractScrollArea::corner { background: ^background^; } /** * Can't do the KDE style of where the scrollbar handle * becomes light on the hover, and only when the handle * is hovered does it become stylized. This is because * both the handle and the background events are treated * together. */ QScrollBar:horizontal { background-color: ^scrollbar:background^; height: 0.65em; margin: 0.13em 0.65em 0.13em 0.65em; border: 0.04em transparent ^scrollbar:background^; border-radius: 0.17em; } QScrollBar:horizontal:hover { background-color: ^scrollbar:background:hover^; } QScrollBar::handle:horizontal { background-color: ^scrollbar:hover^; border: 0.04em solid ^scrollbar:hover^; min-width: 0.5em; border-radius: 0.17em; } QScrollBar::handle:horizontal:hover { background-color: ^scrollbar:hover^; border: 0.04em solid ^scrollbar:hover^; } QScrollBar::add-line:horizontal { margin: 0em 0.13em 0em 0.13em; border-image: url(:/^style^/transparent.svg); width: 0.41em; height: 0.41em; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { margin: 0em 0.13em 0em 0.13em; border-image: url(:/^style^/transparent.svg); width: 0.41em; height: 0.41em; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { border-image: url(:/^style^/transparent.svg); width: 0.41em; height: 0.41em; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { border-image: url(:/^style^/transparent.svg); width: 0.41em; height: 0.41em; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { background: none; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } QScrollBar:vertical { background-color: ^scrollbar:background^; width: 0.65em; margin: 0.65em 0.13em 0.65em 0.13em; border: 0.04em transparent ^scrollbar:background^; border-radius: 0.17em; } QScrollBar:vertical:hover { background-color: ^scrollbar:background:hover^; } QScrollBar::handle:vertical { background-color: ^scrollbar:hover^; border: 0.04em solid ^scrollbar:hover^; min-height: 0.5em; border-radius: 0.17em; } QScrollBar::handle:vertical:hover { background-color: ^scrollbar:hover^; border: 0.04em solid ^scrollbar:hover^; } QScrollBar::sub-line:vertical { margin: 0.13em 0em 0.13em 0em; border-image: url(:/^style^/transparent.svg); height: 0.41em; width: 0.41em; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::add-line:vertical { margin: 0.13em 0em 0.13em 0em; border-image: url(:/^style^/transparent.svg); height: 0.41em; width: 0.41em; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { border-image: url(:/^style^/transparent.svg); height: 0.41em; width: 0.41em; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { border-image: url(:/^style^/transparent.svg); height: 0.41em; width: 0.41em; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { background: none; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: none; } QTextEdit { background-color: ^text:background^; color: ^foreground^; border: 0.04em solid ^midtone^; } QPlainTextEdit { background-color: ^text:background^; color: ^foreground^; border-radius: 0.09em; border: 0.04em solid ^midtone^; } QSizeGrip { border-image: url(:/^style^/sizegrip.svg); width: 0.5em; height: 0.5em; } QMainWindow::separator { border: 0.15em solid ^midtone^; margin-left: 0.5em; } QMainWindow::separator:hover { border: 0.15em solid ^midtone:hover^; margin-left: 0.5em; } QMenu::separator { height: 0.09em; background-color: ^midtone^; padding-left: 0.2em; margin-top: 0.2em; margin-bottom: 0.2em; margin-left: 0.41em; margin-right: 0.41em; } QFrame[frameShape="2"], /* QFrame::Panel == 0x0003 */ QFrame[frameShape="3"], /* QFrame::WinPanel == 0x0003 */ QFrame[frameShape="4"], /* QFrame::HLine == 0x0004 */ QFrame[frameShape="5"], /* QFrame::VLine == 0x0005 */ QFrame[frameShape="6"] /* QFrame::StyledPanel == 0x0006 */ { border-width: 0.04em; padding: 0.09em; border-style: solid; border-color: ^background^; background-color: ^midtone^; border-radius: 0.23em; } /* Provide highlighting for frame objects. */ QFrame[frameShape="2"]:hover, QFrame[frameShape="3"]:hover, QFrame[frameShape="4"]:hover, QFrame[frameShape="5"]:hover, QFrame[frameShape="6"]:hover { border: 0.04em solid ^highlight^; } /* Don't provide an outline if we have a widget that takes up the space. */ QFrame[frameShape] QAbstractItemView:hover { border: 0em solid black; } /** * Note: I can't really change the background of the toolbars * independently, since KDE Breeze has different colors for the * window bar and the rest of the UI. The top toolbar uses * the window style, and the rest use the application style, * which we can't do. */ QToolBar { font-weight: bold; } QToolBar:horizontal { background: 0.09em solid ^toolbar:horizontal:background^; } QToolBar:vertical { background: 0.09em solid ^toolbar:vertical:background^; } QToolBar::handle:horizontal { border-image: url(:/^style^/hmovetoolbar.svg); } QToolBar::handle:vertical { border-image: url(:/^style^/vmovetoolbar.svg); } QToolBar::separator:horizontal { border-image: url(:/^style^/hseptoolbar.svg); } QToolBar::separator:vertical { border-image: url(:/^style^/vseptoolbar.svg); } QToolBar QToolButton { font-weight: bold; min-height: 1em; min-width: 2em; border: 0.04em transparent black; padding-left: 0.2em; padding-right: 0.3em; } QToolBar QToolButton:hover { border: 0.04em solid ^highlight^; } QToolBar QToolButton:pressed { border: 0.04em solid ^highlight^; /* The padding doesn't inherit from `QToolBar QToolButton`, so leave it in. */ padding-left: 0.2em; padding-right: 0.3em; } QPushButton { color: ^foreground^; background-color: ^button:background^; border: 0.04em solid ^midtone^; padding: 0.23em; border-radius: 0.09em; outline: none; min-height: 1.1em; } QComboBox:open, QPushButton:open { border-width: 0.04em; border-color: ^button:border^; } QComboBox:closed, QPushButton:closed { border-width: 0.04em; border-color: ^button:border^; } QPushButton:disabled { background-color: ^background^; border-width: 0.04em; border-color: ^button:border^; border-style: solid; padding-top: 0.23em; padding-bottom: 0.23em; padding-left: 1ex; padding-right: 1ex; border-radius: 0.04em; color: ^button:disabled^; } QPushButton:focus { color: ^foreground^; } QPushButton:pressed { background-color: ^button:background:pressed^; padding-top: -0.65em; padding-bottom: -0.74em; color: ^foreground^; } QComboBox { border: 0.04em solid ^midtone^; border-radius: 0.09em; padding: 0.23em; min-width: 2.5em; } QComboBox:editable { background-color: ^text:background^; } QPushButton:checked { background-color: ^button:checked^; border: 0.04em solid ^button:border^; color: ^foreground^; } QPushButton:hover { background-color: ^button:background^; border: 0.04em solid ^highlight^; color: ^foreground^; } QPushButton:checked:hover { background-color: ^button:checked^; border: 0.04em solid ^highlight^; color: ^foreground^; } QComboBox:hover, QComboBox:focus, QAbstractSpinBox:hover, QAbstractSpinBox:focus, QLineEdit:hover, QLineEdit:focus, QTextEdit:hover, QTextEdit:focus, QPlainTextEdit:hover, QPlainTextEdit:focus, QAbstractView:hover, QTreeView:hover, QTreeView:focus { border: 0.04em solid ^highlight^; color: ^foreground^; } QComboBox:hover:pressed:!editable, QPushButton:hover:pressed, QAbstractSpinBox:hover:pressed, QLineEdit:hover:pressed, QTextEdit:hover:pressed, QPlainTextEdit:hover:pressed, QAbstractView:hover:pressed, QTreeView:hover:pressed { background-color: ^background^; } QComboBox:hover:pressed:editable { background-color: ^text:background^; } QComboBox QAbstractItemView { /* This happens for the drop-down menu always, whether editable or not.*/ background-color: ^text:background^; selection-background-color: ^highlight:dark^; outline-color: 0em; border-radius: 0.09em; } QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 0.65em; border-left-width: 0em; border-left-style: solid; border-top-right-radius: 0.13em; border-bottom-right-radius: 0.13em; } QComboBox::down-arrow { border-image: url(:/^style^/down_arrow_disabled.svg); width: 0.8em; height: 0.5em; margin-right: 0.41em; } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { border-image: url(:/^style^/down_arrow.svg); width: 0.8em; height: 0.5em; margin-right: 0.41em; } QAbstractSpinBox { padding: 0.23em; border: 0.09em solid ^midtone^; background-color: ^text:background^; color: ^foreground^; border-radius: 0.09em; min-width: 3em; min-height: 1em; } QAbstractSpinBox:hover { border: 0.09em solid ^highlight^; } QAbstractSpinBox:up-button, QAbstractSpinBox:up-button:hover { background-color: transparent; subcontrol-origin: padding; subcontrol-position: center right; padding-right: 0.1em; width: 0.8em; height: 0.5em; } QAbstractSpinBox:down-button, QAbstractSpinBox:down-button:hover { background-color: transparent; subcontrol-origin: padding; subcontrol-position: center left; padding-left: 0.1em; width: 0.8em; height: 0.5em; } QAbstractSpinBox::up-arrow { border-image: url(:/^style^/up_arrow.svg); } QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { border-image: url(:/^style^/up_arrow_disabled.svg); } QAbstractSpinBox::up-arrow:hover { border-image: url(:/^style^/up_arrow_hover.svg); } QAbstractSpinBox::down-arrow { border-image: url(:/^style^/down_arrow.svg); } QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { border-image: url(:/^style^/down_arrow_disabled.svg); } QAbstractSpinBox::down-arrow:!off:!disabled:hover { border-image: url(:/^style^/down_arrow_hover.svg); } QDoubleSpinBox { min-width: 4em; } /** * `QCalendarWidget QAbstractItemView:enabled` sets the color, background * color, and selection color for active dates in the view. * `QCalendarWidget QAbstractItemView:enabled` sets the disabled dates. */ QCalendarWidget QAbstractItemView:enabled { color: ^foreground^; selection-color: ^foreground^; selection-background-color: ^highlight^; } /* Won't take hover events. */ QCalendarWidget QToolButton#qt_calendar_nextmonth { border-image: url(:/^style^/calendar_next.svg); width: 0.5em; height: 0.8em; icon-size: 0px; } QCalendarWidget QToolButton#qt_calendar_prevmonth { border-image: url(:/^style^/calendar_previous.svg); width: 0.5em; height: 0.8em; icon-size: 0px; } QCalendarWidget QSpinBox { max-height: 1.5em; min-width: 3.5em; margin: 0em; margin-top: 0.2em; padding: 0em; outline: 0em; padding-left: 0.5em; } QLabel { border: 0em solid black; } /* BORDERS */ QTabWidget::pane { padding: 0.23em; margin: 0.04em; } QTabWidget::pane:top { border: 0.04em solid ^midtone^; top: -0.04em; } QTabWidget::pane:bottom { border: 0.04em solid ^midtone^; bottom: -0.04em; } QTabWidget::pane:left { border: 0.04em solid ^midtone^; left: -0.04em; } QTabWidget::pane:right { border: 0.04em solid ^midtone^; right: -0.04em; } QTabBar { qproperty-drawBase: 0em; left: 0.23em; border-radius: 0.13em; /** * Note: this is the underline for each tab title. It's not * documented, and this took forever to track down. At least * 10 hours have been wasted trying to turn off this line, * do not deleted this comment. */ selection-color: transparent; } QTabBar:focus { border: 0em transparent black; } QTabBar::close-button { /* Doesn't seem possible to resize these buttons */ border-image: url(:/^style^/close.svg); background: transparent; } QTabBar::close-button:hover, QTabBar::close-button:pressed { border-image: url(:/^style^/close_hover.svg); } QTabBar::close-button:hover { border-image: url(:/^style^/close_hover.svg); } QTabBar::close-button:pressed { border-image: url(:/^style^/close_pressed.svg); } /* TOP TABS */ QTabBar::tab:top, QTabBar::tab:top:last, QTabBar::tab:top:only-one { color: ^foreground^; border: 0.04em transparent black; border-left: 0.04em solid ^midtone^; border-right: 0.04em solid ^midtone^; border-top: 0.09em solid ^highlight^; background-color: ^tab:background:selected^; padding: 0.23em; min-width: 50px; border-radius: 0.09em; border-bottom-left-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:top:!selected { color: ^foreground^; background-color: ^tab:background^; border: 0.04em transparent black; border-right: 0.04em solid ^midtone^; border-bottom: 0.04em solid ^midtone^; border-radius: 0.09em; border-bottom-left-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:top:previous-selected { border-left: 0.04em solid ^tab:background^; border-bottom-left-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:top:!selected:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-bottom-left-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:top:!selected:first:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-bottom-left-radius: 0em; border-bottom-right-radius: 0em; } /* BOTTOM TABS */ QTabBar::tab:bottom, QTabBar::tab:bottom:last, QTabBar::tab:bottom:only-one { color: ^foreground^; border: 0.04em transparent black; border-left: 0.04em solid ^midtone^; border-right: 0.04em solid ^midtone^; border-bottom: 0.09em solid ^highlight^; background-color: ^tab:background:selected^; padding: 0.23em; min-width: 50px; border-radius: 0.09em; border-top-left-radius: 0em; border-top-right-radius: 0em; } QTabBar::tab:bottom:!selected { color: ^foreground^; background-color: ^tab:background^; border: 0.04em transparent black; border-top: 0.04em solid ^midtone^; border-right: 0.04em solid ^midtone^; border-radius: 0.09em; border-top-left-radius: 0em; border-top-right-radius: 0em; } QTabBar::tab:bottom:next-selected { border-right: 0.04em solid ^tab:background^; border-top-left-radius: 0em; border-top-right-radius: 0em; } QTabBar::tab:bottom:!selected:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-top-left-radius: 0em; border-top-right-radius: 0em; } QTabBar::tab:bottom:!selected:first:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-top-left-radius: 0em; border-top-right-radius: 0em; } /* LEFT TABS */ QTabBar::tab:left, QTabBar::tab:left:last, QTabBar::tab:left:only-one { color: ^foreground^; border: 0.04em transparent black; border-top: 0.09em solid ^highlight^; border-bottom: 0.04em solid ^midtone^; border-left: 0.04em solid ^midtone^; background-color: ^tab:background:selected^; padding: 0.23em; min-height: 50px; border-radius: 0.09em; border-top-right-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:left:!selected { color: ^foreground^; background-color: ^tab:background^; border: 0.04em transparent black; border-top: 0.04em solid ^midtone^; border-right: 0.04em solid ^midtone^; border-radius: 0.09em; border-top-right-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:left:previous-selected { border-top: 0.04em solid ^tab:background^; border-top-right-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:left:!selected:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-top-right-radius: 0em; border-bottom-right-radius: 0em; } QTabBar::tab:left:!selected:first:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-top-right-radius: 0em; border-bottom-right-radius: 0em; } /* RIGHT TABS */ QTabBar::tab:right, QTabBar::tab:right:last, QTabBar::tab:right:only-one { color: ^foreground^; border: 0.04em transparent black; border-top: 0.09em solid ^highlight^; border-bottom: 0.04em solid ^midtone^; border-right: 0.04em solid ^midtone^; background-color: ^tab:background:selected^; padding: 0.23em; min-height: 50px; border-radius: 0.09em; border-top-left-radius: 0em; border-bottom-left-radius: 0em; } QTabBar::tab:right:!selected { color: ^foreground^; background-color: ^tab:background^; border: 0.04em transparent black; border-top: 0.04em solid ^midtone^; border-left: 0.04em solid ^midtone^; border-radius: 0.09em; border-top-left-radius: 0em; border-bottom-left-radius: 0em; } QTabBar::tab:right:previous-selected { border-top: 0.04em solid ^tab:background^; border-top-left-radius: 0em; border-bottom-left-radius: 0em; } QTabBar::tab:right:!selected:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-top-left-radius: 0em; border-bottom-left-radius: 0em; } QTabBar::tab:right:!selected:first:hover { background-color: ^view:hover^; border: 0.04em ^view:hover^; border-radius: 0.09em; border-top-left-radius: 0em; border-bottom-left-radius: 0em; } QTabBar QToolButton::right-arrow:enabled { border-image: url(:/^style^/right_arrow.svg); width: 0.5em; height: 0.8em; } QTabBar QToolButton::left-arrow:enabled { border-image: url(:/^style^/left_arrow.svg); width: 0.5em; height: 0.8em; } QTabBar QToolButton::right-arrow:disabled { border-image: url(:/^style^/right_arrow_disabled.svg); width: 0.5em; height: 0.8em; } QTabBar QToolButton::left-arrow:disabled { border-image: url(:/^style^/left_arrow_disabled.svg); width: 0.5em; height: 0.8em; } QDockWidget { background: ^dock:background^; border: 0.09em solid ^tab:background^; titlebar-close-icon: url(:/^style^/transparent.svg); titlebar-normal-icon: url(:/^style^/transparent.svg); } QDockWidget::title { background: ^dock:background^; padding-left: 0.5em; } QDockWidget::close-button, QDockWidget::float-button { border: 0.04em solid transparent; border-radius: 0.09em; background: transparent; /* Maximum icon size for buttons */ icon-size: 14px; } QDockWidget::float-button { border-image: url(:/^style^/undock.svg); } QDockWidget::float-button:hover { border-image: url(:/^style^/undock_hover.svg); } QDockWidget::close-button { border-image: url(:/^style^/close.svg); } QDockWidget::close-button:hover { border-image: url(:/^style^/close_hover.svg); } QDockWidget::close-button:pressed { border-image: url(:/^style^/close_pressed.svg); } QTreeView, QListView { background-color: ^view:background^; border: 0em solid black; } QTreeView:selected, QTreeView:!selected, QListView:selected, QListView:!selected { border: 0em solid black; } QTreeView::branch:has-siblings { border-image: url(:/^style^/vline.svg); image: none; } /* These branch indicators don't scale */ TreeView::branch:!has-siblings { border-image: none; image: none; } QTreeView::branch:has-siblings:adjoins-item { border-image: url(:/^style^/branch_more.svg); } QTreeView::branch:!has-children:!has-siblings:adjoins-item { border-image: url(:/^style^/branch_end.svg); } QTreeView::branch:has-children:!has-siblings:closed, QTreeView::branch:closed:has-children:has-siblings { image: url(:/^style^/branch_closed.svg); } QTreeView::branch:has-children:!has-siblings:closed:hover, QTreeView::branch:closed:has-children:has-siblings:hover { image: url(:/^style^/branch_closed_hover.svg); } QTreeView::branch:has-children:!has-siblings:closed, QTreeView::branch:open:has-children:!has-siblings { border-image: url(:/^style^/branch_end_arrow.svg); } QTreeView::branch:closed:has-children:has-siblings, QTreeView::branch:open:has-children:has-siblings { border-image: url(:/^style^/branch_more_arrow.svg); } QTreeView::branch:open:has-children:!has-siblings, QTreeView::branch:open:has-children:has-siblings { image: url(:/^style^/branch_open.svg); } QTreeView::branch:open:has-children:!has-siblings:hover, QTreeView::branch:open:has-children:has-siblings:hover { image: url(:/^style^/branch_open_hover.svg); } QListView { /* Give space for elements aligned left or right. */ padding: 0.2em; } QTableView::item, QListView::item, QTreeView::item { padding: 0.13em; color: ^foreground^; } QTableView::item:!selected:hover, QListView::item:!selected:hover, QTreeView::item:!selected:hover { background-color: ^view:hover^; outline: 0; color: ^foreground^; padding: 0.13em; } QSlider::handle:horizontal, QSlider::handle:vertical { background: ^slider:handle:background^; border: 0.04em solid ^midtone:dark^; width: 0.7em; height: 0.7em; border-radius: 0.35em; } QSlider:horizontal { height: 2em; } QSlider:vertical { width: 2em; } QSlider::handle:horizontal { margin: -0.23em 0; } QSlider::handle:vertical { margin: 0 -0.23em; } QSlider::groove:horizontal, QSlider::groove:vertical { background: ^tab:background^; border: 0em solid ^background^; border-radius: 0.19em; } QSlider::groove:horizontal { height: 0.4em; } QSlider::groove:vertical { width: 0.4em; } QSlider::handle:horizontal:hover, QSlider::handle:horizontal:focus, QSlider::handle:vertical:hover, QSlider::handle:vertical:focus { border: 0.04em solid ^slider:foreground^; } QSlider::handle:horizontal:!focus:!hover, QSlider::handle:vertical:!focus:!hover { border: 0.04em solid ^midtone:dark^; } QSlider::sub-page:horizontal, QSlider::add-page:vertical { background: ^slider:foreground^; border-radius: 0.19em; } QSlider::add-page:horizontal, QSlider::sub-page:vertical { background: ^midtone:dark^; border-radius: 0.19em; } QToolButton { background-color: transparent; border: 0.04em solid ^midtone^; border-radius: 0.09em; margin: 0.23em; padding: 0.23em; padding-top: 0.1em; padding-right: 1.2em; min-height: 1.1em; } QToolButton::right-arrow, QToolButton::left-arrow, QToolButton::up-arrow, QToolButton::down-arrow { /* Undo the padding when we have an arrow */ padding-right: -1.2em; } QToolButton::right-arrow { image: url(:/^style^/right_arrow.svg); } QToolButton::left-arrow { image: url(:/^style^/left_arrow.svg); } QToolButton::up-arrow { image: url(:/^style^/up_arrow.svg); } QToolButton::down-arrow { image: url(:/^style^/down_arrow.svg); } QToolButton:hover { border: 0.04em solid ^highlight^; } QToolButton::menu-indicator { border-image: none; image: url(:/^style^/down_arrow.svg); width: 0.8em; height: 0.5em; top: -0.7ex; left: -0.09em; padding-right: 0.09em; } QToolButton::menu-arrow { border-image: none; image: url(:/^style^/down_arrow.svg); width: 0.8em; height: 0.5em; subcontrol-position: bottom right; } QToolButton::menu-button { border-top-right-radius: 0.5em; border-bottom-right-radius: 0.5em; /* 1ex width + 0.4ex for border + no text = 2ex allocated above */ width: 1.3em; padding: 0.23em; outline: none; } QToolButton::menu-button::menu-arrow { left: -0.09em; subcontrol-position: bottom right; } QToolButton::menu-button:hover { background-color: transparent; } QToolButton:checked, QToolButton:pressed { background-color: ^highlight^; padding: 0.23em; padding-right: 1.2em; min-height: 1.3em; outline: none; } QToolButton::menu-button:pressed { background-color: transparent; padding: 0.23em; outline: none; } QTableView { border: 0em solid black; gridline-color: ^view:border^; background-color: ^view:background^; } QTableView:!selected, QTableView:selected { border: 0em solid black; } QTableView { border-radius: 0em; } QAbstractItemView::item { color: ^foreground^; } QAbstractItemView::item:pressed { background: ^highlight:dark^; color: ^foreground^; } QAbstractItemView::item:selected:!active { background: ^view:hover^; } /* Use background with qlineargradient to avoid ugly border on widget. */ QAbstractItemView::item:selected:active { background: qlineargradient( x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 ^highlight:dark^, stop: 1 ^highlight:dark^ ); color: ^foreground^; } QAbstractItemView::item:selected:hover { background: qlineargradient( x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 ^highlight:alternate^, stop: 1 ^highlight:alternate^ ); color: ^foreground^; } QHeaderView { background-color: ^view:header^; border: 0.04em transparent; border-radius: 0em; margin: 0em; padding: 0em; } QHeaderView::section { background-color: ^view:header^; border: 0.04em solid ^midtone^; color: ^foreground^; padding: 0.23em; padding-top: 0.3em; border-radius: 0em; text-align: center; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { border-top: 0.04em solid ^midtone^; } QHeaderView::section::vertical { border-top: transparent; } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { border-left: 0.04em solid ^midtone^; } QHeaderView::section::horizontal { border-left: transparent; } QHeaderView::section:checked { color: ^foreground:light^; background-color: ^view:checked^; } /* Note that this doesn't work for QTreeView unless the header is clickable */ QHeaderView::section:hover, QHeaderView::section::horizontal::first:hover, QHeaderView::section::horizontal::only-one:hover, QHeaderView::section::vertical::first:hover, QHeaderView::section::vertical::only-one:hover { border: 0.04em solid ^highlight^; } QHeaderView::down-arrow { image: url(:/^style^/down_arrow.svg); subcontrol-origin: margin; subcontrol-position: top center; padding-top: 0.2em; width: 0.8em; height: 0.5em; } QHeaderView::up-arrow { image: url(:/^style^/up_arrow.svg); subcontrol-origin: margin; subcontrol-position: top center; padding-top: 0.2em; width: 0.8em; height: 0.5em; } QTableView QTableCornerButton::section { background-color: ^view:corner^; border: 0.04em transparent ^view:header:border^; border-top: 0.04em solid ^view:header:border^; border-left: 0.04em solid ^view:header:border^; border-radius: 0em; } /* No hover event */ QTableView QTableCornerButton:hover { border: 0.04em transparent ^view:header:border^; } QTableView QTableCornerButton::section:pressed { border: 0.04em solid ^highlight^; border-radius: 0em; } QToolBox { padding: 0.23em; border: 0.09em transparent black; } QToolBox::tab { border-bottom: 0.09em solid ^midtone^; margin-left: 1.5em; } QToolBox::tab:selected, QToolBox::tab:hover { border-bottom: 0.09em solid ^highlight^; } QSplitter::handle { border: 0.09em solid ^tab:background^; background: -0.5em solid ^tab:background^; max-width: 0em; max-height: 0em; } /** * It's not possible to get satisfactory rounded borders here. * If you set the border to be negative, while adjusting the * widths, you get an asymmetrical curve which produces an * unappealing border. */ QProgressBar:horizontal, QProgressBar:vertical { background-color: ^midtone:dark^; border: 0.9em solid ^background^; border-radius: 0.13em; padding: 0em; } QProgressBar:horizontal { height: 0.2em; min-width: 6em; text-align: right; padding-left: -0.03em; padding-right: -0.03em; margin-top: 0.2em; margin-bottom: 0.2em; margin-right: 1.3em; } QProgressBar:vertical { width: 0.2em; min-height: 6em; text-align: bottom; padding-top: -0.03em; padding-bottom: -0.03em; margin-left: 0.2em; margin-right: 0.2em; margin-bottom: 0.41em; } QProgressBar::chunk:horizontal, QProgressBar::chunk:vertical { background-color: ^slider:foreground^; border: 0.9em transparent; border-radius: 0.08em; } QScrollArea, QScrollArea:focus, QScrollArea:hover { border: 0em solid black; } /* ICONS */ /** * Qt's built-in icons can look pretty bad if the system theme * is a different color than the current one. For example, when * using a dark theme, with a light UI, the `Ok` button is greyed * out for an about dialog. * * QDialogButtonBox will apply for all standard buttons in all standard * widgets, such as QMessageBox, etc. However, we do need to override * standard icons elsewhere. * * The rest of the icons make little sense to implement: * Qt uses native window decorations. * Qt normally uses native file dialogs, which look nicer. * Media controls are used in custom widgets, which aren't standard. */ QDialogButtonBox { dialogbuttonbox-buttons-have-icons: true; dialog-cancel-icon: url(:/^style^/dialog-cancel.svg); dialog-close-icon: url(:/^style^/dialog-close.svg); dialog-ok-icon: url(:/^style^/dialog-ok.svg); dialog-open-icon: url(:/^style^/dialog-open.svg); dialog-reset-icon: url(:/^style^/dialog-reset.svg); dialog-save-icon: url(:/^style^/dialog-save.svg); /** * No support yet for overriding saveall. * dialog-saveall-icon: url(:/^style^/dialog-saveall.svg); */ dialog-yes-icon: url(:/^style^/dialog-ok.svg); dialog-help-icon: url(:/^style^/dialog-help.svg); dialog-no-icon: url(:/^style^/dialog-no.svg); dialog-apply-icon: url(:/^style^/dialog-ok.svg); dialog-discard-icon: url(:/^style^/dialog-discard.svg); } QMessageBox { messagebox-critical-icon: url(:/^style^/message-critical.svg); messagebox-information-icon: url(:/^style^/message-information.svg); messagebox-question-icon: url(:/^style^/message-question.svg); messagebox-warning-icon: url(:/^style^/message-warning.svg); } /* Set some styles for these custom dialog buttons */ QDialogButtonBox QPushButton, QMessageBox QPushButton { min-height: 1.1em; min-width: 5em; }