From dc1394ce32abfd7875f548277cd81024e2ed207f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 22 Dec 2023 14:31:54 +0800 Subject: [PATCH] =?UTF-8?q?enhance(style):=E8=B0=83=E6=95=B4=E5=9F=BA?= =?UTF-8?q?=E6=9C=ACPostCSS=E5=A4=84=E7=90=86=E4=BB=A5=E5=8F=8A=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E9=A2=9C=E8=89=B2=E5=B0=BA=E5=AF=B8=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bun.lockb | Bin 143556 -> 195977 bytes package.json | 19 +- postcss.config.js | 20 +- src/App.jsx | 72 ++++--- src/BootLayout.jsx | 10 + .../WindowMoveHandler/WindowMoveHandler.jsx | 8 + .../WindowMoveHandler.module.css | 8 + src/index.jsx | 8 +- src/mixins.css | 5 + src/styles.css | 127 +++--------- src/variables.css | 194 ++++++++++++++++++ vite.config.js | 6 + 12 files changed, 327 insertions(+), 150 deletions(-) create mode 100644 src/BootLayout.jsx create mode 100644 src/components/WindowMoveHandler/WindowMoveHandler.jsx create mode 100644 src/components/WindowMoveHandler/WindowMoveHandler.module.css create mode 100644 src/mixins.css create mode 100644 src/variables.css diff --git a/bun.lockb b/bun.lockb index 647f29f0e8ae65eba300b9c7a18cea57e71b07e1..2f09a1ffe055a19a3cb632010f3fe08d1860a905 100755 GIT binary patch delta 57426 zcmeFac|4V0`#-w(W@D4gnUe-XNR%PNMzeNAG7p)DG7pu)rc^W#s}iLQ4Kh?hB2h?# zN)ky?N`+Es)aZAuecyWa^PJ~=U%%HmuiyFSeC}8Gdaw7j*1FcU*1FbpPpG+HAoZuv zzB%eAv@~n|KE^C9n&xh}_eG5Dw<{;|(rh`7=OVeisneuO;Qj0jB`p zNAg%eY2ZGj+y+pB!lopekQHVFVg*x3j;94H7=ii29drXq0X75Tj?Vz%@*I+<0OIx= zf};KWVG$4 z3^6ks0PzUwAi_$BF0FDHN#kcVUi`6Z(EO(eWb^8v*e`?16IJE=ZGD*#%m}fJ6Xi zv!UR~912AjFcA>1vPzMTbfG#9D2cM%0_wRugM{d>OF|{&V}aFDI7B z)sjHm&MP!3Xkr^$fzfzo*-|Q|MNlyVo+i) zOo=LB8XzopqA%cVz-53~fiR#E;Com+91pGo;&^Zh5ZB)fs0HW*h@Dm&5O+8k5bugF zD~Vn3gv5G4Hdd4dnYn;rfOrWk0dWAD4u}oKGlXwt(Wis$czo@X_4Stlk zAfkOFAdU~dfVdo-FKlBdg>qpXF_SW6d3caNI~H_MlHkPq*l!br4POc+7$O;#`$Yu@ zg+gv1gi!dOUfn~=g~EvK7VNhHx}i|0z_9^+z%UL1;{EUI=NGOO6h&!;b|SzVLty?H zkP(U?1YUr+!3C%=2`~c?t`~68)r$2B38r{O284S>M)_?6`DBp8MHOE#DXXH0cAG#h zgyjLDVUd0mN*Hjgf8wed3xmPjm#pV+8x-oR1$R&;F+@Wh62rBE!+gA=!Q9}Wkf3Oa z&IY1<4K&1or4cwbG%_e8(#xMh;aCA9-?$Oc7%J@GjYReJez8yyb~a2iwu^|&zLX`P z22X%rR7`XbTq0#Vs8B+~LN+AfG^J5ESLN3G`9k#t|Ji#1pO%?iC%V1y=rN{F;b! zZlDs04@`K7tB(D_;S` zBRL9)gV7E^Jfc8AJR??sc&fDkVT}_d0df6bDMY>3fLKo($$i3t!y+LxQ~_t>H7|e+ zUei5*cnY5%Bt{Ym9GANTVg*)!c#Y?ga(O^(2ptf&dka&Kr?`t;8XrIg@cA&^*q}o> zL{M`B#Ow&hW?>`Gnk#M3{EYT0$9T7bq7J^=W`gP=BC+SfZq zmVk5M)~We=BdkyLV2` zjJ6LvqvaFzqEeUtsXQ?=&e8UPmHWq={aS-3Y#sSR?@tfNa@?dB^J2OCou~)#C3l+7 zY+NW#UA#qGGuagJN7w^4)JqcY*ts?uFPuXc-pD7O9s~4%x->e4oH3)vZB&tV5#lCzH)73Eha9|vSzP} z{Hqh`$Wu(lDTyX`zVF=I1v%$dT{&glwMcn+sq4YwTU#UFOI6bZ-@mb{AHHXDusbsU z+Z^f4l_&fdsXETcJ5q`es~GAy-1q7a*A8`L_Njn{WGpGrq{Sok33%b?U+vZ(yw0= z4D&Wot+g8qWN$S|t~V^LykBAUak=qK@e~JD$G$zUd>vEc6~bjAB_3->x#kmRzF+cZRh;jW-nM(Q@CzJOza<5#pPzZ8L2Ct z-8-CpOD-bhqL7796{Ylc<& zJrm!AJSEgbHzxbPnzJfKPcXN?Cz=1nyowZwi&PXYYKY9GJlQsz?b4#w)Rm~ezWZZn z?>ViPAm1VX?(>(dErn(@{YEZR^fCHVY%aYVPscqhHf| zpL&j7ZFT%w+#bO@f`9l5X7?u3^K)X(hfNJERaEcP`gZZLtz*~s3+DeR7kQ|nzgU{<}bb>a~4B z>1Gatljp=2(Z4y-d35%amVb;jpZhe}$>Zj8cB6;p5z7@P%y*Xd=DWGMmDqMFl&3y_ zEk363=jM$S9S`OG)|II@se3LsKUn%c)oM(no_2JzSSa&k{r_*n zUtsd;$F7xbLFTqo^$M$gdJ9^)tgO7Sw^7}yLUa2v7cZBE+J^7=%K}CRcJtYd?7!G} z_x+3R&Uq~|aew?`4Q3}5XU}@lkSuk%?X0W#Nn3gSIEk~T{m?V1&qu=|me-0VPS@Y0 z5Ol9U#p5H&lX4RHd{X=fEz^G=k`Xl&IJ)D~qN3lEPogoYXSB&w)H8)iTS`T8(oAYR za+Wq@R8S!rL;Mm({h9{U&nR2kjHXIMJXkF5|Aw3sCuc7(Av+7X)f^cWu2Y_zoEPNW zIJwJ^^X24};o{-J$>E25BG(H!qTT|yQV_B%$Ps~JT&6PVtKqt{1i4Q& zre{HJ87J2VIZIAX6>g!3(qPCDvMR_C^?v;=wSdbnQMwCqR-CpE|H`I`Q7Ef8vM|UI zrFD>7hH|HwP{mQtG&5d!Bqut`fE=N!2XaJZRk#Zvx(tOJi=(Orazs5E+$R$CRzVJA zN+!IJ;i#kbBIlWA3^BM(Scn%A<;xh*c1xk2nM{Tx+#9R}A!o&Do>P#^EGF&x6qEy? zB#nAzG3lG(mUAKMooP({f}B;rWn@r}3X@hOgL+h$)SpOJ)r_$OZXs3>y5$UL$7NBD zDw8^l9;uqq=ExyAH73nZ4!Ni?>Fsa>KMw_F{7KQVvknTG^Xc5ZYj<&Uf>*O!o0K$XzFSxN0&*vt%iDZne?gZ9MfT! zc|vYAQq(r4--et6wv9G@HtLzjq{Yofa`Ry(G>{8`od(JQ$kRYQ^O^Mb8WYWS!=m_e z#^|KQ8RJDQ3S|Qp(C^NHx8t1AuFWlrs8(IdH}T6D+nE?jYv@L<{SK2JAt&DnIHs;8dlv^eGe@JHDJtH@Yk7u zMFYd*_0rn%gBJiZ%Swf=4~hdWDTbo9%MBz zLb)=_kQXisHXPlKki(X9`edBOa-s>0<2$f*z&O_dhL0IBm&7bx`paOWi%FP+=Ri#e z{G3B*VyzjWP=YnW2p1aA>w$p}!Hg-u<;)G_U@6SeCSb%0V0IT6o-v{)Iq(K-1u^<$ zV8Ot^Ua;^3Fh^i~D1WX2-F^|d?(}TP&F75o4&=b2pgznNeH@q*-k%J|#SmgaPC@QPx122^{&(8S$a*{+jibQ8D~W{= zQ(sOxJG8IZv=d(6;;YKL4FG8u!wC8?lLo0zmMtAe=%9 zTo^L}j`e=Pz({hO)xfa#Lo={Q8Ri*JHK!&m)(Q12VbVT3A-SbYhLba~2Zd3-oB^W( z7)(Q=AgA+LFl0|)Fp?#P0zf=~zyg3>FM#2#2h$22EP!2%yW_)*R_Ka)mN6MGL5TMp zF%VlA6ZR(v$I#CQpYF&G;*5WI7t0V5t5G{riBJq8xZVR*DwUflhi z0G3I#gB}dP^RR1BIqshUEc9>LI54b}2tw{Y6v`$}O+3s_U{H)V7%&50!cL;*DPVZw zVYJW#zaO#CL`_GMft@hdr~FWlHIqSwQ6&%!z<4$=>_S9?$H4I75Wc%400zyu%9TS7 zPX;l3>A;EME3YyXAPEsJJAf^LiXy0gnSroY5D|T-6nM|X33WCr83G{0x`>!hh3-rU zW^EvB3Jf==K?8UaS;mQtjIAJ@kENX3swQA?y9E)JzW#4p*eDjj<`T7}4TK|r!B$HI zMHC5$41}g;kYY_d9LF3ZTX5WzrWcG{Y?+LAA!O`>djSK+Y*-*{9^r2OBqM@A0m&dj zL&TB~BU}+e+foCD4=`*D1b-6)1_Fk)Q1B&!(MB?ua=0NA3P(A1aDy3+dhD2t-Qb){ zp(c0;)NBW41dIn?188y)C}$0mu|8r#88`#&R0MLdXEI)c5c?o!8R-F#)knR{j2XF* zGXy!|E1kd=bM)bzC>urGM1bc68VUfxCUPP({QxkyVYM@6bU+Tz7{n2XrTnm4ut6O2 zXcp1P#gR$d8jW%snT*R&#)L9r5B~(FPqc%zSr#*~CGm~Ic9IeIMoqx5iA1FO2@JP` z6TMRW}p#(N^udE3$JpKHfi`!0MxE9UEd7vX==!0^yvD(&EM$3{KgOolM*Q9J`+J8TsTV8kl)tASy_Y@m$TMmK@E0RuC^ z8)hZJLo=bwz!Rn{L$ejjv zRI|2GC}teh%CMJxf!PzyVT;vlLpi=ohDtJVz2gjpwlSF#ElNRX&S?iDq6=+@`!am< zM|XxC+{b|{oX0t+!C4x{M_>ylG&4+hOzdwM5N+cQ)Z@=&Tmj)~P6HeQw006BA$HYP zU~8a^U{Sk>&`$)X4q!wX#09$QZoG*2J~#++E}S;_;?V@m=`WMtLl{SB@B@Z-4YBvC zNCwZNFeNX65$gg$OH6Sug|Yx@(kR5C@b})!0ZMQ^un^WLjbyN5Y6fC0|IunHr(X4t`PfMKVEzQFPJ|BHcBb_2so zz|bN- z0`{*+JoONF&CS3F1M!G~5c;tam2AS@h+8>-V7Lr|G`#Sr1!jb&n)W#xxdbrj*K?p4 zxd#~2D&)K%2Tyka#*9|T;cW#w9M)d>$b={0J5zUHc=Vvy&47^s%!o589G+T% z;mAO2M`|vGq6bU}J05)nFkOxbak;3+gh@M>i{y;qg#pM-IBoDwSa5X0J#mDJ0*3nn zhlBx^1H(0mr|qA>u$O>a8yX56`|EUI##UfVP7!{(y8_IRqXf?qHIJxCm}m?P*My}E zGUNpU?`8swX>EB(ZatGGnU7omJn~V_dM4vYK80dT=z;sahxte@m`S%Ngw;Wc!SGH9 zaxR?QH^{+LD#%tH$8Rift{ieiJ>e4*^#UNbhEsY8at@rF*hz@VI7jn3iE=`X@RvyZ z>5GDcfdZWP_jNh*oN)imIWXdRhI?qv!HrlSgc{C)5w{N^ zCVdZdeBQ95_!m8u4>14&3fLO6A+2Fq+Zm3Sy(vn`QeI8UFOs~L#5z)bndA*5 zzXFJ7vWeu)WO)l9Hnf%Gci51@#~nbNy$cB*@qIvS;R7rr5%VtKSoDy@Za^&WA@KuSh;f@(~i*AIXBxBz`4vjI8jRhz;fg#6<#-;58S) zghX6V6gaLY35X4pCODfS4;lDJQG^6rI-NvSQm#&-1|U|TO_t9m<@zKV0^*JqkZ44r zF(B@cNpdriF9hVpL3Sx*aK|i;0G^ou;UC48wGMh5iDq~L!-tgxP}hY=famE;(4c_Ya&;%qZ1 zzedV2;(9HBxcyBwDY!*ez=$iflAIf{=nh$amn_GK>$j13kCbD?KJ|c*EzXzNO zC=3M4MF6o}91`4Kf|N^rDs5?Puaby#I&{fw(}0Q$Qfz_ZnnF zO;U~#XSGTBTvCn^XXlapzacKthXgN;5hi&5b221i15BU*mzhC=xdn-fNL)hVG7>ET z@yJ$?d?g_6z=p&%fcU_O^*I3Ifw=;5uKym8fqxV)NU$Pr5`6%1#Xyn=k+=>J{!v0m z3@7CgSO^D3yd5_J;tpd;IYzt`iGaADBp%NAIT?;%D_O9OY=99fN+mfrV#Crvjyu># zmSe<aru4{5AfjmhvNWQ0V7tJMOHXOVm4XMjrbO|kd*&FM$Y_mDS|BL zS@Hj?=SB8^d0@mga6dr)<^Kns7pHQb3vmyNINkg^{`0&@`R94@pXWu&KhKMt-~i8& z|2!`eVe+5n#ebd`|9M{g=Xvp;=f!`X7yo%){QuAMBIEA^XGKr)7V1hr1;J3IzD1>` z^}a7M`zxoXR4XWmNL{Zqelz~(TYcbgRsOT{@8(JMlzyVQ1nUo3 zyH!o!nVGFFeOFT=Th2#$XXKwHFp!WX*XnNbSo%}m@!0lfDVq>@N>wwML;?Q-Go#cDerNl%Aiva}Z;{BUKxDK{^-JK&pep4meVEQ4pl_&{at1 zBiVzFR6P^{sXn?1sR2^Xa-|2$YxQ^P(QFiU`ujXR11`mpUDfUywuD6GpdSeK(Lsud~+b`hA=F&1?d@;c^-0`r8? zHDI<#EYA_ij>GtXxg(w9FuoHozT+(FTGS705ZICvEUFjEI05533F8CigDg(M z_)fw2PO_+eXcX8OF#A(1Y5>YV1>-A%@fESCLCCfU#&;UV2W&l}o`&%i!}w0Ks3E8v z*hOGc#Vl$V@+yY$mB9FbMIf;f7+)!juY^U7LRW#^05+?XMU6obr7*rS7$2~WNVyEg zcLv5+#-hfec3|DW^vklcn+UG z{oO>SJdwIbaCQ2VUlO-d4iwF%=pVeLK2`Z}NMNT?%ke_VM3FySdwwVJG{H%E)t7$n zJ@dfN^S1qE@x{;X7Hl+Ba+?*(JKz56+(QR59!jMbTy#03JWsaWdi4IqYS*!oQ||68 zx-iA;qTk~g+Pn9E{E2caWY`qH<$48KTd2(vv1zZSCVAVx%|37$dlD7 z4o`lyA3I;XFUVYM{h_3WPOWp(D_2}H+I=`dGeOCF;o--Bgo-RLaoLK$=T98G-l<`H zG*!_v?DzNTL)uri8li2)zTSC{?_`Rv`qZR*vY~Kunfp+aY{$XVydi~ict8J=G#=@b ze6+BtNAL75mpxQeRwaYzU~4)$T><`h0eq*2Wd%P+_4nYNBgB7|mo47xwBmGlbZ}qb z#{;Vt&3b!IV$k~gs%v%4=bheoCiiQ<>R3TLmio&s|wt{?CNT7M7TgY>SiEsW^evctmF1sxStTO=)BcNZ=6@}SupV)@k-9gw=>BtmGnFmqGFaF2wpAk2 zYg@tdwzd-Um&rWvv%s@YC&ZTSih1EN`H0U20mClm3qsBJf2Z9awBfs>zNtsW@W_prEfc+x1eGV-=jB*c_`$f3_El<;d$5TCvhiFoK59D zz&Elbt-Ql#=vTE_47f?5{)xS(hr|)aA@9Hr}kXA#r~SS)B4nx z`@x)vxx+uyF>&zfUP+X9`@R2Lpz%k^xs^#yk_WE2T0UgQuJINfbJS0K=)1_tYI3xq zY|{p1p34q1r#WtEs&SmdouhX-KE5m-5U+0$)TXW=SK3v!TWgYzF z+24b==l(msD@JC!x>w%c>Ymi_-sV!e%bMZLnvN}VJcmxbn4)36r|ZYAMY2E3%_Sf2 zui7To1Y&q+gW*rP40J*^xj(db**?q>}u=Hmvf{)6_!q2GIctabrV1Ef=%STu)=P| z`JuS#rq5fR8LbZ8MSF+X;r9BEH#V<`(l)E5ZwS7(#x-t@>=cW|g1}nT3&b(YWv`0Nc`}mu?o!2$3pKeN)?L2*IeI0*|RMfoIr>VP?+@~#@&j){` z;Jr7}x+KF+NcS&PsV&hA-dk?&y>?4c;pJ_!`}#^A>&8y@dli20TCIChaQ&Tab3I>1 zO0nYj<20iliO8J2G+ylLyT@YSI{pGP;djR-OatWYoFy2YrCHI!54uM-FeEm~UFId+o z{_(-iZ1wc&_?_#_UANK4DVIcwr@Rahlqx(d+pt=!tEm0a^=I*)SL#@g9?CXfw6c1M9k{H^=eF+UnRCTk?Z?FwLnKx>q@_HUsCF>fRxGZ&b$kFr>XJdeZ*^P-;7qjL+)d~vPUP! z$0e-Oir#ASbmnvRrc*W*W#4M14GG#I)5|h!i~YsIh11-W-zn{$-KTnMYI9 zRaazdm>e`p3wEugi&zg-RQ!A=k!f)E_Y|sjb-monVwu8SIj?K@Kjm;)cY@ox8R0w@ zGw)PZc5G}d_m^L7RN1(w{o?5*E0{XZCtJxo*4wb8Uf2hw%C5;hp!HZ?cKPM_s>}2n zw^WkDnyFt-+?;&~jevEo<|4J)Gc2C12v*Ln>8yUcY>(jFK1cDq)SWk`tuUc?$FA5H zUm+d*YggTJRt0OZp{Lym`ErpdL#|=+g(p{ZKIXCxUpFQW-hh3_ofPK(P_y$O1 zP92WST>4Vs${Sv%jU5Kco?p}Kz?_L)aeBfuKwkNw&JULNNbPnXcqFEZi}s_&U|Isp6PL_Z-R9dnBq8 zWQtjnB)^GCYRzuj#%0~a5A0zhd4-j??I=1Wcw+d#9I?0g<=S?cH?PNJsfH%z`nINI zxQ+JGWs2Hn@XMAxu2kA=T-32O^@y(J{s%LVRJ)mI^7MB<(QmNsXjoDE^Iq>$0jdWN zQ?jy7B_`WB>Y>+3k7v;8W#*MXHrv8F8C1UBAb)U`_OC@-Yj(LUUh;@N)0AbrPdGo( zV=k9MvWb#G*U zFD*6ZSvokg>3F$EhJ)do%SWBN3tUEatVU&5AR6;m8_9|f7dX;uD=r`Q>K3}_7+DZI zHF(Kn^{UHf;AH>i+{Lr z;^6iCBPIVfls)A@wccj`z{OQ<4MBR>dwUskvb))GsDW=)@F9odWAd_=dtb*rxwCln zGyd)O14T```wboDrOn=#YmeNo%CJp5_=JbzN@8c0y>wJN$ETlhYnT1ofYQ)QLuuw$ zyA&$!+%nwHJN)z2tytfJwK>063cgwJOK-ny&hog1LQ5q3tbw{ zr`GmpX;#y^>$3ZItV;W(xlHwv%{-TbC!+f9wune*6@4|5{VrnM<+Qiuma3hInoyaw z{EPeRHDpe@yB((@W|X$9Zc$BF^}FGPh5BHcUHYG%3rcU zwOLaCl=%)3$H>PicYahSMXpMAm5`UcHfy%Qjv4QI=Z?0{`gFeb)N&pANa%%y!Jg=H zqYRR&Vo|G*R~0-*HNg{C70arcyOTN1SC*|_CE8|pJkW1^#l~FzBSPLc@0}c zeN|M|9LZxF{Ai}g=awly=AIayqLN^raORq>kjfGv)3xyIzS!GPHmxP>Q0R?t7aspBqj@`4@#Vj2{wC|Z z_UX!qUp8H9Zgr$gU%!J{!#-K#`h5G?X>}Bee(JlijREK zqwiIV?MUg&G-__0CUkg3sDy;sY(~NMlh)5;j_b*ODGm4F9S&6I*PuM)vJO9uOdPzM z+T8!#rWfoFdBtz}&S*$TKwGp??nd%ZfuV2446$>z-4_#FGiDmfo*G}b(qiP$<6PTA z8y*?tUpj9jBs%5Z_6{`^e@zCJoo89$pW>Z3czxVt#by}WFYfnBzv%jM?56V9?BXLl z!&_{X&W+mdb+%C)cAMiKQ!y^m*tYlP@B8{QUfh2}`EKy)rp?;Cz3XojBdr!#^;VWu z!-Pse-qJUpU2TVJM02u(FYI&PXi<7|?)9q7cP04OWZ9Rgx7|bc_3_mo|8{ng*81IP zW4FV-rk}EML94vf`llT~>(zjITj04<@Qcimu0DHel)j~LhW~4qfeZ0twr%m(6hjwH zyI}Q{VLHtA8EC(L{DsEKQ(M(1Z`?ZS=oVR(2jDbriY1vGdA^ z{|oaCzgH|3LVK^vut#TPK522@J^NEtt-H}ln?H&tO%!a8oVRK*c3!$mI=JiE!%gd( zHbmDhs25eMFwuA&V#n9JaP*Nv%VL3u(Gh$6)^EbPCT{EQR?S!g;c2*v=q%~| zg-@oc&D1MC<}M~Y#kl^AqwW}&b=SD96H(!h+cB4tT}YdsX_6=0oGvew?o{dWY#;yg zBXTnqwJ=t`NvkROA^W^TQsqxvzq0rX*)7k$p9y+%<7Pqg@{M*BGy>LX)xMhfLejEb zs(I_#n8qk`?NbY->!g<2SVil;d2ambrtsGIyZORAz9KS594>7=rd53Zo7%T8nd{~+ z+c!wd%9Q1@?mD-1C$buTd7ZqH-CI-tXsgt+wo5OEW|qhVsRx zMat^Lxrj3)_pM0Xa(9qkc`C(U&HO$!)6rNN<=&KG+r`?hsSrPSI)m4el#H z&**xV_I0!m2^3Nc4<8kK7C(NA8LKhrn8Zzy0j5T;X?eT&wsZBBscK5ast>rVyUA^x zTA_Va-)TmQ$g~rNk-3+iMs#`34mu#<9+P=>bzKf+^PKk~qho8LWEbsw`YDv2{#^Ig z;65w4Ibq4Cra9h-tle@SS>2LhJIJ53RJmF-zwKjgwr0^-`|_&{4`xHlgXJsMgl#Qc zNOsjCkf&ihD&)YR_rv*m{@Cx>j!MRwkXY&I%l}`g2?} z@!+elO7rihj?jv#J#K5}n;yAkdOK`N_TuW4dRff&NhL zXvj)W^c$=bYQ3s@<%5l8%-1phcfi0QH(UL=th>W)U8d*JIw$3&v-Z3VkG(VR!5j~bFI7t{ z13$g-Q7+bOl3g*}-Faqyv#xCIA1#H=f-|=meQvugeP))})n3nC3T2)9JW*Mz3|r-d zPl9DJb4P{lj?P%Vd7*v1d#|+2`ZVhl#r@04j^g01WqY;iwomfd|KPRon_ZO-}^(wV8#A7hYzZB zM$<$TG@E6Q?sHgRFRgKy#(p-$r!9NoW!WBg&9f@Kn~?i$8DtN!8UMz_#KB9`P1~$V z*>!(hC(g#z^JS`OooLDN`mfEdimiO!%NIWtj1$WaksQ_AUYRkw;K7UntD{?Tk6F1| zXAZw*|LS%7jD+ui*2^qv2g<(;?>XRf*-Dwkx`VzGR8v~}-%z{6MmDCLHaUa0@FJMDR=Ni1n?Syxy*I3jy zs2`X>7rZ-dVNpj=Mhm>h1@;Bldt`AP-kUvycc<4`)KN4FOr{&&4c}l+e2-v!z`h~sEf`-9jPDkU`W=-6>joCm%7VYvRMQIMdn}9;Z?mYsQP6D| z-xFbU2iQ20y#wO|7Jr9Dqf*hWI}YejuQ1ZO%cAj6(dN4jXnCJ7>IF)tqSh^d5`GprT#(9FWs9VKf3%h>DEb9gsl3Fv@Lb(S)gJ80bZyR`*#n z5h}{L?|=fI3!~pa#i(dShXay%0pD;sSTqSL`T_I?Q1=HcniLfkKX5>s287u=a{j1V zTXfqy+0d_VDs#HAxAyI^UU-pem$x}mY= z?QY_0i^eIX)CAe^pU%e))gBvID-saDn-z8Zbjwhx-kaMgtw`~u47;FrN^bP!1b*Md zol{NUWhgw-a}r_ZyyzKfE{s*|{7`nOGAL6b8lwK zp3512XScJZu4K*7m(4o0d4h54kqMd>DmGVXtucdOY({WL6m`{RXQn>TJh{pmyYX{v$0Y!2<2<;h%o zv6+*@j`j%byt?<%(v^kF6PqMa{3{vuNW`7ygyFSMmcH_y+p;_~+eqhEqnKV(-sC!m zbFCYW3x4hO8XCOSzQ6ApT{%cF=TE*}rF6Yv>T!qU(>d;2DepZKQ(`6k*OUtJ1(MYv@ebV&i z*+gqOiQ{uov-;`9Nb9u>yQW){ntsfB%lmf=je|;EOXz#U%=uFkXY;-{HO)-VOnxOZ zs2Ez_q-Ivh?>AOsaP!xiFUwY~|H}Jz@A5k;yF&}OtW)B)ZtCSJVq14>bS^C08@n#z z;etLf!H<#Sl3{`|xhHLtHl0_!viwJYhqCOp`Hvrkef!cSAsAh^BjQ24wVAZr=-P#{ zHK_Nsj8%fs8KGltBInM#mXzp4R!Yhr%g9no@v7_Kea9Sp__|ktfB(qA_(};sYQJ_D zRchV#jZgjEckA=kC-JYEmU5E&!-_H$(K;al3<{&moh;f6DiZ912rvYZq>DwHMMbqh z$ABt6WYJWqXx&4I0K*VVfU3ja9qfh(@CJfOH;bkL!33zlTL>nPSTrpNCXXNj0PO{; z4Z)-bBESd)lO7gLhl+F`Lj-sSA@VVcHjj#)1HA!s$rBb$kBTy%Km>RXp{ABaGk{Q2 z>wwfgK+Jr?g0GGiy%6nyo#@419Y=wsj6%%p!(Scq`ykqVgqZmhe|5Bd3egT&6)+1# zeFo9|6U5AC_^V?%u;riOn$VBGI(qd(GzWGK*fJ#c9HRLbxF$TuUmdRkbNUL`gcta$ zW5f%H=HK9&0L%(04?r{rwtWD9b!-O~I0n~*m-wq=(o2Zu-{G17%ns?if@luxz$^UK zu^-r`A28n6_^V^aYe%XR8iLdrSqwT-T~Icpu4oieH)J{F2;Up?A@xAtAzh1XhaIV& z=rp8Wi2BBn>W!Qs^+Dy3`Xa_#NBGX@1*t!(fiwV#jW|*RQ4pj-=qjY^knB50_`(6aX65wIEnkr2`W;MMcOItN-bM09`{D*9OG zK;3}aq47qf{=t#D2_-=qiylF`8R?8V!iU9FNaIjHr15CMM@MP`%7B!Oh9FHu7M~p9 zlVbKKNA_0k&0_sNyy2RnL0(ZRbx+xS=Ele)0Zqh}g!h*I`3suw(X{@aYZ(lKO7z=E?bd zu{YsA^f|AHEiw{(p!&}%r26}9iOjwyZ%y^sOPtTY-u7(dikIP;DOCMlfvJYvFS(Mr z6~8a4)<1A;=vCr-kMiu2)Wz26}xYE{NVj<*Y;j<*{dxY&c{bxr+;`Bnr@}B z)9hu%v6SL~Y5t4yE|+g?=o{9n5#IXNRn)a&B*53QbL*zp`|Z8CXJQAp-r?hOJdH}_ zQnJpsY`oLDIfmV&v+GpH&~W7YsbcN(89@&>Y57#2`@DH(LN@=5vukQ)2bYDL1S-CN z*8adUtFJrDf@_L*ax0Es+WE=uxb3^|GusY$j(DE^sK(&W!6H~LsNf=ap_Iv z)*I`$X=!Z^yQAQfwO~Q%o9}ZH4z3K||MqKNv6+L!^rEjl0WO+WR6R?bSIOc1cU>Kv zZW-`>;!VBE{`$fALEoNg{Cn~fOSg+#@v{A==8Kp%IXWdi{{G%N{((nrLxOzofcTC~ zYJ`w;<=v3dBPyM)qrtl-otPrSeyY+zd*i0A+njBzn0s2)aKm$RF2%dK72m6Uv!df} z^r1h?KWr@xj5@1%WR8hK(&C+bPpo)aQbeRb%UlxM=_u$e8htMyX8*j*7s@-|Jk8XP z-}qhc@R|q-DK5QxCiH^;QFsl7Ri@RoL^;z8XQpnhI9g<~Xi?JLo&9xs6{(T~&kQw( znyMT5UJbO5>b4w%KUF@S_VJmg$UDbnlS1AZh}*`@2|2E0t^6b9tr*zVg)nqkd=^d&$kOUOQwzK5O!(e#xZ^+b#+^CLFZqp^|uA z@M-S%qiNiV7432%jx76^!E8!8x8gz9FT!g(d_>00J(l0$Uw7`_i|fA> zMvZRM56|Ay;NfZ&;#}YUZq=)j_nqz^7iLu!iDaETm!tlrDe1<+wG}s}$c|L+^&&7l^*CEvPuXb;GA&ah-yd zx;#0xiccG;!#Z=C{WC?1&hlvwnjR`$()DTFfBsQ@9jU2!{U^LQlUwn@qBm*&X?cvU zxSL5P4O#ker~DP`D<*lbjoB~3GQ44NV>m3a@%#l_RB$NSua`Y$(Q1EMo059yTFHzZ zrPm&hbLmCgdS{_bo(i?EO-uRP_U~1j$Bw=fnBh6I)$Q@!4g+WL#*m|*$2Uq)9_>5y z+V;Ix-dOI`M}8lhv?5t)byevpXNHsUJEjSP_j4;&YM7(zt2M(@IZ@Zgc|b*pX8GuR zn@Gf-L+>8#J^RRC$*|F~{`s2(Wy=RKQ|c}%XMMWz+)>eoJ-EiBbK|JEK(jBG;se}@ zBPY#j`0XtvuswIxX7^2EMoKzXuglIydQWbCGNMn@bd3M`W$(US>8oV+jNe+l@!Ik; zQY}`$ty*2Gc9a|_(zSTarS~AWUc+(;J|_Fzy*F}+3W^?4y#~uvbw=Y0(B?0w1pw9VHGdk9*@6L-csG}uUPG=_2ma{*peEIOYNJWWDaTd2?_|FT@sufp%?;Kbx zcv>*9cjn;om+`9RuY+^WX;hv4ZS>?@@D1vYO;haVj3M?lSDU9Yu5q3F8|5g?LDf&) zpMO;0QhbP8vEyAMOS+4i>?k>sl0R+1Px#9&e-$6*RvbC$?F`?3dAr+|56;iK#|&}vPIVGdcKglF zGEy2C7XMA-Y4a9%QP&kLDhG2d}fPVHsbJ&-qPW14@auYGWF=Z`d9+w&V)3#e2V8Gc1K*UC>`6~`S8Q1LTj@)wl@+!g*Z7pB8^z^5vrT5gm-I=mBGyr#`xg4{R=LnK z|4oU0YSx-hx$&&ZTcUVzK4(P3=R~?CS|^#SM{J zJax>`-TMof{v-8hL66+x* z=67ES?j8H>+B&x&)+kFPSJH9cs>m&) z_?_f_eSMr;v7-F!kMBR%M((W-QD~Utw!lJRorUA+qk0LyuPx|!{mmmwYQ@K#LvMas z4FFzg{d6fG5N*uF^17Bk1tPC)IT&N z>dAJpzqrl5V|=wL;l#<5z7AL{sovF$u zDI$~KW%@pp(`t?QR&#gcZv2AS_R63U+EKRsoN0S*c)9lMpVC;HEqv+t(xufwVn2MI z-%iiQe`ki{#Q3i)oaR+ZrE zWwiRjprLsxhg@c^iLSa~m?3>m&}ty}Y^Z`l!1#n>&{@o_cki>R^-@E*m(6-&$9-0} zU99$W6Td!^$9^*PouKHc;imBY+Y=t0_^^8a$MdHnj6&~ElQ8JIQ1$K4lO#soS&vUM zjky$;a4W9dqayA0fVpjR^BePVFHZ+6=h^3<2#(I*aFA7Pa=vP0#y7pG{LOa3vr7~+ z3RT>!>pFMo><&Fr`zEWr&1fcj(;F_urQC{#o$Er~B@-@Yvc;Lw-=^NJK3rV*tLd`7 z&791=*=zPsnOh@e6&k3ZG9dY0HGTSrvAGYv_cioHz^`y?oH%nxC6-HX8Mog0b>oWr z=LLRw@*>0bGFw%vXw9{b19Fq2Uk^|mzq4#ij=UE39kb#% zg^U%A_qH|8T#(GA_zbt=y+%786{xKZ=-#$eQ|?Fd^Ig2Z-+g!SPfm;SHp`p#Zgy*B z+)C{x%Vm-gEQ^nmvphb`UwVD#on z;OMgNT}zJ-zNpZfQl$0t!CQy2Q%m=DN9&yxODjFx9U&_G#l`XC68gjF4f)@H8M$6t z!)5R}ZoRiO+}MXoRqWSWov&>#^4{`GOJ*5-8MG|iBD!eNlkR2{31=J65NoDT_YL2g zeFx@td^7aVdQ)k5)pBQBb=QhlMqG-^xfNSAxGW2%&D6YgvHQlR+nsv7svh%oA7?Zr zI-d-Z=Rfj$s@Zpw8an(8sx~`6VfCY1lLu6HojJCDxvL(J#&7E*5!^m;o?CI3{DX@6 zom$CpcNZTCoAkd*`woDpjxOAtD@8yB5s)fHurD1HV@qNed#`bY1wq)w-NlN6T@!0a z9D9v1_AW8;k0mCS*b_}mq9L(Fja{R$zwg{TmtADZ|G)P(`M7iEl$kj*bLPz4_3n%Z z6I*`ae5&`=B~usfe{NX*$+EMH-%9$S!M6@MMHjqwURoUa-pe&-2YS^D`miW&c;oF8 zhuBnjhpboeKN^SpZVTd{XAa&~BX#h!77unD@1GU)iNT}x7c+N%lK&{Bo&T2VA0O5( zJpRj{KSuhzcqjOyeB{O3A0hW)3(AV8jk7}ECzkwpEvN_eQ6$^lbXh@52L5UjEOg;}g>7962*Q>DXJRj&?kLbzilF)5jM-*Cao`oxJP& zFK=93V!Q6syOGq7Lw$Xt{<`w5@8bY#Phq=9z1bIqEAjWs z!l(GVx3KHqz1e>X*WvG1h3s)}wy&@+{_Zc_hQ9|2U7qx22McvidP`rk!ijr&Nr!Nt zTGUJWh83D{`4;D?xEyAMVW0Psj^H>Im!qukEH1}znhJsM@JMD)FLu0e4^*8ftol!H zcCs)7e@_)2z~9q_eouR|Glj$P_iW)&{QbT#^jUBAL*Z!rJy&=Jf6o`zecl_7%O>FO zPlXro_d;RJi{9+#!WsDcOX2VM`)gs+%iefUHV=OIxAe^QwKlL;NU_(0Zc}H zSy=gXilZJcyQorF^>uaLr5barBz{o&H{`k(>0B6|AVH?G`n$)iD&d`gly8(|U76z7 zfN$}b3hc1Y;Q-~Qy(lKkG#d?gMWCi)Ag|)UCOU@Izz?F4=oVR}kNShTDOnkjnP%nP z7)239gPhm{sc`G-nWWzpzb7aE#A{|!(I6K#NG`OpHIsh%23054cIt1S+Uiq(57jnL z{cTj+JoR@{@3zF-q^OQN9AGXlx#?wSZ6w81;#VibFksy{WWJNx)!&S)gMW@xnN+TbN@y9(TF$st!2rB{M(AS4Hsdj{--84RSr+tKdXap#My2 z{^JV#r|K-kQMNLvSu3k9dgRM8S{4_UvrKs&)eaR=p5MRJiK#S}779#!N9K#FO#r#z|%d3^fNN=`s%7b4`rYL`*#8%i>5oiLIa8yd7rjvulUYNL zV5yLcB9E-2KKQ&O^2jRp0kYa}$fFixveV1{<$g78R3#6$V9*Dg9NYi@~sT&@O zyaq_eBaLpz*E|xLT4Y8cP2KRf$csd}CeqXm^y)nPPd{0#2|hUsnPlO3;4^^w>$MP0K>7qAe^3Il>0Q2> zV9_N^B99JXjL4(zsvz=`kp7VRpZdl@WHzQufLi1z^4>yvAwacvLLQaZ z1Ry@Dyo=y#iu6Y!&sF3#!+j_OsG@EnuQ}550jfZLC6U=eWKsnxi@djyrb4I!RYcx9 zNK+w{=PvTzMVb^+r94DlOOZ!9s*1eNX=>1i-jj%rYm;1FUC;dZih<05r@qJ9=2t^D z4LuraJ^&3R8afy%8hSm{B49DF1Xv0z1C|3TfR(^1fL<>}FUc|iX21gE0`#u4+W@`! z&kR_ATwnw+5*Q_+zegi61{e$E0pkHW;3)tmNPPW!tX}?1q-O!MfjPijU>@)xPzZbk zd<@J7I6$wGpw6StqLF1r^VNCieAe>5-#7z^Y9NY?t4!I@rIOJhyveN{nxk+;|1PG-$69&`-$Xk$ipjV0I0pkIB>(_YX z(L3$#0r!Ciz(e2>@Hg-ncmn(bJO!Qs&w&@fOW+mo8lcI>012o7H~{&M_~QgP0~G=K zXXCDb8*mvy*8qBhAHDtWJa7g$3w#gID+iAQ^p3*Az!8AnXZSVn6|fK34B+jJn)Lv^ z_3=}H-Ws_aSV3=fT!q9UU@@=^SOC<3DeD6Dfcn5NjU?eaK7!8aC@_=uF!@v>XC~yqe2kZw9 z0NFqmFaV&J7EA_c!JGz62POaoKq|c%Pmja^z!#v`CSC{Vb&MB)AAui$lK{OF@)&Rw z*aB+$@1Rmo4Z-8nr2%w0k6F?D73xFb) zcpwU>34{Qu48;l*8>|DS13Q5a(9|sOWCKPZ2N*`4`a=*4fscW3WKw~2Rnw{o)O%b0 zg^*G2KSFvv@Cy)%!c5RH9GH)Lf-N82Q+Z((5D9W52x_K!AAKFt`0RbmtLRynyac!U z0eRm8r-9D_T3^C|P=G?)lK_qJVBGrvXOTVwoCc->l>j&1SI_EWnUa5YQ=YdpkJ|xl z0E#b?0HPCnC_t*K0iJ-^jFq}n7Wu?i74QJu0pbq`DC@CO8lIbSWbWcj@N^&aCV5Iv3 z0|9b;{eb?!AmBZK8rYZojSdOhT2Y~74Lv}G5+k*W3djMB0Qrk_fGRu`FaWBTB|kC@ zpxz)p)p8?|&IL%11uz5cQNHZf)dJMok463%U^GAiYCfe$08|N5HU$_5ko;so)i++` z5wA*9tvLyK6M+dpegXbaE2$-FC5TaFQuC-_0`(;+CF>AvHgFO+2k;0ACV_!GDWTm`NG7lB`apD{!xWiY>v-{VGY zA(@U^N>I}(jq+^Mzu52)uT0~*3|1}Qmi0G~E(3o6#Q@!_S6g+qMXE)UZB!mL@0N|c zny2a$v_!cORnS)8E`+HdRY2vDuVw45>L(GkxvGdtqy8}f&j1>c9)QY2a<=WJd$NT} zf0G8ClBSAW52jp7nNk%ih6*yH+8SFmY97(4I8}zyD%7T^_qJyK9el-rkmo5GtZH3i ze1lM;*tYPpRktmQszTuqowt!jirr|R;R^%+fdFlC$eRrSLXajt^1gJPfcpY~cFnYV z9tn&9C?1nzUtCjwfj}o(K?WevALtA80w{v-4s-*$0xf}NKvRGM!p1-n& z^R-BP3akM>0agR6fR(@sU^%cDm;p=&rU6rc$p96s&K4X_z^e{oCEGX z#vgpf_mucBBa5hjG@oN+8Gd;7XV4jpnl59y&o=kiyP+Z*lo%Nu8H+uSk#(ovLn|28 zXyeYaJ32l9DGsC8^K?7bDEs)|- zg(M|%t_sSfnb%T#&&cza3u+V@kKKkzk4Ax1aqFL5+=UM1@hjg1J)g!x34Ri6NR^qs*Dd$tezO}G zV#pxTJY_iR%u|Omk6IqcgStdm0ycI7_s*v^ex6&f>~nB8jEs$ojML1lz)ucmzKNfJ zgW5f{U9%3WA5DL$a73dGy9MR$Mvt8rJH5U_B|$41cccOjG%;Uxo+p^td+aj**u;!p z$qq_c^P>9AsPQblQR6GehoY?qXqaQkWBOW~$7 zf?cm~J#h6u7U96+Ba^6yHGM$|M&-ILx^t(+iZidQlu=H6CS(KW3yvKT4g;gFPpM|* z*yY6cllC9L5e6L}%z3$_sAkohR*uJ@)Bxq$+YuH2ez)ZzE5*y1SILEJyt8~vU(npS zYno~L(Nrr(M^J(w8#JafyP9{dz)Hz<<^v!bI8|^=H!ZGxaeBMTR*vbF_*~My2>s{< z9Y>tI@YdI}4>~Y;l*UABHiO~=O1EaG>jwr^U2CNrs>ClrHsB|4&=6l15dFpXH&Xgp zId1c+BbcA0smvRUKs9_SD}@}?+-XzmhSb8!Sg$f4435Mmg5#G-X{}@C|9rs8(FK%h zC}h>T@tJojMx3=$QY!P!Bs&@$)xmLQrAN@AIyX97Ipzwj^*rmuu@5eX6CF#)2$TeDttW2 z`eB;O#(i86ocBr3LMw+B6lzt)s?F+u&OSPBrL?HRkB?;aTrXqflV|DfJ%1D`ngT-y z;]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 -

Welcome to Tauri!

+ <> + +
+ ); } diff --git a/src/BootLayout.jsx b/src/BootLayout.jsx new file mode 100644 index 0000000..31e3d71 --- /dev/null +++ b/src/BootLayout.jsx @@ -0,0 +1,10 @@ +import WindowMoveHandler from "./components/WindowMoveHandler/WindowMoveHandler"; + +export default function BootLayout(props) { + return ( + <> + + {props.children} + + ); +} diff --git a/src/components/WindowMoveHandler/WindowMoveHandler.jsx b/src/components/WindowMoveHandler/WindowMoveHandler.jsx new file mode 100644 index 0000000..6ad16e0 --- /dev/null +++ b/src/components/WindowMoveHandler/WindowMoveHandler.jsx @@ -0,0 +1,8 @@ +import cx from "clsx"; +import classes from "./WindowMoveHandler.module.css"; + +export default function WindowMoveHandler() { + return ( +
+ ); +} diff --git a/src/components/WindowMoveHandler/WindowMoveHandler.module.css b/src/components/WindowMoveHandler/WindowMoveHandler.module.css new file mode 100644 index 0000000..d712c67 --- /dev/null +++ b/src/components/WindowMoveHandler/WindowMoveHandler.module.css @@ -0,0 +1,8 @@ +.window-drag-region { + @util size(100vw, 64px); + position: fixed; + left: 0; + right: 0; + top: 0; + z-index: 1; +} diff --git a/src/index.jsx b/src/index.jsx index 187a784..9cb62de 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,7 +1,11 @@ /* @refresh reload */ import { render } from "solid-js/web"; +import { Router } from "@solidjs/router"; +import BootLayout from "./BootLayout"; import "./styles.css"; -import App from "./App"; -render(() => , document.getElementById("root")); +render( + () => , + document.getElementById("root") +); diff --git a/src/mixins.css b/src/mixins.css new file mode 100644 index 0000000..495d76b --- /dev/null +++ b/src/mixins.css @@ -0,0 +1,5 @@ +@mixin dark-mode { + @media (prefers-color-scheme: dark) { + @content; + } +} diff --git a/src/styles.css b/src/styles.css index f7de85b..a4db284 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1,11 +1,26 @@ -:root { - font-family: Inter, Avenir, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 400; +@import "sanitize.css"; +@import "./variables.css"; +@import "./mixins.css"; - color: #0f0f0f; - background-color: #f6f6f6; +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; + + --color-primary: var(--palette-bright-blue-6); + --color-danger: var(--palette-tomato-6); + + color: var(--color-light-fg); + background-color: var(--color-light-bg); + + @include dark-mode { + color: var(--color-dark-fg); + background-color: var(--color-dark-bg); + } + + @util size(100vw, 100vh); + overflow: hidden; + user-select: none; font-synthesis: none; text-rendering: optimizeLegibility; @@ -14,96 +29,16 @@ -webkit-text-size-adjust: 100%; } -.container { - margin: 0; - padding-top: 10vh; - display: flex; - flex-direction: column; - justify-content: center; - text-align: center; +body, +#root { + @util size(100vw, 100vh); + overflow: hidden; + user-select: none; } -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: 0.75s; -} - -.logo.tauri:hover { - filter: drop-shadow(0 0 2em #24c8db); -} - -.row { - display: flex; - justify-content: center; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} - -a:hover { - color: #535bf2; -} - -h1 { - text-align: center; -} - -input, -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - color: #0f0f0f; - background-color: #ffffff; - transition: border-color 0.25s; - box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -} - -button { - cursor: pointer; -} - -button:hover { - border-color: #396cd8; -} -button:active { - border-color: #396cd8; - background-color: #e8e8e8; -} - -input, -button { - outline: none; -} - -#greet-input { - margin-right: 5px; -} - -@media (prefers-color-scheme: dark) { +/* @media (prefers-color-scheme: dark) { :root { - color: #f6f6f6; - background-color: #2f2f2f; + color: var(--color-dark-fg); + background-color: var(--color-dark-bg); } - - a:hover { - color: #24c8db; - } - - input, - button { - color: #ffffff; - background-color: #0f0f0f98; - } - button:active { - background-color: #0f0f0f69; - } -} +} */ diff --git a/src/variables.css b/src/variables.css new file mode 100644 index 0000000..d40a30e --- /dev/null +++ b/src/variables.css @@ -0,0 +1,194 @@ +:root { + --color-light-fg: rgba(0, 0, 0, 0.87); + --color-light-bg: rgba(219, 219, 219, 0.05); + --color-dark-fg: rgba(255, 255, 255, 0.87); + --color-dark-bg: rgba(36, 36, 36, 0.05); + --palette-gray: #848484; + --palette-bright-blue: #0063ff; + --palette-blue: #1f32c4; + --palette-yellow: #d9d02f; + --palette-bright-green: #6bd731; + --palette-green: #2bdd66; + --palette-tomato: #f06418; + --palette-bright-red: #f0185c; + --palette-red: #f21616; + --palette-bright-orange: #ffa903; + --palette-orange: #fc8a08; + --palette-violet: #7b2eda; + --palette-pink: #f018e8; + --palette-blue-gray: #63687c; + --palette-indigo: #4c5897; + + --palette-gray-0: color-mod(var(--palette-gray) tint(60%)); + --palette-gray-1: color-mod(var(--palette-gray) tint(50%)); + --palette-gray-2: color-mod(var(--palette-gray) tint(40%)); + --palette-gray-3: color-mod(var(--palette-gray) tint(30%)); + --palette-gray-4: color-mod(var(--palette-gray) tint(20%)); + --palette-gray-5: color-mod(var(--palette-gray) tint(10%)); + --palette-gray-6: var(--palette-gray); + --palette-gray-7: color-mod(var(--palette-gray) shade(10%)); + --palette-gray-8: color-mod(var(--palette-gray) shade(20%)); + --palette-gray-9: color-mod(var(--palette-gray) shade(30%)); + + --palette-bright-blue-0: color-mod(var(--palette-bright-blue) tint(60%)); + --palette-bright-blue-1: color-mod(var(--palette-bright-blue) tint(50%)); + --palette-bright-blue-2: color-mod(var(--palette-bright-blue) tint(40%)); + --palette-bright-blue-3: color-mod(var(--palette-bright-blue) tint(30%)); + --palette-bright-blue-4: color-mod(var(--palette-bright-blue) tint(20%)); + --palette-bright-blue-5: color-mod(var(--palette-bright-blue) tint(10%)); + --palette-bright-blue-6: var(--palette-bright-blue); + --palette-bright-blue-7: color-mod(var(--palette-bright-blue) shade(10%)); + --palette-bright-blue-8: color-mod(var(--palette-bright-blue) shade(20%)); + --palette-bright-blue-9: color-mod(var(--palette-bright-blue) shade(30%)); + + --palette-blue-0: color-mod(var(--palette-blue) tint(60%)); + --palette-blue-1: color-mod(var(--palette-blue) tint(50%)); + --palette-blue-2: color-mod(var(--palette-blue) tint(40%)); + --palette-blue-3: color-mod(var(--palette-blue) tint(30%)); + --palette-blue-4: color-mod(var(--palette-blue) tint(20%)); + --palette-blue-5: color-mod(var(--palette-blue) tint(10%)); + --palette-blue-6: var(--palette-blue); + --palette-blue-7: color-mod(var(--palette-blue) shade(10%)); + --palette-blue-8: color-mod(var(--palette-blue) shade(20%)); + --palette-blue-9: color-mod(var(--palette-blue) shade(30%)); + + --palette-yellow-0: color-mod(var(--palette-yellow) tint(60%)); + --palette-yellow-1: color-mod(var(--palette-yellow) tint(50%)); + --palette-yellow-2: color-mod(var(--palette-yellow) tint(40%)); + --palette-yellow-3: color-mod(var(--palette-yellow) tint(30%)); + --palette-yellow-4: color-mod(var(--palette-yellow) tint(20%)); + --palette-yellow-5: color-mod(var(--palette-yellow) tint(10%)); + --palette-yellow-6: var(--palette-yellow); + --palette-yellow-7: color-mod(var(--palette-yellow) shade(10%)); + --palette-yellow-8: color-mod(var(--palette-yellow) shade(20%)); + --palette-yellow-9: color-mod(var(--palette-yellow) shade(30%)); + + --palette-bright-green-0: color-mod(var(--palette-bright-green) tint(60%)); + --palette-bright-green-1: color-mod(var(--palette-bright-green) tint(50%)); + --palette-bright-green-2: color-mod(var(--palette-bright-green) tint(40%)); + --palette-bright-green-3: color-mod(var(--palette-bright-green) tint(30%)); + --palette-bright-green-4: color-mod(var(--palette-bright-green) tint(20%)); + --palette-bright-green-5: color-mod(var(--palette-bright-green) tint(10%)); + --palette-bright-green-6: var(--palette-bright-green); + --palette-bright-green-7: color-mod(var(--palette-bright-green) shade(10%)); + --palette-bright-green-8: color-mod(var(--palette-bright-green) shade(20%)); + --palette-bright-green-9: color-mod(var(--palette-bright-green) shade(30%)); + + --palette-green-0: color-mod(var(--palette-green) tint(60%)); + --palette-green-1: color-mod(var(--palette-green) tint(50%)); + --palette-green-2: color-mod(var(--palette-green) tint(40%)); + --palette-green-3: color-mod(var(--palette-green) tint(30%)); + --palette-green-4: color-mod(var(--palette-green) tint(20%)); + --palette-green-5: color-mod(var(--palette-green) tint(10%)); + --palette-green-6: var(--palette-green); + --palette-green-7: color-mod(var(--palette-green) shade(10%)); + --palette-green-8: color-mod(var(--palette-green) shade(20%)); + --palette-green-9: color-mod(var(--palette-green) shade(30%)); + + --palette-tomato-0: color-mod(var(--palette-tomato) tint(60%)); + --palette-tomato-1: color-mod(var(--palette-tomato) tint(50%)); + --palette-tomato-2: color-mod(var(--palette-tomato) tint(40%)); + --palette-tomato-3: color-mod(var(--palette-tomato) tint(30%)); + --palette-tomato-4: color-mod(var(--palette-tomato) tint(20%)); + --palette-tomato-5: color-mod(var(--palette-tomato) tint(10%)); + --palette-tomato-6: var(--palette-tomato); + --palette-tomato-7: color-mod(var(--palette-tomato) shade(10%)); + --palette-tomato-8: color-mod(var(--palette-tomato) shade(20%)); + --palette-tomato-9: color-mod(var(--palette-tomato) shade(30%)); + + --palette-bright-red-0: color-mod(var(--palette-bright-red) tint(60%)); + --palette-bright-red-1: color-mod(var(--palette-bright-red) tint(50%)); + --palette-bright-red-2: color-mod(var(--palette-bright-red) tint(40%)); + --palette-bright-red-3: color-mod(var(--palette-bright-red) tint(30%)); + --palette-bright-red-4: color-mod(var(--palette-bright-red) tint(20%)); + --palette-bright-red-5: color-mod(var(--palette-bright-red) tint(10%)); + --palette-bright-red-6: var(--palette-bright-red); + --palette-bright-red-7: color-mod(var(--palette-bright-red) shade(10%)); + --palette-bright-red-8: color-mod(var(--palette-bright-red) shade(20%)); + --palette-bright-red-9: color-mod(var(--palette-bright-red) shade(30%)); + + --palette-red-0: color-mod(var(--palette-red) tint(60%)); + --palette-red-1: color-mod(var(--palette-red) tint(50%)); + --palette-red-2: color-mod(var(--palette-red) tint(40%)); + --palette-red-3: color-mod(var(--palette-red) tint(30%)); + --palette-red-4: color-mod(var(--palette-red) tint(20%)); + --palette-red-5: color-mod(var(--palette-red) tint(10%)); + --palette-red-6: var(--palette-red); + --palette-red-7: color-mod(var(--palette-red) shade(10%)); + --palette-red-8: color-mod(var(--palette-red) shade(20%)); + --palette-red-9: color-mod(var(--palette-red) shade(30%)); + + --palette-bright-orange-0: color-mod(var(--palette-bright-orange) tint(60%)); + --palette-bright-orange-1: color-mod(var(--palette-bright-orange) tint(50%)); + --palette-bright-orange-2: color-mod(var(--palette-bright-orange) tint(40%)); + --palette-bright-orange-3: color-mod(var(--palette-bright-orange) tint(30%)); + --palette-bright-orange-4: color-mod(var(--palette-bright-orange) tint(20%)); + --palette-bright-orange-5: color-mod(var(--palette-bright-orange) tint(10%)); + --palette-bright-orange-6: var(--palette-bright-orange); + --palette-bright-orange-7: color-mod(var(--palette-bright-orange) shade(10%)); + --palette-bright-orange-8: color-mod(var(--palette-bright-orange) shade(20%)); + --palette-bright-orange-9: color-mod(var(--palette-bright-orange) shade(30%)); + + --palette-orange-0: color-mod(var(--palette-orange) tint(60%)); + --palette-orange-1: color-mod(var(--palette-orange) tint(50%)); + --palette-orange-2: color-mod(var(--palette-orange) tint(40%)); + --palette-orange-3: color-mod(var(--palette-orange) tint(30%)); + --palette-orange-4: color-mod(var(--palette-orange) tint(20%)); + --palette-orange-5: color-mod(var(--palette-orange) tint(10%)); + --palette-orange-6: var(--palette-orange); + --palette-orange-7: color-mod(var(--palette-orange) shade(10%)); + --palette-orange-8: color-mod(var(--palette-orange) shade(20%)); + --palette-orange-9: color-mod(var(--palette-orange) shade(30%)); + + --palette-violet-0: color-mod(var(--palette-violet) tint(60%)); + --palette-violet-1: color-mod(var(--palette-violet) tint(50%)); + --palette-violet-2: color-mod(var(--palette-violet) tint(40%)); + --palette-violet-3: color-mod(var(--palette-violet) tint(30%)); + --palette-violet-4: color-mod(var(--palette-violet) tint(20%)); + --palette-violet-5: color-mod(var(--palette-violet) tint(10%)); + --palette-violet-6: var(--palette-violet); + --palette-violet-7: color-mod(var(--palette-violet) shade(10%)); + --palette-violet-8: color-mod(var(--palette-violet) shade(20%)); + --palette-violet-9: color-mod(var(--palette-violet) shade(30%)); + + --palette-pink-0: color-mod(var(--palette-pink) tint(60%)); + --palette-pink-1: color-mod(var(--palette-pink) tint(50%)); + --palette-pink-2: color-mod(var(--palette-pink) tint(40%)); + --palette-pink-3: color-mod(var(--palette-pink) tint(30%)); + --palette-pink-4: color-mod(var(--palette-pink) tint(20%)); + --palette-pink-5: color-mod(var(--palette-pink) tint(10%)); + --palette-pink-6: var(--palette-pink); + --palette-pink-7: color-mod(var(--palette-pink) shade(10%)); + --palette-pink-8: color-mod(var(--palette-pink) shade(20%)); + --palette-pink-9: color-mod(var(--palette-pink) shade(30%)); + + --palette-blue-gray-0: color-mod(var(--palette-blue-gray) tint(60%)); + --palette-blue-gray-1: color-mod(var(--palette-blue-gray) tint(50%)); + --palette-blue-gray-2: color-mod(var(--palette-blue-gray) tint(40%)); + --palette-blue-gray-3: color-mod(var(--palette-blue-gray) tint(30%)); + --palette-blue-gray-4: color-mod(var(--palette-blue-gray) tint(20%)); + --palette-blue-gray-5: color-mod(var(--palette-blue-gray) tint(10%)); + --palette-blue-gray-6: var(--palette-blue-gray); + --palette-blue-gray-7: color-mod(var(--palette-blue-gray) shade(10%)); + --palette-blue-gray-8: color-mod(var(--palette-blue-gray) shade(20%)); + --palette-blue-gray-9: color-mod(var(--palette-blue-gray) shade(30%)); + + --palette-indigo-0: color-mod(var(--palette-indigo) tint(60%)); + --palette-indigo-1: color-mod(var(--palette-indigo) tint(50%)); + --palette-indigo-2: color-mod(var(--palette-indigo) tint(40%)); + --palette-indigo-3: color-mod(var(--palette-indigo) tint(30%)); + --palette-indigo-4: color-mod(var(--palette-indigo) tint(20%)); + --palette-indigo-5: color-mod(var(--palette-indigo) tint(10%)); + --palette-indigo-6: var(--palette-indigo); + --palette-indigo-7: color-mod(var(--palette-indigo) shade(10%)); + --palette-indigo-8: color-mod(var(--palette-indigo) shade(20%)); + --palette-indigo-9: color-mod(var(--palette-indigo) shade(30%)); + + --spacing-xxs: 0.25rem; + --spacing-xs: 0.5rem; + --spacing-s: 0.75rem; + --spacing-m: 1rem; + --spacing-l: 1.5rem; + --spacing-xl: 2rem; + --spacing-xxl: 3rem; +} diff --git a/vite.config.js b/vite.config.js index e238981..99791ca 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,8 +1,14 @@ +import path from "path"; import { defineConfig } from "vite"; import solid from "vite-plugin-solid"; // https://vitejs.dev/config/ export default defineConfig(async () => ({ + resolve: { + alias: { + "@": path.resolve(__dirname, "src"), + }, + }, plugins: [solid()], // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
+

Welcome to Tauri!

-
- - - - - - - - - + + +

Click on the Tauri, Vite, and Solid logos to learn more.

+ +
{ + e.preventDefault(); + greet(); + }} + > + setName(e.currentTarget.value)} + placeholder="Enter a name..." + /> + +
+ +

{greetMsg()}

- -

Click on the Tauri, Vite, and Solid logos to learn more.

- -
{ - e.preventDefault(); - greet(); - }} - > - setName(e.currentTarget.value)} - placeholder="Enter a name..." - /> - -
- -

{greetMsg()}

-