diff --git a/src/Gui/Stylesheets/Dark - blue.qss b/src/Gui/Stylesheets/Dark - blue.qss new file mode 100644 index 000000000000..c57fb0d8c140 --- /dev/null +++ b/src/Gui/Stylesheets/Dark - blue.qss @@ -0,0 +1,1902 @@ +/* +ABOUT +============================================================================================================ +version 2.01 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/fStylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #1e1e1e + #3c3c3c + #505050 + #5a5a5a + #646464 + #6e6e6e = main background color + #787878 + #8c8c8c + #a0a0a0 + #b4b4b4 + #bebebe + #c8c8c8 + #d2d2d2 + #e0e0e0 + #f5f5f5 + white + + SELECTION (darker to lighter) + #1b3774 + #2053c0 + #3874f2 + #5e90fa = main selection color + #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle + #7cabf9 + #adc5ed + #cbd8e6 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #6e6e6e; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: #e0e0e0; + background-color: #6e6e6e; /* main background color */ +} + +QMenu, +QMenu::item { + color: #e0e0e0; + background-color: #5a5a5a; + text-decoration: none; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #5e90fa; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(255,255,255,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: #1e1e1e; + background-color: #b4b4b4; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,20); + border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(255,255,255,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #c8c8c8; + border: 1px solid #505050; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,80); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_lighter.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_lighter.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_lighter.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_lighter.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #5a5a5a; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #5a5a5a; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #5a5a5a; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #5a5a5a; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + color: #d2d2d2; + background-color: transparent; /* temporal (transparent background) */ + border-color: #5a5a5a; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-bottom-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-top-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-right-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-left-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,120); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,180); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #6e6e6e) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 6px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #b4b4b4; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: white; + background-color: #5e90fa; + border: 3px solid #3874f2; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(255,255,255,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #6e6e6e; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #c8c8c8; + alternate-background-color: #bebebe; /* related with QListView background */ + border: 1px solid #505050; + selection-color: white; + selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:hover, +QTreeView::item:hover { + background-color: transparent; /* fix to homogenize it on all OSs */ +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #5e90fa; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #a0a0a0; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #cbd8e6; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + color: #c8c8c8; + background-color: #505050; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #505050; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(255,255,255,30); +} + +QTableCornerButton::section { + background-color: #505050; + border-top: none; + border-left: none; + border-right: 1px solid rgba(255,255,255,30); + border-bottom: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_light.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_lighter.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_lighter.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #505050; + qproperty-groupBackground: #8c8c8c; +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Text/Python editor (macros, etc...) +==================================================================================================*/ +QPlainTextEdit, +QPlainTextEdit:focus { + background-color: #c8c8c8; + selection-color: white; + selection-background-color: #3874f2; + border: 1px solid #505050; + border-radius: 3px; + margin: 4px; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #505050; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: #e0e0e0; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #8c8c8c; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #8c8c8c; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #8c8c8c; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #bebebe; + background-color: #5a5a5a; + selection-color: white; + selection-background-color: #3874f2; + border: 1px solid #5a5a5a; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #c8c8c8; + border: 1px solid #505050; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #7cabf9; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); /* same as up/down or drop-down button color */ + background-color: #cbd8e6; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #505050; /* same color for QComboBox background-color */ + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_light.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_light.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #5e90fa; +} + +QComboBox QAbstractItemView { + color: #bebebe; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #5e90fa; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #6e6e6e; + border: 1px solid #5a5a5a; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #6e6e6e; /* main background color */ + border: 1px solid #5a5a5a; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #6e6e6e; + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QRadioButton::indicator:checked { + background-color: #5e90fa; /* QCheckBox has the same color */ + border: 1px solid #3874f2; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #adc5ed; +} + +QRadioButton::indicator:disabled { + border: 1px solid #f5f5f5; +} + +QRadioButton::indicator:disabled { + color: #f5f5f5; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #adc5ed; +} + +QCheckBox::indicator:checked { + background-color: #5e90fa; /* QRadioButton has the same color */ + border: 1px solid #3874f2; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(255,255,255,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(255,255,255,20); + border: 1px solid rgba(255,255,255,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #5e90fa; + border: 1px solid #3874f2; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #505050; + border: 1px solid #505050; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #5e90fa; + background-color: #5e90fa; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #2053c0; +} + +QToolBar > QPushButton:!checked:hover { + color: #cbd8e6; + border-color: #505050; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #7cabf9; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #a0a0a0; + selection-color: #1b3774; + selection-background-color: #cbd8e6; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #8c8c8c; +} + +QTableView::item:selected { + color: #1b3774; + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #1b3774; + selection-color: white; + selection-background-color: #5e90fa; + border-color: #cbd8e6; + background-color: #cbd8e6; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/src/Gui/Stylesheets/Dark - green.qss b/src/Gui/Stylesheets/Dark - green.qss new file mode 100644 index 000000000000..dca5b629b4fa --- /dev/null +++ b/src/Gui/Stylesheets/Dark - green.qss @@ -0,0 +1,1902 @@ +/* +ABOUT +============================================================================================================ +version 2.01 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/fStylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #1e1e1e + #3c3c3c + #505050 + #5a5a5a + #646464 + #6e6e6e = main background color + #787878 + #8c8c8c + #a0a0a0 + #b4b4b4 + #bebebe + #c8c8c8 + #d2d2d2 + #e0e0e0 + #f5f5f5 + white + + SELECTION (darker to lighter) + #566214 + #74831d + #819c0c + #94b30f = main selection color + #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle + #a5c61a + #c5d675 + #dadfc5 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #6e6e6e; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: #e0e0e0; + background-color: #6e6e6e; /* main background color */ +} + +QMenu, +QMenu::item { + color: #e0e0e0; + background-color: #5a5a5a; + text-decoration: none; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #94b30f; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(255,255,255,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: #1e1e1e; + background-color: #b4b4b4; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,20); + border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(255,255,255,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #c8c8c8; + border: 1px solid #505050; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #819c0c, stop:1 #94b30f); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,80); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_lighter.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_lighter.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_lighter.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_lighter.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #5a5a5a; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #5a5a5a; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #5a5a5a; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #5a5a5a; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + color: #d2d2d2; + background-color: transparent; /* temporal (transparent background) */ + border-color: #5a5a5a; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-bottom-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-top-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-right-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-left-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,120); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,180); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #6e6e6e) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 6px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #b4b4b4; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: white; + background-color: #94b30f; + border: 3px solid #819c0c; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(255,255,255,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #6e6e6e; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #c8c8c8; + alternate-background-color: #bebebe; /* related with QListView background */ + border: 1px solid #505050; + selection-color: white; + selection-background-color: #94b30f; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:hover, +QTreeView::item:hover { + background-color: transparent; /* fix to homogenize it on all OSs */ +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #94b30f; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #a0a0a0; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #dadfc5; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + color: #c8c8c8; + background-color: #505050; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #505050; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(255,255,255,30); +} + +QTableCornerButton::section { + background-color: #505050; + border-top: none; + border-left: none; + border-right: 1px solid rgba(255,255,255,30); + border-bottom: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_light.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_lighter.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_lighter.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #505050; + qproperty-groupBackground: #8c8c8c; +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Text/Python editor (macros, etc...) +==================================================================================================*/ +QPlainTextEdit, +QPlainTextEdit:focus { + background-color: #c8c8c8; + selection-color: white; + selection-background-color: #819c0c; + border: 1px solid #505050; + border-radius: 3px; + margin: 4px; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #505050; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: #e0e0e0; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #8c8c8c; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #8c8c8c; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #8c8c8c; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #bebebe; + background-color: #5a5a5a; + selection-color: white; + selection-background-color: #819c0c; + border: 1px solid #5a5a5a; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #c8c8c8; + border: 1px solid #505050; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #a5c61a; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); /* same as up/down or drop-down button color */ + background-color: #dadfc5; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #505050; /* same color for QComboBox background-color */ + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #9bbc12, stop:1 #a5c61a); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #9bbc12); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_light.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_light.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #94b30f; +} + +QComboBox QAbstractItemView { + color: #bebebe; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #94b30f; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #6e6e6e; + border: 1px solid #5a5a5a; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #6e6e6e; /* main background color */ + border: 1px solid #5a5a5a; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #6e6e6e; + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QRadioButton::indicator:checked { + background-color: #94b30f; /* QCheckBox has the same color */ + border: 1px solid #819c0c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #c5d675; +} + +QRadioButton::indicator:disabled { + border: 1px solid #f5f5f5; +} + +QRadioButton::indicator:disabled { + color: #f5f5f5; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #c5d675; +} + +QCheckBox::indicator:checked { + background-color: #94b30f; /* QRadioButton has the same color */ + border: 1px solid #819c0c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(255,255,255,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(255,255,255,20); + border: 1px solid rgba(255,255,255,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #94b30f; + border: 1px solid #819c0c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #505050; + border: 1px solid #505050; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #94b30f; + background-color: #94b30f; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #74831d; +} + +QToolBar > QPushButton:!checked:hover { + color: #dadfc5; + border-color: #505050; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #a5c61a; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #a0a0a0; + selection-color: #566214; + selection-background-color: #dadfc5; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #8c8c8c; +} + +QTableView::item:selected { + color: #566214; + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #566214; + selection-color: white; + selection-background-color: #94b30f; + border-color: #dadfc5; + background-color: #dadfc5; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/src/Gui/Stylesheets/Dark - orange.qss b/src/Gui/Stylesheets/Dark - orange.qss new file mode 100644 index 000000000000..e0061aa9d600 --- /dev/null +++ b/src/Gui/Stylesheets/Dark - orange.qss @@ -0,0 +1,1902 @@ +/* +ABOUT +============================================================================================================ +version 2.01 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/fStylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #1e1e1e + #3c3c3c + #505050 + #5a5a5a + #646464 + #6e6e6e = main background color + #787878 + #8c8c8c + #a0a0a0 + #b4b4b4 + #bebebe + #c8c8c8 + #d2d2d2 + #e0e0e0 + #f5f5f5 + white + + SELECTION (darker to lighter) + #624b14 + #b28416 + #d0970c + #daa116 = main selection color + #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle + #e3b64d + #e0c992 + #e3d8b9 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #6e6e6e; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: #e0e0e0; + background-color: #6e6e6e; /* main background color */ +} + +QMenu, +QMenu::item { + color: #e0e0e0; + background-color: #5a5a5a; + text-decoration: none; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #daa116; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(255,255,255,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: #1e1e1e; + background-color: #b4b4b4; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,20); + border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(255,255,255,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #c8c8c8; + border: 1px solid #505050; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #d0970c, stop:1 #daa116); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,80); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_lighter.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_lighter.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_lighter.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_lighter.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #5a5a5a; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #5a5a5a; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #5a5a5a; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #5a5a5a; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + color: #d2d2d2; + background-color: transparent; /* temporal (transparent background) */ + border-color: #5a5a5a; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-bottom-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-top-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-right-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-left-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,120); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,180); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #6e6e6e) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 6px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #b4b4b4; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: white; + background-color: #daa116; + border: 3px solid #d0970c; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(255,255,255,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #6e6e6e; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #c8c8c8; + alternate-background-color: #bebebe; /* related with QListView background */ + border: 1px solid #505050; + selection-color: white; + selection-background-color: #daa116; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:hover, +QTreeView::item:hover { + background-color: transparent; /* fix to homogenize it on all OSs */ +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #daa116; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #a0a0a0; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #e3d8b9; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + color: #c8c8c8; + background-color: #505050; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #505050; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(255,255,255,30); +} + +QTableCornerButton::section { + background-color: #505050; + border-top: none; + border-left: none; + border-right: 1px solid rgba(255,255,255,30); + border-bottom: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_light.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_lighter.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_lighter.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #505050; + qproperty-groupBackground: #8c8c8c; +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Text/Python editor (macros, etc...) +==================================================================================================*/ +QPlainTextEdit, +QPlainTextEdit:focus { + background-color: #c8c8c8; + selection-color: white; + selection-background-color: #d0970c; + border: 1px solid #505050; + border-radius: 3px; + margin: 4px; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #505050; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: #e0e0e0; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #8c8c8c; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #8c8c8c; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #8c8c8c; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #bebebe; + background-color: #5a5a5a; + selection-color: white; + selection-background-color: #d0970c; + border: 1px solid #5a5a5a; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #c8c8c8; + border: 1px solid #505050; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #e3b64d; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); /* same as up/down or drop-down button color */ + background-color: #e3d8b9; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #505050; /* same color for QComboBox background-color */ + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #e2ac2a, stop:1 #e3b64d); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e2ac2a); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_light.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_light.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #daa116; +} + +QComboBox QAbstractItemView { + color: #bebebe; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #daa116; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #6e6e6e; + border: 1px solid #5a5a5a; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #6e6e6e; /* main background color */ + border: 1px solid #5a5a5a; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #6e6e6e; + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QRadioButton::indicator:checked { + background-color: #daa116; /* QCheckBox has the same color */ + border: 1px solid #d0970c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #e0c992; +} + +QRadioButton::indicator:disabled { + border: 1px solid #f5f5f5; +} + +QRadioButton::indicator:disabled { + color: #f5f5f5; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #e0c992; +} + +QCheckBox::indicator:checked { + background-color: #daa116; /* QRadioButton has the same color */ + border: 1px solid #d0970c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(255,255,255,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(255,255,255,20); + border: 1px solid rgba(255,255,255,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #daa116; + border: 1px solid #d0970c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #505050; + border: 1px solid #505050; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #daa116; + background-color: #daa116; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #b28416; +} + +QToolBar > QPushButton:!checked:hover { + color: #e3d8b9; + border-color: #505050; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #e3b64d; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #a0a0a0; + selection-color: #624b14; + selection-background-color: #e3d8b9; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #8c8c8c; +} + +QTableView::item:selected { + color: #624b14; + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #624b14; + selection-color: white; + selection-background-color: #daa116; + border-color: #e3d8b9; + background-color: #e3d8b9; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/src/Gui/Stylesheets/Light - blue.qss b/src/Gui/Stylesheets/Light - blue.qss new file mode 100644 index 000000000000..e1452835ff65 --- /dev/null +++ b/src/Gui/Stylesheets/Light - blue.qss @@ -0,0 +1,1900 @@ +/* +ABOUT +============================================================================================================ +version 2.01 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #505050 + #6e6e6e + #828282 + #a2a2a0 + #b6b6b6 + #c8c8c8 + #c3c3c3 + #d2d2d2 + #dcdcdc + #e0e0e0 + #e6e6e6 + #f0f0f0 + #f5f5f5 = main background color + white + + SELECTION (darker to lighter) + #1b3774 + #2053c0 + #3874f2 + #5e90fa = main selection color + #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle + #7cabf9 + #adc5ed + #cbd8e6 + + + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #f5f5f5; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenu, +QMenu::item { + color: black; + background-color: #f5f5f5; /* main background color */ + text-decoration: none; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #5e90fa; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(0,0,0,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: white; + background-color: #828282; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,10); + border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(0,0,0,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,80); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_darker.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_darker.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_darker.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_darker.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #d2d2d2; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #d2d2d2; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #d2d2d2; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #d2d2d2; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + background-color: transparent; /* temporal (transparent background) */ + border-color: #d2d2d2; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-bottom-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-top-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-right-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-left-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,160); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,220); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #f5f5f5) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 6px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #dcdcdc; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: #1b3774; + background-color: #cbd8e6; + border: 3px solid #7cabf9; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(0,0,0,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #f5f5f5; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #f0f0f0; + alternate-background-color: #e6e6e6; /* related with QListView background */ + border: 1px solid #c3c3c3; + selection-color: white; + selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:hover, +QTreeView::item:hover { + background-color: transparent; /* fix to homogenize it on all OSs */ +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #5e90fa; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #d2d2d2; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #cbd8e6; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + background-color: #c3c3c3; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #c3c3c3; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(0,0,0,30); +} + +QTableCornerButton::section { + background-color: #c3c3c3; + border-top: none; + border-left: none; + border-right: 1px solid rgba(0,0,0,30); + border-bottom: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_dark.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #828282; /* same as main background color */ + qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Text/Python editor (macros, etc...) +==================================================================================================*/ +QPlainTextEdit, +QPlainTextEdit:focus { + background-color: #c8c8c8; + selection-color: white; + selection-background-color: #3874f2; + border: 1px solid #505050; + border-radius: 3px; + margin: 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #b6b6b6; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: white; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #e6e6e6; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #e6e6e6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #e6e6e6; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #6e6e6e; + background-color: #e0e0e0; + selection-color: white; + selection-background-color: #5e90fa; + border: 1px solid #e0e0e0; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #7cabf9; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); /* same as up/down or drop-down button color */ + background-color: #cbd8e6; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #c3c3c3; + background-color: #e0e0e0; /* same as enabled color */ + border-color: #e0e0e0; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_dark.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_dark.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #5e90fa; +} + +QComboBox QAbstractItemView { + color: #6e6e6e; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #5e90fa; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #b6b6b6; + border: 1px solid #828282; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #f5f5f5; /* main background color */ + border: 1px solid #dcdcdc; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: #505050; + background-color: rgba(0, 0, 0, 20); + border: 1px solid #505050; +} + +QRadioButton::indicator:checked { + background-color: #5e90fa; /* QCheckBox has the same color */ + border: 1px solid #3874f2; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #adc5ed; +} + +QRadioButton::indicator:disabled { + border: 1px solid #6e6e6e; +} + +QRadioButton::indicator:disabled { + color: #6e6e6e; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: #c8c8c8; + background-color: rgba(0,0,0,20); + border: 1px solid #505050; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #adc5ed; +} + +QCheckBox::indicator:checked { + background-color: #5e90fa; /* QRadioButton has the same color */ + border: 1px solid #3874f2; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(0,0,0,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(0,0,0,20); + border: 1px solid rgba(0,0,0,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #5e90fa; + border: 1px solid #3874f2; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #b6b6b6; + border: 1px solid #b6b6b6; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #5e90fa; + background-color: #5e90fa; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #2053c0; +} + +QToolBar > QPushButton:!checked:hover { + color: black; + border-color: #b6b6b6; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #7cabf9; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #d2d2d2; + selection-color: #1b3774; + selection-background-color: #cbd8e6; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #e6e6e6; +} + +QTableView::item:selected { + color: #1b3774; + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #1b3774; + selection-color: white; + selection-background-color: #5e90fa; + border-color: #cbd8e6; + background-color: #cbd8e6; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/src/Gui/Stylesheets/Light - green.qss b/src/Gui/Stylesheets/Light - green.qss new file mode 100644 index 000000000000..1b14de033325 --- /dev/null +++ b/src/Gui/Stylesheets/Light - green.qss @@ -0,0 +1,1900 @@ +/* +ABOUT +============================================================================================================ +version 2.01 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #505050 + #6e6e6e + #828282 + #a2a2a0 + #b6b6b6 + #c8c8c8 + #c3c3c3 + #d2d2d2 + #dcdcdc + #e0e0e0 + #e6e6e6 + #f0f0f0 + #f5f5f5 = main background color + white + + SELECTION (darker to lighter) + #566214 + #74831d + #819c0c + #94b30f = main selection color + #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle + #a5c61a + #c5d675 + #dadfc5 + + + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #f5f5f5; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenu, +QMenu::item { + color: black; + background-color: #f5f5f5; /* main background color */ + text-decoration: none; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #94b30f; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(0,0,0,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: white; + background-color: #828282; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,10); + border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(0,0,0,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #819c0c, stop:1 #94b30f); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,80); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_darker.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_darker.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_darker.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_darker.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #d2d2d2; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #d2d2d2; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #d2d2d2; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #d2d2d2; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + background-color: transparent; /* temporal (transparent background) */ + border-color: #d2d2d2; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-bottom-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-top-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-right-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-left-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,160); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,220); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #f5f5f5) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 6px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #dcdcdc; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: #566214; + background-color: #dadfc5; + border: 3px solid #a5c61a; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(0,0,0,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #f5f5f5; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #f0f0f0; + alternate-background-color: #e6e6e6; /* related with QListView background */ + border: 1px solid #c3c3c3; + selection-color: white; + selection-background-color: #94b30f; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:hover, +QTreeView::item:hover { + background-color: transparent; /* fix to homogenize it on all OSs */ +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #94b30f; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #d2d2d2; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #dadfc5; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + background-color: #c3c3c3; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #c3c3c3; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(0,0,0,30); +} + +QTableCornerButton::section { + background-color: #c3c3c3; + border-top: none; + border-left: none; + border-right: 1px solid rgba(0,0,0,30); + border-bottom: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_dark.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #828282; /* same as main background color */ + qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Text/Python editor (macros, etc...) +==================================================================================================*/ +QPlainTextEdit, +QPlainTextEdit:focus { + background-color: #c8c8c8; + selection-color: white; + selection-background-color: #819c0c; + border: 1px solid #505050; + border-radius: 3px; + margin: 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #b6b6b6; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: white; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #e6e6e6; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #e6e6e6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #e6e6e6; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #6e6e6e; + background-color: #e0e0e0; + selection-color: white; + selection-background-color: #94b30f; + border: 1px solid #e0e0e0; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #a5c61a; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); /* same as up/down or drop-down button color */ + background-color: #dadfc5; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #c3c3c3; + background-color: #e0e0e0; /* same as enabled color */ + border-color: #e0e0e0; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #9bbc12, stop:1 #a5c61a); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #9bbc12); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_dark.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_dark.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #94b30f; +} + +QComboBox QAbstractItemView { + color: #6e6e6e; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #94b30f; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #b6b6b6; + border: 1px solid #828282; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #f5f5f5; /* main background color */ + border: 1px solid #dcdcdc; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: #505050; + background-color: rgba(0, 0, 0, 20); + border: 1px solid #505050; +} + +QRadioButton::indicator:checked { + background-color: #94b30f; /* QCheckBox has the same color */ + border: 1px solid #819c0c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #c5d675; +} + +QRadioButton::indicator:disabled { + border: 1px solid #6e6e6e; +} + +QRadioButton::indicator:disabled { + color: #6e6e6e; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: #c8c8c8; + background-color: rgba(0,0,0,20); + border: 1px solid #505050; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #c5d675; +} + +QCheckBox::indicator:checked { + background-color: #94b30f; /* QRadioButton has the same color */ + border: 1px solid #819c0c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(0,0,0,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(0,0,0,20); + border: 1px solid rgba(0,0,0,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #94b30f; + border: 1px solid #819c0c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #b6b6b6; + border: 1px solid #b6b6b6; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #94b30f; + background-color: #94b30f; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #74831d; +} + +QToolBar > QPushButton:!checked:hover { + color: black; + border-color: #b6b6b6; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #a5c61a; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #d2d2d2; + selection-color: #566214; + selection-background-color: #dadfc5; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #e6e6e6; +} + +QTableView::item:selected { + color: #566214; + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #566214; + selection-color: white; + selection-background-color: #94b30f; + border-color: #dadfc5; + background-color: #dadfc5; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/src/Gui/Stylesheets/Light - orange.qss b/src/Gui/Stylesheets/Light - orange.qss new file mode 100644 index 000000000000..dca46d920bc8 --- /dev/null +++ b/src/Gui/Stylesheets/Light - orange.qss @@ -0,0 +1,1900 @@ +/* +ABOUT +============================================================================================================ +version 2.01 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #505050 + #6e6e6e + #828282 + #a2a2a0 + #b6b6b6 + #c8c8c8 + #c3c3c3 + #d2d2d2 + #dcdcdc + #e0e0e0 + #e6e6e6 + #f0f0f0 + #f5f5f5 = main background color + white + + SELECTION (darker to lighter) + #624b14 + #b28416 + #d0970c + #daa116 = main selection color + #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle + #e3b64d + #e0c992 + #e3d8b9 + + + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #f5f5f5; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenu, +QMenu::item { + color: black; + background-color: #f5f5f5; /* main background color */ + text-decoration: none; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #daa116; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(0,0,0,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: white; + background-color: #828282; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,10); + border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(0,0,0,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #d0970c, stop:1 #daa116); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,80); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_darker.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_darker.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_darker.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_darker.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #d2d2d2; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #d2d2d2; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #d2d2d2; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #d2d2d2; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + background-color: transparent; /* temporal (transparent background) */ + border-color: #d2d2d2; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-bottom-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-top-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-right-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-left-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,160); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,220); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #f5f5f5) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 6px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #dcdcdc; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: #624b14; + background-color: #e3d8b9; + border: 3px solid #e3b64d; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(0,0,0,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #f5f5f5; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #f0f0f0; + alternate-background-color: #e6e6e6; /* related with QListView background */ + border: 1px solid #c3c3c3; + selection-color: white; + selection-background-color: #daa116; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:hover, +QTreeView::item:hover { + background-color: transparent; /* fix to homogenize it on all OSs */ +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #daa116; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #d2d2d2; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #e3d8b9; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + background-color: #c3c3c3; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #c3c3c3; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(0,0,0,30); +} + +QTableCornerButton::section { + background-color: #c3c3c3; + border-top: none; + border-left: none; + border-right: 1px solid rgba(0,0,0,30); + border-bottom: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_dark.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #828282; /* same as main background color */ + qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Text/Python editor (macros, etc...) +==================================================================================================*/ +QPlainTextEdit, +QPlainTextEdit:focus { + background-color: #c8c8c8; + selection-color: white; + selection-background-color: #d0970c; + border: 1px solid #505050; + border-radius: 3px; + margin: 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #b6b6b6; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: white; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #e6e6e6; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #e6e6e6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #e6e6e6; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #6e6e6e; + background-color: #e0e0e0; + selection-color: white; + selection-background-color: #daa116; + border: 1px solid #e0e0e0; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #e3b64d; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); /* same as up/down or drop-down button color */ + background-color: #e3d8b9; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #c3c3c3; + background-color: #e0e0e0; /* same as enabled color */ + border-color: #e0e0e0; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #e2ac2a, stop:1 #e3b64d); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e2ac2a); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_dark.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_dark.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #daa116; +} + +QComboBox QAbstractItemView { + color: #6e6e6e; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #daa116; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #b6b6b6; + border: 1px solid #828282; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #f5f5f5; /* main background color */ + border: 1px solid #dcdcdc; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: #505050; + background-color: rgba(0, 0, 0, 20); + border: 1px solid #505050; +} + +QRadioButton::indicator:checked { + background-color: #daa116; /* QCheckBox has the same color */ + border: 1px solid #d0970c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #e0c992; +} + +QRadioButton::indicator:disabled { + border: 1px solid #6e6e6e; +} + +QRadioButton::indicator:disabled { + color: #6e6e6e; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: #c8c8c8; + background-color: rgba(0,0,0,20); + border: 1px solid #505050; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #e0c992; +} + +QCheckBox::indicator:checked { + background-color: #daa116; /* QRadioButton has the same color */ + border: 1px solid #d0970c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(0,0,0,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(0,0,0,20); + border: 1px solid rgba(0,0,0,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #daa116; + border: 1px solid #d0970c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #b6b6b6; + border: 1px solid #b6b6b6; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #daa116; + background-color: #daa116; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #b28416; +} + +QToolBar > QPushButton:!checked:hover { + color: black; + border-color: #b6b6b6; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #e3b64d; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #d2d2d2; + selection-color: #624b14; + selection-background-color: #e3d8b9; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #e6e6e6; +} + +QTableView::item:selected { + color: #624b14; + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #624b14; + selection-color: white; + selection-background-color: #daa116; + border-color: #e3d8b9; + background-color: #e3d8b9; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/src/Gui/Stylesheets/images/Hmovetoolbar_dark.png b/src/Gui/Stylesheets/images/Hmovetoolbar_dark.png new file mode 100644 index 000000000000..a408e856fbc3 Binary files /dev/null and b/src/Gui/Stylesheets/images/Hmovetoolbar_dark.png differ diff --git a/src/Gui/Stylesheets/images/Hmovetoolbar_light.png b/src/Gui/Stylesheets/images/Hmovetoolbar_light.png new file mode 100644 index 000000000000..663b643a73b0 Binary files /dev/null and b/src/Gui/Stylesheets/images/Hmovetoolbar_light.png differ diff --git a/src/Gui/Stylesheets/images/Hsepartoolbar_dark.png b/src/Gui/Stylesheets/images/Hsepartoolbar_dark.png new file mode 100644 index 000000000000..002fad040e4b Binary files /dev/null and b/src/Gui/Stylesheets/images/Hsepartoolbar_dark.png differ diff --git a/src/Gui/Stylesheets/images/Hsepartoolbar_light.png b/src/Gui/Stylesheets/images/Hsepartoolbar_light.png new file mode 100644 index 000000000000..841f4678419f Binary files /dev/null and b/src/Gui/Stylesheets/images/Hsepartoolbar_light.png differ diff --git a/src/Gui/Stylesheets/images/Vmovetoolbar_dark.png b/src/Gui/Stylesheets/images/Vmovetoolbar_dark.png new file mode 100644 index 000000000000..a73ced8bfe15 Binary files /dev/null and b/src/Gui/Stylesheets/images/Vmovetoolbar_dark.png differ diff --git a/src/Gui/Stylesheets/images/Vmovetoolbar_light.png b/src/Gui/Stylesheets/images/Vmovetoolbar_light.png new file mode 100644 index 000000000000..7b5130ab53c0 Binary files /dev/null and b/src/Gui/Stylesheets/images/Vmovetoolbar_light.png differ diff --git a/src/Gui/Stylesheets/images/Vsepartoolbar_dark.png b/src/Gui/Stylesheets/images/Vsepartoolbar_dark.png new file mode 100644 index 000000000000..18806c5baedf Binary files /dev/null and b/src/Gui/Stylesheets/images/Vsepartoolbar_dark.png differ diff --git a/src/Gui/Stylesheets/images/Vsepartoolbar_light.png b/src/Gui/Stylesheets/images/Vsepartoolbar_light.png new file mode 100644 index 000000000000..4b62f795be18 Binary files /dev/null and b/src/Gui/Stylesheets/images/Vsepartoolbar_light.png differ diff --git a/src/Gui/Stylesheets/images/background_freecad.png b/src/Gui/Stylesheets/images/background_freecad.png new file mode 100644 index 000000000000..ee72af5764dd Binary files /dev/null and b/src/Gui/Stylesheets/images/background_freecad.png differ diff --git a/src/Gui/Stylesheets/images/branch_closed_dark.png b/src/Gui/Stylesheets/images/branch_closed_dark.png new file mode 100644 index 000000000000..c39992345cea Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_closed_dark.png differ diff --git a/src/Gui/Stylesheets/images/branch_closed_darker.png b/src/Gui/Stylesheets/images/branch_closed_darker.png new file mode 100644 index 000000000000..ff8af8bad161 Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_closed_darker.png differ diff --git a/src/Gui/Stylesheets/images/branch_end.png b/src/Gui/Stylesheets/images/branch_end.png new file mode 100644 index 000000000000..963a7cb31ba2 Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_end.png differ diff --git a/src/Gui/Stylesheets/images/branch_more.png b/src/Gui/Stylesheets/images/branch_more.png new file mode 100644 index 000000000000..7c534f17bf41 Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_more.png differ diff --git a/src/Gui/Stylesheets/images/branch_open_dark.png b/src/Gui/Stylesheets/images/branch_open_dark.png new file mode 100644 index 000000000000..4d04a2238905 Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_open_dark.png differ diff --git a/src/Gui/Stylesheets/images/branch_open_darker.png b/src/Gui/Stylesheets/images/branch_open_darker.png new file mode 100644 index 000000000000..cdbc89e6c53d Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_open_darker.png differ diff --git a/src/Gui/Stylesheets/images/branch_vline.png b/src/Gui/Stylesheets/images/branch_vline.png new file mode 100644 index 000000000000..b4c98266a071 Binary files /dev/null and b/src/Gui/Stylesheets/images/branch_vline.png differ diff --git a/src/Gui/Stylesheets/images/checkbox_indeterminate_light.png b/src/Gui/Stylesheets/images/checkbox_indeterminate_light.png new file mode 100644 index 000000000000..9d79911314e3 Binary files /dev/null and b/src/Gui/Stylesheets/images/checkbox_indeterminate_light.png differ diff --git a/src/Gui/Stylesheets/images/checkbox_light.png b/src/Gui/Stylesheets/images/checkbox_light.png new file mode 100644 index 000000000000..0e8882c7039c Binary files /dev/null and b/src/Gui/Stylesheets/images/checkbox_light.png differ diff --git a/src/Gui/Stylesheets/images/close_dark.png b/src/Gui/Stylesheets/images/close_dark.png new file mode 100644 index 000000000000..8771a0bd18b5 Binary files /dev/null and b/src/Gui/Stylesheets/images/close_dark.png differ diff --git a/src/Gui/Stylesheets/images/close_light.png b/src/Gui/Stylesheets/images/close_light.png new file mode 100644 index 000000000000..3e6b9d837722 Binary files /dev/null and b/src/Gui/Stylesheets/images/close_light.png differ diff --git a/src/Gui/Stylesheets/images/down_arrow_dark.png b/src/Gui/Stylesheets/images/down_arrow_dark.png new file mode 100644 index 000000000000..296a86fe07ae Binary files /dev/null and b/src/Gui/Stylesheets/images/down_arrow_dark.png differ diff --git a/src/Gui/Stylesheets/images/down_arrow_darker.png b/src/Gui/Stylesheets/images/down_arrow_darker.png new file mode 100644 index 000000000000..5ac0b888299d Binary files /dev/null and b/src/Gui/Stylesheets/images/down_arrow_darker.png differ diff --git a/src/Gui/Stylesheets/images/down_arrow_disabled_dark.png b/src/Gui/Stylesheets/images/down_arrow_disabled_dark.png new file mode 100644 index 000000000000..9be5446a9644 Binary files /dev/null and b/src/Gui/Stylesheets/images/down_arrow_disabled_dark.png differ diff --git a/src/Gui/Stylesheets/images/down_arrow_disabled_light.png b/src/Gui/Stylesheets/images/down_arrow_disabled_light.png new file mode 100644 index 000000000000..b5e881a15e52 Binary files /dev/null and b/src/Gui/Stylesheets/images/down_arrow_disabled_light.png differ diff --git a/src/Gui/Stylesheets/images/down_arrow_light.png b/src/Gui/Stylesheets/images/down_arrow_light.png new file mode 100644 index 000000000000..29c473dea1c4 Binary files /dev/null and b/src/Gui/Stylesheets/images/down_arrow_light.png differ diff --git a/src/Gui/Stylesheets/images/down_arrow_lighter.png b/src/Gui/Stylesheets/images/down_arrow_lighter.png new file mode 100644 index 000000000000..73ee03ebda9c Binary files /dev/null and b/src/Gui/Stylesheets/images/down_arrow_lighter.png differ diff --git a/src/Gui/Stylesheets/images/left_arrow_dark.png b/src/Gui/Stylesheets/images/left_arrow_dark.png new file mode 100644 index 000000000000..0084e1fe4b44 Binary files /dev/null and b/src/Gui/Stylesheets/images/left_arrow_dark.png differ diff --git a/src/Gui/Stylesheets/images/left_arrow_darker.png b/src/Gui/Stylesheets/images/left_arrow_darker.png new file mode 100644 index 000000000000..18ecee7a4971 Binary files /dev/null and b/src/Gui/Stylesheets/images/left_arrow_darker.png differ diff --git a/src/Gui/Stylesheets/images/left_arrow_disabled_dark.png b/src/Gui/Stylesheets/images/left_arrow_disabled_dark.png new file mode 100644 index 000000000000..db9da5d59636 Binary files /dev/null and b/src/Gui/Stylesheets/images/left_arrow_disabled_dark.png differ diff --git a/src/Gui/Stylesheets/images/left_arrow_disabled_light.png b/src/Gui/Stylesheets/images/left_arrow_disabled_light.png new file mode 100644 index 000000000000..a1b787f72b86 Binary files /dev/null and b/src/Gui/Stylesheets/images/left_arrow_disabled_light.png differ diff --git a/src/Gui/Stylesheets/images/left_arrow_light.png b/src/Gui/Stylesheets/images/left_arrow_light.png new file mode 100644 index 000000000000..3bcdd8125ccd Binary files /dev/null and b/src/Gui/Stylesheets/images/left_arrow_light.png differ diff --git a/src/Gui/Stylesheets/images/left_arrow_lighter.png b/src/Gui/Stylesheets/images/left_arrow_lighter.png new file mode 100644 index 000000000000..01fbda8a096e Binary files /dev/null and b/src/Gui/Stylesheets/images/left_arrow_lighter.png differ diff --git a/src/Gui/Stylesheets/images/more_dark.png b/src/Gui/Stylesheets/images/more_dark.png new file mode 100644 index 000000000000..9bc90023446a Binary files /dev/null and b/src/Gui/Stylesheets/images/more_dark.png differ diff --git a/src/Gui/Stylesheets/images/more_light.png b/src/Gui/Stylesheets/images/more_light.png new file mode 100644 index 000000000000..6a958cb93fc7 Binary files /dev/null and b/src/Gui/Stylesheets/images/more_light.png differ diff --git a/src/Gui/Stylesheets/images/radiobutton_light.png b/src/Gui/Stylesheets/images/radiobutton_light.png new file mode 100644 index 000000000000..e9a7e243088e Binary files /dev/null and b/src/Gui/Stylesheets/images/radiobutton_light.png differ diff --git a/src/Gui/Stylesheets/images/right_arrow_dark.png b/src/Gui/Stylesheets/images/right_arrow_dark.png new file mode 100644 index 000000000000..89cf86589f42 Binary files /dev/null and b/src/Gui/Stylesheets/images/right_arrow_dark.png differ diff --git a/src/Gui/Stylesheets/images/right_arrow_darker.png b/src/Gui/Stylesheets/images/right_arrow_darker.png new file mode 100644 index 000000000000..884627afe240 Binary files /dev/null and b/src/Gui/Stylesheets/images/right_arrow_darker.png differ diff --git a/src/Gui/Stylesheets/images/right_arrow_disabled_dark.png b/src/Gui/Stylesheets/images/right_arrow_disabled_dark.png new file mode 100644 index 000000000000..8972887eec3d Binary files /dev/null and b/src/Gui/Stylesheets/images/right_arrow_disabled_dark.png differ diff --git a/src/Gui/Stylesheets/images/right_arrow_disabled_light.png b/src/Gui/Stylesheets/images/right_arrow_disabled_light.png new file mode 100644 index 000000000000..711cf0fc26cc Binary files /dev/null and b/src/Gui/Stylesheets/images/right_arrow_disabled_light.png differ diff --git a/src/Gui/Stylesheets/images/right_arrow_light.png b/src/Gui/Stylesheets/images/right_arrow_light.png new file mode 100644 index 000000000000..ac25f58d299a Binary files /dev/null and b/src/Gui/Stylesheets/images/right_arrow_light.png differ diff --git a/src/Gui/Stylesheets/images/right_arrow_lighter.png b/src/Gui/Stylesheets/images/right_arrow_lighter.png new file mode 100644 index 000000000000..0e56941684c4 Binary files /dev/null and b/src/Gui/Stylesheets/images/right_arrow_lighter.png differ diff --git a/src/Gui/Stylesheets/images/separtoolbar_dark.png b/src/Gui/Stylesheets/images/separtoolbar_dark.png new file mode 100644 index 000000000000..cef219933124 Binary files /dev/null and b/src/Gui/Stylesheets/images/separtoolbar_dark.png differ diff --git a/src/Gui/Stylesheets/images/separtoolbar_light.png b/src/Gui/Stylesheets/images/separtoolbar_light.png new file mode 100644 index 000000000000..0a4d92344ac7 Binary files /dev/null and b/src/Gui/Stylesheets/images/separtoolbar_light.png differ diff --git a/src/Gui/Stylesheets/images/sizegrip_dark.png b/src/Gui/Stylesheets/images/sizegrip_dark.png new file mode 100644 index 000000000000..0c3de412119a Binary files /dev/null and b/src/Gui/Stylesheets/images/sizegrip_dark.png differ diff --git a/src/Gui/Stylesheets/images/sizegrip_light.png b/src/Gui/Stylesheets/images/sizegrip_light.png new file mode 100644 index 000000000000..14fd8136f057 Binary files /dev/null and b/src/Gui/Stylesheets/images/sizegrip_light.png differ diff --git a/src/Gui/Stylesheets/images/splitter_horizontal_dark.png b/src/Gui/Stylesheets/images/splitter_horizontal_dark.png new file mode 100644 index 000000000000..9d8e67396dfa Binary files /dev/null and b/src/Gui/Stylesheets/images/splitter_horizontal_dark.png differ diff --git a/src/Gui/Stylesheets/images/splitter_horizontal_light.png b/src/Gui/Stylesheets/images/splitter_horizontal_light.png new file mode 100644 index 000000000000..217271b94f28 Binary files /dev/null and b/src/Gui/Stylesheets/images/splitter_horizontal_light.png differ diff --git a/src/Gui/Stylesheets/images/splitter_vertical_dark.png b/src/Gui/Stylesheets/images/splitter_vertical_dark.png new file mode 100644 index 000000000000..b4c30d638686 Binary files /dev/null and b/src/Gui/Stylesheets/images/splitter_vertical_dark.png differ diff --git a/src/Gui/Stylesheets/images/splitter_vertical_light.png b/src/Gui/Stylesheets/images/splitter_vertical_light.png new file mode 100644 index 000000000000..1473e2b32c2c Binary files /dev/null and b/src/Gui/Stylesheets/images/splitter_vertical_light.png differ diff --git a/src/Gui/Stylesheets/images/transparent.png b/src/Gui/Stylesheets/images/transparent.png new file mode 100644 index 000000000000..483df25137d1 Binary files /dev/null and b/src/Gui/Stylesheets/images/transparent.png differ diff --git a/src/Gui/Stylesheets/images/undock_dark.png b/src/Gui/Stylesheets/images/undock_dark.png new file mode 100644 index 000000000000..01b678559e81 Binary files /dev/null and b/src/Gui/Stylesheets/images/undock_dark.png differ diff --git a/src/Gui/Stylesheets/images/undock_light.png b/src/Gui/Stylesheets/images/undock_light.png new file mode 100644 index 000000000000..36881f6425de Binary files /dev/null and b/src/Gui/Stylesheets/images/undock_light.png differ diff --git a/src/Gui/Stylesheets/images/up_arrow_dark.png b/src/Gui/Stylesheets/images/up_arrow_dark.png new file mode 100644 index 000000000000..bb65cebebf88 Binary files /dev/null and b/src/Gui/Stylesheets/images/up_arrow_dark.png differ diff --git a/src/Gui/Stylesheets/images/up_arrow_darker.png b/src/Gui/Stylesheets/images/up_arrow_darker.png new file mode 100644 index 000000000000..da2b6a28d5a2 Binary files /dev/null and b/src/Gui/Stylesheets/images/up_arrow_darker.png differ diff --git a/src/Gui/Stylesheets/images/up_arrow_disabled_dark.png b/src/Gui/Stylesheets/images/up_arrow_disabled_dark.png new file mode 100644 index 000000000000..d21f24c5a608 Binary files /dev/null and b/src/Gui/Stylesheets/images/up_arrow_disabled_dark.png differ diff --git a/src/Gui/Stylesheets/images/up_arrow_disabled_light.png b/src/Gui/Stylesheets/images/up_arrow_disabled_light.png new file mode 100644 index 000000000000..6a56e89ba8b2 Binary files /dev/null and b/src/Gui/Stylesheets/images/up_arrow_disabled_light.png differ diff --git a/src/Gui/Stylesheets/images/up_arrow_light.png b/src/Gui/Stylesheets/images/up_arrow_light.png new file mode 100644 index 000000000000..675aa98fda81 Binary files /dev/null and b/src/Gui/Stylesheets/images/up_arrow_light.png differ diff --git a/src/Gui/Stylesheets/images/up_arrow_lighter.png b/src/Gui/Stylesheets/images/up_arrow_lighter.png new file mode 100644 index 000000000000..cfe3fd389adc Binary files /dev/null and b/src/Gui/Stylesheets/images/up_arrow_lighter.png differ