From bb1e23a2dd7b484d236082ae405e63b3ae5be547 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Mon, 11 Jan 2021 20:01:02 +0800 Subject: [PATCH] add theme pure --- src/core/mainconfig.cpp | 1 + src/core/sessionconfig.cpp | 1 - src/core/thememgr.cpp | 2 +- src/data/core/vnotex.json | 2 +- src/data/extra/extra.qrc | 32 + src/data/extra/themes/moonlight/highlight.css | 1 - src/data/extra/themes/native/highlight.css | 1 - src/data/extra/themes/pure/arrow_dropdown.svg | 9 + .../themes/pure/arrow_dropdown_disabled.svg | 9 + src/data/extra/themes/pure/branch_closed.svg | 8 + src/data/extra/themes/pure/branch_open.svg | 8 + .../extra/themes/pure/checkbox_checked.svg | 7 + .../themes/pure/checkbox_checked_disabled.svg | 7 + .../extra/themes/pure/checkbox_unchecked.svg | 6 + .../pure/checkbox_unchecked_disabled.svg | 6 + src/data/extra/themes/pure/close.svg | 10 + src/data/extra/themes/pure/close_grey.svg | 10 + src/data/extra/themes/pure/cover.png | Bin 0 -> 82595 bytes src/data/extra/themes/pure/down.svg | 8 + src/data/extra/themes/pure/down_disabled.svg | 8 + src/data/extra/themes/pure/float.svg | 1 + src/data/extra/themes/pure/highlight.css | 245 ++++ src/data/extra/themes/pure/interface.qss | 1096 +++++++++++++++++ src/data/extra/themes/pure/left.svg | 8 + src/data/extra/themes/pure/left_disabled.svg | 8 + src/data/extra/themes/pure/menu_checkbox.svg | 6 + .../extra/themes/pure/menu_radiobutton.svg | 6 + src/data/extra/themes/pure/palette.json | 597 +++++++++ .../extra/themes/pure/radiobutton_checked.svg | 7 + .../pure/radiobutton_checked_disabled.svg | 7 + .../themes/pure/radiobutton_unchecked.svg | 6 + .../pure/radiobutton_unchecked_disabled.svg | 6 + src/data/extra/themes/pure/right.svg | 8 + src/data/extra/themes/pure/right_disabled.svg | 8 + src/data/extra/themes/pure/sizegrip.svg | 1 + src/data/extra/themes/pure/text-editor.theme | 199 +++ src/data/extra/themes/pure/up.svg | 8 + src/data/extra/themes/pure/up_disabled.svg | 8 + src/data/extra/themes/pure/web.css | 285 +++++ 39 files changed, 2641 insertions(+), 5 deletions(-) create mode 100644 src/data/extra/themes/pure/arrow_dropdown.svg create mode 100644 src/data/extra/themes/pure/arrow_dropdown_disabled.svg create mode 100644 src/data/extra/themes/pure/branch_closed.svg create mode 100644 src/data/extra/themes/pure/branch_open.svg create mode 100644 src/data/extra/themes/pure/checkbox_checked.svg create mode 100644 src/data/extra/themes/pure/checkbox_checked_disabled.svg create mode 100644 src/data/extra/themes/pure/checkbox_unchecked.svg create mode 100644 src/data/extra/themes/pure/checkbox_unchecked_disabled.svg create mode 100644 src/data/extra/themes/pure/close.svg create mode 100644 src/data/extra/themes/pure/close_grey.svg create mode 100644 src/data/extra/themes/pure/cover.png create mode 100644 src/data/extra/themes/pure/down.svg create mode 100644 src/data/extra/themes/pure/down_disabled.svg create mode 100644 src/data/extra/themes/pure/float.svg create mode 100644 src/data/extra/themes/pure/highlight.css create mode 100644 src/data/extra/themes/pure/interface.qss create mode 100644 src/data/extra/themes/pure/left.svg create mode 100644 src/data/extra/themes/pure/left_disabled.svg create mode 100644 src/data/extra/themes/pure/menu_checkbox.svg create mode 100644 src/data/extra/themes/pure/menu_radiobutton.svg create mode 100644 src/data/extra/themes/pure/palette.json create mode 100644 src/data/extra/themes/pure/radiobutton_checked.svg create mode 100644 src/data/extra/themes/pure/radiobutton_checked_disabled.svg create mode 100644 src/data/extra/themes/pure/radiobutton_unchecked.svg create mode 100644 src/data/extra/themes/pure/radiobutton_unchecked_disabled.svg create mode 100644 src/data/extra/themes/pure/right.svg create mode 100644 src/data/extra/themes/pure/right_disabled.svg create mode 100644 src/data/extra/themes/pure/sizegrip.svg create mode 100644 src/data/extra/themes/pure/text-editor.theme create mode 100644 src/data/extra/themes/pure/up.svg create mode 100644 src/data/extra/themes/pure/up_disabled.svg create mode 100644 src/data/extra/themes/pure/web.css diff --git a/src/core/mainconfig.cpp b/src/core/mainconfig.cpp index 3bfcabc3..551f8078 100644 --- a/src/core/mainconfig.cpp +++ b/src/core/mainconfig.cpp @@ -117,4 +117,5 @@ QString MainConfig::getVersion(const QJsonObject &p_jobj) void MainConfig::doVersionSpecificOverride() { // In a new version, we may want to change one value by force. + m_coreConfig->setTheme(QStringLiteral("pure")); } diff --git a/src/core/sessionconfig.cpp b/src/core/sessionconfig.cpp index d30d1f33..00690db8 100644 --- a/src/core/sessionconfig.cpp +++ b/src/core/sessionconfig.cpp @@ -282,5 +282,4 @@ void SessionConfig::doVersionSpecificOverride() { // In a new version, we may want to change one value by force. // SHOULD set the in memory variable only, or will override the notebook list. - m_systemTitleBarEnabled = true; } diff --git a/src/core/thememgr.cpp b/src/core/thememgr.cpp index 48a09c37..3a4d6b89 100644 --- a/src/core/thememgr.cpp +++ b/src/core/thememgr.cpp @@ -91,7 +91,7 @@ void ThemeMgr::loadCurrentTheme(const QString &p_themeName) } if (!m_currentTheme) { - const QString defaultTheme("native"); + const QString defaultTheme("pure"); qWarning() << "fall back to default theme" << defaultTheme; m_currentTheme.reset(loadTheme(findThemeFolder(defaultTheme))); } diff --git a/src/data/core/vnotex.json b/src/data/core/vnotex.json index dfc8f4c8..f04c00cb 100644 --- a/src/data/core/vnotex.json +++ b/src/data/core/vnotex.json @@ -6,7 +6,7 @@ "version" : "3.0.0-beta.5" }, "core" : { - "theme" : "moonlight", + "theme" : "pure", "locale" : "", "shortcuts" : { "FullScreen" : "F11", diff --git a/src/data/extra/extra.qrc b/src/data/extra/extra.qrc index c11a9d3e..887f41c7 100644 --- a/src/data/extra/extra.qrc +++ b/src/data/extra/extra.qrc @@ -104,6 +104,38 @@ themes/moonlight/up.svg themes/moonlight/up_disabled.svg themes/moonlight/web.css + themes/pure/arrow_dropdown.svg + themes/pure/arrow_dropdown_disabled.svg + themes/pure/branch_closed.svg + themes/pure/branch_open.svg + themes/pure/checkbox_checked.svg + themes/pure/checkbox_checked_disabled.svg + themes/pure/checkbox_unchecked.svg + themes/pure/checkbox_unchecked_disabled.svg + themes/pure/close.svg + themes/pure/close_grey.svg + themes/pure/cover.png + themes/pure/down.svg + themes/pure/down_disabled.svg + themes/pure/float.svg + themes/pure/highlight.css + themes/pure/interface.qss + themes/pure/left.svg + themes/pure/left_disabled.svg + themes/pure/menu_checkbox.svg + themes/pure/menu_radiobutton.svg + themes/pure/palette.json + themes/pure/radiobutton_checked.svg + themes/pure/radiobutton_checked_disabled.svg + themes/pure/radiobutton_unchecked.svg + themes/pure/radiobutton_unchecked_disabled.svg + themes/pure/right.svg + themes/pure/right_disabled.svg + themes/pure/sizegrip.svg + themes/pure/text-editor.theme + themes/pure/up.svg + themes/pure/up_disabled.svg + themes/pure/web.css syntax-highlighting/themes/markdown-default.theme syntax-highlighting/themes/markdown-breeze-dark.theme syntax-highlighting/themes/default.theme diff --git a/src/data/extra/themes/moonlight/highlight.css b/src/data/extra/themes/moonlight/highlight.css index 0e68bdbb..2ce2f611 100644 --- a/src/data/extra/themes/moonlight/highlight.css +++ b/src/data/extra/themes/moonlight/highlight.css @@ -213,7 +213,6 @@ div.code-toolbar > .toolbar span { color: #bbb; font-size: .8em; padding: 0 .5em; - background: #f5f2f0; background: rgba(224, 224, 224, 0.2); box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); border-radius: .5em; diff --git a/src/data/extra/themes/native/highlight.css b/src/data/extra/themes/native/highlight.css index 1ab14afd..a6dd3c32 100644 --- a/src/data/extra/themes/native/highlight.css +++ b/src/data/extra/themes/native/highlight.css @@ -231,7 +231,6 @@ div.code-toolbar > .toolbar span { color: #bbb; font-size: .8em; padding: 0 .5em; - background: #f5f2f0; background: rgba(224, 224, 224, 0.2); box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); border-radius: .5em; diff --git a/src/data/extra/themes/pure/arrow_dropdown.svg b/src/data/extra/themes/pure/arrow_dropdown.svg new file mode 100644 index 00000000..388cbe9d --- /dev/null +++ b/src/data/extra/themes/pure/arrow_dropdown.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/data/extra/themes/pure/arrow_dropdown_disabled.svg b/src/data/extra/themes/pure/arrow_dropdown_disabled.svg new file mode 100644 index 00000000..c1ef5c52 --- /dev/null +++ b/src/data/extra/themes/pure/arrow_dropdown_disabled.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/data/extra/themes/pure/branch_closed.svg b/src/data/extra/themes/pure/branch_closed.svg new file mode 100644 index 00000000..f44c49d0 --- /dev/null +++ b/src/data/extra/themes/pure/branch_closed.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/branch_open.svg b/src/data/extra/themes/pure/branch_open.svg new file mode 100644 index 00000000..e6b5decc --- /dev/null +++ b/src/data/extra/themes/pure/branch_open.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/checkbox_checked.svg b/src/data/extra/themes/pure/checkbox_checked.svg new file mode 100644 index 00000000..f489cd22 --- /dev/null +++ b/src/data/extra/themes/pure/checkbox_checked.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/pure/checkbox_checked_disabled.svg b/src/data/extra/themes/pure/checkbox_checked_disabled.svg new file mode 100644 index 00000000..78317037 --- /dev/null +++ b/src/data/extra/themes/pure/checkbox_checked_disabled.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/pure/checkbox_unchecked.svg b/src/data/extra/themes/pure/checkbox_unchecked.svg new file mode 100644 index 00000000..2fafd48f --- /dev/null +++ b/src/data/extra/themes/pure/checkbox_unchecked.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/pure/checkbox_unchecked_disabled.svg b/src/data/extra/themes/pure/checkbox_unchecked_disabled.svg new file mode 100644 index 00000000..307a9cb0 --- /dev/null +++ b/src/data/extra/themes/pure/checkbox_unchecked_disabled.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/pure/close.svg b/src/data/extra/themes/pure/close.svg new file mode 100644 index 00000000..b1173868 --- /dev/null +++ b/src/data/extra/themes/pure/close.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/data/extra/themes/pure/close_grey.svg b/src/data/extra/themes/pure/close_grey.svg new file mode 100644 index 00000000..24bddd4e --- /dev/null +++ b/src/data/extra/themes/pure/close_grey.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/data/extra/themes/pure/cover.png b/src/data/extra/themes/pure/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..cb91aae9d55c0b0f7631762cb36cd2ff863e2659 GIT binary patch literal 82595 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

96rn9ACtDm1pQU$&sL zrn(z@59__s*0o*Ppl9Ph+H5ZH66#T|+n%`)^I_?|?}5ktbevs7m#rBZt#iGFx_mIA z?}HTj+E!@hFJ}SW&K(E!QlkQPiAzg~Hi`---}f6`0%8sBQ>kf4EbC4sF83SF9Td{F ziL3vDA};C@T(k6RXgc?qD0s%$pHNE~qDf7nCKN}-vi_QvdD6)_|Ee2USSM0<=a^HV z8VDy?gkdLmN5EX!Z(houu30{L;F0U7nCyt_mub*)ik=%NY`a=$zIqvN`WVz0;0DUE z?|hK1M5-`jYi9i_)?LGEq1jFf>#(E{E`>4&`#uT~>hCf(oHZ+Viip_vnn^QcDnLCJ z%1qbk+&6ZUBbJRvJ|?J*?2(TZoMWfhtLt!{_jZflQu954No|b6W|GGWlr|x4sGDtTmd@k^ z7m=F7WB!#1fGzoJOTJjjW!{st?WXT)nz-$y4-~K1DE!hV<#%08wP^CzK8-nb$qK6a zNwLpBJ#Kg9EkpCvAC-4->+;r@ij)WK+nQ%g&PK^S<|;U}H7(R9lz(4D67rA%vX2TZnPJ?7H*pJoz4$X4v{JJp&6!(v4W&Lf8~OGIb7v zY$D#87LUgNvr)Q9cG@U4lw>xPWiz-PW9)@=epDB$v+7QA^&3EI2IVcL7$6Q!-9iu+?cZ&PRn`iZZCUkF}IQnxFvgnyWH`I4SMXFEozuRnM>&G*levV22 z(?afkfrbfri=i#JM%o*sDe8h0l!%>d*_qiUWFEbV6{<+Zd>&vwVc03*NMaV%)P+)g z#fDoLs*lbjL9X-V3Hz(5OPxCrH};57zjfJdKZF*StvOhm^;c{&Ueu2*LacqjXz;ku z!<9(_Jx(fKasT+E3lp}Ro|oWZwuAoGBj;cC&LShMS>Z&C_oOwvDPw9jCxg`Sc($xh zVEBsmx|p3v`HKDumo3Bj9T83TNQU=&_epVCHYt}_W|07tW^%K5q^(n;6sW$FWrG*N9=1OJmxm~Kvk)aWp<|NF zXtz9mi(#=fxPNrMAFi!y5)gqG5(?tbwHv>jm`Wapxb##wU3>0bLy+iJMN7MH}P^c-F;W9cieNL20j4- zFPy|uEjO450_s)oUPY+2g-itGOj3Tl(ioyS`itMkk8iVqXaB%pIVG+|h;Dysa9nd( zswlr@oqcl4MlItyT|?&ru5GPv+^mfyo@b`AZ^su=9UcCqbH8bHtX1-M?8^+DAN%^A zr#sN~t~h~i|EQ!Mn8pe8_VnP~CHo`WNwS!6@0HMW?+q0)-6NgL4Qx6I4gOxjG?LYU zv!5{cDyLr_$e~`gE|T2J@M_(H9~_|D%7`Vn7TBx(UJ$GRu43(~d-sDWodfn^jL_ZDbNTw-s6FvO8-`iX&Ix@=eGAVEi@C6jJy5U6XE16#2>(JDDrQd_ z2U#CXPSr^*v_oY4Ocq)P?q$5Yd1TgF={M9SR=w~^Z(WzSYpRs6ty`mBSz4aFMaLi<_{Vy3&_Nvjgkrp_b;&I$h?>=vfgA63s=H2VbOb}&r(+f0| zU;8JYr>x8SrjxngZw{PJ?JG2Tv+Nr0E^H*+DK00#$xcBt?75#fDgYgp9Ou-L+JsV!M+Wga~;k&?-Ql7^7Z6qq8k-7B0zY4gs|5wMC!g< zmc{!h0yM5#FW+!-3B03L)K7dFZN++lxPLe0AUfKrP0go;?DI}o%tL^xdkIH}V8~^Y@aS(g`!slySz8>g2 zcfn#RJNKtPwaK&-YcP82r4LX-1{l1qpDqp&>F~@L8Ijz!e5d)28389eVBOuCLs@%3 zLZTF^^6-IPzi-t?)2GET( zP#R<0rd!%1P8>Pttwq?|>y>>c{p{yxZ}w4gPFo*cVi()y8YDG_43#J@qi_c++w(GV zXkf64+U~CAObxgW*~D9XI+rS4Q#LfVyG@|m*(GZnV1;ILsv05RJ7G+eY1m!ZaG!X| zV8n9Pwg@Uwz{9toO`SKRtMX{sxyv8ci7Gbyt*tvapr}ls77W|pAaCjty4I)1h8D9w ze;R&>lwadT5vt0cp{|;GhE|isx(e58t@F~>$9pxOlwB89L5GO?n7g9_^&qMzb%dTn zq+6Pw-1LBvD*4g1Nd@FZ^-l1MFjO=`IDOznrPFc>YZ#kqxofHSE!|mB&$_a#2c(gw z^SZc^s?6)8kVm>Rq&?Nw9?X&;uO#8dh|;TaA9sx=DE6Z;MR5`0}_ zTcTYXdFvY@RDpgxi(aKS-M53s4VGTqojVk8ki$m&=e=Fu$4)m!iR#~H!Xlq)ne{V4 zru{-`q>gd%10|wei4SI-S7xNeUz3sWyzAkEIniuI`i#sQWykzmWS1nnzSz7w1m3PX zHpli{5Ks+Ed(ht4^|2wCSg%O3=)=E>P072LTQ;UCR-@G~I0XEHXGYslU4~^s-ym4T zGUc?M78Ocx6Vtum*-j0~D4K94{%A@&aTJZ_pR7}q;np*}QD`v?U}WOLnHzyGNl56Q zQ2hhLNAe%gKZY~tAn^VFOdjC1%J;Tfiycz}evBRm6buh`R++2ju|-*TOBHmFv{f^- za^=@HR>?qUpK^T093%Yd3-(qYy!*BT55nTMETSzQt++5 z97TBhW*ms$t(@md$sey*Hpl6=wW`HtP^RM!L{P23u|7%xwRYf;#Lua2`fG=d(!~Z? z!IonIV5$8y$oP!~Lz-dEFw^;D7_eE0T$ysPW0JtQl~z9nmpZlVG4u~ZXRML2#cV~U z;E{|CN-2Zo+8*|_I$N-u-3J0xeM;cdEMe`H;V$gG9gE$L@owwyo#%w39Xp7S^6{~R zs$(0cM{6}6XxJ&*%`8e;G&oK*`lU$qPo=lLQOszWfz@|wN+1tT?>jUY2I@9GF^gA4C>)kdX~S^|>4V}v{{Y;JObc7N?enh)Z!(%2T* zTZ~WMw0Lm;wn*f&X^-y^!!n#&S?gZ@qFLl3`~2b2B7SCJ#29D`d>mHn5{8oW|&%5@q%z?V#_Ya#cM&b{`Yu&k}hnlUr-iQZ7zS;J4zMWu! z@hy=_9UvX?nqXE;sy=qwuC2p3r`mvU{Ko6ShFLLCM;?aJ;&n_VuNsM*%LD2XlO_l| zw>r7y<~vuD?>$Ja4Z^FALASXWc$Y5qgt^sC!Ah&a|F3-n|gmA!Aspv3h15N7K^tW0{siJ54cJdpH#3z@E~3s-#cEeV>u zg-R7eB;1$6jE%#o*Qt{Ip#GN%cD$Ux)8A>PUr?sg0o4g?^>eVymA&^KvY11UFR#Rz z)0ER$FS8dT1#e0UrFnoqkTWm_%oshY%a~8os%NJyKMXXspxT|}!`_g>;VtM7Z zYcR(LezZF2;LaXqEA+!bWUlM6tm-&}gQ}n2veZMD;9a6hE`u?6#C34Fmv)e&wzT+4 z-%OGMkL|=bZhL&!GJ2Ye#Wtm~T1Hf|hTBB4UcdRIR0;2OeBx&6I{Lym`vW;x4%R2> zUT6sPiKf^J`Wr6T0N64|?F|lvFG$doW?Q*2T^j6RsE@`h^4s)c!XS#v%O>ptxIc!w z^abk8157x_(23KijV8-YPv)7ptx2y)>&|;31xv8KG#-s5Z*%lbXkCl0alw$0F?KHI z12>7uCqgGr^N|_$mHAfZJ2V0&-^LQe{~}VkT&KX8{IHeA!nDr^gMn|=Hc4#JaFQxK zL4iB>Sw-hPfUetF&qf&E@IXFRilv$2c3SfI3Ms$F(#*uY_O7anLGQ|>MSCuhhuZwG z<(?PL5p1V_vgKA1!u^3WB*_|c4%#19b}u;xwHs!K^9I^5_v`2;1+>6+(y!?$X|V=6 zCoI7e8<%p?JWpap>I0v9nFf|D%dYkXl3!|u`?t+g7i=6kaGOHSy0Twpq_J+*@LV+# z@3PexdMqY|4VLKdeTsrkQdKvTzlp>SZ-;MWxmt_n_WLIdRdkJ59Zj z_)-{+7k$YB<2_Q~RTr-|MhenA6RyD7sroRbaGUCLTP`I$|CygmOG!szX~3Kszh>u| z5^f`;=<;TJ{XX)d@~=#(uk)j|{XEq_;*E&=Z|8eJL-s{b9#i`>I$_9&qMGaxX+6;@ zAyaJTutNIa2LKt?p+?YBt3bIsrmN0`S|yzua3Z~c1q;R&zCZWyZ44y|Uj+GZM1!Cd zMmuq0@}NYf#tu7ikA{U=flhKu^rYE&YAuG;+9vU~TRrlVR+u!BtJK^pZ28_G7Ih`h>H=4VPKM&YZ2S-L9 z9d0Czu?ubbg-lj4QN7oTCZ7XtK$6IrSgeaIbIh561Aux4Y*5~&t#G@UIQwgI)IRLk zUAz)}giL6<3oHie0=A_kqH#l19>uIc3i2scU`l2P<7Y=*)5k@2ZFTwCbtqf~0^%E* zAPHpeOI8}TlRsKKAf3u#2gnpm@sM%kbP%HIe5bPc#A;jDs42vWLRPqsN?c1IDzWkd z?e9Da5w`jTd4aO_mHbT|$@hB!bIILG`d^O4?%k?}n>0<+6#39FY&y*_P==I@ zX92-6Y;^s;7J)|omQ#-3*OnP-@MU%#T|U17n{V91W#Yj{``n{u2eAd4%#`aVCbo6_ zre*RTGolgd9dC|6(z+s_iaplKJ0?5R_qFfGeo0MdH}KNU{&^vDvWnuXK&fQ`;%S{D z$^$~1hf)p*XiSZ>&#*VXDs*{e%`CI#jY8?u$LrSVI)EZ?;PR)V^R1xOHtz;v zXA;Go+sZ&M-y_6(!oPyrS?qJv(x=gj-2%B4|EgOtV8TQy>oC+1+cU_<)d#|;aB1(GR{sRIS-Wc;{YT%PTw_@ zmx}f_*}^$O7=21xEmWQ)rperamF}4WW&X zaHjA^q6@r+@}5%L-x|)gAB*76wQp8NJX06^#{u<$4q4u1!QoGUBwd3D{}gjkpz~n( z3kA+ovv56fHd zrsQ81v53`6ES%!Pj>$W3O=`HbIMCtHg(#%oqhNac->UuzxFmUU#Fz5et0q|$GqRXz zPjXUl^_-HR=i7qJ6aF%VGx~^jKQOnM+QT*w7*Cpge|Ih`k|-fAUcmZhJTqB6p}^RV zXaGh6zIc1!K5|mAMcm;%diP~-92l zmm4dtdpjyUIUM5Nd$pb%fjR+zlvbi@3^p$&<^-MCuGqQEXr*9-7mc)(Dn)L`dSeX3 ztA~0Nxt+@V1{~CVHC95JeevsiaoYiTJ9o~et%&*DlQV1-rGs-!vP<9KUk-D z=gXD|rdIGaxTz;N8oe9#<#g#cI7v9Hs7_&^s;{+b;kb6!O{T576fg@L|67_7)?F-@ z+LHd3VX1$Ul|O)RDnPTL+zb?Y0cK8Eg42wL$3$w;JEss0RPOm}1BlfV)qgIW+W)+8 z0NCgK(=bcB@ocMnPIDw}%GcsI5_0@`Tuej+s3s6E<@N15T`A~mG ztEs}vV=j1wTKvLi4*dS;)WLQszh|DG_G~=A%Lo<;Lj-i+73DaZa6~(W?3j}pOt58c}i6t%36(h}9d8*NM%8-7;`&p3dgoBT65TU6Sk22lvY4d)Z z*ZG_v<2tky+Ejb;NGQrNoXz){oD8N0HgabtNO_*{ez{)Y-Ey&nc^Na-wja2LUjD?F zL#G#z^pKd~U$^~v$BVztmG*pP4p}X}^)72=j;?FE%kRy|T4cGFZ-DHyI|V1Rk3&Wy z092I^*uv`baNHmc&&}nONioo^s`3s_tl+an|$U%n<9wvhbcA~ih@+5VoM z#I{~L@2EYrDNSgU<$MAdcN$GbsBA>scZ~Lv+Yw>UtP`70w!h3 zeJcg#&37{8>TZjZSEHJ*&j>?Z?Gerv#&B zpz^YJA=NM#+PhSLsehXy!J#9fyr?1krOSzdLWOa8u|es`g_eB12OsXXt@!)-&c}EH zMmQc1&2fgyb^SEOz9*SF1A#1Z`HXvBILjU}j>lcB1e?|BfJsS2cZ;Hd0&N$G<_5B&5mQn9|;YT^Zv3^4;wfTHbebKDoT>`b&VX}nZO}iQbJhB~X(9L9$61{w zjngmH-dXFI7MG@=qFT*_bM_B5H~7ys8EhrIddS{n_sW*<^kgH%GTfQNu0+!?lmBrE zOu;jh0YjGcq4jsg`f)plYwkrg@rfPDjsZFa9fAhMTAIX2wRiDu+T!;r=zEq0$5_L6z>OF{wqUM(0+?MVO4S3Qp$3p#yoA51VZLjzf%PSd-e zr<@mX<%DK7Kg4JIwKSIPKbr0+)vqSXa9OtLUm&Sbjz87SZo?6d16G5#*1opa?oMXg7?>fKQ_>HA6iN~Q&m z_!aWY{Wo~=M}wElT?!nxlQh!?Sx;Y6X;i0od3ZUxzO`zdA-KE<&@W*s)A?N|eq{6Q zZYHzXBNuHxO5Yz$eoh|9hz}`Awn*^+91{zPT>dnfIId0~jpOr@L%EIcmHPg+l;-t% zFf8xc=dn!Yg$oRFl`fwiZYNteV9N6`2e4n5r9LaCz=NyGzIBep2#?gTy7X_+oLy^9 zT}@cN_*7Z1^l595>PbEvSGHGYCI0Q?0$|>Z-O=HrmH$x!7S;~+idecBlXkiv4iP;M z6iE?-i(az1yDUp%zsTz|pY6ES>yz1O64vML>knso{eYIn~B0egJ z)}TTtT``U*^u@p%xz@_De5D7)_02X5%wjbGk7EZR#0CHQD`4^G_}8$>%<3UKNs%$! zW$b6B__f`UiTWc^}{OijmdZp*6& zvw_x(_U(%wOom#O-(~oj^9Mm$ZoZe_)t{;z6YvXUnAy?yTcdpF>%@4!&|!S>N&>3I zvVGCfY^aR&U03Z36*pI0&8Cxrj;~E+QybH20^pA3J?)Q~PCMHOUOW7kbk}=F!@m#) zEU#{%r1%j=e`TYBSyyqFF%BW*%K-lmr|rf^lBNR4Rhbo^-d3JZ|61LeUvra}i(ZE( zI_a~s8QouHhWslnr@I7+qCOC|S;c5^<^E)N)IrX5`Qx7);4;AWeHP(e43)v6zSI@GDM_y1iMc z`P0;w5ov>lbR{2n={Iyi8B9L_lUXLN>$Iq+V}0+vmR;fdf+*<@Ry$d~YM-+~k&J}C zb|F>yixxn=kG*y>nsd{6XLijT+3KPLzowv!?)}Jmr1hVDlFU34! z;n8|bq_Hnj*TNV5B~1z+y^xTRko%moF#YGUhM0iRYtC*eWF-1pu9$J16kEhng7vbV zK+b0+r}d9SD-+=J+93$2;s`G?Oe&VL?j==Gz$`+}yjy9cs>hq(xnf{aHJ@5kM+->Wk`E_IfJrl28l2j(csn zW_HikC&_|v8ngjf>~&%ZnOaB>n}4NSmg>>; zkZ2zP%Q1y0>OIVz9T|Iv9?;I!`@wrae|Gf%xYp$hId5a$qt$SF9y&`$M1C*%L+76o zgDL)aA%IERV9PSe+*pb-p)_q0TPopnN==`{_w<;%`iyVOCm=r@yc^c;#$0MUd^?pe z1M*Ikc!RIPYwdV6;CfB``(EJ?p6nWhe=<#NC@_|6fO=%2q*`-uZsZo-+I!xGM7rho z{AoYmv;j7*T(K8mm2WSl{R%uMRFmY^sXTX`Ie;`6NWbRv$S*)$s<HZt=l2}m zH>HVszOCM^{3dRaM;*Z8=RR%HXro^F@af!jyN&m??c*s!zbh~yg+rj=gaH>c!_eS* zTIP2&Rz)zw!{3fQm=@LQ9eNsQ0<=~VAdlpupUMVOwbJqE!G}uZbi-xjCZLl=-Yt^PTD^mHn+`?dP{ju4e_KOlW=he#LDC zh`P)ujBnQ7Nfi{UP%&*@R1ZPG#rDtBJfe`FES(frhouhK|Cs~JM!;sb=kPnl%C>rJ zN|9TYZlz_m{c6Htl)+p0FO7R#3@MgntP&Jjg_BC>NHMXte=t9uVt|b+Ua&n0l2k=1 zh151{fbi5DzMRniv>VhV!-QE#FycvxB8mp5$6BikV17Gco_F=0fYSeD-yfy0{~oa_Qaex2Yt907ut)gVPXL`|ZEs;WQ6EU(vovJFUE?q^l2XuBa4$NUaz3FuL3j z9R)XY2x+X5A3>FBp1z|j4*(&9@KkR%^QV=1KQr|&2>zO+d3zxW_9LpX&ffw#{R)1x zHjHabRVZx=sL`Iub0V13}eb$etSTs(qmdh9h>*~ju?n@##T=(;cy zPP(ulJFw)f=Gt}w$;k~Qx-B}$m(eQqxW{!i4t?fxK zzNY$4aou_=-D<$Li=X?K`1RlM{PGAwqs8|mN7_3U-?tR%O*8IhrMsPsZXck%SO>pt zneO!9(tcT%f^;)}w`w_li9c?XFW*?_zj=#&Vh@PTR#Ktxrgi?>9|l;t0rnnyClw6L z0#C8t8_(~F!?qP;BNqy@?$v0`9KEtk&1lv#5B-iky-;<-(_1tMM8k4L5RAq4W5$wa z+ab~$(4Nkw2(E)Z-I*ang*r3n^`vx+@64UrUH&QQm(Ihi>~b*eUv-!o27>3nkr5sIhLwlu8{2;THz?Bp~p((+Xz^CmKuI&Wi z3`$Lq8dC%^$avT@R^LJI0eG<|X7sr7oINMH4#+=CO${B)-9V2cSH7f^d18w&HDcN~ zymL=X8=)i8a^L92mfGv9QIJ(=7xArNd2pIo&xbUQVx0Sn>09yqt0QKD5jD6cGnhiI zx^Sg?z%o%4mlVoomveHws8CFXZpLV`>NoplP{p+7KG~QqVUx%<&Iu7Zd^*rbWB0UpC?#|;$RxE)9gmrNlrzwd9lgH-ErYRm0YmiNVx;8`vzxfZY83J_QXvY2sAhdCM{M0) z?_%j(_8K_>ufbV=1p=pER^TThE1D!+%Vdlo!Rbo~|*Dd3)Pf60FENp{$nL^!N#N4<<1;qZ;o zf4hXB-OySthFJeB5B0*-m^}i>bYh#EX*kdR5Gquh^PORq$fkC)f^(?NexFE|rx`hm z{SrMC57_m*%G{}}>!yldPPzd8PFubUrH&0Lu2t=8K~wIA&}Hv0WGyO81UYcD{EwO~ zcdxVL>(oFBYz836g_5w83NuGh>qchQ>v+R~3%HtfQ*W1{0TCu#p?$l}kT*r=@NZTh zhqmMX*3r#JK9PPa$pw!P65D)e(I0nbDju-^y4|S*Dc%15KyLm+^6k$i^nLDS@Yund z18UMqJ{|85z6x@iPEaG|q8u^D%GNnOq{yQmhMw=+*ueGpz~K}d1AVtP?C``bqM6Yj zZ!54qzIpMW554{@h?V_Sy=mwgPDi6tnp^AE_PB3%0(mz$nc;)P`IS3E5xVB3RE7EB zaV=k?U({JCVbW*)iCe2;?dd~LaCCCFd7a=OGJ20`l>u=NI&&h=`l_dO8$MP5K0IHw z;qoopdl#C#${?V+vC+Qv@z*uh2{5QgrB`&w3#jR}^tBGRmh4bbeJyv764!cvbh+^^ znvrd*DzA%@C2`F5N)l4?dN_I!^v$|qbe_^qAG&pZ=M@>5Xs^>vsfBIH(@SzaeV)HX z?K&Tor3X0hnA2Jtr?x=n|FW$a04IXKH~A z%MbWnM`mPoC9wvm1lQk5?CGzb%{UUu4no%qv~KDcX2RcZ7$F|*LdO&C^R9M@)3^-z znG22k$z&aGxD08g_L$H$s8EfQS2pySmarV|d{`f@+t~H3^?|qI9h-!39CnZ42@-jG z9+0QW$_V@&79CN~4-U zwlp>hDk82Rn^92#g@CL|gkURftRk`pP&QeTV1%#+6uL!aQxU=rN&{kmAP@op0yH8Z ztLzX$WDSsnE$ks-658&bIp@7I^WL2KHT5IsQ>dQy0`BAzTndp_`9T)ezwjh zV;d6kO%3mw>@c`3^vvsmfR0rBFFtYhvdbTBO4emHwjS3SZn!rKuZ-Arb`Z;g7vJys zR+Y;p5lo$raOtQgE_UM#Srl)(NaBa|&k0DCerrkMR}bnkKDV`$ z8Ty5_+!GV2s@;dX8S<$LA`J6-Y*q!u_jAhZJOJ})@#c@$r2`(;sSopic^MFMisAA0 z_a|KdqpCg_(q7=K`iVprjJdrxZy$ z`#d+wJ2IFP8UI$a)u#tI@L`Vq0rI;3G1Ot{C&h=A`XY?sg6E(#Xj&2;oCP4mqrijH(<7;`5>f#m=tpsMKy1Rr&H?~x zF71Ly3~xg{nV$UbuRX1?1zb0*hm+I)Pi&JPhOchiMYx~e8slz`(e%=EmkPMmYjONm zRCKia+;Ek%T!i#?vp`<$o8D_eUH5 z19-iE35$+`gCc9gE<(UZuP&!DO7x z0z~Oyhf(h7uy#hTu|3kx*6*oH#ocIH4ft|Ce*^h-Cl3_c7Lhv{&7s(#y1=rW6w2liFmX!?T4Utq>0ciYN$-=7l&bb7(f7@a+_a1Cwv8ql>W{OPp z&$iBbXm<6YpepaTm*w3TyogEHflv>N=`i#qrReHh3gIrWyA#YZ@mKejt>3{e%(Af` zlFqBBFat0=J7bM24>XRF^V);gM!RV+m2IE*_edT>n{L*JSBDOYPaI1bc^MA_3Gzha zRmyu?;uBZ-dSUHqhQhXC^_|YEU2|!|6jEwRz-#vLx5Up31{yq@MY@mhMy>lR?_&A~ zKWzo_{Omqs;r*b)90-fPW^BJAnyA6$`IH?xw1)>VzU0(wYNK)zbTRM~Y`VWda?Zmj z&MYC2RbYl1;*r?S2F_Zy14SpM_W`TtB(wuA57 zf1%ftJ-j>m-(lDLQxjPKS1?arSGeW>VsrnKmOps2@E)^g(mNe*F#N6vE=B1Bec~xR zaC)p9C?O`#fTPFlw$|EuG6U!A2A7Ue#>GU6{JdyoH-U1ls0FT7=x>s+h4PEI8#ndj*GHmIUqM zQ=wA|&ia(^pnA}M%PpbTwRRp>GTF;p^xI~xF79HAKP_M~e|i`inM)dAl8aKuR#p-4 zN9_uSUt@byLqPrk$NCiG9S3cO8EL_(6fP8gmNv~t&jFIiN+l0}M{W{Zhb*cAL(9Jn z4&()x!MY9NZ|nJ>9-2tmPVAL z?$~KD*P!%}V3#W3`Y{C?tfQ|YPR6xnvu7i(xD_zTmU2Orrk+FvuQfR5_A*|ld0I(W z0{!;8rc$_^23^I@iqw4r)O(ZE>Y;X@Tn3J_#UL9$l(I;xSxAp-L>m0Apz1JJt8rf3 z;ASYl>HZb^aRXY0gJ6R=^4RtJ#_{)`D<@u6mSdzy-9LtCJR~Lhptk0KaNW*LLC^P3 zXZycj)aVbra57w~yTTm!t%(1mV8fd&I;$!GyK&FQ#}`MiF>j{C_?!E%X%@!!dLUr- zOdPq7y)?)MLeO3nqi%x6i559dY6(gqsTDR9Z*BVeZT!hk>3zf)Fm~PaF`fEaC*E`} zcC{al1zsBL>s8Ink8+omnI?2o+9feo#(o^jk#)_-Ax)1e)!~#upAw{jmhcSAGCJ!S z#W&I$Wpk-PP@)t*O!3+9bs**XOf#?cazK?=-=qsp`@09nj9j42Sh*&CM*4g}?eN}q ziX3*j!l7y)IM4rp8VOE|F^ls(h}N>ilb#G<`U6b!&nRmk55MS z#|{Ga3y9SRT!`O*^wGt{nJxQ`8-=DP#LiF8DwO;Jv0htW zTBTmk8W38$iYPi(iIyK(zrw#?DPc7&D#!lSNEy(7JRhsVTDw6SbL^e<4cRl;C>1uB z;6FOCyn5M3u0TI1jd0P;&QQPyHeuUczA*^{6$@8CkAeEO3H_uj@kBzMbUeMe1xe9L zIO^nnnp%!)`a}taAWG(XrBys<0%aY=Y%CLS2Z7o*y1Vt-We4LG1$>rQ-`d8=t5dzS zx9nbN+E#R@gfL6s(PR1ktb#UI#tcB;1?;helAUw4IJ~}M&xUBO<+ZMH4&d%a7-&nR zwpYdqhL6+luiC-V%825O#nzA)Qsl8P!qr6^_HpIqd#9do*f=3XQxJF~pR%geP2?lQ z@Ge7p7Q$NCjM7c)rmdadrP;7|;gMfu@fa~}5^`T+1Y^$WOpIUiekq^ftWvm)rr47g zLeu$+*l-XfXL^-t)O_pl1?Cm6`vk`PFO{yqf&u|CBvwjQ?7hm#xfGBR;P_={rJFXw z&wP!(a1NBMqxY1XRdy5xTQMsalk>jk5c^6tzpBRw04xY|I2n7CAtYps^!vW8cQ-a( zN^@{Q4}eo$12G617O}+iN{-COHVaO^uVjy%Zz{!dzGcFYiz%A}oP#p^h}U+68ugt~ zkuR=YsCEp$v;tQ&qqzE=5;qtm7!UjP2!lnVW=OY5ZZ$3K)HeTM?Fi}wILDNQ8vqOg zO9SlM17T1vx^EuPzvXM{lpz%P;MllUp<@LmqA{@Hcc=>K!&98u{5f=X2;c2eeFjyJ zxdIKS#B~s>7Oj%gOX2J}&^ow6qLEA#_u1ow3bA~hLRDoCA8bc|#8PrbYw|uZ=H=J9 z2@sb872OlKWL9^Gmo?7|?w^Ywy^~=GIo#tNzn6EYB?R7^oa5Nq`J>V|BP3bl7sQ}C z9!-?%eGgVlb&|eG>;jJg_nRjSyc1V@1Tk!)Yh)ZYC0|%0ZN;`A*;k5XWIfIA(X31` z&Ua=LBGe_P9-bW%E1_QyL%>XXUeWhy_SpLMx|rp^v0Y~9N$9>_dk>QD;n-=0&HzcD zUSC5W%l2j@c-~eW`<-wNkH9*Y56<>5it2>VB}*snE^Yn#O}lA1(y08FVxun%ilqBy z1EZkmRIIxJNlG%pzR6152W51FT0SC849zT3^(?bQBH`MD!*|RxDcOUtvooK3yb(Bf z*I2$4YvsEuG{<|qID^gBY&irsmZTPc1`vv92)7ZCrrPPP>?;oG3!YmKFUrGns@wBO z?bZ$`-dSf!-935M&7_ZV9baT)%KRo|xTP~2T3jz=7)Ya;Ev~dB!T7cGRI@@?7tSP( zxC6`R(C03Ju%6+)T(H=<)a>CNp)!G&O(ayNY3pU1#{v07#g3NT5eoYr(Hon5dl$!C z|GoY``$Ib#dJd4?(<&ikDRhkbReX6{Nvg{}m%N-`gVRCW(N_ao^{A>@_-7&j&>8r1 zm%YKVzB*X3&%!$^sd&TRR@P-^O#!mvczAf`Jl=E ztr|%e(r_j6Ysmz05ZqBP#vP;f_81#>PilxdyL;P*!zi|wmFDu4J>&?^sw`wJwED6W z5LR;j*XtJa9-#t?2+M%{E|PdE)3Yd!f{;?Q7yfdc&Fpaz(sWT$3A2e>4%JS5AJ;CH(%jY|SMuM-&P*&qH9y#EazU2!5<5^u*^$=?d! ziynxZ0wb~pvGBoF>e*t|L8K>|KX>-7bsr1`>PD_;&8f%D?ChL@P{ z$pcQJyO?Va0J}R)HSR471$hglm7hT170jzUa^TY4TEb^G&@FYV%c9^rHUNX7H{nqq zMqW%k)v0B~E!4j(FI(?o$m!B@^y&rey#tq48g3;nL!INl1sg1j&W!(RaD?6?826dx zCf|>?>88o9Fw?y2ok=Nfw>}}IXrACg;h$pLDC$%xEpT; zP&qbhLChO}K)jDi?#!?|;yv%vfx66m3a|aNu{J}>Emb9@66=TK%vW05QfxqX#jtl+ zgBb(ezocl>LyPNJPL>tK7scJhGl#T4eC#QB)Cm!})?lNhdSTs4<($}|#NP5j{PaS6 z4$6W%Nl{Yzsq4H+@|bxu^}db{Ub&J2L+E4!4clF3W2#0thz|OT`@NpmE3Sz=$YY$k z6;_J&T)lG`XN8w`v**LyuOnCZ0<`_+b&u-=$!*+iUR*3vP*iM+lGJqC;;>=8v!oKY zSjnIG^7K|`$sROY)Yfba?1QG;i8YG7CM9DBUrlU-i$mM3H4`YDE+Z^;ZbBF7|IPf_5m+*5sDfhgJ$_-Bmk#Q zPL3kJ*X$Um3dAR$=RE`bQ9AS_%GhgTF%tu>={T%$%Egn|s+A;Z*tTK4U1drI&<&MM z!2IR0Rz?Aasl;zH1eOjbdcxKu{=K;bS51F@%kfD;sdX0VYFgn98+wfxG=Bw z$#jT)m7K+F!qar^^EUJZfYU78IgwRMY;;|y+-v~D(e~YMyAWNihZ18&TGvG2<>;8M z{H`WKup0I3_MgrScyVXshRE^Dufn-NJe=;L%1Q-&eSO5(7vX{Gkm}^4Kl;|8h*q+X zhg2Y&CR>x8o8uLW+`7&Vls(E^T3sb|_VwL(_GeDy(%!$NBJfA0>lj96fS%AiRjm?J{+ViE#16(xpL;&pIUxX@*&&cH;Us zJoW1zN(weOPi{m;iVzlPQarx~uVlyyCxy5=X{DOlBxyMM3~pR7J@$GXap_acx*q@2iT339J-Nu6Zdxs$Q_-qjXT;@?40&WhPSfM6h({nh`;qrd-afd~kW*pp z)x74fE~#Nhl!{`~1BTS@evB{+&s^R`J~g#Lzt-1!wUCo!V5@HW>h*fj+p$|`hZt27gl#d}!M^e8&H-JBGS*ODI`H_}=<_cn?6B8}oKI{v^!)*=Cw2j*m<570^+)&wqPG6vN z2JaMP4V)1@S#3qH-9g&0zhsi8F8Ay28O@zO1LcY217*QJ(6h8kvvaT#;kSeDQXj~_w8zQOU>2($7 zsjKPn?7GkoCx@k^KtoJp4T5Y%TMRLN?kE5J>~*djsZUH;l$x*KTZGB8%G2PI+a3=3(RPQ>_3_5F zjJLP53M=lxj-rwi}weX&&~Cj=m3KFZY?s9iba9cj_xO zO*EsOxeBAmpXuU1nds`&m2KEbp(sge!rtbj2U~A!Y!s<_`y}l9F&4h5%fh2X)@%iG zt;-mUtJiOE>3TGH@oJw~Ye!Yc7LofIuzZf281qLd+^cqVb)A}y7bjQ;Ju8U6_N*Xg zBm2+rs|?kp5!a+tOg(tFV(L3g(F2^dSvugR@zU6j3FE`aoHxRpNkej->^Gh6QO5yDeIMa2OfZz~w3K;Kk;6|iNiVF8X8z__LSgy0)4EnnDBXo4T`1odo_{%vtN;>?S`{)~^4J3c{42%%# zM81;Fhh$(d!G8N)nA`bR#>ZNggLE~|7fK2upaUniM5Ma<_kOy(i^-d$TY5&<3VwD7 F{SP~_kLmyb literal 0 HcmV?d00001 diff --git a/src/data/extra/themes/pure/down.svg b/src/data/extra/themes/pure/down.svg new file mode 100644 index 00000000..00ca93ed --- /dev/null +++ b/src/data/extra/themes/pure/down.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/down_disabled.svg b/src/data/extra/themes/pure/down_disabled.svg new file mode 100644 index 00000000..1863b6ae --- /dev/null +++ b/src/data/extra/themes/pure/down_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/float.svg b/src/data/extra/themes/pure/float.svg new file mode 100644 index 00000000..4a3ad0fb --- /dev/null +++ b/src/data/extra/themes/pure/float.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/pure/highlight.css b/src/data/extra/themes/pure/highlight.css new file mode 100644 index 00000000..8030a50b --- /dev/null +++ b/src/data/extra/themes/pure/highlight.css @@ -0,0 +1,245 @@ +/* PrismJS 1.21.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apl+applescript+aql+arduino+arff+asciidoc+aspnet+asm6502+autohotkey+autoit+bash+basic+batch+bbcode+bison+bnf+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cil+clojure+cmake+coffeescript+concurnas+csp+crystal+css-extras+cypher+d+dart+dax+dhall+diff+django+dns-zone-file+docker+ebnf+editorconfig+eiffel+ejs+elixir+elm+etlua+erb+erlang+excel-formula+fsharp+factor+firestore-security-rules+flow+fortran+ftl+gml+gcode+gdscript+gedcom+gherkin+git+glsl+go+graphql+groovy+haml+handlebars+haskell+haxe+hcl+hlsl+http+hpkp+hsts+ichigojam+icon+ignore+inform7+ini+io+j+java+javadoc+javadoclike+javastacktrace+jolie+jq+jsdoc+js-extras+json+json5+jsonp+jsstacktrace+js-templates+julia+keyman+kotlin+latex+latte+less+lilypond+liquid+lisp+livescript+llvm+lolcode+lua+makefile+markdown+markup-templating+matlab+mel+mizar+mongodb+monkey+moonscript+n1ql+n4js+nand2tetris-hdl+naniscript+nasm+neon+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+pascaligo+pcaxis+peoplecode+perl+php+phpdoc+php-extras+plsql+powerquery+powershell+processing+prolog+properties+protobuf+pug+puppet+pure+purebasic+python+q+qml+qore+r+racket+jsx+tsx+reason+regex+renpy+rest+rip+roboconf+robotframework+ruby+rust+sas+sass+scss+scala+scheme+shell-session+smali+smalltalk+smarty+solidity+solution-file+soy+sparql+splunk-spl+sqf+sql+stan+iecst+stylus+swift+t4-templating+t4-cs+t4-vb+tap+tcl+tt2+textile+toml+turtle+twig+typescript+typoscript+unrealscript+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+warpscript+wasm+wiki+xeora+xml-doc+xojo+xquery+yaml+yang+zig&plugins=line-numbers+toolbar+copy-to-clipboard+filter-highlight-all */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #ede8e4; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.token.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +pre[class*="language-"].line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; +} + +pre[class*="language-"].line-numbers > code { + position: relative; + white-space: inherit; +} + +.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; /* works for line-numbers below 1000 lines */ + letter-spacing: -1px; + border-right: 1px solid #999; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + +} + + .line-numbers-rows > span { + display: block; + counter-increment: linenumber; + } + + .line-numbers-rows > span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; + } + +div.code-toolbar { + position: relative; +} + +div.code-toolbar > .toolbar { + position: absolute; + top: .3em; + right: .2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; +} + +div.code-toolbar:hover > .toolbar { + opacity: 1; +} + +/* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ +div.code-toolbar:focus-within > .toolbar { + opacity: 1; +} + +div.code-toolbar > .toolbar .toolbar-item { + display: inline-block; +} + +div.code-toolbar > .toolbar a { + cursor: pointer; +} + +div.code-toolbar > .toolbar button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; +} + +div.code-toolbar > .toolbar a, +div.code-toolbar > .toolbar button, +div.code-toolbar > .toolbar span { + color: #bbb; + font-size: .8em; + padding: 0 .5em; + background: rgba(224, 224, 224, 0.2); + box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); + border-radius: .5em; +} + +div.code-toolbar > .toolbar a:hover, +div.code-toolbar > .toolbar a:focus, +div.code-toolbar > .toolbar button:hover, +div.code-toolbar > .toolbar button:focus, +div.code-toolbar > .toolbar span:hover, +div.code-toolbar > .toolbar span:focus { + color: inherit; + text-decoration: none; +} + diff --git a/src/data/extra/themes/pure/interface.qss b/src/data/extra/themes/pure/interface.qss new file mode 100644 index 00000000..52f0c804 --- /dev/null +++ b/src/data/extra/themes/pure/interface.qss @@ -0,0 +1,1096 @@ +/* Qt Style Sheets file + * Please refer to https://doc.qt.io/qt-5.12/stylesheet-reference.html + * for detailed inforamtion. + * **Notice** that selectors using base class and child class are considered to have the + * same specificity and the rule that appears last takes precedence. + * VNote specific syntax: + * - @widgets#toolbox#title#border: reference to a color defined in palette.ini; + * - $2px: 2 will be scaled by multiplying current display scaled factor. + */ + +QWidget { + color: @widgets#qwidget#fg; + background-color: @widgets#qwidget#bg; + font-family: "冬青黑体", "YaHei Consolas Hybrid", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", "Dengxian", "等线体", "STXihei", "华文细黑", "Liberation Sans", "Droid Sans", "NSimSun", "新宋体", "SimSun", "宋体", "Helvetica", "sans-serif", "Tahoma", "Arial", "Verdana", "Geneva", "Georgia", "Times New Roman"; +} + +QWidget[DialogCentralWidget="true"] { + border: none; +} + +/* All widgets */ +*[State="info"] { + border: 2px solid @widgets#qwidget#info#border; +} + +*[State="warning"] { + border: 2px solid @widgets#qwidget#warning#border; +} + +*[State="error"] { + border: 2px solid @widgets#qwidget#error#border; +} + +/* QAbstractScrollArea */ +QAbstractScrollArea { + border: 1px solid @widgets#qabstractscrollarea#border; +} + +QAbstractScrollArea::corner { + background-color: @widgets#qabstractscrollarea#corner#bg; + border: none; +} + +/* ToolBox */ +vnotex--ToolBox QWidget[ToolBoxTitle="true"] { + border-bottom: 2px solid @widgets#toolbox#title#border; + margin: 0px; + padding: 0px; +} + +vnotex--ToolBox QToolButton[ToolBoxTitleButton="true"] { + padding: 4px 10px 4px 4px; + margin: 0px; + border: none; +} + +vnotex--ToolBox QToolButton[ToolBoxTitleButton="true"]:checked { + font-weight: bold; + /* Reverse */ + color: @widgets#toolbox#title#button#active#fg; + background-color: @widgets#toolbox#title#button#active#bg; +} + +/* TitleBar */ +/* The height should be large enough regarding to the action buttons. */ +vnotex--TitleBar QLabel[TitleBarTitle="true"] { + padding: 5px 1px; + margin: 0px; +} + +/* QDockWidget */ +QDockWidget { + color: @widgets#qdockwidget#fg; + background-color: @widgets#qdockwidget#bg; + titlebar-close-icon: url(close.svg); + titlebar-normal-icon: url(float.svg); +} + +QDockWidget::Title { + background-color: @widgets#qdockwidget#title#bg; + text-align: center left; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: none; + icon-size: 16px; + width: 16px; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background-color: @widgets#qdockwidget#title#button#hover#bg; +} + +QDockWidget::close-button { + subcontrol-position: top right; + subcontrol-origin: margin; + position: absolute; + top: 0px; right: 0px; bottom: 0px; +} + +QDockWidget::float-button { + subcontrol-position: top right; + subcontrol-origin: margin; + position: absolute; + top: 0px; right: 18px; bottom: 0px; +} + +/* NotebookSelector */ +vnotex--NotebookSelector { + icon-size: 20px; +} + +vnotex--NotebookSelector QAbstractItemView::item { + padding: 5px, 2px, 5px, 2px; +} + +QToolTip +{ + border: none; + color: @widgets#qtooltip#fg; + background-color: @widgets#qtooltip#bg; +} + +/* QMainWindow */ +QMainWindow { + color: @widgets#qmainwindow#fg; + background-color: @widgets#qmainwindow#bg; +} + +QMainWindow::separator { + /* For vertical */ + width: 1px; + /* For horizontal */ + height: 1px; + background-color: @widgets#qmainwindow#separator#bg; +} + +/* QToolBar */ +QToolBar { + border: none; + background-color: @widgets#qtoolbar#bg; +} + +QToolBar::separator { + width: 1px; + height: 1px; + border: none; + background-color: @widgets#qtoolbar#separator#bg; +} + +QToolBarExtension { + background-color: @widgets#qtoolbar#extension#bg; +} + +/* QToolButton */ +/* Only for MenuButtonPopup */ +QToolButton[popupMode="1"] { + /* Make way for the popup button */ + padding-right: 16px; /* make way for the popup button */ +} + +/* Must put after popupMode related styles */ +QToolButton[ActionToolButton="true"] { + border: none; +} + +QToolButton[ActionToolButton="true"]::menu-indicator { + image: none; +} + +QToolButton[NoMenuIndicator="true"]::menu-indicator { + image: none; +} + +/* QPushButton, QToolButton */ +QToolButton { + border: none; + color: @widgets#qtoolbutton#fg; + background-color: @widgets#qtoolbutton#bg; + margin: 1px 3px 1px 3px; + padding: 0px; +} + +QToolButton:checked { + color: @widgets#qtoolbutton#checked#fg; + background-color: @widgets#qtoolbutton#checked#bg; +} + +QToolButton:hover { + border:none; + color: @widgets#qtoolbutton#hover#fg; + background-color: @widgets#qtoolbutton#hover#bg; +} + +QToolButton:pressed { + color: @widgets#qtoolbutton#pressed#fg; + background-color: @widgets#qtoolbutton#pressed#bg; +} + +/* the subcontrols below are used only in the MenuButtonPopup mode */ +QToolButton::menu-button { + border: none; + width: 16px; +} + +QToolButton::menu-arrow { + image: url(arrow_dropdown.svg); + width: 16px; + height: 16px; +} + +QPushButton[DangerButton="true"]:hover, QToolButton[DangerButton="true"]:hover { + color: @widgets#qwidget#danger#fg; + background-color: @widgets#qwidget#danger#bg; + border: none; +} + +/* QPushButton */ +QPushButton { + color: @widgets#qpushbutton#fg; + background-color: @widgets#qpushbutton#bg; + border: 1px solid @widgets#qpushbutton#border; + padding: 3px; + min-width: 80px; +} + +QPushButton:default { + border: 1px solid @widgets#qpushbutton#default#border; +} + +QPushButton:focus { + color: @widgets#qpushbutton#focus#fg; + background-color: @widgets#qpushbutton#focus#bg; +} + +QPushButton:checked { + color: @widgets#qpushbutton#checked#fg; + background-color: @widgets#qpushbutton#checked#bg; +} + +QPushButton:flat { + border: none; +} + +QPushButton:hover { + color: @widgets#qpushbutton#hover#fg; + background-color: @widgets#qpushbutton#hover#bg; +} + +QPushButton:pressed { + color: @widgets#qpushbutton#pressed#fg; + background-color: @widgets#qpushbutton#pressed#bg; +} + +QPushButton:disabled { + color: @widgets#qpushbutton#disabled#fg; + background-color: @widgets#qpushbutton#disabled#bg; +} + +QPushButton::menu-indicator { + image: url(arrow_dropdown.svg); + width: 16px; + height: 16px; +} + +/* QMenu */ +QMenu { + color: @widgets#qmenu#fg; + background-color: @widgets#qmenu#bg; + border: 2px solid @widgets#qmenu#border; +} + +QMenu::icon { + margin: 5px; +} + +QMenu::item { + padding: 5px 30px 5px 30px; + border: 1px solid transparent; +} + +QMenu::item:selected { + color: @widgets#qmenu#item#selected#fg; + background-color: @widgets#qmenu#item#selected#bg; +} + +QMenu::item:disabled { + color: @widgets#qmenu#item#disabled#fg; +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + border: 2px solid @widgets#qmenu#fg; +} + +QMenu::separator { + height: 1px; + background-color: @widgets#qmenu#separator#bg; + margin-left: 10px; + margin-right: 5px; +} + +QMenu::indicator { + width: 20px; + height: 20px; +} + +QMenu::indicator:non-exclusive:unchecked { + image: none; +} + +QMenu::indicator:non-exclusive:checked { + image: url(menu_checkbox.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: none; +} + +QMenu::indicator:exclusive:checked { + image: url(menu_radiobutton.svg); +} +/* End QMenu */ + +QDialog { + color: @widgets#qdialog#fg; + background-color: @widgets#qdialog#bg +} + +/* DrapDropAreaIndicator */ +vnotex--DragDropAreaIndicator { + border: 2px dashed @widgets#dragdropareaindicator#border; + margin: 2px; + max-height: 200px; +} + +/* QComboBox */ +QComboBox { + padding: 3px; + color: @widgets#qcombobox#fg; + background-color: @widgets#qcombobox#bg; + border: 1px solid @widgets#qcombobox#border; +} + +QComboBox:focus, QComboBox:on { + background-color: @widgets#qcombobox#focus#bg; + border: 2px solid @widgets#qcombobox#focus#border; +} + +QComboBox:hover { + background-color: @widgets#qcombobox#hover#bg; + border: 2px solid @widgets#qcombobox#hover#border; +} + +QComboBox:disabled { + color: @widgets#qcombobox#disabled#fg; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 20px; + border: none; + background-color: transparent; +} + +QComboBox::down-arrow { + image: url(arrow_dropdown.svg); + width: 20px; + height: 20px; +} + +QComboBox::down-arrow:disabled { + image: url(arrow_dropdown_disabled.svg); + width: 20px; + height: 20px; +} + +QComboBox QAbstractItemView { + padding: 2px; + border: 1px solid @widgets#qcombobox#view#border; + background-color: @widgets#qcombobox#view#bg; + selection-color: @widgets#qcombobox#view#selection#fg; + selection-background-color: @widgets#qcombobox#view#selection#bg; +} + +QComboBox QAbstractItemView::item { + background-color: transparent; + padding: 3px; +} + +QComboBox QAbstractItemView::item:hover { + color: @widgets#qcombobox#item#hover#fg; + background-color: @widgets#qcombobox#item#hover#bg; +} + +/* QLabel */ +QLabel { + border: none; + color: @widgets#qlabel#fg; + background-color: transparent; +} + +vnotex--DragDropAreaIndicator QLabel { + color: @widgets#dragdropareaindicator#fg; + font-size: 12pt; + font-weight: bold; +} + +/* QLineEdit */ +QLineEdit { + border: 1px solid @widgets#qlineedit#border; + padding: 3px; + color: @widgets#qlineedit#fg; + background-color: @widgets#qlineedit#bg; + selection-color: @widgets#qlineedit#selection#fg; + selection-background-color: @widgets#qlineedit#selection#bg; +} + +QLineEdit:focus { + border: 2px solid @widgets#qlineedit#focus#border; + background-color: @widgets#qlineedit#focus#bg; +} + +QLineEdit:hover { + border: 2px solid @widgets#qlineedit#hover#border; + background-color: @widgets#qlineedit#hover#bg; +} + +QLineEdit:disabled { + color: @widgets#qlineedit#disabled#fg; +} + +/* QTabWidget */ +QTabWidget { + border: none; +} + +QTabWidget::pane { + border: none; +} + +QTabWidget::tab-bar { + alignment: left; +} + +/* QTabBar */ +QTabBar { + border: none; +} + +QTabBar::tab { + color: @widgets#qtabbar#tab#fg; + background-color: @widgets#qtabbar#tab#bg; + border: none; +} + +QTabBar::tab:top, QTabBar::tab:bottom { + border-top: 2px solid transparent; + border-right: 1px solid @widgets#qtabbar#tab#border; + /* MUST leave right and left padding 0px. */ + padding: 2px 0px 2px 0px; + height: 20px; +} + +QTabBar::tab:right { + border-right: 3px solid transparent; + border-bottom: 1px solid @widgets#qtabbar#tab#border; + padding: 5px 2px 5px 2px; + min-width: 20px; +} + +QTabBar::tab:left { + border-left: 3px solid transparent; + border-bottom: 1px solid @widgets#qtabbar#tab#border; + padding: 5px 2px 5px 2px; + min-width: 20px; +} + +QTabBar::tab:hover { + color: @widgets#qtabbar#tab#hover#fg; + background-color: @widgets#qtabbar#tab#hover#bg; +} + +QTabBar::tab:selected { + color: @widgets#qtabbar#tab#selected#fg; + background-color: @widgets#qtabbar#tab#selected#bg; +} + +QTabBar::tab:top:selected, QTabBar::tab:bottom:selected { + border-top: 2px solid @widgets#qtabbar#tab#selected#border; +} + +QTabBar::tab:right:selected { + border-right: 3px solid @widgets#qtabbar#tab#selected#border; +} + +QTabBar::tab:left:selected { + border-left: 3px solid @widgets#qtabbar#tab#selected#border; +} + +QTabBar::close-button { + image: url(close_grey.svg); +} + +QTabBar::close-button:focus { + image: url(close.svg); +} + +QTabBar::close-button:hover { + image: url(close.svg); +} + +QTabBar::scroller { + width: 20px; +} + +QTabBar QToolButton { + border: none; +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(right.svg); +} + +QTabBar QToolButton::left-arrow:enabled { + image: url(left.svg); +} + +QTabBar QToolButton::right-arrow:disabled { + image: url(right_disabled.svg); +} + +QTabBar QToolButton::left-arrow:disabled { + image: url(left_disabled.svg); +} + +/* QTreeView */ +QTreeView { + color: @widgets#qtreeview#fg; + background-color: @widgets#qtreeview#bg; + show-decoration-selected: 0; + border: none; + selection-background-color: transparent; + outline: none; +} + +QTreeView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +QTreeView::item:hover { + color: @widgets#qtreeview#item#hover#fg; + background-color: @widgets#qtreeview#item#hover#bg; +} + +QTreeView::item:selected { + color: @widgets#qtreeview#item#selected#fg; + background-color: @widgets#qtreeview#item#selected#bg; +} + +QTreeView::item:selected:active { + color: @widgets#qtreeview#item#selected#active#fg; + background-color: @widgets#qtreeview#item#selected#active#bg; +} + +QTreeView::item:selected:!active { + color: @widgets#qtreeview#item#selected#inactive#fg; + background-color: @widgets#qtreeview#item#selected#inactive#bg; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: none; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: none; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: none; +} + +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings { + border-image: none; + image: url(branch_closed.svg); +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + border-image: none; + image: url(branch_open.svg); +} + +/* QListView */ +QListView { + color: @widgets#qlistview#fg; + background-color: @widgets#qlistview#bg; + show-decoration-selected: 0; + border: none; + selection-background-color: transparent; + outline: none; +} + +QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +QListView::item:hover { + color: @widgets#qlistview#item#hover#fg; + background-color: @widgets#qlistview#item#hover#bg; +} + +QListView::item:selected { + color: @widgets#qlistview#item#selected#fg; + background-color: @widgets#qlistview#item#selected#bg; +} + +QListView::item:selected:active { + color: @widgets#qlistview#item#selected#active#fg; + background-color: @widgets#qlistview#item#selected#active#bg; +} + +QListView::item:selected:!active { + color: @widgets#qlistview#item#selected#inactive#fg; + background-color: @widgets#qlistview#item#selected#inactive#bg; +} + +QListView::item:disabled { + background-color: transparent; +} + +/* QSplitter */ +QSplitter { + border: none; +} + +QSplitter::handle { + background-color: @widgets#qsplitter#handle#bg; +} + +QSplitter::handle:pressed { + background-color: @widgets#qsplitter#handle#pressed#bg; +} + +QSplitter::handle:vertical { + height: 2px; +} + +QSplitter::handle:horizontal { + width: 2px; +} + +/* QStatusBar */ +QStatusBar { + color: @widgets#qstatusbar#fg; + background-color: @widgets#qstatusbar#bg; + border: none; +} + +QStatusBar::item { + border: none; +} + +/* QScrollBar */ +QScrollBar::add-page, QScrollBar::sub-page { + background-color: @widgets#qscrollbar#addpage#bg; +} + +QScrollBar:vertical { + background-color: @widgets#qscrollbar#bg; + width: 16px; + margin: 16px 0px 16px 0px; + padding: 0px 2px 0px 2px; + border: none; +} + +QScrollBar::handle:vertical { + background-color: @widgets#qscrollbar#handle#bg; + min-height: 16px; +} + +QScrollBar::handle:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::handle:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::add-line:vertical { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 16px; + height: 16px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::add-line:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::sub-line:vertical { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 16px; + height: 16px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::sub-line:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::down-arrow:vertical { + image: url(down.svg); + width: 16px; + height: 16px; +} + +QScrollBar::up-arrow:vertical { + image: url(up.svg); + width: 16px; + height: 16px; +} + +QScrollBar:horizontal { + background-color: @widgets#qscrollbar#bg; + height: 16px; + margin: 0px 16px 0px 16px; + padding: 2px 0px 2px 0px; + border: none; +} + +QScrollBar::handle:horizontal { + background-color: @widgets#qscrollbar#handle#bg; + min-width: 16px; +} + +QScrollBar::handle:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::handle:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::add-line:horizontal { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 16px; + height: 16px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::add-line:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::sub-line:horizontal { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 16px; + height: 16px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::sub-line:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::right-arrow:horizontal { + image: url(right.svg); + width: 16px; + height: 16px; +} + +QScrollBar::left-arrow:horizontal { + image: url(left.svg); + width: 16px; + height: 16px; +} + +/* QCheckBox */ +QCheckBox { + spacing: 5px; +} + +QCheckBox:disabled { + color: @widgets#qcheckbox#disabled#fg; +} + +QCheckBox::indicator:unchecked { + image: url(checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + image: url(checkbox_checked.svg); +} + +QCheckBox::indicator:checked:disabled { + image: url(checkbox_checked_disabled.svg); +} + +QCheckBox::indicator { + width: 20px; + height: 20px; +} + +QCheckBox::indicator:focus { + background-color: @widgets#qcheckbox#indicator#focus#bg; +} + +QCheckBox::indicator:hover { + background-color: @widgets#qcheckbox#indicator#hover#bg; +} + +QCheckBox::indicator:pressed { + background-color: @widgets#qcheckbox#indicator#pressed#bg; +} + +/* QRadioButton */ +QRadioButton { + spacing: 5px; +} + +QRadioButton:disabled { + color: @widgets#qradiobutton#disabled#fg; +} + +QRadioButton::indicator:unchecked { + image: url(radiobutton_unchecked.svg); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(radiobutton_unchecked_disabled.svg); +} + +QRadioButton::indicator:checked { + image: url(radiobutton_checked.svg); +} + +QRadioButton::indicator:checked:disabled { + image: url(radiobutton_checked_disabled.svg); +} + +QRadioButton::indicator { + width: 20px; + height: 20px; +} + +QRadioButton::indicator:focus { + background-color: @widgets#qradiobutton#indicator#focus#bg; +} + +QRadioButton::indicator:hover { + background-color: @widgets#qradiobutton#indicator#hover#bg; +} + +QRadioButton::indicator:pressed { + background-color: @widgets#qradiobutton#indicator#pressed#bg; +} + +QAbstractSpinBox { + border: 1px solid @widgets#qspinbox#border; + color: @widgets#qspinbox#fg; + background-color: @widgets#qspinbox#bg; + padding-right: 25px; + min-height: 25px; + selection-color: @widgets#qspinbox#selection#fg; + selection-background-color: @widgets#qspinbox#selection#bg; +} + +QAbstractSpinBox:disabled { + color: @widgets#qspinbox#disabled#fg; + background-color: @widgets#qspinbox#disabled#bg; +} + +QAbstractSpinBox:focus { + border: 2px solid @widgets#qspinbox#focus#border; + background-color: @widgets#qspinbox#focus#bg; +} + +QAbstractSpinBox:hover { + border: 2px solid @widgets#qspinbox#hover#border; + background-color: @widgets#qspinbox#hover#bg; +} + +QAbstractSpinBox::up-button { + subcontrol-origin: border; + /* Position at the top right corner */ + subcontrol-position: top right; + width: 25px; + border: none; + background-color: transparent; +} + +QAbstractSpinBox::up-button:hover { + background-color: @widgets#qspinbox#button#hover#bg; +} + +QAbstractSpinBox::up-button:pressed { + background-color: @widgets#qspinbox#button#pressed#bg; +} + +QAbstractSpinBox::up-arrow { + image: url(up.svg); + width: 12px; + height: 12px; +} + +QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(up_disabled.svg); +} + +QAbstractSpinBox::down-button { + subcontrol-origin: border; + /* Position at the top right corner */ + subcontrol-position: bottom right; + width: 25px; + border: none; + background-color: transparent; +} + +QAbstractSpinBox::down-button:hover { + background-color: @widgets#qspinbox#button#hover#bg; +} + +QAbstractSpinBox::down-button:pressed { + background-color: @widgets#qspinbox#button#pressed#bg; +} + +QAbstractSpinBox::down-arrow { + image: url(down.svg); + width: 12px; + height: 12px; +} + +QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(down_disabled.svg); +} + +/* QHeaderView */ +QHeaderView::section { + color: @widgets#qheaderview#section#fg; + background-color: @widgets#qheaderview#section#bg; + padding-left: 4px; + border: none; + border-left: 1px solid @widgets#qheaderview#section#border; + border-bottom: 1px solid @widgets#qheaderview#section#border; +} + +QHeaderView::section:checked +{ + color: @widgets#qheaderview#section#checked#fg; + background-color: @widgets#qheaderview#section#checked#bg; +} + +/* style the sort indicator */ +QHeaderView::down-arrow { + image: url(down.svg); + width: 12px; + height: 12px; +} + +QHeaderView::up-arrow { + image: url(up.svg); + width: 12px; + height: 12px; +} + +/* QProgressBar */ +QProgressBar { + background-color: @widgets#qprogressbar#bg; + border: 1px solid @widgets#qprogressbar#border; + text-align: center; +} + +QProgressBar::chunk { + background-color: @widgets#qprogressbar#chunk#bg; + width: 20px; +} + +/* QGroupBox */ +QGroupBox { + border: 2px solid @widgets#qgroupbox#border; + border-radius: 5px; + margin-top: 2ex; +} + +QGroupBox::title { + color: @widgets#qgroupbox#title#fg; + subcontrol-origin: margin; + subcontrol-position: top left; + position: absolute; + padding: 0 3px; + top: 0px; + left: 10px; + bottom: 0px; +} + +/* QSlider */ +QSlider::groove:horizontal { + border: 1px solid @widgets#qslider#groove#border; + height: 8px; + background-color: @widgets#qslider#groove#bg; + margin: 2px 0; +} + +QSlider::handle:horizontal { + border: 1px solid @widgets#qslider#handle#border; + background-color: @widgets#qslider#handle#bg; + width: 18px; + margin: -2px 0; +} + +QSlider::add-page:horizontal { + background-color: transparent; +} + +QSlider::sub-page:horizontal { + border: 1px solid @widgets#qslider#subpage#border; + background-color: @widgets#qslider#subpage#bg; + margin: 2px 0; +} + +QSlider::groove:vertical { + border: 1px solid @widgets#qslider#groove#border; + width: 8px; + background-color: @widgets#qslider#groove#bg; + margin: 0 2px; +} + +QSlider::handle:vertical { + border: 1px solid @widgets#qslider#handle#border; + background-color: @widgets#qslider#handle#bg; + height: 18px; + margin: 0 -2px; +} + +QSlider::add-page:vertical { + background-color: transparent; +} + +QSlider::sub-page:vertical { + border: 1px solid @widgets#qslider#subpage#border; + background-color: @widgets#qslider#subpage#bg; + margin: 0 2px; +} + +QSizeGrip { + image: url(sizegrip.svg); + width: 16px; + height: 16px; +} + +/* ViewWindow */ +vnotex--ViewWindow QToolBar[ViewWindowToolBar="true"] { + background-color: @widgets#viewwindow#toolbar#bg; +} + +/* ViewSplit */ +vnotex--ViewSplit QTabBar::tab:selected { + color: @widgets#viewsplit#tabbar#tab#selected#fg; + background-color: @widgets#viewsplit#tabbar#tab#selected#bg; +} + +vte--VTextEdit { + border: none; +} diff --git a/src/data/extra/themes/pure/left.svg b/src/data/extra/themes/pure/left.svg new file mode 100644 index 00000000..ca5722a9 --- /dev/null +++ b/src/data/extra/themes/pure/left.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/left_disabled.svg b/src/data/extra/themes/pure/left_disabled.svg new file mode 100644 index 00000000..e161891d --- /dev/null +++ b/src/data/extra/themes/pure/left_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/menu_checkbox.svg b/src/data/extra/themes/pure/menu_checkbox.svg new file mode 100644 index 00000000..39232bae --- /dev/null +++ b/src/data/extra/themes/pure/menu_checkbox.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/pure/menu_radiobutton.svg b/src/data/extra/themes/pure/menu_radiobutton.svg new file mode 100644 index 00000000..d61c36f9 --- /dev/null +++ b/src/data/extra/themes/pure/menu_radiobutton.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/pure/palette.json b/src/data/extra/themes/pure/palette.json new file mode 100644 index 00000000..1aa6ea22 --- /dev/null +++ b/src/data/extra/themes/pure/palette.json @@ -0,0 +1,597 @@ +{ + "metadata" : { + "revision" : 0, + "//comment" : "If there is a file named 'editor-highlight.theme' under theme folder, this value will be ignored.", + "//comment" : "Otherwise, this value specify the theme name to use for syntax highlighting.", + "editor-highlight-theme" : "Default", + "//comment" : "If there is a file named 'markdown-editor-highlight.theme' under theme folder, this value will be ignored.", + "//comment" : "Otherwise, this value specify the theme name to use for syntax highlighting.", + "//comment" : "If empty, 'editor-highlight-theme' will be used.", + "markdown-editor-highlight-theme" : "Markdown Default", + "display_name" : "Pure", + "//comment" : "Display name for different locales", + "display_name_zh_CN" : "纯净" + }, + "palette" : { + "bg3_1" : "#c0c0c0", + "bg3_2" : "#cdcdcd", + "bg3_3" : "#d2d2d2", + "bg3_4" : "#dadada", + "bg3_41" : "#e0e0e0", + "bg3_5" : "#eaeaea", + "bg3_6" : "#f1f1f1", + "fg3_5" : "#222222", + "fg3_6" : "#646464", + "fg3_7" : "#7a7a7a", + "fg3_8" : "#9e9e9e", + "fg3_9" : "#b0b0b0", + "fg3_10" : "#d0d0d0", + "bg2_4" : "#007b6e", + "bg2_5" : "#00897b", + "bg2_6" : "#199488", + "bg2_7" : "#e5f3f1", + "fg10" : "#b71c1c", + "fg11" : "#ab5683", + "fg12" : "#283593", + "fg13" : "#b42b1f", + "fg15_3" : "#b0b0b0", + "fg15_4" : "#7a7a7a", + "fg15_5" : "#222222", + "bg11" : "#6dafff" + }, + "base" : { + "normal" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_5", + "border" : "@palette#fg3_10" + }, + "master" : { + "fg" : "@palette#bg3_6", + "bg" : "@palette#bg2_5", + "alt" : "@palette#bg2_6" + }, + "header" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg" + }, + "footer" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg" + }, + "title" : { + "fg" : "@base#normal#fg", + "bg" : "@palette#bg3_41" + }, + "content" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_6", + "border" : "@base#normal#border", + "disabled" : { + "fg" : "@base#disabled#fg", + "bg" : "@base#content#bg" + }, + "pressed" : { + "fg" : "@base#pressed#fg", + "bg" : "@base#pressed#bg" + }, + "focus" : { + "fg" : "@base#content#fg", + "bg" : "@base#focus#bg", + "border" : "@base#master#bg" + }, + "hover" : { + "fg" : "@base#content#fg", + "bg" : "@base#hover#bg", + "border" : "@base#master#bg" + }, + "selection" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg11" + }, + "selected" : { + "fg" : "@base#content#fg", + "bg" : "@base#selected#bg", + "active" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg" + }, + "inactive" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#hover#bg" + } + } + }, + "edit" : { + "focus" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#master#bg" + }, + "hover" : { + "fg" : "@base#content#fg", + "bg" : "@palette#bg2_7", + "border" : "@base#master#bg" + } + }, + "error" : { + "fg" : "@palette#fg10" + }, + "warning" : { + "fg" : "@palette#fg11" + }, + "info" : { + "fg" : "@palette#fg12" + }, + "danger" : { + "fg": "@base#normal#bg", + "bg": "@palette#fg13" + }, + "disabled" : { + "fg" : "@palette#fg3_8", + "bg" : "@base#normal#bg" + }, + "pressed" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_1" + }, + "focus" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_2" + }, + "hover" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_4" + }, + "selected" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_3" + }, + "icon" : { + "fg" : "@palette#fg15_5", + "inactive" : { + "fg" : "@palette#fg15_4" + }, + "disabled" : { + "fg" : "@palette#fg15_3" + }, + "warning" : { + "fg" : "@base#warning#fg" + }, + "danger" : { + "fg": "@base#danger#fg" + } + } + }, + "widgets" : { + "separator" : { + "bg" : "@base#normal#border" + }, + "qwidget" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "info" : { + "border" : "@base#info#fg" + }, + "warning" : { + "border" : "@base#warning#fg" + }, + "error" : { + "border" : "@base#error#fg" + }, + "danger" : { + "fg" : "@base#danger#fg", + "bg" : "@base#danger#bg" + } + }, + "toolbox" : { + "title" : { + "border" : "@widgets#toolbox#title#button#active#bg", + "button": { + "fg" : "@base#normal#fg", + "active" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + } + } + } + }, + "titlebar" : { + "button" : { + "fg" : "@base#icon#fg" + }, + "menu_icon" : { + "fg" : "@base#icon#fg", + "disabled" : { + "fg" : "@base#icon#disabled#fg" + } + } + }, + "toolbar" : { + "icon" : { + "fg" : "@base#icon#fg", + "disabled" : { + "fg" : "@base#icon#disabled#fg" + }, + "danger" : { + "fg" : "@base#icon#danger#fg" + } + } + }, + "notebookexplorer" : { + "node_icon" : { + "fg" : "@base#icon#fg" + } + }, + "viewsplit" : { + "action_button" : { + "fg" : "@base#icon#inactive#fg", + "active" : { + "fg" : "@base#icon#fg" + } + }, + "tabbar" : { + "tab" : { + "selected" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg" + } + } + } + }, + "qmainwindow" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "separator" : { + "bg" : "@widgets#separator#bg" + } + }, + "dragdropareaindicator" : { + "fg" : "@base#normal#fg", + "border" : "@widgets#dragdropareaindicator#fg" + }, + "navigationlabel" : { + "fg" : "@widgets#toolbox#title#button#active#fg", + "bg" : "@widgets#toolbox#title#button#active#bg" + }, + "qmenu" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "border" : "@base#normal#border", + "item" : { + "selected" : { + "fg" : "@base#selected#fg", + "bg" : "@base#selected#bg" + }, + "disabled" : { + "fg" : "@base#disabled#fg" + } + }, + "separator" : { + "bg" : "@widgets#separator#bg" + } + }, + "qtooltip" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + }, + "qtoolbar" : { + "bg" : "@base#header#bg", + "separator" : { + "bg" : "@widgets#separator#bg" + }, + "extension" : { + "bg" : "@base#normal#fg" + } + }, + "qtoolbutton" : { + "fg" : "@base#normal#fg", + "bg" : "transparent", + "checked" : { + "fg" : "@base#selected#fg", + "bg" : "@base#selected#bg" + }, + "hover" : { + "fg" : "@base#hover#fg", + "bg" : "@base#hover#bg" + }, + "pressed" : { + "fg" : "@base#pressed#fg", + "bg" : "@base#pressed#bg" + } + }, + "qdockwidget" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "title" : { + "bg" : "@base#title#bg", + "button" : { + "hover" : { + "bg" : "@base#hover#bg" + } + } + } + }, + "qpushbutton" : { + "fg" : "@base#normal#fg", + "bg" : "transparent", + "border" : "@base#normal#border", + "default" : { + "border" : "@base#master#bg" + }, + "focus" : { + "fg" : "@base#focus#fg", + "bg" : "@base#focus#bg" + }, + "checked" : { + "fg" : "@base#selected#fg", + "bg" : "@base#selected#bg" + }, + "hover" : { + "fg" : "@base#hover#fg", + "bg" : "@base#hover#bg" + }, + "pressed" : { + "fg" : "@base#pressed#fg", + "bg" : "@base#pressed#bg" + }, + "disabled" : { + "fg" : "@base#disabled#fg", + "bg" : "@widgets#qpushbutton#bg" + } + }, + "qdialog" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg" + }, + "qcombobox" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#content#border", + "focus" : { + "bg" : "@base#content#focus#bg", + "border" : "@base#content#focus#border" + }, + "hover" : { + "bg" : "@base#content#hover#bg", + "border" : "@base#content#hover#border" + }, + "disabled" : { + "fg" : "@base#content#disabled#fg" + }, + "view" : { + "border" : "@base#content#border", + "bg" : "@widgets#qcombobox#bg", + "selection" : { + "fg" : "@base#content#selection#fg", + "bg" : "@base#content#selection#bg" + } + }, + "item" : { + "hover" : { + "fg" : "@base#content#hover#fg", + "bg" : "@base#content#hover#bg" + } + } + }, + "qlabel" : { + "fg" : "@base#normal#fg" + }, + "qlineedit" : { + "border" : "@base#content#border", + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "selection" : { + "fg" : "@base#content#selection#fg", + "bg" : "@base#content#selection#bg" + }, + "focus" : { + "bg" : "@base#edit#focus#bg", + "border" : "@base#edit#focus#border" + }, + "hover" : { + "bg" : "@base#edit#hover#bg", + "border" : "@base#edit#hover#border" + }, + "disabled" : { + "fg" : "@base#content#disabled#fg" + } + }, + "qtabbar" : { + "tab" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "border" : "@base#normal#border", + "hover" : { + "fg" : "@base#hover#fg", + "bg" : "@base#hover#bg" + }, + "selected" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#master#bg" + } + } + }, + "qtreeview" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "item" : { + "hover" : { + "fg" : "@base#content#hover#fg", + "bg" : "@base#content#hover#bg" + }, + "selected" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg", + "active" : { + "fg" : "@base#content#selected#active#fg", + "bg" : "@base#content#selected#active#bg" + }, + "inactive" : { + "fg" : "@base#content#selected#inactive#fg", + "bg" : "@base#content#selected#inactive#bg" + } + } + } + }, + "qlistview" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "item" : { + "hover" : { + "fg" : "@base#content#hover#fg", + "bg" : "@base#content#hover#bg" + }, + "selected" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg", + "active" : { + "fg" : "@base#content#selected#active#fg", + "bg" : "@base#content#selected#active#bg" + }, + "inactive" : { + "fg" : "@base#content#selected#inactive#fg", + "bg" : "@base#content#selected#inactive#bg" + } + } + } + }, + "qsplitter" : { + "handle" : { + "bg" : "@base#normal#border", + "pressed" : { + "bg" : "@base#pressed#bg" + } + } + }, + "qstatusbar" : { + "fg" : "@base#footer#fg", + "bg" : "@base#footer#bg" + }, + "qscrollbar" : { + "bg" : "@base#normal#bg", + "addpage" : { + "bg" : "transparent" + }, + "handle" : { + "bg" : "@palette#bg3_4", + "hover" : { + "bg" : "@palette#bg3_3" + }, + "pressed" : { + "bg" : "@palette#bg3_2" + } + } + }, + "qcheckbox" : { + "disabled" : { + "fg" : "@base#disabled#fg" + }, + "indicator" : { + "focus" : { + "bg" : "@base#focus#bg" + }, + "hover" : { + "bg" : "@base#hover#bg" + }, + "pressed" : { + "bg" : "@base#pressed#bg" + } + } + }, + "qradiobutton" : { + "disabled" : { + "fg" : "@base#disabled#fg" + }, + "indicator" : { + "focus" : { + "bg" : "@base#focus#bg" + }, + "hover" : { + "bg" : "@base#hover#bg" + }, + "pressed" : { + "bg" : "@base#pressed#bg" + } + } + }, + "qspinbox" : { + "border" : "@base#content#border", + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "disabled" : { + "fg" : "@base#content#disabled#fg", + "bg" : "@base#content#disabled#bg" + }, + "selection" : { + "fg" : "@base#content#selection#fg", + "bg" : "@base#content#selection#bg" + }, + "focus" : { + "bg" : "@base#edit#focus#bg", + "border" : "@base#edit#focus#border" + }, + "hover" : { + "bg" : "@base#edit#hover#bg", + "border" : "@base#edit#hover#border" + }, + "button" : { + "hover" : { + "bg" : "@base#content#hover#bg" + }, + "pressed" : { + "bg" : "@base#content#pressed#bg" + } + } + }, + "qheaderview" : { + "section" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#content#border", + "checked" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg" + } + } + }, + "qprogressbar" : { + "bg" : "@base#content#bg", + "border" : "@base#content#border", + "chunk" : { + "bg" : "@base#master#alt" + } + }, + "qgroupbox" : { + "border" : "@base#normal#border", + "title" : { + "fg" : "@base#normal#fg" + } + }, + "qabstractscrollarea" : { + "border" : "@base#normal#border", + "corner" : { + "bg" : "@widgets#qscrollbar#bg" + } + }, + "qslider" : { + "groove" : { + "bg" : "@base#content#bg", + "border" : "@base#content#border" + }, + "handle" : { + "border" : "@base#content#border", + "bg" : "@base#master#bg" + }, + "subpage" : { + "border" : "@widgets#qslider#handle#border", + "bg" : "@base#master#alt" + } + }, + "viewwindow" : { + "toolbar" : { + "bg" : "@base#content#bg" + } + } + } +} diff --git a/src/data/extra/themes/pure/radiobutton_checked.svg b/src/data/extra/themes/pure/radiobutton_checked.svg new file mode 100644 index 00000000..eb117cb3 --- /dev/null +++ b/src/data/extra/themes/pure/radiobutton_checked.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/pure/radiobutton_checked_disabled.svg b/src/data/extra/themes/pure/radiobutton_checked_disabled.svg new file mode 100644 index 00000000..9aa33733 --- /dev/null +++ b/src/data/extra/themes/pure/radiobutton_checked_disabled.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/pure/radiobutton_unchecked.svg b/src/data/extra/themes/pure/radiobutton_unchecked.svg new file mode 100644 index 00000000..ddac281c --- /dev/null +++ b/src/data/extra/themes/pure/radiobutton_unchecked.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/pure/radiobutton_unchecked_disabled.svg b/src/data/extra/themes/pure/radiobutton_unchecked_disabled.svg new file mode 100644 index 00000000..8232c04a --- /dev/null +++ b/src/data/extra/themes/pure/radiobutton_unchecked_disabled.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/pure/right.svg b/src/data/extra/themes/pure/right.svg new file mode 100644 index 00000000..f44c49d0 --- /dev/null +++ b/src/data/extra/themes/pure/right.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/right_disabled.svg b/src/data/extra/themes/pure/right_disabled.svg new file mode 100644 index 00000000..ff849266 --- /dev/null +++ b/src/data/extra/themes/pure/right_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/sizegrip.svg b/src/data/extra/themes/pure/sizegrip.svg new file mode 100644 index 00000000..3018b1bb --- /dev/null +++ b/src/data/extra/themes/pure/sizegrip.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/pure/text-editor.theme b/src/data/extra/themes/pure/text-editor.theme new file mode 100644 index 00000000..398d5197 --- /dev/null +++ b/src/data/extra/themes/pure/text-editor.theme @@ -0,0 +1,199 @@ +{ + "metadata" : { + "revision" : 0, + "name" : "Moonlight", + "type" : "vtextedit" + }, + "editor-styles" : { + "Text" : { + "//comment" : "Support a list of fonts separated by ,", + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New", + "font-size" : 12, + "text-color" : "#222222", + "background-color" : "#f1f1f1", + "selected-text-color" : "#f1f1f1", + "selected-background-color" : "#1976d2" + }, + "CursorLine" : { + "background-color" : "#c5cae9" + }, + "TrailingSpace" : { + "background-color" : "#a8a8a8" + }, + "Tab" : { + "background-color" : "#cfcfcf" + }, + "SelectedText" : { + "//comment" : "Selected text highlight", + "text-color" : "#222222", + "background-color" : "#dfdf00" + }, + "IndicatorsBorder" : { + "text-color" : "#aaaaaa", + "background-color" : "#ededed" + }, + "CurrentLineNumber" : { + "text-color" : "#222222" + }, + "Folding" : { + "text-color" : "#6495ed" + }, + "FoldedFolding" : { + "text-color" : "#4169e1" + }, + "FoldingHighlight" : { + "text-color" : "#a9c4f5" + }, + "FoldedFoldingRangeLine" : { + "background-color" : "#befbdd" + }, + "IncrementalSearch" : { + "//comment" : "Incremental search highlight", + "text-color" : "#222222", + "background-color" : "#ce93d8" + }, + "Search" : { + "//comment" : "Search highlight", + "text-color" : "#222222", + "background-color" : "#4db6ac" + }, + "SearchUnderCursor" : { + "//comment" : "Search highlight under cursor", + "text-color" : "#222222", + "background-color" : "#66bb6a" + } + }, + "//comment" : "Override the Text style in editor-styles", + "markdown-editor-styles" : { + "Text" : { + "//comment" : "Support a list of fonts separated by ,", + "font-family" : "冬青黑体, YaHei Consolas Hybrid, Microsoft YaHei, 微软雅黑, Microsoft YaHei UI, WenQuanYi Micro Hei, 文泉驿雅黑, Dengxian, 等线体, STXihei, 华文细黑, Liberation Sans, Droid Sans, NSimSun, 新宋体, SimSun, 宋体, Verdana, Helvetica, sans-serif, Tahoma, Arial, Geneva, Georgia, Times New Roman", + "font-size" : 12, + "text-color" : "#222222", + "background-color" : "#f1f1f1", + "selected-text-color" : "#f1f1f1", + "selected-background-color" : "#1976d2" + } + }, + "markdown-syntax-styles" : { + "H1" : { + "text-color" : "#222222", + "bold" : true, + "font-size" : 17 + }, + "H2" : { + "text-color" : "#222222", + "bold" : true, + "font-size" : 16 + }, + "H3" : { + "text-color" : "#222222", + "bold" : true, + "font-size" : 15 + }, + "H4" : { + "text-color" : "#222222", + "bold" : true, + "font-size" : 14 + }, + "H5" : { + "text-color" : "#222222", + "bold" : true, + "font-size" : 13 + }, + "H6" : { + "text-color" : "#222222", + "bold" : true, + "font-size" : 12 + }, + "HRULE" : { + "text-color" : "#222222", + "background-color" : "#dac7c9" + }, + "LIST_BULLET" : { + "text-color" : "#d33682", + "bold" : true + }, + "LIST_ENUMERATOR" : { + "text-color" : "#0000ff" + }, + "LINK" : { + "text-color" : "#005fff" + }, + "AUTO_LINK_URL" : { + "text-color" : "#005fff" + }, + "AUTO_LINK_EMAIL" : { + "text-color" : "#005fff" + }, + "IMAGE" : { + "text-color" : "#616161" + }, + "REFERENCE" : { + "text-color" : "#826200" + }, + "CODE" : { + "text-color" : "#8e24aa", + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "EMPH" : { + "italic" : true + }, + "STRONG" : { + "bold" : true + }, + "HTML_ENTITY" : { + "text-color" : "#8900b5" + }, + "HTML" : { + "text-color" : "#8900b5" + }, + "HTMLBLOCK" : { + "text-color" : "#8900b5" + }, + "COMMENT" : { + "text-color" : "#93a1a1" + }, + "VERBATIM" : { + "text-color" : "#673ab7", + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "//comment" : "Please modify the syntax highlight theme as well if you change this", + "FENCEDCODEBLOCK" : { + "text-color" : "#673ab7", + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "BLOCKQUOTE" : { + "text-color" : "#00af00" + }, + "NOTE" : { + "text-color" : "#0087b5" + }, + "STRIKE" : { + "text-color" : "#b71c1c", + "strike-through" : true + }, + "FRONTMATTER" : { + "text-color" : "#6c6c6c" + }, + "INLINEEQUATION" : { + "text-color" : "#00897b", + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "DISPLAYFORMULA" : { + "text-color" : "#00897b", + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "MARK" : { + "text-color" : "#222222", + "background-color" : "#ffff76" + }, + "TABLE" : { + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "TABLEBORDER" : { + "text-color" : "#d33682", + "background-color" : "#e0e0e0" + } + } +} diff --git a/src/data/extra/themes/pure/up.svg b/src/data/extra/themes/pure/up.svg new file mode 100644 index 00000000..54926252 --- /dev/null +++ b/src/data/extra/themes/pure/up.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/up_disabled.svg b/src/data/extra/themes/pure/up_disabled.svg new file mode 100644 index 00000000..d9af609a --- /dev/null +++ b/src/data/extra/themes/pure/up_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/pure/web.css b/src/data/extra/themes/pure/web.css new file mode 100644 index 00000000..3e127617 --- /dev/null +++ b/src/data/extra/themes/pure/web.css @@ -0,0 +1,285 @@ +body { + margin: 0 auto; + font-family: "Segoe UI", Helvetica, sans-serif, Tahoma, Arial, Geneva, Georgia, Palatino, "Times New Roman", "冬青黑体", "YaHei Consolas Hybrid", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", Dengxian, "等线体", STXihei, "华文细黑", "Liberation Sans", "Droid Sans", NSimSun, "新宋体", SimSun, "宋体"; + color: #222222; + line-height: 1.5; + padding: 15px; + background-color: #f1f1f1; + font-size: 16px; +} + +h1, h2, h3, h4, h5, h6 { + color: #222222; + font-weight: bold; + margin-top: 20px; + margin-bottom: 10px; + padding: 0; +} + +p { + padding: 0; + margin-top: 16px; + margin-bottom: 16px; +} + +h1 { + font-size: 26px; +} + +h2 { + font-size: 24px; +} + +h3 { + font-size: 22px; +} + +h4 { + font-size: 20px; +} + +h5 { + font-size: 19px; +} + +h6 { + font-size: 18px; +} + +a { + color: #0099ff; + margin: 0; + padding: 0; + vertical-align: baseline; + text-decoration: none; + word-break: break-word; +} + +a:hover { + text-decoration: underline; +} + +a:visited { + color: #800080; +} + +ul, ol { + padding: 0; + padding-left: 24px; +} + +li { + line-height: 24px; +} + +li ul, li ol { + margin-left: 16px; +} + +p, ul, ol { + font-size: 16px; + line-height: 24px; +} + +pre { + display: block; + overflow-y: hidden; + overflow-x: auto; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +code { + font-family: "YaHei Consolas Hybrid", Consolas, Monaco, Monospace, Courier; + color: #8e24aa; + word-break: break-word; +} + +pre code { + display: block; + padding-left: 0.5em; + padding-right: 0.5em; + color: #222222; + background-color: #e0e0e0; + line-height: 1.5; + font-family: "YaHei Consolas Hybrid", Consolas, Monaco, Monospace, Courier; + white-space: pre; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +aside { + display: block; + float: right; + width: 390px; +} + +blockquote { + color: #666666; + border-left: .5em solid #7a7a7a; + padding: 0 1em; + margin-left: 0; +} + +blockquote p { + color: #666666; +} + +hr { + display: block; + text-align: left; + margin: 1em 0; + border: none; + height: 2px; + background-color: #999999; +} + +table { + padding: 0; + margin: 1rem 0.5rem; + border-collapse: collapse; +} + +table tr { + border-top: 1px solid #cccccc; + background-color: #ffffff; + margin: 0; + padding: 0; +} + +table tr:hover { + background-color: #dadada; +} + +table tr th { + font-weight: bold; + border: 1px solid #cccccc; + margin: 0; + padding: 6px 13px; +} + +table tr td { + border: 1px solid #cccccc; + margin: 0; + padding: 6px 13px; +} + +table tr th :first-child, table tr td :first-child { + margin-top: 0; +} + +table tr th :last-child, table tr td :last-child { + margin-bottom: 0; +} + +div.vx-mermaid-graph { + margin: 16px 0px 16px 0px; + overflow-y: hidden; +} + +div.vx-flowchartjs-graph { + padding: 0px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; +} + +div.vx-wavedrom-graph { + padding: 0px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; +} + +div.vx-plantuml-graph { + padding: 5px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; +} + +::selection { + background-color: #6dafff; + color: #222222; +} + +::-webkit-scrollbar { + background-color: #eaeaea; + width: 14px; + height: 14px; + border: none; +} + +::-webkit-scrollbar-corner { + background-color: #eaeaea; +} + +::-webkit-scrollbar-button { + /* This selector affects the styling of both the up & down and left & right buttons of a scrollbar */ + height: 14px; + width: 14px; + background-color: #eaeaea; +} + +::-webkit-scrollbar-button:hover { + background-color: #dadada; +} + +::-webkit-scrollbar-button:active { + background-color: #c0c0c0; +} + +::-webkit-scrollbar-track { + /* This selector affects the styling of the area in the scrollbar between the two buttons */ + background-color: #eaeaea; +} + +::-webkit-scrollbar-thumb { + /* This selector affects the styling of draggable element of the scollbar */ + border: none; + background-color: #dadada; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #d2d2d2; +} + +::-webkit-scrollbar-thumb:active { + background-color: #cdcdcd; +} + +::-webkit-scrollbar-button:horizontal:increment { + background-image: url(right.svg); + background-repeat: no-repeat; + background-size: contain; +} + +::-webkit-scrollbar-button:horizontal:decrement { + background-image: url(left.svg); + background-repeat: no-repeat; + background-size: contain; +} + +::-webkit-scrollbar-button:vertical:increment { + background-image: url(down.svg); + background-repeat: no-repeat; + background-size: contain; +} + +::-webkit-scrollbar-button:vertical:decrement { + background-image: url(up.svg); + background-repeat: no-repeat; + background-size: contain; +} + +#vx-content span.vx-search-match { + color: #222222; + background-color: #4db6ac; +} + +#vx-content span.vx-current-search-match { + color: #222222; + background-color: #66bb6a; +}