diff --git a/modules/freecad/cfg.nix b/modules/freecad/cfg.nix
new file mode 100644
index 000000000..37001dcfa
--- /dev/null
+++ b/modules/freecad/cfg.nix
@@ -0,0 +1,130 @@
+config: lib: let
+ colors = config.lib.stylix.colors;
+ dec = let
+ vals = {
+ "0" = 0;
+ "1" = 1;
+ "2" = 2;
+ "3" = 3;
+ "4" = 4;
+ "5" = 5;
+ "6" = 6;
+ "7" = 7;
+ "8" = 8;
+ "9" = 9;
+ "a" = 10; "A" = 10;
+ "b" = 11; "B" = 11;
+ "c" = 12; "C" = 12;
+ "d" = 13; "D" = 13;
+ "e" = 14; "E" = 14;
+ "f" = 15; "F" = 15;
+ };
+ hex2dec = hex: builtins.foldl' (acc: char: ((acc * 16) + vals.${char})) 0 (lib.stringToCharacters hex);
+ in builtins.mapAttrs (name: value: toString (hex2dec "${value}FF")) {
+ inherit (colors)
+ base00 base01 base02 base03 base04 base05 base06 base07
+ base08 base09 base0A base0B base0C base0D base0E base0F;
+ };
+ hex = colors.withHashtag;
+in ''
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stylix.qss
+
+
+
+
+
+
+
+
+
+
+
+
+ ${hex.base00}
+ ${hex.base05}
+ ${hex.base05}
+ ${hex.base05}
+
+
+
+
+
+
+''
diff --git a/modules/freecad/hm.nix b/modules/freecad/hm.nix
new file mode 100644
index 000000000..c4795065b
--- /dev/null
+++ b/modules/freecad/hm.nix
@@ -0,0 +1,14 @@
+{ config, lib, ... }:
+
+{
+ options.stylix.targets.freecad.enable = config.lib.stylix.mkEnableTarget "freecad" true; #(builtins.elem (pkgs.freecad) config.home.packages);
+
+ config = lib.mkIf config.stylix.targets.freecad.enable {
+ xdg.dataFile = {
+ "FreeCAD/Mod/Stylix/Stylix/Stylix.cfg".text = import ./cfg.nix config lib;
+ "FreeCAD/Mod/Stylix/Stylix/Stylix.qss".text = import ./stylesheet.nix config;
+ "FreeCAD/Mod/Stylix/package.xml".text = import ./package.nix config;
+ };
+ };
+
+}
diff --git a/modules/freecad/package.nix b/modules/freecad/package.nix
new file mode 100644
index 000000000..5d5f9f563
--- /dev/null
+++ b/modules/freecad/package.nix
@@ -0,0 +1,24 @@
+config: let
+ polarity = config.stylix.polarity;
+in ''
+
+
+ Stylix
+ Autogenerated Stylix ${polarity} theme for FreeCAD
+ 0.0.1
+ MIT
+ https://github.com/danth/stylix
+
+
+
+ Stylix
+ Autogenerated Stylix ${polarity} theme for FreeCAD
+ stylix
+ ${polarity}
+ stylesheet
+ theme
+
+
+
+
+''
diff --git a/modules/freecad/stylesheet.nix b/modules/freecad/stylesheet.nix
new file mode 100644
index 000000000..ce0ff592f
--- /dev/null
+++ b/modules/freecad/stylesheet.nix
@@ -0,0 +1,1661 @@
+config: let
+ colors = config.lib.stylix.colors;
+ polarity = config.stylix.polarity;
+ invPolarity = if polarity == "light" then "dark" else "light";
+ highlight = alpha: "rgba(255,255,255,${toString alpha})";
+ darken = alpha: "rgba(0,0,0,${toString alpha})";
+ fonts = config.stylix.fonts;
+in with colors.withHashtag; ''
+/*
+ABOUT
+============================================================================================================
+Autogenerated stylesheet by Stylix.
+
+Modified from various stylesheets provided by github:FreeCAD/FreeCAD
+
+LICENSE
+============================================================================================================
+Copyright (c) 2019 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/.
+*/
+
+
+/*==================================================================================================
+Reset elements
+==================================================================================================*/
+* {
+ padding: 0px;
+ margin: 0px;
+ border: 0px;
+ border-style: none;
+ border-image: none;
+ outline: 0;
+ font-size: ${toString fonts.sizes.applications}pt;
+ color: ${base05};
+ background-color: ${base00};
+}
+
+QToolBar * {
+ margin: 0px;
+ padding: 0px;
+}
+
+
+/*==================================================================================================
+Main window
+==================================================================================================*/
+QMainWindow,
+QDialog,
+QDockWidget,
+QToolBar {
+ background-color: ${base00};
+}
+
+QMdiArea {
+ background-image: url(qss:images_dark-light/background_freecad_${invPolarity}.svg);
+ background-position: center center;
+ background-repeat: no-repeat;
+}
+
+/*==================================================================================================
+Style Links
+==================================================================================================*/
+QLabel[haslink="true"] {
+ color: ${base0D};
+}
+
+Gui--UrlLabel {
+ color: ${base0D};
+}
+
+/*==================================================================================================
+Sub windows
+==================================================================================================*/
+QMdiSubWindow {
+ border:1px solid ${base01};
+ margin-top: 30px;
+ margin-left: 4px;
+ margin-right: 4px;
+ margin-bottom:4px;
+}
+
+
+/*==================================================================================================
+MENUS
+==================================================================================================*/
+QMenuBar,
+QMenuBar::item {
+ color: ${base05};
+ background-color: ${base00};
+}
+
+QMenu,
+QMenu::item {
+ color: ${base05};
+ background-color: ${base00};
+ text-decoration: none;
+}
+
+QMenuBar::item:disabled,
+QMenu::item:disabled {
+ color: ${base03};
+}
+
+QMenuBar::item:selected,
+QMenuBar::item:pressed,
+QMenu::item:selected,
+QMenu::item:pressed {
+ color: ${base00};
+ background-color: ${base05};
+}
+
+QMenu::right-arrow {
+ width: 10px;
+ height: 10px;
+ image:url(qss:images_dark-light/right_arrow_${invPolarity}.svg);
+ margin-right: 2px;
+}
+
+QMenu::right-arrow:selected {
+ image:url(qss:images_dark-light/right_arrow_${invPolarity}er.svg);
+}
+
+QMenu::item {
+ padding: 2px 4px;
+ border: 1px solid transparent;
+}
+
+QMenu::icon {
+ margin-left: 1px;
+ margin-right: 1px;
+}
+
+QMenu::icon:checked {
+ background: ${base00};
+ border: 2px ${base01};
+ position: absolute;
+ border-radius: 2px;
+}
+
+QMenu::separator {
+ height: 1px;
+ background-color: ${darken 30};
+ margin: 6px 4px;
+}
+
+QMenu::indicator:non-exclusive:checked {
+ color: ${base05};
+}
+
+QMenu QRadioButton,
+QMenu QCheckBox,
+QMenu QPushButton,
+QMenu QToolButton {
+ color: ${base05};
+}
+
+QMenu QRadioButton:hover,
+QMenu QCheckBox:hover,
+QMenu QPushButton:hover,
+QMenu QToolButton:hover,
+QMenu QPushButton:pressed,
+QMenu QToolButton:pressed,
+QMenu QPushButton:selected,
+QMenu QToolButton:selected {
+ color: ${base05};
+ background-color: ${base00};
+}
+
+QMenu QRadioButton:disabled,
+QMenu QCheckBox:disabled {
+ color: ${base03};
+}
+
+QMenu QRadioButton::indicator:disabled,
+QMenu QCheckBox::indicator:disabled {
+ color: ${base05};
+ background-color: transparent;
+ border: 1px solid ${base01};
+}
+
+/*==================================================================================================
+Tool bar
+==================================================================================================*/
+QToolBar {
+ border: none;
+ padding: 2px;
+}
+
+QToolBar::handle:top,
+QToolBar::handle:bottom,
+QToolBar::handle:horizontal {
+ background-image: url(qss:images_dark-light/Hmovetoolbar_${invPolarity}.svg);
+ width: 10px;
+ margin: 4px 2px;
+ background-position: top right;
+ background-repeat: repeat-y;
+}
+
+QToolBar::handle:left,
+QToolBar::handle:right,
+QToolBar::handle:vertical {
+ background-image: url(qss:images_dark-light/Vmovetoolbar_${invPolarity}.svg);
+ height: 10px;
+ margin: 2px 4px;
+ background-position: left bottom;
+ background-repeat: repeat-x;
+}
+
+QToolBar::separator:top,
+QToolBar::separator:bottom,
+QToolBar::separator:horizontal {
+ width: 1px;
+ margin: 6px 4px;
+ background-color: ${darken 30};
+}
+
+QToolBar::separator:left,
+QToolBar::separator:right,
+QToolBar::separator:vertical {
+ height: 1px;
+ margin: 4px 6px;
+ background-color: ${darken 30};
+}
+
+/*==================================================================================================
+Group box
+==================================================================================================*/
+QGroupBox {
+ color: ${base05};
+ border:1px solid ${highlight 20};
+ border-radius: 3px;
+ margin-top: 10px;
+ padding: 6px;
+ background-color: ${highlight 15};
+}
+
+QGroupBox::title {
+ top: -8px;
+ left: 12px;
+}
+
+QGroupBox::indicator {
+ width: 13px;
+ height: 13px;
+}
+
+QGroupBox::indicator:unchecked {
+ image: url(:/images/checkbox_unchecked.png);
+}
+
+/*==================================================================================================
+Tooltip
+==================================================================================================*/
+QToolTip {
+ color: #${colors.base05};
+ background-color: #${colors.base01};
+ padding: 4px;
+ border-radius: 3px;
+}
+
+/*==================================================================================================
+Dock widget
+==================================================================================================*/
+QDockWidget {
+ color: ${base05};
+ titlebar-close-icon: url(qss:images_dark-light/close_${invPolarity}.svg);
+ titlebar-normal-icon: url(qss:images_dark-light/undock_${invPolarity}.svg);
+}
+
+QDockWidget::title {
+ text-align: center;
+ background-color: ${base00};
+ border: 4px solid ${base01};
+ border-radius: 6px;
+ padding: 4px 0px;
+}
+
+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: ${highlight 15};
+}
+
+QDockWidget::close-button:pressed,
+QDockWidget::float-button:pressed {
+ background-color: ${highlight 30};
+}
+
+QDockWidget > QFrame {
+ background-color: #${colors.base00};
+ border: 1px solid #${colors.base01};
+}
+
+/*==================================================================================================
+Progress bar
+==================================================================================================*/
+QProgressBar,
+QProgressBar:horizontal {
+ color: #${colors.base05};
+ background-color: ${darken 10};
+ text-align: center;
+ border: 1px solid ${darken 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 ${base00}, stop:1 ${base00});
+ 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: ${darken 80};
+}
+
+QScrollBar::handle:vertical:hover,
+QScrollBar::handle:horizontal:hover {
+ background-color: ${darken 100};
+}
+
+QScrollBar::handle:horizontal {
+ min-width: 5px;
+ border-radius: 3px;
+ margin: 4px 15px;
+}
+
+QScrollBar::sub-line:horizontal {
+ margin: 1px 3px 0px 3px;
+ border-image: url(qss:images_dark-light/left_arrow_${invPolarity}.svg);
+ width: 6px;
+ height: 10px;
+ subcontrol-position: left;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal {
+ margin: 1px 3px 0px 3px;
+ border-image: url(qss:images_dark-light/right_arrow_${invPolarity}.svg);
+ 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_dark-light/left_arrow_${invPolarity}er.svg);
+}
+
+QScrollBar::add-line:horizontal:hover,
+QScrollBar::add-line:horizontal:on {
+ border-image: url(qss:images_dark-light/right_arrow_${invPolarity}er.svg);
+}
+
+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;
+ border-image: url(qss:images_dark-light/up_arrow_${invPolarity}.svg);
+ height: 6px;
+ width: 10px;
+ subcontrol-position: top;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical {
+ margin: 3px 0px 3px 1px;
+ border-image: url(qss:images_dark-light/down_arrow_${invPolarity}.svg);
+ 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_dark-light/up_arrow_${invPolarity}er.svg);
+}
+
+QScrollBar::add-line:vertical:hover,
+QScrollBar::add-line:vertical:on {
+ border-image: url(qss:images_dark-light/down_arrow_${invPolarity}er.svg);
+}
+
+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;
+ position: absolute;
+}
+
+QTabWidget::pane:top {
+ top: -1px;
+ border-top: 1px solid ${base01};
+}
+
+QTabWidget::pane:bottom {
+ bottom: -1px;
+ border-bottom: 1px solid ${base01};
+}
+
+QTabWidget::pane:left {
+ right: -1px;
+ border-right: 1px solid ${base01};
+}
+
+QTabWidget::pane:right {
+ left: -1px;
+ border-left: 1px solid ${base01};
+}
+
+QTabWidget::tab-bar:top,
+QTabWidget::tab-bar:bottom {
+ left: 10px;
+}
+
+QTabWidget::tab-bar:left,
+QTabWidget::tab-bar:right {
+ top: 10px;
+}
+
+QTabBar {
+ qproperty-drawBase: 0;
+ background-color: transparent;
+}
+
+QTabBar {
+}
+QDockWidget QTabBar {
+ border-color: transparent;
+}
+QDialog QTabBar {
+ border-color: transparent;
+}
+
+QTabBar::tab {
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 3px;
+}
+
+QTabBar::tab:top,
+QTabBar::tab:bottom {
+ border-top-width: 4px;
+ border-bottom-width: 4px;
+ min-width: 11ex;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+QTabBar::tab:left,
+QTabBar::tab:right {
+ border-left-width: 4px;
+ border-right-width: 4px;
+ min-height: 14ex;
+ margin-top: 2px;
+ margin-bottom: 2px;
+}
+
+QTabBar::tab:selected {
+ color: ${base05};
+ background-color: ${base01};
+ border-color: ${base00};
+}
+
+QTabBar::tab:top:selected {
+ border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 ${base01}, stop:1 ${base01});
+ border-bottom-color: ${base01};
+}
+
+QTabBar::tab:bottom:selected {
+ border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 ${base01}, stop:1 ${base01});
+ border-top-color: ${base01};
+}
+
+QTabBar::tab:right:selected {
+ border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 ${base01}, stop:1 ${base01});
+ border-left-color: ${base01};
+}
+
+QTabBar::tab:!selected {
+ color: ${base06};
+ background-color: ${base00};
+}
+
+QTabBar::tab:!selected:hover {
+ color: ${base06};
+ background-color: ${base03};
+}
+
+QTabBar::tab:first:selected {
+ margin-left: 0;
+}
+
+QTabBar::tab:last:selected {
+ margin-right: 0;
+}
+
+QTabBar::tab:only-one {
+ margin: 0;
+}
+
+QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame {
+ background-color: transparent;
+}
+
+QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane {
+ background-color: transparent;
+}
+
+QDialog#Gui__Dialog__DlgPreferences > QListView {
+ min-width: 130px;
+}
+
+QDialog#Gui__Dialog__DlgPreferences > QListView::item {
+ border-radius: 4px;
+}
+
+QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover {
+ background-color: ${base00};
+}
+
+QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected {
+ color: ${base05};
+ background-color: ${base00};
+}
+
+/*==================================================================================================
+Tab bar buttons
+==================================================================================================*/
+QTabBar::close-button {
+ subcontrol-origin: margin;
+ subcontrol-position: center right;
+ border-radius: 2px;
+ background-image: url(qss:images_dark-light/close_${invPolarity}.svg);
+ background-position: center center;
+ background-repeat: none;
+}
+
+QTabBar::close-button:hover {
+ background-color: ${highlight 20};
+}
+
+QTabBar::close-button:pressed {
+ background-color: ${highlight 30};
+}
+
+QDockWidget QTreeView,
+QDockWidget QListView,
+QDockWidget QTableView {
+ margin: 6px;
+ border: 1px solid #${colors.base01};
+ min-height: 40px;
+}
+
+QTabBar::scroller {
+ width: 20px;
+}
+
+QTabBar QToolButton,
+QTabBar QToolButton:hover {
+ background-color: ${base05};
+}
+
+QTabBar QToolButton::right-arrow:enabled {
+ image: url(qss:images_dark-light/right_arrow_${invPolarity}.svg);
+}
+
+QTabBar QToolButton::right-arrow:disabled,
+QTabBar QToolButton::right-arrow:off {
+ image: url(qss:images_dark-light/right_arrow_disabled_${polarity}.svg);
+}
+
+QTabBar QToolButton::right-arrow:hover {
+ image: url(qss:images_dark-light/right_arrow_${invPolarity}er.svg);
+}
+
+ QTabBar QToolButton::left-arrow:enabled {
+ image: url(qss:images_dark-light/left_arrow_${invPolarity}.svg);
+}
+
+ QTabBar QToolButton::left-arrow:disabled,
+ QTabBar QToolButton::left-arrow:off {
+ image: url(qss:images_dark-light/left_arrow_disabled_${polarity}.svg);
+}
+
+ QTabBar QToolButton::left-arrow:hover {
+ image: url(qss:images_dark-light/left_arrow_${invPolarity}er.svg);
+}
+
+ QTabBar QToolButton::up-arrow:enabled {
+ image: url(qss:images_dark-light/up_arrow_${invPolarity}.svg);
+}
+
+ QTabBar QToolButton::up-arrow:disabled,
+ QTabBar QToolButton::up-arrow:off {
+ image: url(qss:images_dark-light/up_arrow_disabled_${polarity}.svg);
+}
+
+ QTabBar QToolButton::up-arrow:hover {
+ image: url(qss:images_dark-light/up_arrow_${invPolarity}er.svg);
+}
+
+ QTabBar QToolButton::down-arrow:enabled {
+ image: url(qss:images_dark-light/down_arrow_${invPolarity}.svg);
+}
+
+ QTabBar QToolButton::down-arrow:disabled,
+ QTabBar QToolButton::down-arrow:off {
+ image: url(qss:images_dark-light/down_arrow_disabled_${polarity}.svg);
+}
+
+ QTabBar QToolButton::down-arrow:hover {
+ image: url(qss:images_dark-light/down_arrow_${invPolarity}er.svg);
+}
+
+QTabBar::tear {
+}
+
+/*==================================================================================================
+Tree and list views
+==================================================================================================*/
+QTreeView,
+QListView,
+QTableView {
+ background-color: ${base00};
+ alternate-background-color: ${base01};
+ border: 1px solid ${base01};
+ selection-color: ${base05};
+ selection-background-color: ${base03};
+ show-decoration-selected: 1;
+ border-radius: 3px;
+}
+
+QListView::item:hover,
+QTreeView::item:hover {
+ background-color: transparent;
+}
+
+QListView::item:selected,
+QTreeView::item:selected {
+ color: ${base00};
+ background-color: ${base05};
+ show-decoration-selected: 1;
+}
+
+Gui--PropertyEditor--PropertyEditor {
+ gridline-color: ${base05};
+}
+
+Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus {
+ background-color: ${base01};
+}
+
+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;
+}
+
+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;
+}
+
+Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel {
+ color: ${base05};
+ background-color: ${base00};
+}
+
+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;
+}
+
+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 > Gui--ColorButton {
+ min-height: 0px;
+}
+
+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;
+}
+
+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: ${base01};
+ border-bottom-color: ${base01};
+}
+
+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;
+}
+
+Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget {
+ min-height: 14px;
+ border-radius: 0px;
+}
+
+
+/*==================================================================================================
+Header of tree and list views
+==================================================================================================*/
+QHeaderView {
+ color: ${base05};
+ background-color: ${base00};
+ border-top-left-radius: 2px;
+ border-top-right-radius: 2px;
+ border-bottom-left-radius: 0px;
+ border-bottom-right-radius: 0px;
+}
+
+QHeaderView::section {
+ border:none;
+ padding: 4px 6px;
+ background-color: ${base01};
+}
+
+QHeaderView::section:horizontal {
+ padding: 4px 6px;
+ border-right: 1px solid ${highlight 30};
+}
+
+QHeaderView::section:vertical {
+ border-bottom: 1px solid ${highlight 30};
+}
+
+QTableCornerButton::section {
+ background-color: ${base01};
+ border-top: none;
+ border-left: none;
+ border-right: 1px solid ${highlight 30};
+ border-bottom: 1px solid ${highlight 30};
+}
+
+QHeaderView::section:last {
+ border-right: none;
+}
+
+QHeaderView::up-arrow {
+ image: url(qss:images_dark-light/up_arrow_${invPolarity}.svg);
+}
+
+QHeaderView::up-arrow:hover {
+ image: url(qss:images_dark-light/up_arrow_${invPolarity}er.svg);
+}
+
+QHeaderView::down-arrow {
+ image: url(qss:images_dark-light/down_arrow_${invPolarity}.svg);
+}
+
+QHeaderView::down-arrow:hover {
+ image: url(qss:images_dark-light/down_arrow_${invPolarity}er.svg);
+}
+
+Gui--PropertyEditor--PropertyEditor {
+ qproperty-groupTextColor: ${base05};
+ qproperty-groupBackground: ${base01};
+}
+
+/*==================================================================================================
+Branch system for QTreeViews
+==================================================================================================*/
+QTreeView::branch {
+ background: transparent;
+}
+
+QTreeView::branch:has-siblings:!adjoins-item {
+ border-image: url(qss:images_dark-light/branch_vline_${invPolarity}.svg) 0;
+}
+
+QTreeView::branch:has-siblings:adjoins-item {
+ border-image: url(qss:images_dark-light/branch_more_${invPolarity}.svg) 0;
+}
+
+QTreeView::branch:!has-children:!has-siblings:adjoins-item {
+ border-image: url(qss:images_dark-light/branch_end_${invPolarity}.svg) 0;
+}
+
+QTreeView::branch:closed:has-children:has-siblings {
+ border-image: url(qss:images_dark-light/branch_more_closed_${invPolarity}.svg) 0;
+}
+
+QTreeView::branch:has-children:!has-siblings:closed {
+ border-image: url(qss:images_dark-light/branch_end_closed_${invPolarity}.svg) 0;
+}
+
+QTreeView::branch:open:has-children:has-siblings {
+ border-image: url(qss:images_dark-light/branch_more_open_${invPolarity}.svg) 0;
+}
+
+QTreeView::branch:open:has-children:!has-siblings {
+ border-image: url(qss:images_dark-light/branch_end_open_${invPolarity}.svg) 0;
+}
+
+
+/*==================================================================================================
+Splitter and windows separator
+==================================================================================================*/
+QSplitter::handle {
+ margin: 0px 11px;
+ padding: 0px;
+}
+
+QSplitter::handle:horizontal {
+ background-image: url(qss:images_dark-light/splitter_vertical_${invPolarity}.svg);
+ background-position: center center;
+ background-repeat: none;
+ margin: 4px 2px 4px 2px;
+ width: 2px;
+}
+
+QSplitter::handle:vertical {
+ background-image: url(qss:images_dark-light/splitter_horizontal_${invPolarity}.svg);
+ background-position: center center;
+ background-repeat: none;
+ margin: 2px 4px 2px 4px;
+ height: 2px;
+}
+
+/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */
+QMainWindow::separator {
+ background-position: center center;
+ background-repeat: none;
+}
+
+QMainWindow::separator:horizontal {
+ height: 2px;
+ background-image: url(qss:images_dark-light/splitter_horizontal_${invPolarity}.svg);
+ margin: 4px 2px 4px 2px;
+}
+
+QMainWindow::separator:vertical {
+ width: 2px;
+ background-image: url(qss:images_dark-light/splitter_vertical_${invPolarity}.svg);
+ margin: 2px 4px 2px 4px;
+}
+
+
+/*==================================================================================================
+Text/Python editor (macros, etc...)
+==================================================================================================*/
+QPlainTextEdit,
+QPlainTextEdit:focus {
+ color: ${base05};
+ background-color: ${base00};
+ selection-color: ${base01};
+ selection-background-color: ${base05};
+ border: 1px solid ${base01};
+ border-radius: 3px;
+ margin: 4px;
+}
+
+/*==================================================================================================
+Tasks panel (custom FreeCAD class)
+==================================================================================================*/
+QFrame[class="panel"] {
+ background-color: transparent;
+}
+
+QSint--ActionGroup {
+ padding: 0px;
+ margin: 0px;
+}
+
+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: ${darken 60};
+}
+
+QSint--ActionGroup QFrame[class="header"] {
+ border: none;
+ background-color: ${base00};
+ 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 ${base03}, stop:1 ${base03});
+}
+
+QSint--ActionGroup QToolButton[class="header"] {
+ color: ${base06};
+ 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_dark-light/down_arrow_${invPolarity}.svg);
+ 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_dark-light/down_arrow_${invPolarity}er.svg);
+}
+
+QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] {
+ background-color: transparent;
+ background-image: url(qss:images_dark-light/up_arrow_${invPolarity}.svg);
+ 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_dark-light/up_arrow_${invPolarity}er.svg);
+}
+
+QSint--ActionGroup QFrame[class="content"] {
+ background-color: ${base00};
+ 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: ${base00};
+}
+
+/* Fixs for tabs inside Task Panel */
+QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected {
+ border-bottom-color: ${base01};
+}
+
+QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected {
+ border-top-color: ${base01};
+}
+
+QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected {
+ border-right-color: ${base01};
+}
+
+QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected {
+ border-left-color: ${base01};
+}
+
+QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton {
+ padding: 2px;
+ margin: 0px;
+}
+
+QSint--ActionGroup QFrame[class="content"] QTreeView,
+QSint--ActionGroup QFrame[class="content"] QListView,
+QSint--ActionGroup QFrame[class="content"] QTableView {
+ color: ${base05};
+ background-color: ${base00};
+}
+
+QSint--ActionGroup QFrame[class="content"]:hover {
+ color: ${base05};
+ background-color: ${darken 30};
+}
+
+/*==================================================================================================
+Buttons
+==================================================================================================*/
+/* Common */
+QComboBox,
+QAbstractSpinBox,
+QSpinBox,
+QDoubleSpinBox,
+QLineEdit,
+QTextEdit,
+QTimeEdit,
+QDateEdit,
+QDateTimeEdit {
+ color: ${base05};
+ background-color: ${base02};
+ selection-color: ${base05};
+ selection-background-color: ${base00};
+ border: 1px solid ${base01};
+ border-radius: 3px;
+ min-width: 50px;
+ min-height: 20px;
+ padding: 1px 2px;
+}
+
+QTextEdit {
+ color: ${base05};
+}
+
+QComboBox,
+QAbstractSpinBox,
+QSpinBox,
+QDoubleSpinBox,
+QTimeEdit,
+QDateEdit,
+QDateTimeEdit {
+ padding-right: 20px;
+}
+
+QTextEdit:!editable,
+QTextEdit:!editable:focus {
+ background-color: ${base01};
+ border: 1px solid ${base00};
+}
+
+QComboBox:focus,
+QAbstractSpinBox:focus,
+QSpinBox:focus,
+QDoubleSpinBox:focus,
+QLineEdit:focus,
+QTextEdit:focus,
+QTimeEdit:focus,
+QDateEdit:focus,
+QDateTimeEdit:focus {
+ color: ${base05};
+ border-color: ${base06};
+ border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 ${base01}, stop:1 ${base01});
+ background-color: ${base02};
+}
+
+QComboBox:disabled,
+QAbstractSpinBox:disabled,
+QSpinBox:disabled,
+QDoubleSpinBox:disabled,
+QLineEdit:disabled,
+QTextEdit:disabled,
+QTimeEdit:disabled,
+QDateEdit:disabled,
+QDateTimeEdit:disabled {
+ color: ${base03};
+ background-color: ${base01};
+ border-color: ${base00};
+}
+
+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: ${base00};
+ subcontrol-origin: border;
+ width: 20px;
+}
+
+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;
+}
+
+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 ${base03}, stop:1 ${base03});
+}
+
+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 ${base03}, stop:1 ${base03});
+}
+
+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_dark-light/up_arrow_${invPolarity}.svg);
+ top: 2px;
+}
+
+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_dark-light/up_arrow_${invPolarity}er.svg);
+}
+
+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_dark-light/up_arrow_disabled_${polarity}.svg);
+}
+
+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_dark-light/up_arrow_disabled_${polarity}.svg);
+}
+
+QAbstractSpinBox::down-arrow,
+QSpinBox::down-arrow,
+QDoubleSpinBox::down-arrow,
+QTimeEdit::down-arrow,
+QDateEdit::down-arrow,
+QDateTimeEdit::down-arrow {
+ image: url(qss:images_dark-light/down_arrow_${invPolarity}.svg);
+ bottom: 0px;
+}
+
+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_dark-light/down_arrow_${invPolarity}er.svg);
+}
+
+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_dark-light/down_arrow_disabled_${polarity}.svg);
+}
+
+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_dark-light/down_arrow_disabled_${polarity}.svg);
+}
+
+QComboBox::drop-down {
+ background-color: ${base01};
+}
+
+QToolBar > QToolButton::menu-arrow:hover {
+ background-image: url(qss:images_dark-light/down_arrow_lighter.svg);
+}
+
+QToolBar > QToolButton::menu-arrow:open {
+ background-image: url(qss:images_dark-light/down_arrow_lighter.svg);
+}
+
+QToolBar > QToolButton:checked {
+ border: 1px solid ${base01};
+ background-color: rgba(124,171,249,60);
+}
+
+QToolBar > QToolButton:checked:disabled {
+ background-color: ${base01};
+ color: ${base03};
+ border-radius: 1.9px;
+ padding: 0px;
+ outline: none;
+}
+
+QToolBar > QToolButton:checked:hover {
+ border: 1px solid ${base02};
+ background-color: rgba(124,171,249,80);
+}
+
+QToolBar QToolButton#qt_toolbar_ext_button {
+ margin: 0px;
+ padding: 0px;
+ background-image: url(qss:images_dark-light/more_${invPolarity}.svg);
+ image: transparent;
+ background-repeat: none;
+ background-position: center left;
+}
+
+QToolBar QToolButton#qt_toolbar_ext_button:hover {
+ /*background-image: url(qss:images_dark-light/more_light.svg);*/
+ border-color: ${base02};
+ background-color: ${base00};
+}
+
+QToolBar QToolButton#qt_toolbar_ext_button:on {
+ background-image: url(qss:images_dark-light/more_${invPolarity}.svg);
+ border-color: ${base01};
+ background-color: ${base00};
+}
+
+/*==================================================================================================
+Tables (spreadsheets)
+==================================================================================================*/
+QTableView {
+ color: ${base05};
+ gridline-color: ${base01};
+ selection-color: ${base00};
+ selection-background-color: ${base05};
+}
+
+QTableView::item:hover {
+ background-color: ${darken 60};
+ border-color: ${base05};
+ border-bottom-color: ${base05};
+}
+
+QTableView::item:disabled {
+ color: ${base03};
+}
+
+QTableView::item:selected {
+ color: ${base04};
+ border-color: ${base05};
+ border-bottom-color: ${base05};
+ background-color: ${base02};
+}
+
+QTableView > QWidget > QComboBox,
+QTableView > QWidget > QAbstractSpinBox,
+QTableView > QWidget > QSpinBox,
+QTableView > QWidget > QDoubleSpinBox,
+QTableView > QWidget > QLineEdit,
+QTableView > QWidget > QTextEdit,
+QTableView > QWidget > QTimeEdit,
+QTableView > QWidget > QDateEdit,
+QTableView > QWidget > QDateTimeEdit,
+QTableView > QWidget > QComboBox:drop-down,
+QTableView > QWidget > QAbstractSpinBox:up-button,
+QTableView > QWidget > QSpinBox:up-button,
+QTableView > QWidget > QDoubleSpinBox:up-button,
+QTableView > QWidget > QTimeEdit:up-button,
+QTableView > QWidget > QDateEdit:up-button,
+QTableView > QWidget > QDateTimeEdit:up-button,
+QTableView > QWidget > QAbstractSpinBox:down-button,
+QTableView > QWidget > QSpinBox:down-button,
+QTableView > QWidget > QDoubleSpinBox:down-button,
+QTableView > QWidget > QTimeEdit:down-button,
+QTableView > QWidget > QDateEdit:down-button,
+QTableView > QWidget > QDateTimeEdit:down-button,
+QTableView > QWidget > Gui--ColorButton {
+ border-radius: 0px;
+}
+
+QTableView > QWidget > QComboBox,
+QTableView > QWidget > QAbstractSpinBox,
+QTableView > QWidget > QSpinBox,
+QTableView > QWidget > QDoubleSpinBox,
+QTableView > QWidget > QLineEdit,
+QTableView > QWidget > QTextEdit,
+QTableView > QWidget > QTimeEdit,
+QTableView > QWidget > QDateEdit,
+QTableView > QWidget > QDateTimeEdit {
+ color: ${base05};
+ background-color: transparent;
+ border-color: transparent;
+}
+
+QTableView > QWidget > QComboBox:drop-down,
+QTableView > QWidget > QAbstractSpinBox:up-button,
+QTableView > QWidget > QSpinBox:up-button,
+QTableView > QWidget > QDoubleSpinBox:up-button,
+QTableView > QWidget > QTimeEdit:up-button,
+QTableView > QWidget > QDateEdit:up-button,
+QTableView > QWidget > QDateTimeEdit:up-button,
+QTableView > QWidget > QAbstractSpinBox:down-button,
+QTableView > QWidget > QSpinBox:down-button,
+QTableView > QWidget > QDoubleSpinBox:down-button,
+QTableView > QWidget > QTimeEdit:down-button,
+QTableView > QWidget > QDateEdit:down-button,
+QTableView > QWidget > QDateTimeEdit:down-button,
+QTableView > QWidget > Gui--ColorButton {
+ background-color: ${darken 30};
+}
+
+QTableView > QWidget > QComboBox:focus,
+QTableView > QWidget > QAbstractSpinBox:focus,
+QTableView > QWidget > QSpinBox:focus,
+QTableView > QWidget > QDoubleSpinBox:focus,
+QTableView > QWidget > QLineEdit:focus,
+QTableView > QWidget > QTextEdit:focus,
+QTableView > QWidget > QTimeEdit:focus,
+QTableView > QWidget > QDateEdit:focus,
+QTableView > QWidget > QDateTimeEdit:focus {
+ color: ${base05};
+ selection-color: ${base00};
+ selection-background-color: ${base05};
+ border-color: ${base01};
+ background-color: ${base00};
+}
+
+QTableView > QWidget > QComboBox:disabled,
+QTableView > QWidget > QAbstractSpinBox:disabled,
+QTableView > QWidget > QSpinBox:disabled,
+QTableView > QWidget > QDoubleSpinBox:disabled,
+QTableView > QWidget > QLineEdit:disabled,
+QTableView > QWidget > QTextEdit:disabled,
+QTableView > QWidget > QTimeEdit:disabled,
+QTableView > QWidget > QDateEdit:disabled,
+QTableView > QWidget > QDateTimeEdit:disabled {
+ color: ${darken 120};
+ background-color: transparent;
+ border-color: transparent;
+}
+
+QTableView > QWidget > QComboBox:read-only,
+QTableView > QWidget > QAbstractSpinBox:read-only,
+QTableView > QWidget > QSpinBox:read-only,
+QTableView > QWidget > QDoubleSpinBox:read-only,
+QTableView > QWidget > QLineEdit:read-only,
+QTableView > QWidget > QTextEdit:read-only,
+QTableView > QWidget > QTimeEdit:read-only,
+QTableView > QWidget > QDateEdit:read-only,
+QTableView > QWidget > QDateTimeEdit:read-only {
+ color: ${base05};
+ background-color: transparent;
+ border-color: transparent;
+}
+
+/*==================================================================================================
+SELECTORTOOLBAR widget (3rd party plugin)
+==================================================================================================*/
+QToolBar:horizontal#Selector,
+QToolBar:vertical#Selector {
+ background-color: ${darken 120};
+ margin: 0px;
+ padding: 0px;
+}
+
+QToolBar::handle:top#Selector,
+QToolBar::handle:bottom#Selector,
+QToolBar::handle:horizontal#Selector {
+ alignment: bottom left;
+}
+
+QToolBar::handle:left#Selector,
+QToolBar::handle:right#Selector,
+QToolBar::handle:vertical#Selector {
+ width: 100%;
+ alignment: center left;
+}
+
+QToolBar:top#Selector QToolButton,
+QToolBar:bottom#Selector QToolButton,
+QToolBar:horizontal#Selector QToolButton {
+ alignment: bottom left;
+}
+
+QToolBar:left#Selector QToolButton,
+QToolBar:right#Selector QToolButton,
+QToolBar:vertical#Selector QToolButton {
+ alignment: center left;
+}
+
+QToolButton[toolbar_orientation="horizontal"] {
+}
+
+QToolButton[toolbar_orientation="vertical"] {
+}
+
+QToolBar#Selector QToolButton {
+ border: none;
+ margin: 0px;
+ padding: 2px 6px;
+ border-radius: 0px;
+}
+
+QToolBar#Selector QToolButton:checked {
+ color: ${base05};
+ background-color: ${base00};
+}
+
+QToolBar#Selector QToolButton:!checked {
+ color: ${highlight 160};
+ background-color: transparent;
+ margin: 0px;
+}
+
+QToolBar#Selector QToolButton:!checked:hover {
+ color: ${highlight 160};
+ background-color: ${highlight 20};
+}
+
+QToolBar#Selector QToolButton:!checked:pressed {
+ background-color: ${highlight 20};
+}
+
+
+/*==================================================================================================
+TABBAR widget (3rd party plugin)
+==================================================================================================*/
+QTabWidget#TabBar > QTabBar {
+ border-top: 0;
+}
+
+QTabWidget#TabBar > QTabBar::tab:top,
+QTabWidget#TabBar > QTabBar::tab:bottom {
+ min-width: -1;
+}
+
+QTabWidget#TabBar > QTabBar::tab:left,
+QTabWidget#TabBar > QTabBar::tab:right {
+ min-height: -1;
+}
+
+/*==================================================================================================
+EXPERIMENTAL
+==================================================================================================*/
+
+QDialog QGroupBox QFrame {
+ margin: 2px 0px;
+}
+
+*[mandatoryField="true"] { background-color: cyan }
+
+QPushButton#NavigationIndicator::menu-indicator {
+ image: none;
+ width: 0px;
+}
+
+/*==================================================================================================
+SKETCHER
+==================================================================================================*/
+
+Gui--StatefulLabel[state="empty_sketch"] {
+ color : rgba(255,255,255,127);
+}
+Gui--StatefulLabel[state="under_constrained"] {
+ color : rgba(255,255,255,255);
+}
+Gui--StatefulLabel[state="conflicting_constraints"] {
+ color : rgba(255,0,0,255);
+}
+Gui--StatefulLabel[state="malformed_constraints"] {
+ color : rgba(255,0,0,255);
+}
+Gui--StatefulLabel[state="redundant_constraints"] {
+ color : rgba(255,69,0,255);
+}
+Gui--StatefulLabel[state="partially_redundant_constraints"] {
+ color : rgba(89, 142, 240, 255);
+}
+Gui--StatefulLabel[state="solver_failed"] {
+ color : rgba(255,0,0,255);
+ font-weight: bold;
+}
+Gui--StatefulLabel[state="fully_constrained"] {
+ color : rgba(0,255,0,255);
+ font-weight: bold;
+}
+Gui--UrlLabel {
+ color : rgba(100, 149, 237, 255);
+ text-decoration : underline;
+}
+
+/*==================================================================================================
+Settings menu #groupsTreeView:
+==================================================================================================*/
+QTreeView::branch#groupsTreeView:closed:has-children:has-siblings {
+ border-image: none 0;
+ }
+
+ QTreeView::branch#groupsTreeView:open:has-children:has-siblings {
+ border-image: none 0;
+ }
+
+ QTreeView::branch#groupsTreeView:open:has-children:!has-siblings {
+ border-image: none 0;
+ }
+
+ QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed {
+ border-image: none 0;
+ }
+
+ QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item {
+ border-image: none 0;
+ }
+''