From 6d81d0556aeec2a0ad824cf4166f7bb114bd8fc2 Mon Sep 17 00:00:00 2001 From: MisterMakerNL Date: Tue, 5 Aug 2025 07:25:00 +0200 Subject: [PATCH 1/2] Gui: Various fixes to official themes Updated PropertyEditor QLabel and QPushButton styles for better visual consistency and usability, including specific pushbutton styling for the Placement tool. Adjusted QCheckBox disabled indicator styles to use consistent border and background colors, and fixed background color for checked and indeterminate disabled states. Gave inactive and active tab their own token. Fixed missing hover for scrollbar. Changed the value of EditedEdgeColor in the FreeCAD Light preference pack Due to contrast issues with default shape color. Refreshed Theme_thumbnail_dark.png and Theme_thumbnail_light.png images. Updated Thumbnails_themes.svg with new Inkscape version metadata, export paths, and visual adjustments, including color and layout changes to theme preview rectangles. Refreshed Theme_thumbnail_dark.png and Theme_thumbnail_light.png images. Updated Thumbnails_themes.svg with new export filenames, DPI settings, and adjusted some SVG properties for improved export consistency. Changed the TextDisabledColor to fix issue with lighten full black. Adjusted the QComboBox padding-right from 2px to 18px in FreeCAD.qss to provide space for the check-mark indicating the active item. Changed the 'HighlightColor' value in the FreeCAD Light preference pack configuration to dark green to solve contrast issues. Introduces InActiveTabBackgroundColor and ActiveTabBackgroundColor to both FreeCAD Dark and FreeCAD Light preference packs for improved tab appearance customization. --- .../FreeCAD Dark/FreeCAD Dark.cfg | 2 + .../FreeCAD Light/FreeCAD Light.cfg | 7 +- src/Gui/Stylesheets/FreeCAD.qss | 79 +- .../Stylesheets/overlay/Freecad Overlay.qss | 4 +- .../thumbnails/Theme_thumbnail_dark.png | Bin 7192 -> 25692 bytes .../thumbnails/Theme_thumbnail_light.png | Bin 8523 -> 30776 bytes .../thumbnails/Thumbnails_themes.svg | 829 +++++++++--------- 7 files changed, 475 insertions(+), 446 deletions(-) diff --git a/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg b/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg index a845d4f580..23b1f6f52e 100644 --- a/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg +++ b/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg @@ -153,6 +153,8 @@ #ffffff white @PrimaryColorDarken5 + @PrimaryColorDarken2 + @3DViewBackgroundRefColor darken(@TextForegroundColor,40) @PrimaryColor #ffffff diff --git a/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg b/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg index 5cbfd007a6..568f808d49 100644 --- a/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg +++ b/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg @@ -168,7 +168,9 @@ #000000 black @PrimaryColorDarken4 - lighten(@TextForegroundColor,40) + @PrimaryColorDarken2 + @3DViewBackgroundRefColor + darken(@TabbarBackgroundColor,80) @PrimaryColorLighten3 #000000 @AccentHoverColor @@ -176,6 +178,7 @@ @ThemeAccentColor1 blend(@GeneralBackgroundColor,@AccentColor,60) blend(@GeneralBackgroundHoverColor,@AccentColor,30) + 2px @@ -214,7 +217,7 @@ - + diff --git a/src/Gui/Stylesheets/FreeCAD.qss b/src/Gui/Stylesheets/FreeCAD.qss index 902b3f0d8d..92fb60b054 100644 --- a/src/Gui/Stylesheets/FreeCAD.qss +++ b/src/Gui/Stylesheets/FreeCAD.qss @@ -91,10 +91,25 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { background-color: @AccentColor;/* same as focused background color */} /* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - background-color: @TextUrlColor;/* same as focused background color */ - border-radius: @InputFieldBorderRadius; + background-color: @PrimaryColor;/* same as focused background color */ + /* border-radius: @InputFieldBorderRadius; */ } +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, +Gui--PropertyEditor--PropertyEditor > QWidget > PushButton { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ButtonTopBackgroundColor,stop:1 @ButtonBottomBackgroundColor); + border: 1px solid @GeneralBorderColor; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: @InputFieldBorderRadius; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { + text-align:left; + padding-left: 2px; +} /*================================================================================================== Main window ==================================================================================================*/ @@ -123,13 +138,11 @@ Gui--MDIView QLabel{ Gui--MDIView QScrollArea{ border: 1px solid @GeneralBorderColor; background-color: transparent;/* Added to maintain consistency */} + /* QWidget ---------------------------------------------------------------- This causes much load time. DONT USE "QWidget { " This causes a lot of lag. */ - - - QColorDialog { background-color: @DialogBackgroundColor; border: 1px solid @GeneralBorderColor; @@ -271,7 +284,7 @@ QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QChe QCheckBox::indicator:unchecked:disabled { background-color: @GeneralDisabledBackgroundColor; - border: 1px solid @GeneralBorderHoverColor; + border: 1px solid @CheckBoxBorderColor; } QCheckBox::indicator:checked { @@ -288,6 +301,7 @@ QCheckBox::indicator:checked:disabled { /* background-color: @PrimaryColor; */ border: 1px solid @CheckBoxBorderColor; image: url(qss:@IconsLocationFolderName/check-mark-lightgray.svg); + background-color: @GeneralDisabledBackgroundColor; } QCheckBox::indicator:indeterminate { @@ -299,6 +313,7 @@ QCheckBox::indicator:indeterminate { QCheckBox::indicator:indeterminate:disabled { /* background-color: @PrimaryColor; */ border: 1px solid @CheckBoxBorderColor; + background-color: @GeneralDisabledBackgroundColor; image: url(qss:@IconsLocationFolderName/indeterminate-mark-lightgray.svg); } @@ -503,7 +518,7 @@ QMenu::item { padding-left: 5px; padding-top: 4px; padding-bottom: 4px; - padding-right: 50px; + padding-right: 5px; /* Reserve space for selection border */} QMenu::item:selected { @@ -696,7 +711,6 @@ QScrollBar::handle:vertical { border-top: 1px solid @GeneralBorderColor; border-bottom: 1px solid @GeneralBorderColor; min-height: 20px; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 @ButtonTopBackgroundColor, stop:1 @ButtonBottomBackgroundColor); } @@ -704,6 +718,11 @@ QScrollBar::handle:vertical:focus { border: 1px solid @AccentColor; } +QScrollBar::handle:vertical:hover { + background-color: @GeneralBackgroundHoverColor; + border: 1px @ButtonTopBackgroundColor; +} + QScrollBar::add-line, QScrollBar::sub-line { height: 12px; width: 12px; @@ -717,7 +736,7 @@ QScrollBar::add-line:horizontal:hover, QScrollBar::sub-line:horizontal:hover { background-color: @GeneralBackgroundHoverColor; } -QScrollBar::right-arrow, QScrollbar::left-arrow, QScrollBar::up-arrow, QScrollBar::down-arrow { +QScrollBar::right-arrow, QScrollBar::left-arrow, QScrollBar::up-arrow, QScrollBar::down-arrow { margin: 2px; } @@ -1348,7 +1367,7 @@ QComboBox { border-radius: @InputFieldBorderRadius; background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ButtonTopBackgroundColor,stop:1 @ButtonBottomBackgroundColor ); padding-left: 4px; - padding-right: 2px; + padding-right: 18px; /* 18px for the check-mark that says which item is active */ min-height: 22px; } @@ -1777,8 +1796,8 @@ QDockWidget QTabBar { /*tabbar in dockwidget */ } QTabBar#mdiAreaTabBar::tab:bottom:selected { - background-color: @3DViewBackgroundRefColor; - border-top: @3DViewBackgroundRefColor; + background-color: @ActiveTabBackgroundColor; + border-top: @ActiveTabBackgroundColor; } /*tabbar for files. */ @@ -1863,7 +1882,7 @@ QTabBar::tab:top, QDockWidget QTabBar::tab:top { margin-left: 0px; margin-right: 0px; min-width: 5px; - background-color: @GeneralDisabledBackgroundColor ; + background-color: @InActiveTabBackgroundColor; border-top: 1px solid @GeneralBorderColor; border-bottom: 1px solid @GeneralBorderColor; border-left: 1px solid @GeneralBorderColor; @@ -1873,9 +1892,9 @@ QTabBar::tab:top, QDockWidget QTabBar::tab:top { } QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - background-color: @GeneralBackgroundColor; + background-color: @ActiveTabBackgroundColor; border-top: 1px solid @GeneralBorderColor; - border-bottom: 1px solid @GeneralBackgroundColor; + border-bottom: 1px solid @ActiveTabBackgroundColor; border-left: 1px solid @GeneralBorderColor; border-right: 1px solid @GeneralBorderColor; margin-top: 0px; @@ -1894,7 +1913,7 @@ QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { min-width: 5px; - background-color: @GeneralDisabledBackgroundColor ; + background-color: @InActiveTabBackgroundColor; border-bottom: 1px solid @GeneralBorderColor; border-top: 1px solid @GeneralBorderColor; border-left: 1px solid @GeneralBorderColor; @@ -1904,9 +1923,9 @@ QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { } QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - background-color: @GeneralBackgroundColor; + background-color: @ActiveTabBackgroundColor; border-bottom: 1px solid @GeneralBorderColor; - border-top: 1px solid @GeneralBackgroundColor; + border-top: 1px solid @ActiveTabBackgroundColor; border-left: 1px solid @GeneralBorderColor; border-right: 1px solid @GeneralBorderColor; margin-bottom: 0px; @@ -1925,7 +1944,7 @@ QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:h QTabBar::tab:left, QDockWidget QTabBar::tab:left { min-height: 5px; - background-color: @GeneralDisabledBackgroundColor ; + background-color: @InActiveTabBackgroundColor; border-bottom: 1px solid @GeneralBorderColor; border-right: 1px solid @GeneralBorderColor; border-left: 1px solid @GeneralBorderColor; @@ -1935,9 +1954,9 @@ QTabBar::tab:left, QDockWidget QTabBar::tab:left { } QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: @GeneralBackgroundColor; + background-color: @ActiveTabBackgroundColor; border-bottom: 1px solid @GeneralBorderColor; - border-right: 1px solid @GeneralBackgroundColor; + border-right: 1px solid @ActiveTabBackgroundColor; border-left: 1px solid @GeneralBorderColor; border-top: 1px solid @GeneralBorderColor; margin-left: 0px; @@ -1955,7 +1974,7 @@ QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover QTabBar::tab:right, QDockWidget QTabBar::tab:right { min-height: 5px; - background-color: @GeneralDisabledBackgroundColor ; + background-color: @InActiveTabBackgroundColor; border-bottom: 1px solid @GeneralBorderColor; border-left: 1px solid @GeneralBorderColor; border-right: 1px solid @GeneralBorderColor; @@ -1965,9 +1984,9 @@ QTabBar::tab:right, QDockWidget QTabBar::tab:right { } QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: @GeneralBackgroundColor; + background-color: @ActiveTabBackgroundColor; border-bottom: 1px solid @GeneralBorderColor; - border-left: 1px solid @GeneralBackgroundColor; + border-left: 1px solid @ActiveTabBackgroundColor; border-left: 1px solid @GeneralBorderColor; border-top: 1px solid @GeneralBorderColor; margin-right: 0px; @@ -2442,7 +2461,7 @@ QDateEdit::drop-down, QDateTimeEdit::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 12px; - border-left: 1px solid ; + border-left: 1px solid; } QDateEdit::down-arrow, QDateTimeEdit::down-arrow { @@ -2605,14 +2624,10 @@ QGroupBox[objectName="matOpsGrpBox"] QPushButton { min-width: 235px; } -QToolBar > Gui--WorkbenchComboBox QAbstractItemView { - min-width: 180px; - margin-left: 30px; - border: 1px solid @GeneralBorderColor; - padding-left: -27px; - background-color: transparent; -} +Gui--WorkbenchComboBox { +padding-right: -10px; +} /* Below is a fix for indentation in properties*/ diff --git a/src/Gui/Stylesheets/overlay/Freecad Overlay.qss b/src/Gui/Stylesheets/overlay/Freecad Overlay.qss index 80d974b0a8..adc141567a 100644 --- a/src/Gui/Stylesheets/overlay/Freecad Overlay.qss +++ b/src/Gui/Stylesheets/overlay/Freecad Overlay.qss @@ -133,11 +133,11 @@ Gui--OverlayToolButton::pressed, Gui--OverlayToolButton:checked { border: 0.5px solid @GeneralBorderColor; border-radius: 1px; - background-color: @UserHighlight1Color; + background-color: @ThemeAccentColor1; } Gui--OverlayToolButton:checked:hover { - border: 0.5px solid @UserHighlight1Color; + border: 0.5px solid @ThemeAccentColor1; background-color: @3DViewBackgroundRefColor } diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_dark.png b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_dark.png index b1b518829e28e6463a763b8348ede4f49e6c4038..26370a18ff19f6a31654b113e5cdc9e6bb9a19ec 100644 GIT binary patch literal 25692 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ƛ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 F{|5*ImdXGC literal 7192 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 B<&^*c diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_light.png b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_light.png index c137cd886946a00925861a3dbd074eb2743d3e8a..71c5babfb33b0904e7ddf85d7d0daf8de67beaa1 100644 GIT binary patch literal 30776 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 )ETN(`!hgPW;5`!jcav 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 US!9XO34DGWQP-uW9kTZOAN8a4nE(I) literal 8523 zcmZ8{byOSQ^LFsy0a_>)2vFRuxCCvXSaB<^#oaAHaQcB3XmN^raVu`6MT!=8X>chH zzwP(Df4w<2RT0(#LwuDKg+SZidoYV{J~|${GA3lUkEDw#kP1O4|AbAC!N_ zoJ)g=5zBm4T0{A+an|Ro=4E4hto>Ps>9>UWzOqd0dL#r4nDTZ=*bDdT`>>ZSWXY~- zJ-64s=O^Qv#><&fzJAL&9-}+1oaFfaMy;NEDrjhE(obXL&7n}JR1i5m0wQkTU}zl_ z6ja!4b`{|5?JawBB)TNWDkWu_nwgo|5O{ssFJL=LGYQ9qRdKy|(bSNeYqm3*CH{8r zp@j=U&SiMMe|LTM;@i!i^6q$TWw4u{LjzU0UNtv62S-3femN}@BxlUc$kpmOe&3t>#FmrF1X|TmrC(W^;>BQ(BJ*v z7@%|k+eD}54Xqf@DPGmuJuFI5zkByi9#94i*sqnvC@3ib_xJaw3psu?>CT_r)6mce z-Q2W7_OGL*Ilg<>_bup_*Y6ZKx2SJq*9hjL)7!E}er^Qk595OIVs~rR?Csg=4Y{z5h#SVl2U)j~o*iW+T{Vj=_={x`1^nIb{_nX8uXztbYGHcMbLjhbxS=6c zBHb+&;YG1#z_r9wnWL-6Wba&Qw`J#iLcosnoUI8eV-lEjBdL5(iyuJX#R-O)G&(KJ z+zqqj{5S&>6L+#OFrX(SB!K+0(Skl@#r1q;Ml4;>GlSCUvlBm^4c79VkzwLq`K~@N zfkHJ{<=x%+zuo^e;xuZk7#qdI!>bV#rHoXUPSA)%&l$^3DCD_=UR+#gurK6IJDhZ3 zT=otQ;@HNG^~|Ql*}p070nW;GE8)7jm##dJOB?+q^Q02Tk zc|49rOTvPE8Hs($(W90lb?=dsoDAUx*)_~Vx%yN>{3&Qn*O1Mq=sIM+Tu%N0GsOE6 z@7Q+{O8q3RUnKC#wNre-U-JzL(w z0)3vUD$n7}Mt;Q&$08@dxr+{7K0R;P5dBeA!FtQO!f!rQZ&^6MArhl^smpAK!J_sV z1&`^zN8{wZ{+G^Uboa+2M~UmWoL)Qr9xMLdcl_N}!d|y^l*V*)`_iu9$K_fK5Viz4 zBAJ_ngd`of;26-3PCGk|)!Fj5{pXw7@(9HRDe3oh7-EN6#{_tYeu+K@o_`fG;+&(3wq3!M6!A z>@1T)LUxzOU@!*8NsjurP}Az@v@{Aaaq;do*RD0!)x$#~R}hiN@%eezP_-AWS8VJLU$VVdu)b{jkY)j2^C`r-{gP3PFS{YVBSqHV1slb1CgRN3fL$;2xKs zzgWeWg!=K~s#h5EZ4!~;;N~1sZU2x}OF`dOV+`(aW0bnS^AMl;BS!Yi8)U6x6Ii_; zsrl4Ez`lhDK>%g_1 zNPRn7Ub6MF8)8@rrGF5Ms*M1r4Ssu2i(NHWU*;DkdE~m&2<=K6?Z;fq;~=HHqn54l zwO-_Bs)(7HnYBtgzO~BP9@o++;;!&^7xwWg{xz)xDl$0XRlkGxFY}W~4WdFOyfapJey=j)3Nwzv~X}O`I zzjkgvek3<8t?bXoii^64&^H@^l~P5Ybq?-`I*p^88Tgh%zqHVBW)~<8d;~S$j`n;z z3O5%fbes$d!S=!l3<`3sGb$lqhQZKoFOP6?#&E`;$}BXwbapU+-AL}ElZOd9mcdz7 zWDnu=&7~;U!g>g{6Ar;V(f&d$)Y;s_%#$MjO(mku!0D2xuE}LEJf8tGMr0r4eb~)uyx!mX| z90(D3k@+YJ0V#62clrrgsF0YqKQ|&4bP**WTIQ$|vzhYM(yOX5%5i|TB&ViM9jWzM z@WsZ)VsoxfJe5{5`yvu#?I|G{$+>0~O-+*T-@o(Pj%G>`=R@yqOfu7G!>WBmg3s=vSKZs-lVY!j%-%Qy z^aR^ttd<_(Y0%JN(a{0?F8WU8u;c(Q5)O`px7n)Hr!oHH32{np zZf=`{bRj=HX%We8%GI;#=jq};+}R-yenpNjM7*3nyi7_Ewy@;l$U#Gb8$zEY_0Qz zT;s#{{d7oR8;dn?B>IpPRRT5_7uOT`#*~*1i=ntGZ-$G@sf6wJ;eagb3WjWZ9;40N z!86#G5XCyI4|ufm4NamkEpc`zUii?NOkm$CaqMK5Agtg^tARS&l!{R_iQWQ11h*Va zeu#B<{PV<&xm7EHZkdZfmx!{XSOp|DF%jwyL+4IIO>M~P{Xrcclom)Xrzm2-nB$?` z!`llZa8$MHjUp5jaf$|rQ!!y4$AwojX>OE~Hj`S3!&*o$89asOjxZY;OZ8iY5ts4@ zu#CYC^FLFiiDi+z`>%p%U*&<)R)hq;P~_lCg0SLC-jup3>PE&aLax00<8LtCt?u&6 zEipkF25%#@SRv1z0?uU`$lXrLB1@S2y0H7Vr6`!!kFjfs;_~^@?2#B^E&`4upp@zG zJ84NzpYme<^2Ywyd^rTN|1-L2g7EVB%Xign%zaQ`3ymAf%=OWxK2zkx%~_wl3wcyG zB?@o9@808GU)zjkO&&^SMGVw(e6lg#@}WXD5)5t8P8(usqY3 zY4?L{(NP*oN;s!yXA=_>YeP#lqxJTa`hL<+snJWC%F5WST<*YoW6~p@YzP<;VIHyc z9mIAl+iR0se{Y1Rv#;&w8~%IcK2J7byb`laW>DH5yw$$kLFVs3()e7iS?iM?`e>=H zvI#qy7C&9f$+4x z_pN1oF=hxXC4RI+yV3#V^T4Ewl`L}*7V_=Cn2{$kUnrtYX;YM$l9ibf7qRvV6)U@R zq}rTg?8HnX4~(Rh-gpR17DCALKR-25<}!p`whenyN=`u~qW6E&$rViUnc$hT;lU_0 z6Pa1Ns`m8RLXnboX7gAze4+6>)f?rNIhvsNu!)T16iZ7`LsnV0(&t7w$x-Mmj8V=O zt`?7uY(^I&bJu!DK))436?kroN6#g^BvyYywi%+=<;m6;BPxjSK3YyVJ#|+)4FB+bWJJl!LZA^_<9BBgVDN&X-k^Ts zPqg#jhw2&JknZJW#%&Hh$U*$8(Lh@l{A6rumBP-{(Q4|fJj0~N-8=dmFD zPa1*;BiAa`zN%^jYf66_1zceUbhDa8oDTfaaHe?PB#X#iIW&2i;XD`335I0sl7>h?i!_yb1_-+iH5aYLRk$n?LlXQ^zx_o+vq6>12 zc-c-=Bg|*n&t?TQ9gZqW;qr|IXnmWrv+6d`BvcvR-Q`C*;$GndbFbD z&!OXO3daOzbSK{Ts|j&!i3}X54b6(i5I#PO#mBbkW)jMX6i|;RXr)3Sw?7;N{cJj| zOcMzoQULh4U6s8Xml2v3#$@pz%=ysM)iQhy+EW)G9(+8o)+9aH9T82d@09kt&er1Z zhB}P35k-5hh(A7#E7(N=f)ru(NQ5@dt0*HA+nmiKQrWOnAIPg$Tf_nG{36K_Vgq?f2QXq($RqJX| z(yGX?{FjlrYFxRx48rXHc{x#!EfD5CK%0XnhdkLT$ey25od*CQm0MOurK2+q3f(Qi zMdrM~=&mI*%NT0tARh{pi@tLbwIr3PvmNW}b$rAmOLDmsV}{brcH>~0+v%1=#%BoB z8%W*A7`t{BI%$Gi)b!P)|`t0;+Cjl<&7D`7^~>*OAf>79iFp1z^FLw>w}_Uf-beSbFDJJtt=aG z8Px{4S_N zYj(3625AiDtHS^Cz7NUV`ASG!FV-pho;Inb{gMN0xEe{}(DZ1D+S5{&)~AN^RJ=`+ ze*Rpx(NAErwA5~~lTO;%Sur?RD)rTKc?Oa%T5OZn{}};lDjrucz$s9R)>P;pHM&8H zqjt0ewLwodD^LXu+4rA6BemHhRhc7{nf{!ZSXeLs6Ms!kx~&9Vngh&YXlTgni`uV# zDw(n&Ho%aG!Uz7p-!6p-vd$$aKGzj9^0ZuLo-1rI4d9>6BDDXuHNKmP^#_VIA+EF`sfc&aXKGuj$^-FF`7uFBPxUd7ymKK0UCvHd zw+CWF)Q7>m4g;lfaLrmFRdz;)r{BO#6H%d5<-`vhn!BJtlMynwf_i$U(P zmQc7>=@X;Icjo5~9~vY_e*BR4_ZR#1>(}n~fKdgPzVaeLkxDIJiB5A3N>1Cj89>iI zv;jc`;MPE0x5od%L7C~l+C{I<8^^IKTIs}yvu&6PQ%|-|`GAf{OfmALkNT*#3`?Ly zN91&wnMQQ;YF3NPCVsEW6DYl6qN9};E$>PR4gGELsO>fDl1HU^c_l+7kn$~yTR64- zZ~A;s4~WP2MzUu)eCh=^+A5D$;lo%(Dlj5J8(VlwOUuy6h~?Jn2=p+J0VU;}`R?tF z>B|6dZpm9t44s6mqYtm{EDq=lC}eO}7UaYg}Yw9P)LPq#mFdOw7z;?s^65g}>`gHe5RU$(YGNtN&H=EH*m# zrz*rftBMz0!iWjj1e4k_Gw?c)_SpQ4SPnQ}K3X=^i8}Ir*Ino^*h#Vx^R_}>TRXM) zQf?p6?Or6zDIh?W6Ld!Su(PYVI@7E}Q1`qxQL$XXeC;KOrF*G~IA1)UM1l`*J%FN{ zp2ly)0Y6tIkvNwnqy;aj+7MSN=jb?yadM({a71Z%wnNAmd)MelWA`qf_o@gUUo&N)k#xzztnLfFql7snC28GT zGNCrK3bRz7LZg_qhqz@RtI@l2BH+VxbZIvlOmh+tYv>TMq9g)9*sLPLk?-Go4wu^A zr=$q%4`0Ltr5-r2j%8wvW@60_lI3Zp@VdPs7^S(10*L;zEy!1?%vQfMo0%qa{tSY> zy*>R7|BG}r7XEB|&#Yv<*{<22S?I{Q_<2j}nc5HiaTE&|>+qt&!a~uXAH?|spU8|_ zPL2NCp8?F@*hxYuzyG%*=iJyKd|Hge0}b#HNN-3 zeE-eI_XI1ksfGG=HbRru$>z^A!3H~6-^a#qKtMg&ygMAL!lif9z2)ElYHx3^nkJ`6 ziIwa@r3nU*F;hBZ`L9nzH|UyPJ+DsT)vH)1U4?Z+*3it^8l0j+E&C+UR|h*gvkRW4 z3!=ltMPn))cRs*cCv6rXOVsb=iwpRuE6~-ux;}wG$?@ub{{ZNe658fn)KVg$@bQlU zH*(a~^jGT|YSf zhs-xPQe^x8DTU?$`1bYmd-{c-2|L$D`6#*Q zL>beSE-M4eMASyabcpXq^r6W3D=Aove9s?yo>uAMv28J>@R2PB`|dy{uJj}zl}I&i zM!qQ?Tm7}g!5tLUcX87FNr-24kXRBR7gkUB{&M>(eNDvRGHsvRq8kC@3Zl@5yjrZl1}i0>K7R&)-78LG6JOuk%Gc?8m`%FL@7+ovf23Y>P~&{h=-D~z-Z?wj{K6`6ePvlv zQUO<(ex51G(mQ?QsG9bIz7Dr< zgAm5TnX>PB|Zn{fH3P8e^oYjduE3_u+IH#ke40}yI!ze5~ z16yF(-#mv|bp(7K2&0J}+hMeyKxg7I1c6wkSg0=o-m``d@DvllJ{5hSoC$beVXMrd zo+JD7Ln{dmDc1PawkK?ACH3nluVggGpWrAf!Y{EZ)4^@xQ44Df(NMt3FfjBwLk z)a0WrpHxoL^I_?p|2FA<8#cCcfEw$)!19IAu^*ItTD)Wf$W~dd$B+o z5w?v16so*iTEfAUE}6^-05PU_JoIunkjW=qZ1a4%s3Q3oc?-v%K=d{F#L|Z)@*0e0 zlCnQ}MGULz2L#|qR6c|O!5a%lLVAFl6Amt5MSx-P|No!_;KHH`3JR*TvS7++K`O#Q z44HDp0$l6XXYipbOa2T)iSY37`f~zu7y_4uNJ+&KsQeA|_4N(0{Zq&Hj6kdj=q(UV zMnd2NbU>?mU|@jJ`St79wokn6UkL*b4E*@_EC3$XT|T*&{Zj3 zR99Dr4=`N7;rvn9bz6W)hGFFZs=CvZDQzUpNP0t`lY9Xk=ndp=Zf;g=jim8pi+V6K zDv-jB-#9xvJIcy-1C4#3Z@=!(pfIZj&%Ix1=;-Ld{%6}id9&1Z1Z;EwNi{RG++RO` mR{k>My^|CdZ_B;Be55lightlight Date: Sat, 16 Aug 2025 13:26:07 +0200 Subject: [PATCH 2/2] Gui: Move style parameters to yaml files --- .../FreeCAD Dark/FreeCAD Dark.cfg | 62 ------------------- .../FreeCAD Light/FreeCAD Light.cfg | 62 ------------------- src/Gui/Stylesheets/CMakeLists.txt | 14 ++++- .../Stylesheets/parameters/FreeCAD Dark.yaml | 59 ++++++++++++++++++ .../Stylesheets/parameters/FreeCAD Light.yaml | 59 ++++++++++++++++++ 5 files changed, 131 insertions(+), 125 deletions(-) create mode 100644 src/Gui/Stylesheets/parameters/FreeCAD Dark.yaml create mode 100644 src/Gui/Stylesheets/parameters/FreeCAD Light.yaml diff --git a/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg b/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg index 23b1f6f52e..430b53146f 100644 --- a/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg +++ b/src/Gui/PreferencePacks/FreeCAD Dark/FreeCAD Dark.cfg @@ -104,68 +104,6 @@ - - @BackgroundColor - @ButtonTopBackgroundColor - @GeneralBorderColor - @GeneralBorderColor - @PrimaryColorLighten2 - @PrimaryColorLighten3 - @TextEditFieldBackgroundColor - @GeneralBorderColor - @PrimaryColorLighten3 - @PrimaryColorLighten2 - @PrimaryColor - @PrimaryColorLighten4 - @PrimaryColorDarken5 - @PrimaryColorLighten6 - @PrimaryColorDarken3 - @PrimaryColorLighten3 - @PrimaryColor - @PrimaryColorLighten4 - lighten(@GroupboxBackgroundColor,20) - images_classic - 3px - @PrimaryColorDarken4 - #191919 - darken(@PrimaryColor,5) - darken(@PrimaryColor,8) - darken(@PrimaryColor,15) - darken(@PrimaryColor,20) - darken(@PrimaryColor,200) - darken(@PrimaryColor,5890) - lighten(@PrimaryColor,20) - lighten(@PrimaryColor,40) - lighten(@PrimaryColor,80) - lighten(@PrimaryColor,100) - lighten(@PrimaryColor,300) - lighten(@PrimaryColor,5890) - @CheckBoxBackgroundColor - @GeneralBorderColor - @GeneralDisabledBackgroundColor - #fc6c6c - #ffffff - #8cff5b - #fc6c6c - #77cbff - #ffa256 - #ff9090 - #ffffff - white - @PrimaryColorDarken5 - @PrimaryColorDarken2 - @3DViewBackgroundRefColor - darken(@TextForegroundColor,40) - @PrimaryColor - #ffffff - darken(@AccentColor,100) - #0095ff - 2px - @ThemeAccentColor1 - blend(@GeneralBackgroundColor,@AccentColor,60) - blend(@GeneralBackgroundHoverColor,@AccentColor,30) - - diff --git a/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg b/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg index 568f808d49..7f13118993 100644 --- a/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg +++ b/src/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg @@ -119,68 +119,6 @@ - - @BackgroundColor - @ButtonTopBackgroundColor - @GeneralBorderColor - @GeneralBorderColor - @PrimaryColorDarken1 - @PrimaryColorLighten3 - @TextEditFieldBackgroundColor - @GeneralBorderColor - @PrimaryColorLighten4 - @PrimaryColor - @PrimaryColor - @PrimaryColorLighten5 - @PrimaryColorDarken4 - @PrimaryColorDarken5 - @PrimaryColorDarken3 - @PrimaryColorDarken4 - @PrimaryColorDarken2 - @PrimaryColorLighten2 - darken(@GroupboxBackgroundColor,20) - images_classic - 3px - @PrimaryColorLighten1 - #F0F0F0 - darken(@PrimaryColor,4) - darken(@PrimaryColor,8) - darken(@PrimaryColor,10) - darken(@PrimaryColor,20) - darken(@PrimaryColor,200) - darken(@PrimaryColor,5890) - lighten(@PrimaryColor,2) - lighten(@PrimaryColor,3) - lighten(@PrimaryColor,4) - lighten(@PrimaryColor,5) - lighten(@PrimaryColor,6) - lighten(@PrimaryColor,7) - @CheckBoxBackgroundColor - @GeneralBorderColor - @GeneralDisabledBackgroundColor - #9d0000 - #000000 - #278100 - #9d0000 - #005991 - #ab4d00 - #9d0000 - #000000 - black - @PrimaryColorDarken4 - @PrimaryColorDarken2 - @3DViewBackgroundRefColor - darken(@TabbarBackgroundColor,80) - @PrimaryColorLighten3 - #000000 - @AccentHoverColor - #0061a7 - @ThemeAccentColor1 - blend(@GeneralBackgroundColor,@AccentColor,60) - blend(@GeneralBackgroundHoverColor,@AccentColor,30) - 2px - - diff --git a/src/Gui/Stylesheets/CMakeLists.txt b/src/Gui/Stylesheets/CMakeLists.txt index ac16f446dd..11ca09cb0a 100644 --- a/src/Gui/Stylesheets/CMakeLists.txt +++ b/src/Gui/Stylesheets/CMakeLists.txt @@ -6,6 +6,11 @@ SET(Stylesheets_Files "FreeCAD Light.qss" ) +SET(Parameters_Files + "parameters/FreeCAD Dark.yaml" + "parameters/FreeCAD Light.yaml" +) + SET(Overlay_Stylesheets_Files "overlay/Freecad Overlay.qss" #remove below after testing new stylesheet system 8/6/2025 @@ -35,11 +40,12 @@ SOURCE_GROUP("overlay_icons" FILES ${Overlay_icons}) ADD_CUSTOM_TARGET(Stylesheets_data ALL - SOURCES ${Stylesheets_Files} ${Images_Files} ${Images_Files2} ${Overlay_Stylesheets_Files} ${Overlay_icons} + SOURCES ${Stylesheets_Files} ${Parameters_Files} ${Images_Files} ${Images_Files2} ${Overlay_Stylesheets_Files} ${Overlay_icons} ) fc_copy_sources(Stylesheets_data "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets" ${Stylesheets_Files} + ${Parameters_Files} ${Images_Files} ${Images_Files2} ${Overlay_Stylesheets_Files} @@ -51,6 +57,12 @@ INSTALL( DESTINATION ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets ) +INSTALL( + FILES + ${Parameters_Files} + DESTINATION + ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/parameters +) INSTALL( FILES ${Overlay_Stylesheets_Files} diff --git a/src/Gui/Stylesheets/parameters/FreeCAD Dark.yaml b/src/Gui/Stylesheets/parameters/FreeCAD Dark.yaml new file mode 100644 index 0000000000..82ab75dab1 --- /dev/null +++ b/src/Gui/Stylesheets/parameters/FreeCAD Dark.yaml @@ -0,0 +1,59 @@ +3DViewBackgroundRefColor: "@BackgroundColor" +ButtonBackgroundHooverColor: "@ButtonTopBackgroundColor" +ButtonBorderColor: "@GeneralBorderColor" +ButtonBorderHooverColor: "@GeneralBorderColor" +ButtonBottomBackgroundColor: "@PrimaryColorLighten2" +ButtonTopBackgroundColor: "@PrimaryColorLighten3" +CheckBoxBackgroundColor: "@TextEditFieldBackgroundColor" +CheckBoxBorderColor: "@GeneralBorderColor" +DialogBackgroundColor: "@PrimaryColorLighten3" +GeneralAlternateBackgroundColor: "@PrimaryColorLighten2" +GeneralBackgroundColor: "@PrimaryColor" +GeneralBackgroundHoverColor: "@PrimaryColorLighten4" +GeneralBorderColor: "@PrimaryColorDarken5" +GeneralBorderHoverColor: "@PrimaryColorLighten6" +GeneralDisabledBackgroundColor: "@PrimaryColorDarken3" +GeneralGridLinesColor: "@PrimaryColorLighten3" +GeneralHeaderBackgroundColor: "@PrimaryColor" +GroupboxBackgroundColor: "@PrimaryColorLighten4" +GroupboxBorderColor: "lighten(@GroupboxBackgroundColor,20)" +IconsLocationFolderName: "images_classic" +InputFieldBorderRadius: "3px" +MenuBackgroundColor: "@PrimaryColorDarken4" +PrimaryColor: "#191919" +PrimaryColorDarken1: "darken(@PrimaryColor,5)" +PrimaryColorDarken2: "darken(@PrimaryColor,8)" +PrimaryColorDarken3: "darken(@PrimaryColor,15)" +PrimaryColorDarken4: "darken(@PrimaryColor,20)" +PrimaryColorDarken5: "darken(@PrimaryColor,200)" +PrimaryColorDarken6: "darken(@PrimaryColor,5890)" +PrimaryColorLighten1: "lighten(@PrimaryColor,20)" +PrimaryColorLighten2: "lighten(@PrimaryColor,40)" +PrimaryColorLighten3: "lighten(@PrimaryColor,80)" +PrimaryColorLighten4: "lighten(@PrimaryColor,100)" +PrimaryColorLighten5: "lighten(@PrimaryColor,300)" +PrimaryColorLighten6: "lighten(@PrimaryColor,5890)" +RadioButtonBackgroundColor: "@CheckBoxBackgroundColor" +RadioButtonBorderColor: "@GeneralBorderColor" +ScrollbarBackgroundColor: "@GeneralDisabledBackgroundColor" +SketcherConflictingConstraintsColor: "#fc6c6c" +SketcherEmptySketchColor: "#ffffff" +SketcherFullyConstrainedColor: "#8cff5b" +SketcherMalformedConstraintsColor: "#fc6c6c" +SketcherPartiallyRedundantConstraintsColor: "#77cbff" +SketcherRedundantConstraintsColor: "#ffa256" +SketcherSolverFailedColor: "#ff9090" +SketcherUnderConstrainedColor: "#ffffff" +StylesheetIconsColor: "white" +TabbarBackgroundColor: "@PrimaryColorDarken5" +InActiveTabBackgroundColor: "@PrimaryColorDarken2" +ActiveTabBackgroundColor: "@3DViewBackgroundRefColor" +TextDisabledColor: "darken(@TextForegroundColor,40)" +TextEditFieldBackgroundColor: "@PrimaryColor" +TextForegroundColor: "#ffffff" +TextSelectBackgroundColor: "darken(@AccentColor,100)" +TextUrlColor: "#0095ff" +ToolbarButtonsPadding: "2px" +AccentColor: "@ThemeAccentColor1" +AccentBackgroundColor: "blend(@GeneralBackgroundColor,@AccentColor,60)" +AccentHoverColor: "blend(@GeneralBackgroundHoverColor,@AccentColor,30)" diff --git a/src/Gui/Stylesheets/parameters/FreeCAD Light.yaml b/src/Gui/Stylesheets/parameters/FreeCAD Light.yaml new file mode 100644 index 0000000000..31621e39cb --- /dev/null +++ b/src/Gui/Stylesheets/parameters/FreeCAD Light.yaml @@ -0,0 +1,59 @@ +3DViewBackgroundRefColor: "@BackgroundColor" +ButtonBackgroundHooverColor: "@ButtonTopBackgroundColor" +ButtonBorderColor: "@GeneralBorderColor" +ButtonBorderHooverColor: "@GeneralBorderColor" +ButtonBottomBackgroundColor: "@PrimaryColorDarken1" +ButtonTopBackgroundColor: "@PrimaryColorLighten3" +CheckBoxBackgroundColor: "@TextEditFieldBackgroundColor" +CheckBoxBorderColor: "@GeneralBorderColor" +DialogBackgroundColor: "@PrimaryColorLighten4" +GeneralAlternateBackgroundColor: "@PrimaryColor" +GeneralBackgroundColor: "@PrimaryColor" +GeneralBackgroundHoverColor: "@PrimaryColorLighten5" +GeneralBorderColor: "@PrimaryColorDarken4" +GeneralBorderHoverColor: "@PrimaryColorDarken5" +GeneralDisabledBackgroundColor: "@PrimaryColorDarken3" +GeneralGridLinesColor: "@PrimaryColorDarken4" +GeneralHeaderBackgroundColor: "@PrimaryColorDarken2" +GroupboxBackgroundColor: "@PrimaryColorLighten2" +GroupboxBorderColor: "darken(@GroupboxBackgroundColor,20)" +IconsLocationFolderName: "images_classic" +InputFieldBorderRadius: "3px" +MenuBackgroundColor: "@PrimaryColorLighten1" +PrimaryColor: "#F0F0F0" +PrimaryColorDarken1: "darken(@PrimaryColor,4)" +PrimaryColorDarken2: "darken(@PrimaryColor,8)" +PrimaryColorDarken3: "darken(@PrimaryColor,10)" +PrimaryColorDarken4: "darken(@PrimaryColor,20)" +PrimaryColorDarken5: "darken(@PrimaryColor,200)" +PrimaryColorDarken6: "darken(@PrimaryColor,5890)" +PrimaryColorLighten1: "lighten(@PrimaryColor,2)" +PrimaryColorLighten2: "lighten(@PrimaryColor,3)" +PrimaryColorLighten3: "lighten(@PrimaryColor,4)" +PrimaryColorLighten4: "lighten(@PrimaryColor,5)" +PrimaryColorLighten5: "lighten(@PrimaryColor,6)" +PrimaryColorLighten6: "lighten(@PrimaryColor,7)" +RadioButtonBackgroundColor: "@CheckBoxBackgroundColor" +RadioButtonBorderColor: "@GeneralBorderColor" +ScrollbarBackgroundColor: "@GeneralDisabledBackgroundColor" +SketcherConflictingConstraintsColor: "#9d0000" +SketcherEmptySketchColor: "#000000" +SketcherFullyConstrainedColor: "#278100" +SketcherMalformedConstraintsColor: "#9d0000" +SketcherPartiallyRedundantConstraintsColor: "#005991" +SketcherRedundantConstraintsColor: "#ab4d00" +SketcherSolverFailedColor: "#9d0000" +SketcherUnderConstrainedColor: "#000000" +StylesheetIconsColor: "black" +TabbarBackgroundColor: "@PrimaryColorDarken4" +InActiveTabBackgroundColor: "@PrimaryColorDarken2" +ActiveTabBackgroundColor: "@3DViewBackgroundRefColor" +TextDisabledColor: "darken(@TabbarBackgroundColor,80)" +TextEditFieldBackgroundColor: "@PrimaryColorLighten3" +TextForegroundColor: "#000000" +TextSelectBackgroundColor: "@AccentHoverColor" +TextUrlColor: "#0061a7" +AccentColor: "@ThemeAccentColor1" +AccentBackgroundColor: "blend(@GeneralBackgroundColor,@AccentColor,60)" +AccentHoverColor: "blend(@GeneralBackgroundHoverColor,@AccentColor,30)" +ToolbarButtonsPadding: "2px"