From 23b117d880fd5820ba9f51f2a1473f901e480663 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Tue, 17 Feb 2026 23:26:10 +0100 Subject: [PATCH 1/2] Cosmetical changes to the home page (font; headline; etc) --- docs/assets/fonts/GeistPixel-Circle.woff2 | Bin 0 -> 28104 bytes docs/assets/fonts/GeistPixel-Square.woff2 | Bin 0 -> 28616 bytes docs/assets/stylesheets/extra.css | 101 ++++------------------ docs/assets/stylesheets/landing.css | 37 ++++++-- docs/assets/stylesheets/pricing.css | 2 +- docs/overrides/home.html | 28 +++--- docs/overrides/main.html | 5 ++ 7 files changed, 70 insertions(+), 103 deletions(-) create mode 100644 docs/assets/fonts/GeistPixel-Circle.woff2 create mode 100644 docs/assets/fonts/GeistPixel-Square.woff2 diff --git a/docs/assets/fonts/GeistPixel-Circle.woff2 b/docs/assets/fonts/GeistPixel-Circle.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..100da9fb0a305ec979a5bb798ad7588a18967ea1 GIT binary patch literal 28104 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 nJ}K8CqCNR@09X0RR9100000000000000000000 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
  • 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

    P}59*%~bzZMKf$K=Mg)s&)64a z>ibxEWcd$JYruA|{W4=>=gBNL{cawBfWm-aF?zCOEY~28f1MCbe~pu~{0_}^>VpRY zv?!p26iOCDG^oKCY=yjqT@)E4=F}35=mYW@o99@iYD@+65S2cR<5cYHu%Y=h$oi5I!As&hvuT4eT=D{vUz1{k{D zz@n-B>wHX}LC1nGTeG>dgayFYC#*Ts4Okonvj}{4QoB#%pa)hMGzucW-%p_OE?0-v zW%=HmQg7@q4@R3o7gz+%%fYOI)(=o0>u2h)wyGT)Alc5y2fdN{ZtV!8GUHuLqE%x+QnROlw|vY$siUg zNUKwrP}yTJacG-%XbRNL*wn`b^k@MslM@C7!QYlM5PhA|w_$3Bu6@o8n!0b;Zb)Ox zcE&BoE%HVH=OxWf>_7&gIYVCFVYZ-yC&VA_V}alFCAVz9IxMrqWx2}BB)El-x(Sm{ zLkJcbdhPla2?k|{#|n}XsJIGhuBLu}XUsqg)bc`@GuagQi+@?^;|Fm;6I~H&3GxA1 zwrgw(GV~5fHd_b5?38Z@xDp^-|E~DzC zVjB#xA6PR}+(}@ZHEe~^cO#FuZJ}v)6EmcE9X3X55Yl6YQ2hK3>y$z_S@xLzBL)ia z_VOmo_Q@7x=o8|sLsJ*f?1a*rH}1hN*2P)uS!Fy4l{Ub$jyR6fF_WRHR`NeGJX#W# z8z`VbGVBn?;ioRCi)kM+Lbs0H-34IXN5n@3pXzwxiRy~yOLe}>&cI100Ny0Ezsn7V z%d4!?=gDh0jRovOt_m(Ah63RCE1PHC6IX z8EM+7ZI0?LgR5~IfC?;W%K}fynDun)U7(xSj&E6dY@4O!d!`GHc^bKppH*xhvg=*( z%RVcNRZz!{AJBc6P6ebWnl8QA8DH)aw{C54@m@4NY4g>pT`P&bcfNNqS-hRIFji}2 z1~$U*M-tohI2f!OVQ677UAr4|Lhk==Xt1ht#aFr_=3Ti49u>S1Y(Dez;pt4LyKgQ3 z1;56);CvQ7{qODNgs`FhUG@5V`c2X~>@!DulW^2B;D050-M7 zXb^JXnR-qXVjb@GQSYZDD@wZ1Jj_kJK~Uw*+4Z#F#j{^M^U;S0Lfe0r)^b08b*b}1fxY}T&E4O#A8>^Hbfc3^cxw`3A|$DC@~ z=bRsSTF)nbKs+Mesmp_>Yxcxf@DnNkYd(OnfqjFVvl(F(i+9`nnw09_Nx#IM+In3u z`FC?s@D*cDU%FucUjAY+wZVpC1e@c&8`y(C`cMD?1OhYkTTvli>bJoOdm0RGT^y_` z(Q#)|2JgrKY2H17pe0tRhvi7pje8RPDg1@l0_DwIRTX6*H;MB=R^7_7FEe2v$-bWR zI1hD&6RXv(xe(L-2TX=V&5+eMa;b#JLLpy+Ckmv8YSmaOQvA!SnW>`eK%cu52EJfZ znU_+4`Rg0EC5hMhSlq$c07ZHBL7M;Y}R7wKLz-EpsP_gl17%1w%qC zQ^AUeLH+ph--IF#a61!?4sq{L!P^oV7SL42ysUfT{U9BZ?s5zM=S>2dgmz;wFK(VX zQqJBL6k^}*vmUY^PnR4%a6*e%UY{x(SPug(J*23as0Y-b`~Xu6VSto){iPd!(r`Br z-Un%>=y6y#d1IB{C9AC4GjVELEf`a7E#*vPKr!pl`8eDZ@p?dD34@&)Z%hv-ZfR;g zkq)%1X>kdLRWJz@1M?G2hK;rZE71dbE;XP{u?;Yg<~%@JKfZ?d>L^(rZSM6Vk{Ly2vV~HwU!ij9?EEy znAjP1MTAE3OL%LLCo-fcZpc=CtrEm&HI!*iYAgfEAC{s80TH(Tb2ZTWF?|=&csQvG z0k_t^K?djETBefNX>y(SL2tn^rW(Zuc>9_4*5SQi6-Llno|lBJ8@BPn{+^i%aX9usV;k;G;4!xC<_hDqFMTnaLacHbSiWRO+HBDA6^OX8)*-zA^iDJcY zu!xTSGz2p~i3%WW}E3x6Frdqbf+%5I``RHfq`G8J9;=cpA4J=vLz=p#i&QYpJ zsDx`|=;U>`TNTduD*vd*s^GO`YS`Lyf_DAv6%(z}X|KJ12^vdrcx|c%tZFp&32l}r zWaKpUc-||o)eVxcBwnQX%pII@hXAjQKNjr`2*x*?MOaL+W(~=m^ELMuUgbp-+HOv9 zy42G->RIL=Op8`~i?EiD4kpcX7cvtx;XYwy_~hfTaGTNQJ9GqY{E`x8YzXEHESTRF z-zE>KdyMbc5=itinR}WX0Ys{2|9Q8jgy<)sDE+SFhZE?LKKchI z6VB^hS-uj(kdK&co%eXG!Jn^$_FrOOFjc3#iR&gn-758Hg<9~<|l?fer?PE?kDv2VB2du8j1vaj-|WdQ}6ehg<~ z(k|0ViUc2@vR@aj-W-b#gLvO3lD^fAQ(V%ao)kU+=({aLg?bGB65kye(}T+tfEpDm%MjTd(c=&TXv>m4jCHqt9G0~O@|Q}P{|sVgSKlD zeJO(z4Lxx%gK7fen>F5tPm-zT@QE5}luR{}2k=RA3;<1kf&PYXjhV|IVb4{`CXR4< z=Xw8Vba4Sjub40W%P)PUiB_@vj07JrHr8c$>6((C?JYmC=o#_oNAz`w$F^9WfYcDe zfP4nr2-FE-F{#X9PKO^P7|}sLJ>$qP2{S1sDn^2h*6bm02{cEryI$u|u~aDfa4+$t zVJ?fsPJWh1Wl{1~RPJj%R09ga>|l?p)iJWw5wmN*RXzey7uF)lbXPG(q5bj#Krk&Yd@=d1?n! z-<3^9U4@l1N+Z3Y_^RIiVqd+TUPryH*_L|iQdc^9t%|jJHB-|y1ywkC`82OyF2U(q zY&4`xsGz#k-R-jxg@Hv30>%%c5W*b7ejF~J$dOph#W)3DOczK};FCUVga|_r1ah^M zk)qk47$gGOw{62vlv7cXHvg-#9b>9ij46|4D!LWIMxaKiAjO&Gkd$`4%tqA4J7Fod z7s!EWuYlF~P{1y554cQLJKGD|RJ~>RLZ*82JHfhMlTv!h}T#CJ~M zT_jZm&t)LEGAOmRQ2`@L7SYopeRRvvKZ?nTw_OtdG#$8l#0|43Q#G+JWON^V#Hpc# z1iO?Y5iLYm17?eP95!s2;Rc0}TG&Jpre20zw?P~yP7z@S(de(WmgU6NN;zdQ)8fyc z(uD=vRullb^C9rO{_=vZ%bvFfx@31@MCX%|{yVW4EEGlvGglNrcI@pa6ToqVeJ9P6 zc*RTz@q`bXn@Lrfq$ni)dby&Q8|Eb}HVQS8RmQ9jPiLa+GAd4&o1~-_OFld!L>r=M z{yqcG zIq9JLkN4-;UhOR+Yv25)%EyFUrhpyVuz*Zc$#ZdyU;6xv7*c+Ae2uZ9?}>N*3#M`U zSwOd9om|ZUyJ2N)#X96u%8n;+-YwW2sOF^j74;z7vt%hX>~SYlE!r-O?k%Ew@BALZ9|Io{CNY}beHpmWrF zVrtCFWFAp1MycZ6Mxx(4hye)&u_NI0Qy-iWE(muIUz=pt%a!j~KcPu$rUPSTADI8T zJ>6jU^wd=P5q6HMQY_Fe%e8>@^`Q-W4os{aSg?%XqL_IB?^c=@x&r`xXvU@@c~N4y zMO1C#mKx}4bT6nzGArpu%v|TLXRbq6fWuXMK?%FYl1MQ(^DGdhK}uJbacO2I}EyGWkqT1D7GQLhzTgOZ@g6I)|~*>YUCk z?-l(DJ_*W6Y;~cF{U}v11-0B1oYsanLao_-yqEV51S*y~;e9%gidqFchYTg}jns+_ zLA`vhzDswrY;Z;oRLhVCC45KkVIY~67BF@6LlO^tj_;!eTaxWMOwFbnpjFY`h)HU^ z7#&CLUm<<0l4UzN(gBBG#gXZy@ar~D{DAg}cJ#n=9s(CiV&Z5*CSdcGbYK`(Zq=5l zES(TG-V1GZ`;};23A--Hk9JRhOyUyl9!|eY5O%xKfGGoCkRUaeiE=@PT5H)BHNBT4 za=6}K2|+Pr!IksAv>c&1m~AYXFlnM3T;{_vMW4E&FCp~@r614Dmq-_OMKgpEIX=0< zcqZ^8%Z!>viWtcF*8Ttg?Q#NtC73Vm^2rv?NW5ITR_EV^rl{ei}}ir z91uP~n|6bAP^U3{6(Z3kcmaVm!S6@Oi6CS)!!vz6fI}SU!&XwQ;G|j`U2kN|*Z_dN z#yeZs&(gW~tL$l@518B?$!tzY#rR)S@2(`@Kt)UG>!O6eSso=5=l;NC^|ZCncyaor zOV5vP>jfq}dwTBT(~%J@`g{H!xQ3iyy1mwTzSx}N`F&#( zsxy^Wtn4hAkYSJYFxf zXfqkTA7m!v{Ui~Pb_rb+r8I*@APz+pP!Z={8ZyvAYXw1+JJCj z41-`F%o(h$p2*2XzxO?PKd|CRJ2@QnURq2c4o8LcB_?UJ8%fp-a#&WibfBfA)I32fJYQ{c$F1 zx@WVSg%I_A(4nH^SUpGQA59Xe;*R?v?(7_Xx%7T4=!f>@iyL;vo6^L_--AIxISKMX3P(qmg)ncemb_YSVGCLLhs?G!d?+7k&R_R= zCL^!)qiGlbqZ^||wzsDzy{?D%IBgW8VZ6Eq&Iu0_e*e-vOw$azX?+$?mrW;>ROiwF zVZZ#s6`IU=>q6`o4^O+5Orw1a>|K}2zD!D+C!&q#K(AQp`SyYl^cjU`WcUWCOlTVhJC+REO#|t05WuPPQA@BzJzyABiNl!5L z@v)mPr9AYiNza+jf7Z;*85z&IuYB)V$`)N$|JZ(<)-@R|Omx<@)O_jmmYJN%*Nn=h z$%CrPOc?Z-zSL+)Xmi}LsqJSOHXs-LjAT6Vgqu)kCwN6mrS~>=M5(O& zomN`CXQ;F?-;_wOLPiv%W5X3`V3qw>#rdIk@z9NS=|I~79tt??-6!b-;skkUNHqh0 zNsF>Ibs)MclQ6)J=`joxn5NAGgT&MJfGo2n=>oiQcNn+P6lB#ynvAvB6?B>PmYl|$ z_C84K!1;YHf`q36%`z{|TwrRuaXMxhN`yC}go34kFgoN2r;Tz2*%t;@nKw)37K;nC z)7rw>FfN1J`(fNUK|jnr+sEM@mSbtjAK>K}t#k#9w^LV;?zUr2F*$2q1VQ`sl@L0N zVJiVl4u(yWuA;W+pz5S729Qmb79)tZ5rh)yRo(KIDusRV_Tlg={AR=d92`U1ncjKjl7=+&`i7DTh|3C`C_ zWZVRu0*eLKpkY?t+Snw++G9kuT0{!aQVahLi4 zqi|jdCW=XdREf&7O3|Q7bW&M&yrGW7b~-%S2i2%}M9InG0Tri;d(=DEJYzdFV9oso z_}YwJrW~*AqwHadcF z%*P$uvM$?NpoXfgD>g$;P3G5nYqs|2WG9R7B*&jpG4%`8BLcJc9uRH`J8$c1!)_GgbJ0G#%%Q$Z|q^rDOafg_~0QFSo&dJ4*NXKxY?$=n1(m9yP!H)F!Oh^`YYl5B=i%d%?jlyMdj?Y2G=_eJRXTq0!7_r2C1}OMjk02q-_Z7k~u*MtfOF-}cACNG# zR{@7g!}_|;RFT0u;FA%0en;c6rPNX#9rH{5Sv3F81wZrxND2D}#`8rZk|4cEJ7`|t zGxGtrPG8$Ax`5oi6Q~UHI#HR{N~$k#-u=u;d5Jwh77^UAIe&3E>2Fbb>8k?kIJljV z%Z&2KhPo&Ew?Psf0y@NJh{!V&_qSmXffWZvs0x~Y+tz>%tcZ(mnO{yl$N~^)$mZ?x6 zCF)BgVfm7X3H;GV0DTN0MrO^;YHHnhN9i0 zEG@7ECHzXSw9aaBS}QZ&%qe|k(P{?1WiQq?am;qj4km8!Xr}ydM1daYAZk>Ig$ctx zfdjZ=K}Zd31$SgSwAfCPPtCkL_50X~CI#iza!Ohdp*3h+w1bIlVV^3{)#^dsK}0xu zMHL(@i}rCfkv6V;HF$CZS?;&l$E{rpZ(I0-wTL5D!ktIdTR;UuROq}m*NG@PPZ$Nb&RSQmTJ~vNKdXO0%|e3=W#iCjS+Rzk)7*%mN4+DTbMf% zBd_modP;A+P{HKZbN&z5Vgy>Y07uJEj3>Xxasd8h zK7_`Gr!{0oxil$0eY!SYl+inhhQhy|M50-`;Jn!)R1WOCa$PX~3fcJ2(%C(ZmhSzr z`Nvl=Zlk2zE%TyvYd;VGfPnw}bNBz>#1FrxQ7Xbu0Py`QBaVTh|7PA@d-HZvdysyp zQ~?yh0HgRH=bE@MRqLM&X6@ad5Zb{!$gzo^YReg(mA{t(RmlZljb_NEY=-~sk=W$O-79V{Q@fg;$!u}!QFot6CZHf#PsOVgl|ou)$qX;%XRMz4sU zJw?*#8OSB<*&Gnd7Rotq!}#adQWm&pky9%NY$TB|WYl_~|t_BGCF5%zK+JH$88csk-(uWWV@Wxe7D_PpepulVdq6c7Dl& zJ{^#6Xsjaf+F7FgqumxZ9>{#nu{O18G;pE4mfOYZ!b(-%6HkD<^gS%V*wWTg)E6#L zKiMd6=8JekVhSesS69lsjY8T1feM*JAiX#+tm0Reg3|Z%#D<^&L_R3}9!|IgTZ>4loJMT3d17B4_|HCu+yp1;h=ca!bPjLgd5TNE<8vY_phD^FBP9U z;Z4%gFMJ8M)-U_vX&qT1@V736aJTYc>^Uqegw4Kz-G2KG2f@~RE^J3cb|gv!6uX!& zR_&Vrwg;HTs#N-m=6}VK(FsXxSbA5-(cTY6*OX%RsdGn(!cH@15`rqfKJChSL@1ZQ zlIIRDG&GE^&efWIK2lk)<(-AQ>GdZKlKmC?ge2qr!YeX=>$L7Noz5g6zw~wJ6~BYY zB#lzGN!pVpYmk92G@x-k$i(2+Eid1+P`$#ge=(HL##27>GUsb@KI#9Z+T}^0gkBcL zb=@aq--S!4c?AG7$@I2U*3~E3v}S*+_1q220zJhPM6`{hQm-lJqWVn8rE-^fzv7n-C z;{4;O5Gd)kj4W=_&tchQr@tetpcJM3PZ8-kr-&PedF+QQHYQ-qF;yw`PA&(g7 ziAq$`N{(`jc;AyCu~I5s8A+A(8ULzW<*OjMidCwz6i-#fGX{CCs#Pnl_!6W_E3u@K zOHo}7-zwEbrB&SyL=v9B=?yUYKLi(_keHO5lA4yDk(rg9lbe@cK(Okz$Og0NzQkVW zkF!bs2=4E(j9ec26BNf@oW;GKdaJIfg=k)8mzN(lZi<+A7>`J#1$4Ac+n8y)c*3ls zd8cHte}=>Dnl5?qOw!I|Q>U5I#3tF!bjNA$2Ri6DxhYNU)HI*-pQe{#A)T9{OwFW= zjAoI^OlD}d=4h_wX+B+bYk?MOkrvavhwrq63tFmW^lUj_YK2y6l~!ww)+$Tuv|byu zQJa*l&Dx@^+NSN=p`F^L-P)tQ+Nb?Gpo2Q3!#YAPm)Xn~9n~=%*9kTmi~s@&BA5_D z2_u{cB6U)ybebG~<9Ghh8J*QRES<*>AEJonAU1YV+zzfXA1@sEQ=6|YaDtQ6>mnX_ z(n}w;)NzgLoZ>WRILm$xaEXtw9Yj{|1G+XUXx7QE-*iZf3Fa6qY{oWtmBnx}Pg}$$B-Eh4Aq?DH9N}S+~<}@$$ zGENAd6g=YyA~@b2b?m>^XJ`MNhaF$26q@;UlhySg-FxmS{SeCDio+h;vP@5&>Y<*k zg}YRJPsFDm$S2Ycpd0wa_a^Y?&;@xk6xp|jMh59n=okwr%6xnjyer$x%F>VOjp}Ja zd$hvVWXg`%RA{Epc3L;igWzBSQilvuOEYuLORbfNzS`nET@!D2bgg?WB(CPkbkj|~ z%!6)CrrQ&^_2gEozg?xeUHt3Tn6XQ&+qEvW?#I;bpFOzuDYl+x&#g8hA<-U}SdTcG z&z2|Blbl-*pZ0s76JnXSW$*+Ua@*ATnKz^ly_!~8Xd#n+CkRE`VO>A$iOm-i>TYm7 z61l@IXl@p>d_uFg{)!pR%&EZnlk10LcZ0M$ju|s@7t^4-#`lA*wJ1MaFPmrPJH}La z(X6|>ao*7hyX3O{+ksmwcpS~Q0RY|8Jmn|&RcIKniRCqaxYUz*YDXI6Gth!12lSx! z-K_o%^?*vcc8_kxTB_llC|`Wj6o?tDsS-E%+Xor~_`4wmdV zaoyz79CYX?iXzZqz<>rF4ItL2J##4j7jjD5M-(Gs261q?V_z+Hce8${Swm zeYg)#Yfi+5SC`ttxQm>NQ)?Y9G@537Xc;X8MKjLa^JOLV0ZOYg=dX?uOYP{_pJ#7T zBoN5FiDhbCM@+oC8vJS71DlnBNykQKKw@pGBkDCNbZ85fu1hOpi@@nRuQIg=rmhQ= zN0aRO1IgYOT6WvMa@9GhTwNICHg>X??^+-jzFsG1bubExGsZn##<9O7w09wG2j2ML zL=oXwmX^N1ub#jZsT#();1}oiilmez*7G8`4t{p~Zh#~E;K}%T_^x`cYW@kg+Fe(q zWnJG9h;ko%;4jX4ACP#oMfv)~kJDBq_w#pJ?&$=zCT=Ip{(kp*UwG%b)mi0Y;i1B7 z0_v1YosWKs1r6RU*@Cv$vChj~&>}rwcI};u@Gu%&FUQNo2R*nlkuATx|5X&&_@3Ju fQ*kHIZh4pgL`8Ft*_IwR`{D1~(|2fa761SMsr`6q literal 0 HcmV?d00001 diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index e0a16fcec5..8880e2bb2c 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -174,7 +174,7 @@ border-style: solid; border-color: rgba(0, 0, 0, 0.87); border-width: 1px; - border-radius: 6px; + border-radius: 3px; box-shadow: none; padding: .6rem .8rem; background: none; @@ -184,14 +184,14 @@ border-style: solid; border-color: rgba(0, 0, 0, 0.87); border-width: 1px; - border-radius: 6px; + border-radius: 3px; box-shadow: none; padding: .6rem .8rem; /*background: -webkit-linear-gradient(45deg, rgba(0, 42, 255, 0.1), rgb(0 114 255 / 1%), rgba(0, 42, 255, 0.05));*/ } .md-typeset iframe { - border-radius: 6px; + border-radius: 3px; } [dir=ltr] .md-typeset :is(.admonition,details) blockquote { @@ -260,6 +260,8 @@ @media screen and (min-width: 76.1875em) { .md-header__topic:first-child { font-size: 24px; + top: 2px; + left: 1px; /*font-family: Poppins, metro-web, Metro, -apple-system, "system-ui", "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;*/ /*font-weight: 500;*/ } @@ -329,84 +331,19 @@ } @font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9Z11lFd2JQEl8qw.woff2) format('woff2'); - unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; -} -/* latin-ext */ -@font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9Z1JlFd2JQEl8qw.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* devanagari */ -@font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z11lFd2JQEl8qw.woff2) format('woff2'); - unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; -} -/* latin-ext */ -@font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z1JlFd2JQEl8qw.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z1xlFd2JQEk.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* devanagari */ -@font-face { - font-family: 'Poppins'; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z11lFd2JQEl8qw.woff2) format('woff2'); - unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; -} -/* latin-ext */ -@font-face { - font-family: 'Poppins'; + font-family: 'Geist Pixel Square'; font-style: normal; - font-weight: 700; + font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1JlFd2JQEl8qw.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + src: url(../fonts/GeistPixel-Square.woff2) format('woff2'); } -/* latin */ + @font-face { - font-family: 'Poppins'; + font-family: 'Geist Pixel Circle'; font-style: normal; - font-weight: 700; + font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1xlFd2JQEk.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url(../fonts/GeistPixel-Circle.woff2) format('woff2'); } /* latin */ @@ -519,7 +456,7 @@ h4.doc-heading { border-radius: 3px; font-size: 15px; - /*border-radius: 6px;*/ + /*border-radius: 3px;*/ /*border-top: 1px solid #dce0e6;*/ /*background-color: rgba(0,0,0,.87);*/ /*padding: 15px 20px;*/ @@ -1115,7 +1052,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { @media screen and (min-width: 76.1875em) { .md-typeset .tabbed-block > .highlight:first-child > pre > code, .md-typeset .tabbed-block > pre:first-child > code { - border-radius: 6px; + border-radius: 3px; } } @@ -1135,8 +1072,8 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { background: none; z-index: 1; padding: 5px; - border-radius: 6px; - border: 1px solid black; + border-radius: 3px; + border: 1px dotted black; bottom: -0.7px; top: -0.7px; left: -0.7px; @@ -1172,7 +1109,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { height: 100%; background: -webkit-linear-gradient(45deg, rgba(0, 42, 255, 0.025), rgb(0 114 255 / 0.25%), rgba(0, 42, 255, 0.0125)); z-index: 1; - border-radius: 6px; + border-radius: 3px; border: 0.5px solid rgba(0,0,0, 0.5); overflow: unset; } @@ -1213,7 +1150,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { display: block; margin: 0; padding: 1rem 1.4rem; - border-radius: 6px; + border-radius: 3px; border: rgba(0,0,0,0.6) 0.5px solid; } @@ -1686,7 +1623,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { border: none; color: var(--md-default-fg-color); padding: 8px 25px; - border-radius: 6px; + border-radius: 3px; background: -webkit-linear-gradient(45deg, rgba(0, 42, 255, 0.1), rgb(0 114 255 / 1%), rgba(0, 42, 255, 0.05)); } diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index 6efd82de9d..f8399f66ba 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -110,9 +110,9 @@ } .tx-landing__hero_text h1 { - font-size: 3rem; + font-size: 3.2rem; max-width: 36rem; - line-height: 1.2; + line-height: 1.1; } .tx-landing__hero_text p { @@ -241,7 +241,7 @@ .md-typeset .md-button { margin-top: 0.6rem; margin-bottom: 1.5rem; - font-size: 19px; + font-size: 20px; font-weight: 400 !important; text-align: center; border-radius: 3px; @@ -296,7 +296,6 @@ [data-md-color-primary=white] .md-header__buttons .md-button--primary, [data-md-color-primary=white].md-header__buttons .md-button--primary:hover, [data-md-color-primary=white] .md-typeset .md-button--primary, [data-md-color-primary=white] .md-typeset .md-button--primary:hover { background: rgba(0, 0, 0, 0.87); - border: 1.5px solid rgba(0, 0, 0, 0.87); border-radius: 3px; font-weight: 400 !important; /*margin-right: 10px;*/ @@ -353,7 +352,7 @@ .md-typeset .md-button-secondary:focus { background: transparent; color: rgba(0, 0, 0, 0.87); - border: 1px solid rgba(0, 0, 0, 0.87); + border: 0.5px solid rgba(0, 0, 0, 0.87); border-radius: 3px; } @@ -770,7 +769,7 @@ } .tx-landing__major_feature h2 { - font-size: 1.7em; + font-size: 2em; max-width: 500px; margin-top: 0; margin-bottom: 1.5em; @@ -778,6 +777,7 @@ -webkit-background-clip: text; -webkit-text-fill-color: transparent; /*letter-spacing: -1.5px;*/ + line-height: 1.1; } .tx-landing__major_feature { @@ -1135,3 +1135,28 @@ border: 0; } } + +.tx-landing h1, +.tx-landing h2, +.tx-landing h3, +.tx-landing h4, +.tx-landing h5, +.tx-landing h6 { + font-family: 'Geist Pixel Circle', var(--md-text-font-family); +} + +.tx-faq__item-title { + font-family: 'Geist Pixel Square', var(--md-text-font-family); +} + +.md-header__title { + font-family: 'Geist Pixel Square', var(--md-text-font-family); +} + +.md-header__buttons .md-button { + font-family: 'Geist Pixel Square', var(--md-text-font-family); +} + +.tx-landing .md-button { + font-family: 'Geist Pixel Square', var(--md-text-font-family); +} diff --git a/docs/assets/stylesheets/pricing.css b/docs/assets/stylesheets/pricing.css index b358d78609..93ba7484f0 100644 --- a/docs/assets/stylesheets/pricing.css +++ b/docs/assets/stylesheets/pricing.css @@ -143,7 +143,7 @@ position: relative; padding-right: 40px; color: #2A292D; - font-size: 0.85rem; + font-size: 1rem; font-weight: 800; line-height: 1.33; cursor: pointer; diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 7cebed7b6a..0c879c6578 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -50,7 +50,7 @@
    -

    The orchestration layer for modern ML teams

    +

    The new GPU-native orchestration

    dstack provides ML teams with a unified control plane for GPU provisioning and orchestration @@ -182,7 +182,7 @@

    Native integration with GPU clouds

    - + Backends Easy to use with on-prem clusters

    - + SSH fleets Easy to use with on-prem clusters - + Kubernetes Dev environments

    + class="md-button md-button-secondary"> Dev environments @@ -283,7 +283,7 @@

    Single-node & distributed tasks

    + class="md-button md-button-secondary"> Tasks @@ -315,13 +315,13 @@

    Scalable model inference

    + class="md-button md-button-secondary"> Services + class="md-button md-button-secondary"> Gateways @@ -581,17 +581,17 @@

    Get started in minutes

    Quickstart - + Installation - +

    @@ -617,7 +617,7 @@

    dstack Sky

    @@ -641,7 +641,7 @@

    dstack Enterprise

    diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 6b2f47dbc0..dc800b5945 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -1,5 +1,10 @@ {% extends "base.html" %} +{% block extrahead %} + + +{% endblock %} + {% block container %}
    {% if "navigation.path" in features %} From 22d8b92219ad3d6fffcf08dffec97b1ced133a04 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Wed, 18 Feb 2026 01:08:46 +0100 Subject: [PATCH 2/2] Cosmetical changes to the home page (text; etc) --- docs/assets/stylesheets/landing.css | 3 +- docs/overrides/home.html | 85 +++++++++++++++-------------- 2 files changed, 45 insertions(+), 43 deletions(-) diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index f8399f66ba..f364a73580 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -66,7 +66,8 @@ @media screen and (max-width: 76.1875em) { .tx-landing h1 { - font-size: 1.4rem; + font-size: 1.9rem; + margin: 24px -24px; } .tx-landing__hero_text { diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 0c879c6578..36a9326230 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -53,9 +53,9 @@

    The new GPU-native orchestration

    - dstack provides ML teams with a unified control plane for GPU provisioning and orchestration - across cloud, Kubernetes, and on-prem. It streamlines development, training, and inference — reducing costs 3–7x and - preventing lock-in. + dstack is a GPU-native orchestration built for modern AI teams. It simplifies + GPU provisioning and workload management across clouds, Kubernetes, and on-prem — + through a single unified control plane.

    @@ -82,22 +82,21 @@

    The new GPU-native orchestration

    - One control plane for GPUs across cloud, Kubernetes, and on-prem. + Reduce GPU costs by 3–7× and eliminate vendor lock-in.
    -

    An open platform for GPU orchestration

    +

    A unified control plane for GPU orchestration

    - Managing AI infrastructure requires efficient GPU orchestration, whether workloads run - on a single GPU cloud, across multiple GPU providers, or on-prem clusters. + Managing AI infrastructure requires efficient GPU orchestration tightly integrated with open-source training and + inference frameworks.

    - dstack provides an open stack for GPU orchestration that streamlines development, training, - and inference, and can be used with any hardware, open-source tools, and frameworks. + dstack provides a unified control plane—so workloads stay portable, reproducible, and infrastructure remains interchangeable.

    @@ -173,22 +172,21 @@

    An open platform for GPU orchestration

    Native integration with GPU clouds

    - dstack natively integrates with top GPU clouds—automating cluster provisioning and - workload orchestration to maximize efficiency and minimize overhead. + dstack natively integrates with leading GPU clouds for fast, efficient provisioning.

    - It can provision and manage VM clusters through native integrations or via Kubernetes. + It can provision and manage GPU VMs directly through cloud APIs, or operate through Kubernetes when required.

    Backends - +

    @@ -201,35 +199,32 @@

    Native integration with GPU clouds

    Easy to use with on-prem clusters

    - For provisioned Kubernetes clusters, connect them to dstack using the Kubernetes backend. - If you run vanilla bare-metal servers or VMs without Kubernetes, use SSH fleets - instead. + If you already run Kubernetes on-prem, connect your cluster to dstack using the Kubernetes backend. +

    + +

    + For bare-metal servers or VMs without Kubernetes, use SSH fleets to orchestrate GPUs directly.

    SSH fleets - + Kubernetes - +

    - -

    - Either way, connecting existing on-prem clusters to dstack takes just minutes. -

    @@ -250,18 +245,19 @@

    Easy to use with on-prem clusters

    Dev environments

    - Before training or deployment, ML engineers explore and debug their code. + Before training or deploying models, ML engineers need interactive GPU access to experiment and debug.

    -

    dstack's dev environments make it easy to connect your - desktop IDE to powerful cloud or on-prem GPUs—streamlining the entire development loop. +

    dstack's dev environments let you connect desktop IDEs such as VS + Code, Cursor, and + Windsurf directly to cloud or on-prem GPUs.

    Dev environments - +

    @@ -274,18 +270,19 @@

    Dev environments

    Single-node & distributed tasks

    - Move from single-instance experiments to multi-node distributed training without friction. dstack lets you define complex jobs with a simple configuration, - handling the scheduling and orchestration for you. + Run training or batch workloads on a single GPU, or scale to multi-GPU and multi-node clusters using simple task configurations. + dstack automates cluster provisioning, resource allocation, and job scheduling.

    -

    This allows your team to focus on research while ensuring that expensive cluster resources are utilized efficiently.

    +

    + During execution, dstack reports GPU utilization, memory usage, and GPU health metrics for each job. +

    Tasks - +

    @@ -308,23 +305,27 @@

    Single-node & distributed tasks

    Scalable model inference

    - With dstack, you can easily deploy any model as a secure, - auto-scaling OpenAI-compatible endpoint, all while using your custom code, Docker image, and - serving framework. + With dstack, you can deploy models as secure, + auto-scaling, OpenAI-compatible endpoints, integrating with top open-source serving frameworks. +

    + +

    + dstack supports disaggregated prefill/decode and cache-aware routing, providing + production-grade, optimized inference.

    Services - + - Gateways - + -->

    @@ -332,7 +333,7 @@

    Scalable model inference

    -

    Loved by world-class ML teams

    +

    Loved by world-class AI teams