From 0725710322fdbb70c5f2c716b1d70a12a82c5574 Mon Sep 17 00:00:00 2001 From: Balaj Marius Date: Fri, 18 Sep 2026 09:45:30 +0300 Subject: [PATCH 1/7] feat: add project introduction and sticky two-column layout --- src/core/commit4.tsx | 52 ++++++++++++++----- src/static/css/main.css | 21 ++++++++ src/static/fonts/Gambetta-MediumItalic.woff2 | Bin 0 -> 21960 bytes src/static/fonts/GeneralSans-Regular.woff2 | Bin 0 -> 23084 bytes 4 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 src/static/fonts/Gambetta-MediumItalic.woff2 create mode 100644 src/static/fonts/GeneralSans-Regular.woff2 diff --git a/src/core/commit4.tsx b/src/core/commit4.tsx index faeacc9..70058f7 100644 --- a/src/core/commit4.tsx +++ b/src/core/commit4.tsx @@ -8,19 +8,45 @@ export const Commit4 = () => { const { handleStart } = useGame(); return ( -
-
- - - -
+
+
+

COMMIT4

+

+ A throwback to classic LCD games, built for GitHub Game Off 2017. Winner of{" "} + + Best Theme Interpretation + + . +

+

+ Click Start/On or press Enter to start. Move with the left and right arrow keys, and press Space to + commit. +

+ + Star on GitHub + +
+ +
+
+ + + +
-
+
+ ); }; diff --git a/src/static/css/main.css b/src/static/css/main.css index ec1754c..b07cfa9 100644 --- a/src/static/css/main.css +++ b/src/static/css/main.css @@ -1,6 +1,27 @@ @import "tailwindcss"; +@font-face { + font-family: "General Sans"; + src: url("../fonts/GeneralSans-Regular.woff2") format("woff2"); + font-style: normal; + font-weight: 400; + font-display: swap; +} + +@font-face { + font-family: "Gambetta"; + src: url("../fonts/Gambetta-MediumItalic.woff2") format("woff2"); + font-style: italic; + font-weight: 500; + font-display: swap; +} + @theme { + --font-sans: "General Sans", sans-serif; + --font-serif: "Gambetta", Georgia, serif; + --color-ink: #34384c; + --color-link: #0e63ff; + --background-image-case: url("../images/bg-1@2x.png"); --background-image-screen: url("../images/bg-2@2x.png"); --background-image-button: url("../images/bg-3@2x.png"); diff --git a/src/static/fonts/Gambetta-MediumItalic.woff2 b/src/static/fonts/Gambetta-MediumItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..91cccf0b312c9c9033e0fe34cdf1ebe18979396e GIT binary patch literal 21960 zcmV)KK)SzoPew8T0RR9109D8U4*&oF0TQ49099rH0RR9100000000000000000000 z0000#Mn+Uk92!m=ftpwxi);p90EiY52nvF~G=cOr3x#L^0X7081B)~SAO(?J2aih| zHR&~Mn?}Kd?f?%|{;7T3BHVy#s?{$*@|CFR-3;}9WfV97UfeFwU zGcu&2Gvn$C-B_c0N*1DHYWqA(3o-x@kKMt)0mw8?QpUj_{b zEj)DcfN%`6+w)pD&3FaBzuHr!ZXWmGut{UXTrd~h0dL7gP@#EMnJ#>i2<5rTq9h=9}!f&mz)m~TE7#_PXP=&P^)Z{$Z?pT2LO{@McX zcVu5OWq1u+13{gd8Zi7V-t7gNO(7wdyL1Cv^8h8+6l5w%M9kdABc8kT> zAHnosm|xoT-=wP4xe5>%`22z8I~|H^b~&ZIr{~_V6Y*Q;MKLAr@2hNlNoXnZ1{*d+kK4YOFV0y^IwE6d zhfB<=dt=jKR&vuBmHmCsg7cL+SDHEA`8`?M7 z&<2Dc)Tr z^%dont!v-kW2FXExUr1I5k=Zpe|^^1g+E{a+A6^Y8?0EHiiCK$&OPz}|90c-{SG^h znyRRpsG6vVh?shIj14PYv-l{BLqJkM$#)sfn)F1p0^FWefMTIZ`rC4~Vh%+Lso2Wn z)eAQFhYA5c|1n2^FTaczfUp0pjlgiQ3n)sQzDPdV9JAIEb7<})fI@rC}vV{*GX#Zm%mq)eO-ajJ&?bqz_xwW{Mo$^Z- z())HWU@bLUUF0OZ#z#&-{S4H_?GJocl8Qs2A&b#*LbeFmE#7fO4df=s9kq0yc?9Sw^8(OouYU*fQCGUzmpzcCe-GGSLBGA=pZ*zu8i)kL z%~%SYJkr8LEv418N#Ir!O&)3=I*1OQIC7<{c62J89e81&F5duMmwwBpw$(fa^bEa3 zZ_s;zp8(WaT1THQ{CY1?c39p-aSKvji6}c+QQ|T?_q!m{7d|G#D^xNk5Pc&pI+9d! zxd-t&CFeJXA{^r}EW-VEi1d>uETjnL-x9k{zlKxbPj2L@70X+}-D=_@TyU<+#9$Yv zg*cO1ZFZB70SdVBNw8NgZaGhD{Kmv-3CzGqc{J1>A0af$sl@lofdePbT)6Sz#hWibfr11J5hg;U1WA&m zNRuU7t~`Z`6f04tLZw-Dd5GaAzZNsE=UnQsrVHuvU)L4jI&cfP3p@ZG1J8h$z#HH_ z@CjH8)?sd7?%_N^UV%Trf8c*e0T~QrB#`kTQ$uElEDTv5i(h0)50PVCK*lwL6!#Pf z=yTMLT|n{)Nf5v+Hc-dJ(YP2vIT#*?=xfS5@+JvH79c7k{l*_S$Ov;ajR47?x<8ox zc71rbC*ikg*EKW&B}4O}2-eo_7E7R$la|ZsQoYu!jad(?+%?(tgdEk%1nGwcy31gs zs<9SlW5SzFUT9^^;!^<5qLD7&1+@$$4&eM$T4=7<%mPXuB07N^2KI$rw~@Tw1yK9| za7b*keB+hqw$QMcUY~%CeLk=$8^Ce;q8_GGcUO)1iCkG9`WY96e+ zDFC;+vchwJwBOT6T1J3|gUvYuiY?o{b0Yik_SC&i?A^f%4b${@k_^4bhd&Z)=h70u z$rG;wq>|>3XQEJ0INdu#0kOP*JEcW870M7j(yn0ISXsqIJxk7Af1a>zN3#(BxIFA` zf9-nXq0xYayD;Xuxt6Jda96WQ8mS+v{32qEWdGtck=qW18Z5d!cRDfdfR=>H3ZX)B zn)AD=ITgt39kp_>)QTcD0t9c2ap1m8!;M&)LsiHZBjF0og(;OxBzZ1^Z6%P0ssdpN zP5znG$QMF_Ar^?ho8n{+y^tWO>=ZChQkaD%eU!+Z+ld z`0XjnnrrpAa$2a0smfVnw&N6wD#zh~?^G$tXd0R6iXeQ^qnn4=&Jd`J5gW1Z$nhv8 zk)eAEq*$}3z;h^3y1FDsIZrurw$_)qOz>{pTC%E}C6&ldC%F>o5pzfrD9(q0E-`&& zvahmK(Ufm0JUYo{1L)DWye{alZ|sO8+9~P8b|QXfOe`gn5y=2W%LhYmd?#R-diIJ7-V*0DC2g z5YNgJ$QZ9K1F@D^lI0jE5Ub@b>oXhDU{(2|1RfKVqhk8$;8lg2G#f=c5Am&rBFZ+Z zN$CZ@86D1o^Y^`k$iHTiEW1sawJOVOU4g!H^G-@=IE3RPFHsGus7raGHEjFmUj_t3 z;y?r*z-c7)oxQ|>%>p%q|Bu87BiPjTAk)EASm`;dzQ(?i5f3TT_i7VKq>_;+3WArT z>gi#H;JEHYl8c>2>(u-5%DC1EEJ3Q;-yCv$2ir%qWIWZ+Qm~LXq^bw}F$fZ}nKjKg zvFRvT&Qf#?wjih_Xc?2vI!g0BMw;v8t{h_i-*j1dN))R@G+&ep8Z;9a?Y^aQq3gFD z-wYDz%2YG1Aj~0YoIl-oy4UC39&kY*SqaE?6czujK3>!V(OOLW=GpD6w0S7VQ>Ug6 z|Iit{Gcr~XWd_|f(v-e#h@b|_JYbK|v~^>|a%@9w*Ht$q$Ec;A)>sNWFtW6w|2(3j z|D}-x08c`x;)YOwm0>X&Ie;KHOw|=(r=~bw)@i+po;|J|t}9!R2`M6$=mXYdUA6Qz zPbZdW*EcY5pguvXH@o}Mh;$WFD)Z+x`*Xtl#}F4ef?+UC<@QVoDJQqTd&_HA4@qy$7LkYWA48OT(k#5+^F!PISUUc8gqLwk=(Als@3SN!sl3Chg|pG}E-uH-6Zi zaZd`Ch6i8DGfFm_bZKW~k5bjTi?cZtD%}YY*>y39Int92_k>@ z{pQGN8)1Hgiv_Gwc}*N|N{}Nus2z8&a>OhuwcitJUd@G+)eH%Fl-|0Bw&^r^>03!v z0^pf1Rzq1EW@2cMi{B}DCPz#7q0{bNG6p_m_DHW-K3|U0pY~k5($cQ zx2E5IuTf`7lG|WC(v&h>3`cE7(QukRSHH~C*>lu%JhVE45?95Aqr-&hdpXA(vmAT} zp7vPpmS&M8MIs>Co$$c4XtdthkX7iTP-xgk%}%-uH@+(t8#a8i4Eu_ci6OCdflYPB z>jK!K6poe5*{c`x<(;tOdifB3AYhEy}?XiwW*J5i@{;)Rw z9w$7v*xzv$D8Me1xZ9KCfZ2Yyhby}~v;`iu5ja(U>%J#5`ws!)Yu9TCn5pe01soP! zz}&_aKEPDWxPoohhE^@a$}nV+aW|>| zhi4Xis0Jak^>lx84yP?mL9W-GL7O*C$&6kpoaL4`U5HI6h+nFP(t6n=zN@iQMOymU zbnrVSSrE7|h6gr&ME?$>Q4MB|)+sO-2wm9QJ9c0%#sR=;lHQFVEXE4abdvsm z$H8&>z#ffyeJHClB;Hh$W*b!FqItXs!)!UA*QrU2pl*lpDRP-rWvEo99o_ql8N#X+*DLPD~edSVK-+BkI71$Qc0k9eQCtJphESUMURflW{ z;ig8Z#C4`8;X|;Pn+dvX=qNgLa4ty>YAQ()WpNo^Su#&x#Ih|ovY|^^6iNl>)#x*2 z5R$Z1%7lJ#fkJBNBpK7IPboR*UDq^5kqoUmdS-$Bs9CdP3w8m^1%MR*b`lO?V{6ZJ zN*b#qelMFMk1yC%?hom|tp{rn9Jq>;z>}90kt`iBvymL~Zq-xFg|GU8EFr;L~ zNXN(w2_Niv|Vk1sjsUDq`Fk@T!OdS-z=sF^Zn2DVqk zkvCWfU^{`_0IRKClNb-PN0Q%b7)*`Pup+P%!$h1o!4gynQLjQt%W zjNutDhM<5CPcq2kEG_{DLJu)Ppb(OQAxL0_r3M%?4qM*trax{d=pq(XEnXG*`Z!== zae2Fy(aeG4b7aPqjXSgF#y(r0zksL7Oek~s_V4Q;gAFm%FvE>7(kP>iG1fTaO)$|U zlT9(zG}Fy6%WQMZHP3tt9CE}lC!BJ|ITu`V#WgqFa>qRnJo3adFTC=`J0E=V#Wz3v z^2fgbD&k2_0*Ry|iL?SCpkUw;B*fTIdw4}lnG6}wg$t#Ut=9;PlLqv?v}VrJ2LkU~ ztf)@cMF$7%mGC4TjPNwnul;1J2=3LZAaJKhbcq7=+Kcs=vC|Ki)QsbBdfY#y4E48$ z&pg@zz@P!T&s_$L`jXd-hiAJSB%FL7eHH*q@{?zQx~q*o-|-t0o&!G#OA5Uj#ASY7 zAfx*8GGWD`!kFyrF&UM_WK|rKUQtXULQ)YGBA_%yD8BLe+FLTHD`pM$j9-|;^UIU} z-izUc_j`8#_A4Iot^3lkEhv@t^}8n2vxN4i16o_@|Ipb(`{`uh4hsr?Q%c9=jU5M#ocsHGc2^2AFL@zGQ?XR5UuSL_%tMc`DUvwr1E} z*yY`S05^~mIj7UV@lg;daA5mWA4;CpMPvWJ^8aID+cvFRwP@b7DHBEw8`P^?r{~U` z{<^={cM<>pcDDaXAsm1;( zi0q#kSR(E`aC{=z!IT$N2&4u615byFnnXiOmmYlv3>h(I!ju_v7A#q@X2X^pd)fG7 zQKH3&6(?ST#0M_lZK^csGGxkf&wKSqqfIu$Jc})| z#4<}Qx6*2>tg+U5>uj*mW?OBs%?{h`vD;qz64gnAMlF-n!$KXjPFFXr%4vjIW!1S{ zc{S^vQ3f*}TW$0KkJ)9QdhN2p$!4mpzNJ@ZkfEmg=6jOxr4dM$($4ZbSRe%z8M#h; zC*pdRN=VueV+=OdDCy+mWOG=74hrX<|EwNHLaAdRLWR|<2;s;G2Lvv&nNU|8eInLlyIVALN{2VArR&AbWvs;^(Cm#=mm|t~gg5eVUhMxwn zLVBW9mAR;xCyfS2i~&k;>QrbmBBo4v%s)_MYAv$rhU`H`sw7uZ#T4+ai5{~z(?xHSG^8Y&BWw9++_-OOau%5gwKkw(rp*Qz*#~bR zK*s^A^y}c19c@w^;CSs+R$y&m?l@Nn1n5`*)0;TvOEk+RaNAxTC*N%0fB;PqyR%&o zA95WbkXWEtx8zcaQsn^S7z%&@P0y562_;pO@E*;w179Wn5DuPvK-MB9F6Ld}!982) z#Yz>e1}zRjj_L>we(+ltiIX}~hghHvwSfR>rRoCzu$FJe86LP8Okvi6?LFVIyVK6d zojA%BLGioon4$jbDbDybW(#I*jkv(Yvgh-Mckyz5d?>wX>5_Kf^6hH*@=D)7ZsbZq zA%DeLBtS?vlh4mhuUjLZl_Y4xk52RxQvrz>!;@uWswXlOz8!;kCYRvDySPD7*hp>x;mboovG(f{TeiDMP-9)(q0QtRPV8-{5oVuB-nMB zxNR_?_#iTjYeQ~jp?pLO6bF&!#W+DZR`;BzeLhk5p&CA9f1@)Yn5 z+Ge|HVbOU(H*;iwf=P@pP*9>^W1dP1+&O;p0IC?^qRUFN)0A&R+QT05sIq#S78dF| z<;sNs<=J&_5kvoPvr`Sg(Fl=Y(3 zz~&j66^D|faoG|rFyJoK3+=L%MUhw@cD2+2k8pwm-Yv`shGs3w3-jmrW0|S>!8|2* zYblPWcw1E!c5hl*q2OkbkugR1!_tn%?@q7l?e&=EuQRCtD7KBSSAqDU7F3;@6$;4- z_1~)x)hO}{og!(B zWTwFmW_bE{DbD#4RA;&Cqh%Ge^g`Q(ZX9UqtFNRFP6ojP_<9?mK4h_WSC-2snOw`) zN;0q{?SfuHN%Ut2u{yHrlwKiV!TdyYz+dGn;VQGZ<&MWImjd9#`xANPiYuSeshfY$ z*FO)Xrh;0J(2_YO~h|`ixR<49G-80@Yu~K?TSdB6&fgm!D>{Ni?Z|p zG29M)VkS^@(}+&au~;rvz2Y*-XckVg#EWo>r#>J`f2^BCdtr&jt22(BFo1lGMkw2x zeIJlcE9MuNzRH8A0Uiam?c`Ed3Ek~0e_2aY(6SIr2f!0&o>Z4S&>-BJs@_+##vrFX z@N+j;%1`B!TBC+mfT5gOGh0K(U-aA|i*m*&f}~{P17i{fAM{<5!1vLx*RrJZJZhF)jHxZZG5HT|>F8g+U!!y9$NdKfA+A`iOl6XcpIxfkc zp`a;eGOUNgU^N)Z`Vq%bi4c2NWDfAwhn4Q?EaB7OBEbcr+)<62FW6sbZH{i(R*YO4 z>F{pCxDC5P^9iTqZZFM*$2&2Vy)snsN6j&IXqu(Z(6ffZPE#d!y*W`<4SQS&7N!yX zfRi|?8K0%aP3n2Is+dpCD|hRa+~(t%DIqaIhf8K;>8u&mkzES9b)74;PTUgEm?pm1 zvKFYe1j-k6{>yqntp?S=`ZhC`L%rwW&>bx?BE(1)Jm`&O;L@8S(nDZMnLAmf=l5JKGR{|I=%739z8gD;h)OB-4`;=-A1*+ z6&-kh(#5TB3&vDXo;N7q5gH*|3-%bH2XB^$V!!)_CuOyYd?ULUFyB94Jazh5- z=O&4{+-I6QvEUkyJTZ!jWrh__Vq6T4kp-^c5Bxgj8qninPIAr|+isk-ZD9=37 zQCXo?DXzS8{!+j`kIIJv`AWXzE?l)hbF1J|KSxn%4I?eCO=ZEsO8kxptXuHU4qt+kh^6fA&^;IH$qYRnS zErX0V@3Be7Oek@T0>M90(R6E{$L|9$@P3D@1u!tRQ_fzS9=V`m^^(E9L6eW~`@y91 z>{AeJ^je66mv$++t2c+g^h0H8Wpb_bsWtref_2(AZ_?l*Hzt>EP{)<>Ens@(eqKh6 zzuyBCYl?ytG`l+2Z8?UU&Rs-RcFE(;(54lAk87dN&HS{FNC^iwj=W(BP4cy&J!1CXZsT>(?XZzimRkxA<96Gqp)czb9LxD*uzRKa(VE=plh&GVf2T{hCG%Y!sq zlPNM6%m!e%A%vLg5KONOvvY;&q0*PNfErD!`5?t~C{K!T@KmmrB&WkGiHBs2i16ACdpk8LQVS-U?|TXGULv{oOZ%p z>FYHb3$v8w8LF3hGrcqX8p6V!G2|j2XY>>$o*iK^wVLC5_bz*AzD9L;t>PnAzk_H|^BjDnUuUBE$}XFL0x zFY>Hc(hDM_yMhi^s>E;=PGVay%vW;GoO2s#xY*p#nLkZf>ag;djX)rE@|nJnQbk6>m;&3WmQm{|SNdDQ)lOLBG!GsN1(kGJo{{r6@SyDBYERqVUZpq1erl zne>cjB88Z7Vt$DwD9}|D9YSilXHsXzfClDQ7%Ezt(&Fe3Cc^SBy}6w&J@cUSTfs|2 z21Ne2GL)dml~E>&yqQfv4$V-aNt=x}5{TKXx&QOgj>XvW>R+}wezdP1GREguSO+50 zChT#{bDy%up+2_lih79(5~!G%8XIS^B{KS`11PE<&1OYXXw)>w6#DQPu{Ot?bfyh3 z95%~d3MDD5`s}2gen*tbil>Sv!p!y46*Ft8tnW=oDRJflpeF~}ZS9|bs6V|;y{il& zfy=Ix8zD1LIWL)gl0{-mwP>g9_L|X?tHB{yGTPJ!4I9+$!gS?s&*vCmlnp8i*9KOV z!7cGFc+Ill?HPUDVYy+Og#IiIiPFLyGeS9aEI5pC?& zkz8*zYMWcLe4{bhgp}zoDkB`~bdURB{TV92q^t@ruqNdYj#wXawV7l~aRB$|X-I*J z&H3{Qma5kAYjx*RZ#H>Z0VW93yZp*^Nu2F&`wDp!^$DJ|mjDk}w(BAdayU(0-Efgp zr_PN4PMr}`oPihf%KF>nadf+Zpe7$LN%kW2gU*1sn1W#NF9wJuPwM3`MjqDjTlyD` z^0aWVv;R+pvrF9Qo2J1fF1JT;4w#nRY}cAauybine=x5Nz(n&@xA0WJ6}n&UUx~fvLbrN^ zO)>jRXpl&KaFI3QuQF5{{Nf-LRIUbPZ3zpwn6W_sD6mvGgBfWeGqv$}l;bS$HE-bq z{p`UMHt@U$w3$29ZYbqWFZ9Q$VL`66jJ`<7%sW*miJ81@z9iBUPE*`SwE$*RB(cp4 zCoE999aC-Ft|*|iZ(cHaB8WfSLI`Cr6w^BLLJ3SvwVa1_Q^+ZepvQCtxkqXN2vQKFlm-Rr@-S$7 zdO4DyW&jz7E5`kx=WJvqm6XF@vr02nhPJOfFeBH3JCq=CM7qp2wt}ohYuW3Ki@{1{ z41EHPPMuobWn8D)k^p`nDBR*>XN^sq`I9Esx;*=ia`&jRrTEr-B@xL;!)beZvccbJfEGDzd|ca zzNbq@pcQ9FIN=md;&?oo(7mdcSOk0+HddZSz6f{Z(F+EQaQghd8PA#pn@8@xq`pr({H7+b<9HhlCnE=;EfsC|#6QYFi6KoJtOZ7>ejSpVQ)0vVHl_riu2@WRE4{cg(` zsD->k$6@DgceIq|A=dB5HBl5#X)K=~kAvs8Y?cTsIlZnSuvqLBYiGDe@_njRw_~B| z@93DPof=`H)ll;TVArpiEp`n>}vPsE34ml^qD_d|9L%M>dLP+O|3>edS{N- zSB$nF=A)#i`{y6**y!K9VX&eU>Mx1)7iRzyg+HTr>HRT~k9#SQbCr%_tGB--#!u*) zVT(wbK)Ea*jN|+TjE-Kun8A2x`R2r$2%10FRqURb4vx)yMw$Lx;F};8rxtW<&ESco zX$9>wN&+R(6jZ~q@WT0~plW8;SbTy=wN7EjX0s%}eUmvpeY24iT=&G%X90eJbw#1|t~U9-n@BM!KSgHx8BKri zU6m!BoG;E7J2DEip&G;{SspJ;9l{VQP#w3H@Y(G=!H~`5lPS6n{KJZZ_`6oQ*^ z{G;yjDhM&879vM^v_3{;>6X;|Cij#sLiSmY&!E6xmaPSga_Yk4z-$>Kd;SbF`(TA22fDaTgYkMMvPvN4n0vxRb|Sd(WA(ni z6*;rqL9|!5cSN?cTrW~d)5LS%SXD}xA(C_T-*jVP4*2Q!vdOXf9Ftw+?7Q>La2poZ z9CUbuUU*%j%rWO|TwNrybQ)85vN)kYgpvUNe(6V}TEcp6Jja5I+XEKQ*(RM;>fH3C zCG*xyzAB^Nkta2#aqDOGf+Xo!8+<&VQCSe{LgyRQY*8hR^-sK@z>t8U-gQR?6bA?+ zC1wD9T)*mzuZEUkVNF2?hv|hstL0XMqH^tIZI-#%GME-GXQ%y&lE{XO(@iVDut{;~ zg!&wa$4hdtzv@!)i`f4Ou*Rg>RzJIM1L=2Md4jdEQ{LF8XrMDQ#u;NXs{xd|R;iU4 z{<8=)zi?Zb8<}m)O6AdFC9*gbM{Wua7ccVk+d5OisbY4hHnGF+SL`q7MJJ9RMw4I?fH%zO`1lc%1ESv7+Y;|XYI_9?ffmMR~k5x^vW7` zu6ieja&9O>y=rV_Yh%UL^UGWE3d2N)36RY$$vGn}vZFUj8uOEcG1p=G;g{RM`7r(F zrEuJIu~H9-U9t3p+nEK*MQy~TPW(PI8&fCV+UhqoVlgu%*R-gZk{8Y&*b}l(8?tx! zLSko{Y&uAEWFExU;5B##V8abtM#K4#ev!}Tkc36EbgG->o5O9e*@ON}kya#yDh=CoOpQ=|1zQjak8fR7*m zdsD3Z|GSyG^Id};uhYv@gxf>x?bR7+TB!=GxuF}6t51;K5Ept?_JayX*|h`h#SLx4 z4U>C*A7!3S`$#lx&Be-=NSY2<)OBKGXQ%LdO{S_`V(M%coCP=5-9W%Y*msmh2rcIR zHn{ZcivYd6VJ8}Qvr*~#^O&lp%!)4j@%hPBve$T0S1bRZf5^7fbRKy=qF`x`wrv`u z_vz?*lOT7evpL@ym9m2XMq-k+#WFr!kp4m*E!U-3#%ii9Ig$KnLNA{uHKp?bDNMqzFfL-r3Af_?=0j1V4hVEb&a0HSPNyy+`rydkbzGtp65P>>&Y zn)$vRj-Jj?>L8IZMo8t3^V5s8U#@dD^jj78f4brB^v<>4e+aw+QhAgHl3#BN&_I-5zGp;75`<5EpW;;Bz8R+PY$^zw zs)1BCg_BUuIEVZ55aGiseHZwv$~QK*!-4Q8%Bj)Wj}frn zB+Bz*j2dE-HJrKeqWE@jI$UDYK;k7rh_VNX^gfw=e*5X02%Ol*RwR!*tUNw``g>Q< zaTX_q*u4KCB)(u0Hg57q-*91xZO5H^9ARAnhO&OnmJdOy8kF2P6wGP(`QWQsKa|AV z)&L6TvL2QO*{2BX^N+F~l%cZM2Qkio6^EklJ)Z4vO$(Hr(yCARbeEn0zK30X#By=U z0HcT0pSDYXniGEEYQQFY%jn-e*FhxWbQ9`K6Mu{_L;!;iXb(Wm4!LYv-8luGC^Ag( zK@0NQ^!yFEG@6{>ec+2)THPLXr6E$UPN3RwNbD94qB;7 z<%9HbjR@+39`5PRj?RheK>L;*^35S#GB0tjZ;q2NV$L(@yk4}A;}+CJIFL3CcFDz~ zx=NEXKF&PPmj~e;(hDLXOVZks%V1RKPLxu+c#_(Bi`!TsbtwMS{&+!ta+ElNBeEw) z3Hx!;8k#Uo9UB>bdj4wxR?GrfPV16<`)2Nk)(c5l{mnczzCHdg8xmFbE>q9pql!51 zDhzPaveraf$bOj*xIsc+MF*`9LNA~Qedo4h8f%foi2=4iVxP->t~)bZ1rG0RnB9sNLpOMM!G32$ zqV(Sy3|s-KnDfUEL4?*u`$Uhce1Kn@*;tJ##x^Ep54I($@a>$xj%@~xyv;DMQ&5GO zG(s3_y;8+g{4dTvN;VfeMxU`MhNOpe=-+ZXvg%rN+o2>FHKd zOIx%I#4NLz5`!K!#$JwAmgdK^n2NNHk8ds|tsD%EYB0H(+#=$* z%;$#6ZiA!i!QYE1;@}Vm8eYU8hfk2bB>zUhky5`}w{OCXfQ!O&Y@n9XcrKoZ2& z_vxY}h+;6WOmfnEb4P%>(9LLxq}~qgC_gC2%{6usMMbn7RWQUn^5ON;Rrj^wP|Vp` za%0VL8Gf#31xZ#Dy|EgG1ziGJSZ!PY%K1)bN(i8jr;%X)(9%oSTj8crd~_5e!Th=; z$)Xgn!dp0l81J&Xdw>g%U3ipjLdVST<#hWgrWqZz2?*d>#Lb(+c9I6S$#|-H^3*5S zmZI$lbVcyg{DOxCH?gMnKxf#lX$Ls{Z|di%AOh}pU?yxAY4tW)gnB-B3SCiwKo=r0 z<(BCuJ&C&e>CThI*TGq96RS)YnXd`L*ySb6GJS9_8XFDnJRwZoXt1G3d#?9Xg`X!; zJE;Ysf`*+(Pgp7Y`B+1X3;iIovB4;#iDYhpYc1<-mMh4U%b1ES^?Bwt_y4^ z6b19zo9wfZmSIOxj+V{r#zLDG`2v+O(TB^N%l;ZUS28k;={h5ePR&8Hwu3(E!v?iV z{E&U}u14kYfg=>o>7*fh#Opl_8uYG*B%wG{u1K2@N~Dizwv3 z!00Ig_7aw`rTaltjE*zMLEGdvbcHT9F&rB`FuzTgREPSo3ysZx8EP>QSfbGQ_*jqv zNvIO0$Gr|w1bPY&!y{872@srrVRl_bCYscX#N^*4_pR`xwSw>FazC1)Wln+rFW;I~ zg*Iiu#?`U18{rn1+NL%bci@*2R%H%t%;rL1@+r`fcsP43YxS*%X)MCPn*Dv;O~nky zB(`n53^ZvqwR?I%C#Dd7%n+^s!_B{geOzIY?{VQlzGgT{$V>%a&7*FcI0k08ontPm zR8bCQ`Sh@t6TK7stH8_dM1dmNT3@G3OjW05)YVw=oYEX`0g1YR3t zOebvvP|}kMjD6pU4>dh+o}SW=G~$0y>NE zixe^+Br4yBv3){<9Dn)yVqaNREYZup(tzx_~+>bce5|WjQlTzR$$TKi!;v#Yv5+}hSev({8ZAfS1 zkh>A3=sz3*e2d+%obtc@saQk{|23Q@61I`AgUBH4&#!Qri9Sr)DYYJ?M(m=VKL^o79l;V#Ufa-Rjm(cF0v;en1~hH z)|stTE!H`Z!J|&Od)=LJ4PnbM)d|Vdl`v1f4YHh&-NF+gt+DR7i2DQg5<@`AjScPw zC>yl*|3fGGI>lN;iPxJIvY%YSVwx#jM3@IU6+L%2{JXOj3Npm)C-3K4wC_3oMx^IZ z5ce2AGY7d_B+FMH9kkovQ&Th3@adUH0q5|kDR8keYs^J`2ANA|ebu$2ZRN_Lye@OW zN^^R@qx?!MfGXXn|8w2(idO>?Q}&B8cb=y(J%R;bu96t>I|r)mnwODR_%F|peO5S{=M6D@}DFnb@vvT6S_?4MIe zr!<{YR9y`SUrZ1Wy^JY)?%Wr@8?eA?Tc7RF+9BjJ)AO6X`_SFwtaO}$;vY0K5MoQi zrBmRfUw($+b_eDTI3te$X7+b@E8Z8Epqz^jQ9e*&B%;{!ewim0R+Fy>%JBEO(LjAX>H4-sJ-uZcG<&zs<81Yvjf5TDrEPm=hDDOzz&dSR2#%5GGTowClnO zmxrc@OmB}+R39!4O+K_F!O|9>&xf`ulY`EI&esb?H2O;9R!!r~nc9?J`CVx5*7$&m zTQRrfbVXq8F>l#5Czn}3k;{sVtU_@sZEKn+#m2%~zzXv-9h}n?24X-gvtB%o!2)Y+ zt89nHhfqY#vsdH!o*0eiKoG^U^HRE|wkNjC4(A9&j=rp>=|NVB!v)L6ZC?U1MGteW zu~^mbxP0mRC? z{-AU0e2d;5v>m%UV`G%OEO+)p*v_+|nz{qUlo}kRvv1ES;;7MR3#*ig7WQ zJN4blLd~GCPfmt6)s!(+jal6yQr86Kabt}k>8@{>R_Ojs;CIslStdbRf_{hqwPt06 zT9Nbai;eK(v(aHtU0J>{=CbRfwpYxAbVp4z8f)*DS!p(a-%xW2*u)r%vK3ozhLb(#y834j{L8!W}tmO>o79$wOK?K^!xGCqu~ z9EMM`wwJ0zY%%;WZ>SVq*WNu_`3McP6t-$fPW-e*=!LMrkP8^(J}8#2TG(BWjx}h) zS4Rbk_-nQ~x9(KpYmQH(TQTG7$?5=?i~!@K<`H3 zOY!JE!jC0??Cx$^z$ap^q6zDQ&<|0BRmkhz%84Qtf1b!bQZZ*#9~w)twMV;F;mqJ@ ztjbXIpgOhtWZ+AYy6Ms#(!D-ZJXDE#Kcb7Mf4RVwk?~U5?3ML(XZh+K!IX1@5$aXr6c+H=Zu1Mmgoi6DFK#F}@p#t;eR*Kt;;N#bNRsV; zJ>w8T^cO;Jgq(~xi9u~n^3fM11IGm+?Tix|SQdc(6@%Q1i%Qe|?8Xk4`CI@+z){nv zkyD@&GER)9Yp+C+Im3gRuFVhdPrr^aiFionj zIeBQIYYl=ON8hEH_|k^DZoZ}`g5Rz}SDSv%kFUQl{Gm7H9zKHDn?i4dm5jKGMjc49 zq$sZ}diOl_$@{Z~P()b(>NgB(AXEYO+BdkGqm+O}WR=Gk?RJ=kp4XS?)XHC;hf}A; z_?GUbtK44gFG9>-H@-gSQv=Ij5D((jwe5j&PrTp!eg3a=1PI`kvia>Ze;s*CHEXbn z8Gdq-HiWG@NK~w-e)nI)56!7o<>@3mi^?W>Q;Hqjz)cjL*w1V=xmI_xsedu%*h#Pksm87%x$trQQ(p;H>;$OXcn8xRM|y_MAEJ% zv|LkOU-%hvkG;be;pHfk2;SX-6xwR3W1)Bo0VpC(~QBuRU@>IGK zgpM)kbJpih2lfcPPrcDVh+xd4sE}}4d0F2kGB}0g32Cshk=cZ0yx0|j*qa6~V~83} zlGU^OmMN;iPlC|H+`+@NJ3)6)8^R;Ept+tJ;euyv)v^BE;pqB|BB}09P{bG9YedDu#S*zHy7WS+W>KD1u7pIxi-^YH+uUS_wMU|# z_*64!q$lYAR&cAIyd`*H#i=CiOf#yt1LHSi=vdvkr%S7ZQ1@ee&G4kAQ1RC!n2#$g zoEHvIdN{cPVZm!;Wur{0B7YX@OJZUFIxh6h;YQS!y;(9`k&5uz6UFWQ=0a$oB>-}2 z7Cj{DtJtmFEe<{AN`04}idvvA?W@Q$dx0BA^4M|;EG)LX&0yI)=|KntV|_U7HrB%( ziYT1RTW7Y>*x-l3BIjU~b)nua)ReED*^%`U!!Nd!rq)%b~vpYJ~tOtwla6Md+rYIvl$|9qJ=^>dwf`IyL<0b@4a28$^ z_x7VA+Cc{`qINCM`RrAUWcrXWm)z>ecAB($$lJ9lnPUfb)NviX2N_g?NAE_7RxeN* z!Ptx`x-STGeUYo;h%Ge@FxRgn(AE9!#yi= zXepd!Xn4V4KMVQusj~sy7uSvh$l%jHJHm*s2lOr>*3Fk}ubj`)`SPA&64J zq#y^T-iORvTb#;c6~2f9W*`?*K@QAyC^iKxC64}qSulzk1+CLdvrIzZ;Q(P)FnAnW z0-rD6%^^KBVRmdfxkyrF!$AsTsTl@Z2HlO#lH#-!|DeEzBSU?M)4>1#VGj2d0Ka2e9$eVvg>C_wjXcW&+k_P+i$taOkKuK0wq3MV~_8JBn9( zx~_D560-q#h!>Cho#;TR9`nN5htP(^$6cP7!;(S7xHOTn4UDf)4DKm4 ze$@td2qTPDL74$T#A^YZcz85eL;Zk&w)e;OA+uFGsf4&NQ2=nU)`#ng_#PFtYVlN@Qc`d54vWy7264dm>qqU6A)A>QiDb{Cj_|kyrA0w7f zBfHq2#zx#?JC|fQ(zu;~G4){cx8U&LFc8-^rPCWe9cZkUgs1OCgN@x>)4)=){r$=V zRV$~OT)gs&28@i~<(tr8Z#yM(Y2O&E1*Eq$Imx4e=6wEfh)oNLj?zPvVSn#E4b!Qv zBsA}TQnKFBbeWeDR@P}pWQ$N0A2+PptekvM8df@MEAFD~8iYjbJzHMqgq)ueQ3 zXf(X1E5)L?`hkKhfnI*}iWbzX zcZryxCVxrT%*S?Q9>h$JxKnx)`{$ogow%3-&t^ z4`3oLC1fXY0PdyV?7qOLM!=qsaKFQf%W+;EhFwU_HlH5&x-M7&0s90dLh^!rm#0n} zVOgq4`D6ynP(uJO=9_xki<(xSY0g|7BOuTQ-m_&|xiWGi}~A6Ur05s{d@>$XA-$<#s= zZ+;j&6JXZ&Jj!nt-@!aBkX4QyHiQ93sPLp=*q97Df-Rxw%#B90DEa zK4FYX>h3aLCl?}^+D67llDaP$ZxV6>V-?^l3@@=hv7S4&5i|B1bDRk>Fjw40?iVP7 zU;bY3jZc>o;UsoC0vl?Zs*|53RHcC0h5HM!zg@e3E#|j{uNGq7T;zLyUB7=FcpQ=2 zY=NlycNwMx9bqfd8*_J-vRT>@zlf3*->hd_*41oxE%&Ty1P451K981}$MG3gg;MLtV9{BC1^2uIlXPjzIDa)Cm;68IL+CQkwwe%^V&N zprqbp0G%z&xl}YzE)z69cvDZ|1H(oD9Ya1NYD?eD1JK)OQV2dVmdP zq|rXAPF}5imd6N~O7`38V_#PlAnt%QFnnpv2^q2Xe>tx~78dTK_Os_XA84P*O7=p8 z4%&w-B-H&vsCJ&ncJW?{%-uy&^e?)+GOCHsi~Hc0`?Y|?Vh~G#fDUl&KlXEly9*?j z?&Y9}9TYk9M9cO{-+MmWeEF5fRcR@^0JTF@rg61J;(oy;DlQ2(eTT6!kL!kCeUEUp zN5X{3YqO~B!j)0lX-eHEy01&C=dxBic4jrT8Y@1b8Ft!;(oQ+WwcB^RZJPUs%UlrL zRzCBBOPhJdy<0uLmy0N@qSsnJyxSc7u%@)rCn@Lq{sj0)orV!VH2vT##5>Fkz8=GAqzK5>S$LR6oD>C*XGvsO?lO|=@{*!H+P#pYcA44Ixtg?1>k^PzE}B|+mu z(?EL~8VB0i&`O{gpvj>Lpr66j2qh96YG zJ=-!?t(KY8FIAEcyz+*&fA0r%X>;T~MEc826~8Rkt!6*5dZZOkp6`+`vvub$@o-+q z85F1I5AQ9Co#L*vlxYBRrXgvdqG2n2UDa-JcWa#2v?qd4gP2J}`|hf#+V=6Abyu$2 zb-(?0y;#{P2y$Av6o3LjzrBx~+YCzFTAvdc8n?(I_k--%BqV#Xv?B*lXM%EIFLV_- zi2tzUVESt$hmdL+Ih4)*B!{tl%;a#k&wT0#@7_R;Wd3?cjwTG!8GQ`(AfGtYD*@-i z9Z9V0A{mueBqzpyk|(B)lrgJODTmN`q(V~%NP*MTq>{z@us91WNF8AhmQ;y*oTNH; zp8KRE=(U~H(!Tz_E_9iFLKa^SI9@^;l^PQc?Ado}JG(9p91!}fLPN5IOyViR3n!M> zBgu~8o{mDHiUXrml2FQbI$U7~9v!h7M0JO@@f}Ld2!v?+7?k{aO5V_=hhsvh+Xn+) zNyeJOxReNEM$U4Pf!8sfno&s)S(g4)%w0$$@=4_F}5Mq!XWcF?C7bqt0!W z+7+2E{kTlwILUje}o79>P*S89)UCHwINs+%CO*!FNB=z$!6p6*pg2OcUD5@NFpuD zYo4(tq1Y0>_kloEvI-TUa6H*kSZ)s}rQ8h#ct068J#?1WFjRXj0~(0 zk$^Ce3N_p(bdhIhx!JMTEZB4@Ky1C$&tA}%^H6A*qax6tQvab`59vO;MJ#0)q6>t{ z!@gvllMER=icuGY0y&w`QJtNsc*MI|@_t4rDokuJrx5-_0h-E`s=Yiae1{lg_1+i5 zzxNiOWj?zd{49$OXZN(3<$Yv!&CKet(kT(~XM;`xaC?ZfriV`hGELt0EjE;ecB@P=$ ze82ti#M8KV5+t_n<-%ksQrr0QUMVCZZg&#tq+~tw+_K~plvLgDFm<=xan}Pk-A_YH zN6)~>#4JN53#%+P*>aj)uDmwcY@6+l*kY@r203K7)sER`zdhwEU{|Q9F%>ImMy1U% z)BDO=YLYpY8*hrKc2?d22U|rH{^*WF1H!eA==Ty0lxd{zbVL86%`KJ3jMlte`vo;o zNW(UF@P6`*;3~@F9k|bZyfXwjSXS@_m1bkW-Wl*zWDiC~KYTKsot^khr=`x*pUdSe zm@WIH8ZIk+dh@FF?5Q>L)%k|_`0dT=!U+2u;^sK+N7ZWXU=E3wb}KN#3$L>RJ-CB8 zdbU%eG?DH_6T+75m~`0I#IqxuN*KB0f5@7)*W6_LHI3PITJFj!EV#6&W6?paMMQ_u zlF$n)DpOs(?8Y%ue6kAJqY=wAziP!#%hlcuWIVc~wUVzRj&KEVE8fxg?z+YxL?E{_ z()lXBe5|DI&b{K(cG7T|<~27) zgE6Un+xn>i2Gr~E{{P3zBu~wDeX!#2f;bybPi^L|Xz9a3m!++3yaa$#Hy3G%?qq|+ fpqG(7U4pcruCPESMv!{cl}-}kwQQ(=k_G?(j8a=R literal 0 HcmV?d00001 diff --git a/src/static/fonts/GeneralSans-Regular.woff2 b/src/static/fonts/GeneralSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2bc4672a793a465d3838051c39ad2a33cc5fb039 GIT binary patch literal 23084 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 literal 0 HcmV?d00001 From 5db001f052ff492aa033e4b9d4092ad873cef723 Mon Sep 17 00:00:00 2001 From: Balaj Marius Date: Fri, 18 Sep 2026 10:27:52 +0300 Subject: [PATCH 2/7] refactor: extract page layout and localized typography --- index.html | 8 +-- package-lock.json | 106 ++++++++++++++++++++++++++++++++-------- package.json | 2 + src/core/commit4.tsx | 39 ++++----------- src/core/layout.tsx | 43 ++++++++++++++++ src/data/copy.json | 11 +++++ src/i18n.ts | 14 ++++++ src/main.tsx | 2 + src/static/css/main.css | 5 +- src/ui/typography.tsx | 34 +++++++++++++ 10 files changed, 207 insertions(+), 57 deletions(-) create mode 100644 src/core/layout.tsx create mode 100644 src/data/copy.json create mode 100644 src/i18n.ts create mode 100644 src/ui/typography.tsx diff --git a/index.html b/index.html index 08fa866..bcf4f50 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ COMMIT4 — Retro LCD Game by Balaj Marius @@ -20,14 +20,14 @@