From 1c0c4cf3c277bbcbf5876421afb879de9589325f Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Thu, 3 Jul 2025 15:22:15 +0900 Subject: [PATCH 01/10] Add Scala Days 2025 promotion button to the front page --- _layouts/frontpage.html | 3 +++ _sass/layout/navigation.scss | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index 0f5a8ecbe..961e805ef 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -30,6 +30,9 @@ + {% include scala-days-countdown.html %} + {% include scala-days-announcement.html %}
@@ -53,7 +55,7 @@

{{page.headerSubtitle}}

{% if release.category == 'current_version' %} {% if version_slice == '3.' %} {% unless release.title contains "LTS" %} - {% assign scala_next_release = release %} + {% assign scala_next_release = release %} {% endunless %} {% if release.title contains "LTS" %} {% assign scala_lts_release = release %} @@ -86,6 +88,7 @@

{{page.headerSubtitle}}

+
diff --git a/_sass/components/countdown.scss b/_sass/components/countdown.scss new file mode 100644 index 000000000..490ffd7b2 --- /dev/null +++ b/_sass/components/countdown.scss @@ -0,0 +1,115 @@ +// COUNT DOWN FOR SCALA DAYS 2025 +//------------------------------------------------ +//------------------------------------------------ + +#countdown-clock-2025 { + width: 100%; + min-height: 120px; + background: #1793b1 url("/resources/img/scala-logo-large.svg") no-repeat center center; + position: relative; + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 2em auto; + overflow: hidden; +} + +.countdown-content { + display: flex; + width: 100%; + max-width: 1600px; + align-items: center; + justify-content: space-between; + padding: 1.2em 1.5em 1.2em 1.5em; +} + +.countdown-left { + display: flex; + flex-direction: column; + align-items: flex-start; + flex: 1 1 0; + z-index: 2; +} + +.countdown-register-btn { + display: inline-block; + color: #fff; + border: 2px solid #fff; + background: transparent; + font-size: 1em; + font-weight: 400; + padding: 0.4em 1.5em; + border-radius: 2px; + margin-bottom: 0.7em; + text-decoration: none; + transition: background 0.2s, color 0.2s; +} +.countdown-register-btn:hover { + background: #fff; + color: #c32d1c; +} + +.countdown-heading { + color: #fff; + font-size: 1.2em; + font-weight: 700; + letter-spacing: 0.01em; +} + +.countdown-right { + display: flex; + align-items: center; + justify-content: flex-end; + flex: 1 1 0; + z-index: 2; +} + +.countdown-timer { + display: flex; + gap: 1.5em; +} + +.countdown-segment { + display: flex; + flex-direction: column; + align-items: center; +} + +.countdown-value { + color: #fff; + font-size: 2.2em; + font-weight: 700; + line-height: 1; +} + +.countdown-label { + color: #fff; + font-size: 0.8em; + font-weight: 400; + text-transform: uppercase; + margin-top: 0.1em; + letter-spacing: 0.05em; +} + +@media (max-width: 900px) { + .countdown-content { + flex-direction: column; + align-items: center; + padding: 1em 0.5em; + } + .countdown-left, .countdown-right { + align-items: center; + justify-content: center; + width: 100%; + text-align: center; + } + .countdown-timer { + gap: 0.7em; + } + .countdown-heading { + font-size: 1em; + } + .countdown-value { + font-size: 1.3em; + } +} \ No newline at end of file diff --git a/resources/css/style.scss b/resources/css/style.scss index 69181d5ec..9d5d4b614 100755 --- a/resources/css/style.scss +++ b/resources/css/style.scss @@ -76,3 +76,4 @@ @import 'components/tab'; @import 'components/tag'; @import 'components/search'; +@import 'components/countdown'; \ No newline at end of file diff --git a/resources/img/scala-days-sponsors/gradle.png b/resources/img/scala-days-sponsors/gradle.png new file mode 100644 index 0000000000000000000000000000000000000000..c01df74e10fd3c6aa4722542d8e77b3b0c4e8437 GIT binary patch literal 20148 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 + + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/scalac.svg b/resources/img/scala-days-sponsors/scalac.svg new file mode 100644 index 000000000..747b186c6 --- /dev/null +++ b/resources/img/scala-days-sponsors/scalac.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/signify.png b/resources/img/scala-days-sponsors/signify.png new file mode 100644 index 0000000000000000000000000000000000000000..d3dc1b57e5705f26885108c05764681174beade3 GIT binary patch literal 27192 zcmd3Oi93~D7q`-5N|DHz6QvAAL`2BRP^XL;Ly9yhLQ=*GB|^&3V3sH%8Wf=cM?^{) zGL<38l<_!@;alrI^KP3;aXU_+~hfT@Cl>keM|e6{nS6M-^{{t{Niq19rJSugYB)3qSPB3>sb$Y<*!>< zXiCa2(KB_tsLPsYZ))M9S$EEMbLh3Y$h7)}kp&p$|IhyhdzakyiDF~fqt>pI#^^|2 z^qSAeQbMvnm_;qvFjUuw%A$7JEL3-u1j}*{pI`o;g0vsNpRSpODo5e7Zog~F`0wGB zlHpGjSso^ccN}nzAs^1?SY*3%RxnG}m@#9#%{s)#f$?21oR>v! zUW46JOJ6CLm&Ibf@Q-vzm6zL!#VJ)EJK4>+qH83V?1*+4h%^f|ud8Iq^6=?9kCMe$r>w~Jnx~UpT>@T1_b_mHLl2K6U-t#)|Un?qEM{amwnK^ z6ZYP!l4;82|J!{uDA}CMVt&4rrW~MZA){*?(b>&@!TzaHX+l(V1r9zH2F-=!oa26N`CEL5+0CuXm{SsqDS!{61Ml z({GGrC0HJw95^GM80G$|lDeGbth-OgSwj!4%26DqrLJaL8p(I)BmFz||B(bWSVdu0kC(Yw|GuO?-n5{Ok-rR?EwUn}t%CKzsPo zOeUl`3X$f!X(L7AH)6M-sT6vT#D|PWauH^~?z`n)CJ@w;S9p9@W5Z){^v{&*N%4fJ{6b@hq_Bix zTIq>xBqulg#eAa-MPjP=B$!G-Bg`z+A8~E=BuzS``6h+qf~<;YH8_1W@$^}Wavk;T zLd8i-geS#jAH-(Kc3W&fi@g$X{7wm4$?RnUG`@mXG9O+KogV`AcMYBREFB^)yRiKy zVu^CfVEmWgwN@1^eU``Jzss72;TK|zvN-9G7qQs*i<=Zh!WC^-wPMdzv(Q#Fl1I5w z*QirlC3@4zk}rzXy$T^D_N7*h)a~P@p~uo}(2g#PzyC4`O-X&UmLic$=tn(;KN1~A z*Mw4|+*hM%B2PMNX^^@_cnH%ZMZHSf2EXAiVkM!VNF7=>vSViq`6S`)QI}l+UiBH3 z&8vv!BTh+)QTfq0mZs5tFmeQ%&EAqXgVz?!k>xQHWEDJ)-v`jmXqr#u z@AANLCTz7uGU`)1&(x|Rdi$H+Z3hvQ9MHSl{QJHAJ+&&G@t6K$A23cZ8fT(?dkop` zEt;Vt+#sEQri~^LZGiaeSoR@kTv2Q6J@L0#h;FST=zzDMVLX4t-;Kwf(jn)PQDR}a zD`ufIH0+Ih_cpnZb64=G%u<7Hzrj+Pi)0AuA`uRq)cF#0Gf~fwrQLM6^HU7T;YQrD z4Bk^jpHE$+LyjShtaJH#EQTCa;;?cKsgv&+N4usvsrykSbur7?=qcKl#Hi6Y9Ob+V z(7yIIQPvbnM;ypTU~`?kFhwFD6Cu(S`D4^+whql6dX5OMD!nSYP+rLp$D)Iz z2M+sx#ownBRN6L4mMJ$TL@BnH4w)v@@99m0D3}N^oJheQ|48;gk9}{j%LdPp>^9$o zs8JqNzOd}PrqR98G*7NQ7_L!VRpA#BQshpC^ zzyB_1Bb)iLB+nz>gzFJOQKqZ7GU}_*o5Ie?@bCi;>E3u%Uxt6Kwt0|n)S*?W#m041 z%Sl51=o12cPT2)WIXM<&nWyWKGlgAlLSsUePphD@a(TRj`%;7*n{Dv^vTYjQ0vFq= z1nd)MIjgu|s>ko79^mOA_X}O=5X){1>CDUytCvGD>1)+90$xBB@ zSph9|`>3r6S1pmzZ^wl|?yhI3I4P-g!oQtye{%Tm5S+Y4p0kd6gs@SJ+@6%F&sJn zy?G>t>`9oi@jnn}B_WQNHi%P>UO(Ry1ma}ST)NbesrD9gwELgc+PaiSj5VdY|0T^L zH*!4RhOjX01c(rX7XDBoEFJQbFxz0b4utm?P$w2Gd{coOL5(t8NZy{j0kL=_FE}Bp z_BD(Y`(NDRjQU>*5sOTmLppDpazzlaqhbk9o6(FmPHRoLA_#n1thxkf8l|21sE?eX zw<@*K;q8H5ZGXRrJROz`_BrErXZxJG2{>jr?~qZJMXhX(3ql9gsMRyei=b6ALuFJE zjU2Z>co-5)#IH}pA7vpvoQTFHD$rP*XzaEW8WU+)Af6?o{um*WJNpYOu4M$Bt5{vA zq&NGIG?kx6Lv4J?v5h2J)4H4oN(w~cz&i!QD8i&(3Ja7}cQs&+>LRPajCwUBM;m%q zr*z0FO_{yO9@THdO$N4E%9X8tNt6LD3$^Yb6OkJymzJ3wTY^q6nDKIuQC^I8w3~`0 z(@`Y%ue9lWKjh^XzcffS*jd<~`NZ-3GvaDcH#9hnWZNyyFxg5p`m>PEPx*Zl%wzOJr-Br|CuzF#~~ z&g7?He24B~_(E=S8fkheiGJQl9-(*nZG3YSwKpe^cxuHV^aSE3d89*TJh8B9*arqu z&oBujOqdn8SLVxI1a59WX&=`lrlQb2Gg2bi_2B8Je9TS--L)DUN>KgGD?nI^YNP=q zy%q7}dt^dpuwE0eB7Vd$E3cUK5Z7)D$4*zJ)@Z`Z-3YrCfh+x%_Br_z%8*MV%(B=K zckZh@^<};gRlR(-txQNH;nD1AOSiJ$&0B3S999U94s8z@JjS$m?svaIYxK1Mk67_# zhdWwCwvzweWXiSrJr)CYWqIlR>Nf~)bvB)dA=e3qBU?DGD6;I9vF`XF60xBKh-S8Z zWMCUfBaC>lz0ibf^*f^ZOSe>h^~=Q5wnC_`A;~oOFIuTShevc|%=bV93s?_AR?F%v9-HgJ7SN zfEE^cX?)+}$Md-`#k|-%vRCG*Ha6bo|Jy(IZiLw}ro(rQ7|T3WMYr0e(=z$LVRDp| z|0Dn?0*5OTQ?ZR?fuw|}q5cj~F1jHeJicuksg();j}|dx2GiqxvXs<0CN%9}Mx{9w zVCaNZe}$xZ-y3?fmiQ(>w<)KEht_jU;udzd04-DB|Cje(!f!~Sp*0>V8TCU%a9iX~ zO=U-)O133Tm1dXcuJv=&=`K@O^$X+qtpu$b@jy10`?IH^kU-pjbRkNrEfP-Hz^Gyj zxe$4zymwkU!mR3LPYBa@t20KwY;>D<7BO~Zy@WC8 zyJgO-CZ2{yeU%Q`&Y0TC#9idq>9oVzm!h_#XlZ=vcgFLFAb!o=S7;@e9g`z$tvOX% z{m4M(X)IyYH{kQ$u`$VF8zh=%n)?YOQM&wc zFoFdHze!V4S21lgSz0}M$1DrWsul4q%9PYX!u7F+o_YK}I00QD*s>k!3r0uY0|jQE z7Zal9hEMHbV_~TI_xs0oZz@xs(?BORmcIUJ##KU4yqtr>O_`7bMCH+2T?3?{od$px;koH5rN$}msSd|6E6(iP{03mj|7U{SdU#EpVbY4>)=y%znckWk$2tIeNN0tL_4jt+WmIyM=H@ppQC!I*B%KpmQC+|^&t2e zRkeH>Q0^>kyuiDO3>zdE09;fjbG6vl>pW{7zVD737 zLw`GHX{AOjqq8nx_o0+yuAT`P?paFToufA$k^ZY&Geg$k5lr9^PL;*d1z)E#u49@` zw_n-fI?F`rC;6*(>A>c+07F|QQun{<%l}CI$51NQ{FzAD6~EI}(L<&O`Mle1*~{80 zrpdeQxL;b}jF+KekJT$=ICYUSukDpl3q%^~hc1=y6@J1`upEz=ZOtua z4{Pn%S{g!`qS38%rc@jWtL>WCyI!I~N&Pb-WJRQzr%9Qg>Zrp=ox%e)J%dh9iFnj2 zP`F?&oK18a+cQA&s+1+Xxw~}M^noc?MZlvNW^H1jdCgO+@!SLCg!-b&ZG=!#6Q8Lo z^kx29>;cUpG5~%~<^ z>i#_=*<36r}gt9 zP=G1tXmSrzFAw>%6LGdg>`|(pMb3LLiNQ?XYaMeg+@Q_G`DhKGLCGEoI!eZquLZ@~!F=`!rY!B1erkw7uMmh7PKeid-z;Q)aLZzDw zjs8M8z*m&zY${*Zs~9GELbq$vnZ9apy0TRCT@{l_-M3aU_?X6qR}`3Zpet2wFryu? zmw**7iT;Jbq=M+ukE@PymoNzwT1w3@wS;l`{FzoVC)>d~>*^^Lb7sW8_z)k^=S0+z zvAprWy$N@P>4k<*%Kr5|{rVo^eZMRSe(O4UZPQE)K?K&p&1uGj-$E&&r+}O0Mg!Ng z48D^r*QX{&oyS?{_S4rMMQZ;uPU~uW!e`L=P^3Izaj;GVq$iW<%oe6~M0gC6qEzNL zV-gP?5Ig@*8oAY0Os?&J@T;q0B2tcM4jN8I%Koiu+)D}_7sm!+hCb-N z-XI~0SitGE`jLMLR@X4_6C&KRX9%Jd2&3eeuKCRS1kYo)52gQVl%E$yaM6lbUSFIVsm_a@0wCve7mYl%~c?(zB<@u5a}{hL_;fJkjX*37E>C8e<~z( zZU%a@a0&JjAUIO_DJ z_!*Pb!g(iMnW+Rk9t;M4{3Gxb(?V;vw|QtaPLo()%bSzMy5s&ugILduSryJhjFKq| z0e`ySH_UZMoy7XS{qq|2JVWJ^;Hj<%g)FuU_F2KmJ%g911mlC-O`4c)ukNo|B&dDP zy_T7b0K@60nBuQ$#z}RvH@5--S_l8?9qOjm`H5*Wry^;|dzjfZpX1XfXC^zmT5vvVGEneOp$V_u zL@fewQ7X@*SX0hVwy<6`-<|vz7`|Lm*Da!K%>sj3Flsfl=%8RG!^lee+~_A}a;&S| z^(TOte^yEGy>cJ|HH}XaR=j3r#}=M2d$`;;-scpBB%Kw!%YFVI3>E8Q2_E$D8T1aGG~}&jc(iqTOJlFK;^Ua1=t09qBsWprUoi( zr@$r{j2;c~<76GYYvQ25;_n=?5=s!^YM1mv_kJufV7(xfux8)Lr~hXo@WRW<`6G+e z(rL$79xrjwrK|_KHF(S!{eJzD*DH*YeH}(q-t-HxP))d2{DQ*gwIb}#jlslAEzB@f z4agif-F~yTbzR#wa%fDQ~|uH>@|nlIkb5zB8SSM;EO` z!t0-~ZfWkCct#W3xyLo8*mq4;>r7wrH#3`PXH27G&@KElUm= z1$wP^KDTx*ps}5Gg$R$BFa6|wo)w2z3Dw2!7(k&+^wEl7Odm~V8MHhkutWonY!%IxBM zd_~2+VIso2HZ<=3Go?^dR!7US_NML7ju6PCpZ`$gd*QTW;*ya*U(1|i@uCvLoLoie zA&w|$;5`%YNBW&83AGy@zGx(`A?mVl^YwYh#9^(6%rQ3z;+Up5rW>iV|42nqbZU5w zTGr2n<##LZ9!h)m|wukeMkyvNF8YjI%vM z-~n&ldR^oAUXbIi@bV^U{mwbDBWQ~ZUQPSB5isx(H9IGhjs^0StmunpGW&w`g*#q6 z9s3yOb(fdD_1xB}z~LuH*xp|C@}UoWu6B?q|GYIRVveDG^^P#dhQ|KhE`{1<;a+Rs zr9QVJdmq=64PH4g@yXh)aynPdn@6m_K_J%TTRSW9w2D?%H~+*mKVZhAhf&@o666v1 zb%9&0X1y*?tL#FKwdxkJpAVnp|6EwEwnygwem1qh3%K)q^~k#jL_Vxm^(?l&z1^wt z130zrQ^3iRhEuaV>K?S$I=Q*QpTo>Sv~By>c9sSFDGLpoY{+!#*s#jmU+PS}vdn=t*ac~9>D#4#emqaBD960tGXzI=D@46h1V#@GodnZSTEzSvf!Hi=oFFc>|`v|gm_P3V*76~etTPvudbbWZj`wgI@ z(42`5vPMFL%EBf@$Ido0M5$yfK6|#H^4i8Rac$e#%)0^u`j?d$=45egw$@Ou-z9UO z+YIURDzc63nkGjw|G~qj@F!rvZRV}Ri?#!?_4fOtxqh4^n-^;mhA>GR9jdnqY%CZS zUz1=KdZG}4dsmpE%+@;|xuEoYV-zX9Q9L%#GN(0I`f+zlv;FwhDU`s>*L=P+&Cy;) z_u}f0mGg5=dW6#EC))ZCjB3`RvzpsW|BhF#?lo0S#L4Rp@w4D49L+kj?f?d5CL^(P zy=7qyD^+X8YVpy;(qX0QKa~MEX0h)H<@>v>a<~&B3Xy`9*gqzvMB3GDnI( ztbSGCT}n{F*@8aUmyGwKvGkX#7q@DFmF%OdjYNXR%%}3$>i7l*Pc2ky%QZ%D7fWl1 zGPE5Eh#;BzI=!sVR{OBHc4csN9oQq@fUw74cJzq0>%6xnHy=6yw;e7p+~(&JK40H(^IPgZu|vet5`I_Q7_0&CgMDE-4~u1eGF-+nuvTrgk<@VD?moc45qsW{I&0o zS#c@8*ojDFO(#5(+f+q!qt0&A6c*m9Uc^_l=PvTr%f>_Wj$cX07+aHh@`7W?kFQ$y z?WZD7GKSQ*Zu@o7i8Pn`+GeXnuIJ(2Wc0=|b&N&x?;A6Co3<4&O~bajuJT*p#?x`u zeIisQ1b;aC%cd3=Q<*XiMM5|>j@RNy73vmbCPSVCq006wyvnlH_RpPlbCxWDCTOFU z;O5`cKnq}Xz2(D3fj0qwKVUE0%MW3B`-ddE_UXZNZ85d%pLZ|bwu(Xso+8_&U_?H- zz8G+M@^kvw!YY9QiiCXq=*huOZLJeWAjpn}134{v=7{8^^`-ECcCgFzTaZIH{fVx$ znh~3Y8Sxu7$Hbb+YK)NYEvDBVDM}k?KaoFicujl%z?+rTk7xd7E^jYwQI}FSL}3W= zEO%G0ef!7CZwiZ%t8XVUx%!*|S?Y{8ZJP^<(Z}bupv1UHhnX?=+B80joS6hZ^dAS} z<(VxysDIOxiHP9|tN3ls(k1u@z)+?CE~%KaL@<(mCjum3tZS7ieqrZjUfV#h8TeR{ zA^)#Td$5o)3!fZ34zcd@52WP=Zx6U8F+qxHQdm!zq0fJj!yVC8z?hfs{f&FaMB3pV zUu1~ykFI1nHsMT~+)fCeCDB)h-JhKwcCLO+d$VN|; z0NvIj{?TiVs#9JuZd`a$uHM(v)_?gC*}r3nSuc0Bg0bmZ*8ZZXjj1Am{w1wfq+}Zz z4nITrl%?|yn18_xW@HPg%G-An#>KBmEnew-zM`eYz8B8S$-AwqK~EUJs9z!JViNEk z3X3xfA2?vkG&Job5b zxVj>8_%mB?Yz`5M^IxiHbq;TDW3^B^!Y1J%#{^*SHF;q^GUFz(|8kPuLbjL< z@wk@TyH;oSOjroBTIg82=SDe2dQ&572d__!Sd0TvEa*ijB>EfYKvb2#7mKlCQe(jJ z9!6nDUOx$QLR|a-rk~|cUFhGS3Wb_xuVHF@y9H@l-s9S~W_(^*GaxW?KEvwrHpg65X{ksyGbZCT>%NGr>nt;<@aeJD zeef~Jf=rQU*3HQ~8H2nKMY1(=GWo2%1cxdp-F|uPGOY6|e16^4jdf=u%&|*Q`?I-l z1{!I$W=*lkQIi8#iAvQ<<#VE|We&B}&|K)aNx<=0*OjLmS#}y;EQFv)7;ykEOh-5d z?zH?%Q!XNMpr7XSKuAmLt-pz+QpjaWWj}bvXTr83Nu;xBdzG>F0K|;5!=eX@_y_QT zzLN=<&`=NyuzyuT}tPU3Y!FsBe`M=$NndO)t7ufA!x0n)JHni`7)n ztK)VqZ94Q`8KA7T(`)NuMFLm*$B^bbP4l%noTCjZp+x~vV_JQxqK$y#GYTB%V0U3I zrJnn*nT!G_#cd)tp9Oo&>~IsajbOl5vNIIkMH1A6N0oITFX{M|!|9bN+b07It^WFF z^I55wRRcRqyiO|40AQ~JU|s8Vjt1p9SwVSMsiRN&H*z0j5E6{M6{BgriZQdaec^79 zSo7if2nyOtl@i%NVO_ZQgs8HT+qsFN;s_-|N0=_R5`!t?tl8VGTg=fC-$knoehS4n zh;(wWB&bZh7{6F{BntvK=B|^;f%inMf3&fRCK1?SldsidTjhHsJ9roiZPl6Ao(G&R z3QbT~3kW^iTM;`qZw&weIjUU<}sO;d(p~>|@O*-!| zQRI34Ww^6855Omzy}>72!GXD>4(<2o9mk5)?{salZ)@m@y$%zA6$4vts~~&0H7(0i zlG9>&a`Cx% zI~rALw@a68KLV26-Ml1jVv5s#WiO)%jPonP{uAHd(sxGeCqggz*Fb2~6aBxS+2(Xm zY?y{Ej@2aLC1MAv#%*nJ&jqQ)BL%dmtmfIwA!N8`2r2h- zR@sFo_aiQOeK^1g-%3`@28~gO$(dFW)E#F!gA-zZ>mS)A2P*-`Va9%Bd62-y=#fCZ zikV=yKZ~^#ETGlFmHArFRnQBWzGh#!M1qv;y=U$cc_y#KAZ}n2mIf6wF>a%6mclU( zSRuCeT-;o!g6>J4lT=T&fb@p%JNnxVv_SzpbI)z;RU^Es<&0+0;=4b2D$$QNt?2sr zpi~S_1@pBY#^Q*^JSCkxTdg7Q?tzk|jVpC?`ZIjKAt1fav+VPxcXF7NTz?MqeQ3md zth$BuICu5Fk)|`DIH0)p*0g7Y7&DKOYEA@=)x=}@7rx}3`TT)wz7ul+=Zv%M_HKCm zE#=h>3u4?P{nCYBb9YWS!;C<ccE4D3N-}C3)0($MuR7g$gHrb zld33<+lH)q5#0C2r}Oi3tRd~qEOwioZiMtp7{zRKbEyE*p2NTm^(+-ka5yXQUzd#) z>I|P7z1i|F={;J-yVhkkWK1u>&osZZP0wq44U;7y0Y{~Shk%@@RhV{`X8x^7GDpA} zH8}}T9+iG*)w*8@TQx`jRwhd?m*29?h0@%=V(GvROYwiqs+ePkQj*=LMS?X-nHeUW? zFLjThpe|Rq7 z4;0Y)U#fPf=SS}Oz(>OaScZ)oD$d?>$hMJ^Yz<85jyAL>pn7$WjpE{ z-tZuJK1N_5d||VPP|P?kUGT1UHzx<0aeX>y(h*H8TVx(@>z8+EbIvG=zM8`4V})V+ zBU-Oi6%wtN_Vp$3P4kEuP6{-`{oH`cdy`MbrYK4$anbgJOhpZy00#$i@+qj64L&F8 z(074P?yX#-!+ez13Xe<(;gjAa4sV0Eu6(|&LvQXwOiHc`VUJ9lgtdw}YxRAc_G^gj zuNmT}tsvLvf7{(kHZ`2Eo1}0L!xv_#JonQJ+aDww5DCV!q;^eb=S`TK-G@Bt2Rq@C zL{x05(K>9nb+|?N(y~3yC)^LJuorSPQH#$_AVz-ePsHChiF;}5>&d@SP^tO>X zS(F${s^mQ_O0S}bWK4>ZO3OD{+UHBeOy zOZuq=71$8q_tB2P(oN^9Fo#?EOh4rN_O_cE=WLQ2Ll9BN z&b6KXwY?h9!RUuW=47jIY-}C5p|cQ>tDO^c?tAkjVFQ;xqdg2us5g!*|18As;CT80 z5oe?lgR?-vL(oCg054nbs)!L1OC6s)b!Ly$(?qjlI&8h`i8!0dhZV|4G?!|Ov!5)o zsiNqul?nzoMw+g|Pz9`6!LBhl;Vqwu?qPUg_RgR&6iX^My~B@@ZsBn96;xABdpWtr zx%#k@xe$k-0)hipD*k<3yH_!&fFJ01Id zgZCkMXOpwhgbf0&0U5V5R3g?wCP?-vBdy%WIfOn=ytVC;Um3uI@hSGa2|UBJ_)?Oj zQ`)&6Rtopt27|+QPC;1bdixA(7L4!XY?lS${)7p|%$=JRIw^6Y`a!U32LJv`IxVI| zMm+GyJ#*lqlPD6uOe)_u3k;4!`}UNMNI)2{$ZdZRd^VP_g3l&;>6IL7TC3N8B0*gj zoeI&feQ)h{OFfN($7|aXby{qRN=q%)oXh~sZF!;*R8Wj|ax96|XfHVo+IQ7)SI-ln zzs;gUYs;QehXWni{WX#_ff&DUF!Bv=o z#hF@DAM>H>k+WZfVm?BJ#gFgO8@st=Q~lA>y{_Dp*ut_bj)V>8xUzz$GWhSr=*Zk8 zcxEII^e(>Yb^|Mc4YH|Z1cmO$jvmJFd>FXD&fm|BQ-EL^f44FJKp6a`b@4Iou;DY> z7)3@7zEOjA=41h+fivuE8I}amXcwDtT41;ht`>@MB*JYbsja^e9%+BRD;#qoqVpZB zi|k;~e;O55LOtaDsr0svOgy1@X);j%$lRTu*I^!frDKHp-JHx$M9-xu$<6^Z-+-Y= z=f%O*?ZhIn=d+G*zdU4|pX-5YfpOOJ1O3-^Q>Rk-9s<(_JXYN-O`X1h8gmb&j@p)V zG|wpqh?cC49~Kpg2|5f5@1;D245430-y>xXylMYB&(UOgEMfG{ z`!LeogWkkQDSYbIIFkDr;4lq+Sn>#Vc#|Tw5kY-*(pGtFF0Ui+xIP$O)n9cV=W2P3 zfTJM?j7v#Ufa&Y1MXJ(QYH$TYvj2qaLOPhIW?G*u<8Qd_mrd7CrK zF0OVq1*1)(vpnU@-)LJ6qnqI@donl@5V@b8A{2@#=v-cT$J9i(>#Z9(Lq=03zIwsTB~T{U}d)^`xItY-z0^)FQu=N zP1QnTo82j{*2s)C6Zj5h24ihpBIvU{k=X*a#hNI9*{;kl3i|BO9lq(}6WuQv9a^k= zN=fD2)XQmnT+BcVkfC=N zd|U(=&HZ&ty=j^Nuj$q#bFvOBcwV$#2=yBQz-Ss|1G8PgSVXuf zaYP-H+mXpffe<-z|4m9TbE?|eZKS#ryv6bAkjZC1!q|`N80$N?_(gJ}@9Ds8hMLp;_Y#Gqk+4nUA-O-(@Cq4p;#@4WAC* z=c7Qyq{WdZ6tkDP%>F2@%!0hTV}8oVSbh>7o7fQhPMaWeeqyLRf;=7Z0lw?YL4RKw z*hEiSFWcxZ6mY`NJ%YAgml;@Y?`g{5vQejn?u$-uQ1isnDe)HAzw!SnU#Plp7KPU-Lx2tG{2I@X}Q*plz9<{ll9T?1v*9g z0JE5N0jaX#aLy)Tk`Xm*P97!f{AEG1a~~9pVmfv*oOEu$Rch915f^bF;F7l}DZOtFS` z?Bk4(0C5w9gOn1`+)FD#{d(yFNB@^RS9OGqyTdnMe9{>4^e9~`tWf)5QXJz}Rxle@ zGcS4_aXf>+D|pK@_(aUW1Vt7*4NIfefmSmq+g~^fAzudDPR=NF8UV2N)b5471rSS~ z7sYz7u*;Nl8Dw|CnJl3g)ANwS^AA6M5L}tY|GPYeTMpNR$Y5#r%;Li;TO+|KM-H2l zS+Qy=Jn-~AZB(~nMu{XCTmKr1rZ%Pgd2(qKBv--n!*T49%Qm5*PqR25-1Xr>u>O61^=mq}b)j~7@c`V(9vQJo z?&}6|;n;d*gu^4=Gh_azaVGzYl(YdJ0<*k%l|LWuM}jGdF@rz1GUb<%fdJSR_BKbN zAKm8@aezO}j4DcRA(pcnt|U^9`N6VM|D}T__X#L{whsJZg!x z!cT7W%tAyqkyf^hu#Nezg3jAN!2TwDKHWu>=|BBvZ&8kk!}As@4Ejp~U7eHKG_Bcc zv#_tPX}X;jx!#tayE+DKu4f!z>b`&t(8aU2mI!+w> z!4j`Gz3V};shvD*M%T&&$A4ctId##A%~_sU34O?7&RGip+h8riT|I$s8uAV(n3JCX zlzwQNvpEMuVU_mt>TA;QnWONjM6r_eQi5#$5HbbABJbe8qFL3HbCU$Zd!vMO=g~NU zft`VmMf%q7T%gqx2tU#y*u(e$8vMEqfYc-AG@3N=7R{{SpYS$o;8X5uSu9j2>sPw?V33vV(aJ4`bAfa}!aUF9UMwVa&oH z^_{scZAxt*U<|QlHS;ZnZ$B^*4}Fm@W6x7I=OYB&OsJW2K7wp_1?Z-Lm|^TB=tcy( zcpY_1#|DmXy;-%Ez3Yje!@E|}8DrLfDsytpdnDWo7~6T0FlUG=>5PgnCojc$fU4`d zYMK|g`XK2Edm;DIYV=FDE6q{6rPREXV`!n$D5Rl#K+K*5uE>O&kt` z*Ft#`bZlBPv4C@`=!TG!n}LwqnZwWK?2aKPD)}$ubfE;*h69`0TKD+&AHcDq7n_yl zK?dvAhVxhY#8AiMK_bA@^lex%%Y<+V!V*@r4?Z$W^>VK8nWomIoc5+kp`)cGTBb`{ zOb@6Ro|w(`Gx!l6qVt2;oc}?<%>h_C5-9r<1Y4H_22f?_ZhGnSENkQWUz!hsr>$_r zJ&}_RJ&bP!uyHZ!1k0A6;p;d(6mEslZF6#VP1s~JPqNOBOek%3sqQd;7;Fg>()oi<(TuV7LMg5)_3>t)D#9@-CwFe?WW47@O24*y?I3dZW_n) z#p%;%_3W}>$!i-G(EFAAo!#J}) zaje=q0Gyb`({(hKcNyYY-V6Lc3nnr}o+&T;_3;w|Eiqt1yaf)L<$=BH4L+sRpG}4u zLS9j=EIas|q0E`fIYZRU%v~Gt8+skl1)?drLUz zZ81uv2V@n?y9spq6Rj-$YD5trU}ttgtHyhON5Ezuu4$8p!P7giidu|$Jrjx;`4nj@Xd|uw0^cT*OVDptmHn48yf!GHBVow!9AZB z^M@Ytb*+ULk00UYB379OO5nS~X=}?IZ~6rh{^!#P;E!Clgn*kPeuD<)@HF&caPvA` zrSezhq1QQ@?t4AZAAucd*CBWQ*Y^Nu)M0BEMM~{Xr@YcnTvnSe=wv(o=Y$+hdD%0S8 zKnXR3u^#he>-^Y{(9hlZ6qG^1Yz?@%hy^C^S^N7M_Rj%7L0Y+NAp^vkn1;Gtr`G8Y ziSi`O@$8${v4x1@gn9TE;{z_mB!YQG5 zi89AYbp^dn1!TB@oU@Nks@{vPSxrP~6GY4y&m)~5mORL!k>SmiZl%@U@}H&+8IjdZ zd_iw(F~57awI6|9dGX1kTb}1wD`-75|tCC z3``z%&hTl0in`elUBX%_YgFoaw=CVUWUxD%&rub2f>Q$IqDR_*VvRqt&lwase?NgS zXVe+aZdU5~1O%Y7Xp8cn#dWm)ux?AKa#)xvIjpBBJt&LF8A{BgglZnH@OfjpzeoN#e46wKrR}A*R+eB zVO0S%&vn&^9vOu70q-PX9bWR4HG|Bo7-(%>R4gv-~mV?fzL@jwo zqaLEnlwQsSDTfL*jVUez*uN*n5P&fPZds7|iFyrgy6`*d0Ohjno0b>OFFN}jYJa0Y z1^g@$D4~f^eHoGZ3dWs_2-C88qmq|h%b#|nbSF)zg7B6&CHPcu0mUm?BFaV z3y3zg9q8JUVFOX`BJC+U%%UH5Dg(*0=AWAzHV_cQNyLBqE;(7 zasBX1)f$I%<4#$rxMefQ+LDt`Z(|*meTv)FqUW|+iLh1A8Lm0*a7&efmO@6 z3|zike{Iub;L)vW)2ksMQg*xZ(@&Mkl+!P8v%@~n`y1@o`bH|v#>D;>h5AmH9YxHY zf2c;UGlkW`$y20>%J^a-{%Y7J4053f((Bv-HVruFo|eCZ77y>;BUK&^&)*rer_>uj zEpV@R{Vh?dz*wR>pyv=wtj^$K$nYKCFZ!jOe`upW*4jJ>7=?KIwI0h40rc{=#*`@1 zKF&`Ouu0ooT2bX43B{@4eB%>aHg#g1cgCgr!h7%K0472I?`1EXQ;>ak6;2j+xy}i` zJ_5%0G~6i^lQ~A?48R73k3PeP?66qk@F!YTdIGBG#}#oG;51>{l^^2TM@)VZn-R9d z7NYP0N;}i?Gf(Ng4};Z+`fV9X)emH^J>48=#`%d@E-CiA8$B`su}J!WX>Pes^7l-F zfJuVO<0zr7;OusuQXPpm{)o1vPWz>FwOM1yY#|(IS@~k8Q*He|--WIK8G7r3!HI25 zL8P|K>@4fRzISG+OFWlj0|9t<-Rk@RXhm(1#2xI{brMwaVZjb zpdJF~7eZCIWeZ!#8e}G|{cwz90*qC=XtVUX^B*9k&;snTXF2~&IW_O|Tw+evC5mar z-3Y%8xKbdlaPFe3@GoSm_F`21Dg>k3$tALoiS zIM8hjyCqk{COh>3@b`#x+Htx^V>i6^bxQ@D;4wjE?l=f!@<~EymvO%<(UCC6a??ex zkP^DlCVyTDRJO*qI&y(*K7)J|uTykZ+U%c7y{&{e)#l?ne4;FtyBC=tR(aj;L}HAN6?8 zOr1CfHiS%iQ%9nm*mf?HoOO%ky_WeXzTn!bH;UD@yv(eV1Fq;ziWkjx@VsM?P$ ztTqRLJ$j8FjvnuMnFUs@J0tWj54C9oP?-QmXbDtfyTZ{Gy1%qg8u()x6cC_kTG zr{<1?z#uy*-GcAds?xe#Ny1g*A2m;<^UX|+X1y`>*au%p-*3BpaYrVsYnadL(nUlE zXeFH@$HG<%@A?8tsTKua9hxz|{(yGuHLSJYiymNsyPkAK3SY2@0SfVC8Qk&|-8VEc z$-3j}Lg~pB1!^SL?{L{m)!~(JfMV6(0~Cg#d*Pf(Wc}Zx4gc?LYMujgwTn;d!_kU^ zoSi;_o$Hi|V;6acH{3AdxUlowLB(h|3n%t&z3v(~n#*p=wE|Anyf!^aE{F5kr{TV; znvU+>2aSoVZuT+Aa6K5+3J+Dy z7miAYaNz9;)eEbV;3}wm=4n#DDMu#($zVMDm-l>ipHnb#E!IRwFI?qyX#`KD%swBG z4hh9$o7HaFaMzhGp3WPi-fw`zH6QH~ze~eQ4`)s3$^oREGP+0c@LED?;JHukTKY$^ zz4CLonGCk^Sj>-a+(wZocr`cd370H+Qb9~SVjcT4Y<%i=Cq;s|ry;hXX{myyr9=^) zo9`J6fE%KOh%W8j;M+YsIo^{v1hR490p<=H*HSRSL6oh(_5RZO;sv!Y#5+MZsC1!4 zI4J#K{^*{DCB)NrCD76vyYqX|2$zY~vQps!j5n5`%DmS1-|TooEz3ivWV~=(u?P=+ z#)f|bo17u8dH}VWJyfH!TDXH4n9>M+dLtOi>!^FHKbB+>}40YrrDCYujx* zF4JEvG>3OqOC(s#>MYf!6uUs}dkORMx(p%rOS~)+0%p+fX3$zjfDAw7@aS+{xGsBJ zPewOp&5|9I*eVZ3@*v!1mLIX`x`*A)ObUOR2)=USe1(=i92~k3bHW{7z6LMvs(6~l zFNv1{P%0k7Pdj-RujxIPeg3g);CZ;zYdbWHd6-d~?SG90$D_JTA8w(l8Nyrle2n0} zvqbFew<7d*N)U(GL4k+2QHnM9>|)90&Z4YqGCsqHd+K&+yc;;kEWyEiVgA>`P@~|* zaL-v7Xi0XY>&ob=0HDkqM|%uqbfrK`84HryR0ExB{z%SV7;fGEhGuFOUb{z8zH_cY z*@EcnCfrBHMf4Q}KaIO~`tY!Lm3!_^<)`?is>rPjX5n}*sGK~dXjA~U_`D{jnX0xM zh2Op2l*>H~g4AZ!y{bD7cIHmH?#_Y>KUzy zPoms6pq7`9Lz|m8t}-{AwoF>bv55DxayZ=PMRa-J6#l#g@4Jbq+w6+GIE%x-oVwix6Y^Ewsi9 z9$y5Rs##LIr#QP=%eSyOf?IoEOqF^lOeqGefyPR^x*kW3E<=n2Em@wy+sO;27hdlM zO>bb2hq@~7nuRK$S;gE+^4b(a%#I}p8Wi8W=ROQVLIMue8 z=(bgUL=ruu@!JFQ9wMAYRELKKO4 zxISTxb5$r@YQ}?a2d(GM;4K4|xvq5V^`B|Qc>_fIi-}SX2kAj4aqZ`FIPk^rRScm8 z;P2~7r(gWJe|%mF^*i(2gliPFw(o ziGJFvQ>FD>24%hJuaWA1at|us(94lge;F~mS8y%d?LtQn-QKJRSC_2i09_A-zVM%I z4t9@ZZ?0t7wJjH%v~tkt?h1TMS*Mx$9PZaxXG+#n1ZxjTBEad}(*ld=P4vB+1$ksT& zxem9n)mp%yhu>c_kq$WkE15=M+Fdq^9I;yNB|X}G^4M4muGf)&tM!~8hjt#nXm(73 z7&?NTk{W^my)j{V47mobyt`g-S`BWSdy4?GQ5WS;yH1U&-Gy59t~pGy4JOP|LW>PA zh}xusfzpt$ugN3GHx&- zStwqrAK`N7==*q-<+&n@nb?eWGxah?PgmW7o{Tcqu`+eD4l(5Jms~K;i!oJTK-d<0 zik!o*^GpB7__z6(B1~`|e!yj{1yRe;faM_yW?akkP#IQ-d;B8ri%}cK{C^qsJJ7oc zGzIC9%0s~96zIOQf2 zqW=ezMpy0vTr9_ek{q357tAp6MjawuM&wktGpxPQrmi!q2b~g;0^L84r11a704>)m z3pdM>L)Dhg*vF7H!I{j&unv@iOZvW{BSRg#4~$IZyAtO6>HQ?i3z&+xD^7cd%$KWZ z=*-zglvFL(vLB)>zfZp>!A34hs>|#1!9wQCMQ|yU{Bx)H_HNU7^}= z8Cn7kAUeM!!vwE(F-!QfK|16cpm^8lmmIitO~Tl<2D#7Fd3)bitwy{)g};xndnz9( z`~S3aWq(awTR0YENEJg3ic*FsRuT}!>rm8!rojOeXb=z)MdLuVh$sjG0i{GJLZX&Q z6eY@}1u8PgB*+yUsAVWpqJg5~5J7@CglI(XUMu0{{ss5pzMbTk?7fC>O=q9;u{RCn zGXzMbNPs3_bK3hz$CXbD|Kr|S}wUCUOkvOM;L|x(yej>k6A0QE?vdneY z!aWCnO<^ArO#F&+XP5=Ul>XCU5-%8gx!DQd0Gk1 zqg5oH;T<8|NA_1K?t)0aU$|C~D4ME@Im{Fuc(%Mak0w|aU1)$On!uK5R|fLajqDU9moutOz$6$Y5~bUf?N4gaf9q;rnF876&irN)mqidYAc9 z7}OFke4S5U0=;SDy1mPpA<%fxXIGJIW)CZn=X^L~`fJ@7M-a4=V?v-c8HKo&EV%_a zTQ4~IG-1TSwRqi0T$xW0DjNJfDQW4Ez0e$UXuDtRHjhjMaK%?LRT2-B{?Sds9|tk> zc*5d5dPFy74(skST-jFGTe$DQ)pNR2SJm&r#)(9!2@5(7g(=9ggELi85>H5YRtF!h zd6oAf9`Z?LeHJ0=g$}0a{UC=K;z)=pEt=j9=DAb-$U9RjAY$~`J@h(OTkpyf2ovH| zX$JqLD+p~H{sdn*C4Ah#k~*l9yj+2+imC6tLe~eUTL?_lD6cwK_t>-wq(9d-hE!iV@zE2R~x4EWtQ=^;j^k++Il@omn4q?FDojHS3Y8H9x} zebcb!nw)7b?~cxl8lATX{;rhqpN6|{HTNAI=7A3ey7a$%u$SBxB@!t0{W|srW!f$~ zG=*?osbX#Slyb50c%fBYOvqE9>{<7=<_5k~+7V0AR|Ig+nG9n36n6dNEu0-#CIa)> zL@o`xybd@&EOxYaRK@!_i*ZCn<8%1JG~ z(kOmXKcxrVlverc$JUc-?~QM{@FF+0rHe5%;YBz61vm3s#+ zDq~2qA%ETs%ii5Q#r<`i!~ur29sOE&yr)QU)x0`URNzImmW|I(3>B`YUc=uHo=K#r3j($=`m9NDlF?Q`nw{Qc*g6hQgP^e|f~FDHyMOcLMo`~04ab3tP< zC!cjPD`7LYk2zh>mz>ssb>4JpE$a{cz{kO2`|K0D*4Crf)*duG)ba$`xKb_}%xKN5 zp}!`?fZUzc@n=Y5TTHTd4?tU6ysq0J`lqw?k=O>2Qom~E>I-^IEV&%43;7jp;^?>r&tU`X2WWkyZm$DX6W0+abknbY&S(IVee#@<`FRSg{F z%+-N!QrVb!F7z({BF`EFOULnudGa+0N@M9uEZu|A$R{2gw-XQMLr4eO|qS5jDH$`l*ueRohOQLOH)s-qy zOto*o#d6cp2}nP)dYY`ey@L>{=?cjR)>3|<^oR=sO2UeS&(lYS zd61WN>_e0MC46X`wjX!7WvtVq7AII{+?0(dxlIcb22b$8z?k;%uH8vPTqLF8tc?@F zp)9a6U7O~`ADk~l_|jJ-EPZD!fRU6<4rzGwIrMU&vVk{NJg*$g3;)re@8`Ib@Gtp9MZo4;V zGR?Aqih?zx3&5yk!;PirU$UWovO26|X|orw5S#1SXa35;n3|y%?0gI*oAoir>hCU1 zKv&qg9vjja1Fj$vSPYh)I@M`2Shv&0oO&riT@+$zo>AH^n9y%U7VT+z7OTcWVAAew znC6HHcXM;wu#Is}NK|K|L<^47Dei5kioxH-5K`UI$mv3 zax&?OG*l$w*L!QS39B~U=o4u|T59KRA+B_q#kpSIuc>TBVWSVzFR3ND>N1&IqS4xr z`#YUw6G&QI=Y$NhXE)s%%ZH(d@`=jBF$kiB9OPs>k10{W8pA=s^xQU_dz=$4Q!!YG z5|a0*M53b{+)}apXfrY+@(@k-wsVTjKXMb; zj-xb~?j$z@KfiEDjrkMs-yU{+JwDwr7pmM<`dPRiQ}HH7S}*r9ojI&ygUO8uPF9mS{AP zy%dfu7v`w$HnbVls*CFSu%11E+-l%Qs~m|;u{15E@}PMs45PJ*n&?-5Tpe@DiYO0_ zC5;=qa@#b)KCjLO^SUHbc+OLS;+|EQm8cX{o)O+;{q(OC8r1 yXW5ux$)Iff)_?7_&z=88&-MS0|63N2w8v0fsn_qUjAwd*WNVyUImK-M*#7_(aQF`Z literal 0 HcmV?d00001 diff --git a/resources/img/scala-days-sponsors/virtuslab.png b/resources/img/scala-days-sponsors/virtuslab.png new file mode 100644 index 0000000000000000000000000000000000000000..de2a48e9dd0052f1ceeeeb829558bca498d176c8 GIT binary patch literal 8469 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

!KZZWm+ zbcel2Q|#|SDzTBu7=xQ_!g-%Y8jaMC*06HTyPYvA16iKZzZ&pdtL?bHm;joU2nnC6 zflj+qlYozgC==M{Qe|6gx#4U0I%`fT6L}>w5`}V%BM0xXfC=Hj&=2pvi2R*Ztt)~Z z=9Q$|R)T;^b}m}&^P)P7_Z{YEulbnEdTNb z2ZTJA0{d&g1$90O-0=rbzM5D)u@UKf$YXZ9W;;?|r3Zk0z?W7|Sj6PzyyH?FVw0@{ z(!6OrT!Pr#jO@&$u=6p&0^D9)g+6izBq)H?Kvzikgy7ZRA&-4y6aXC+R{`^lpR-fo zBAnewfKVsj2MyTApJ>JZ%F&$i}|G)wE$+>6=ov^{DRh6`E$n=N;dHdDX!qH{Jm;9g4Fc3Ne zzW5g^K|kuLR-S8QKAjiU6|$WY*H^SKbd|I=n<09k9DxGRqH@vtFmelWQZ`qw6vREYA8byr5@AkZ%4Up;#MQK*JjT+c8c)ux2OK#Sr_!+yTi zAhB)*Lf#^4DH&>EG`!Vd$4~4P2Fz%YH46S%7Q(?XZ$GL-8aOeLn{zim(oAQ<(68p( z|9)RaS&fcwgV!0g43zK>VoyK@zL4!3-4|bPxR|klYBQs&?-snlUZ>ytD{Y=KTc;cE z99-g`c*UEcf?U^kp68V7tqt0>csO92=&R&vY~--IHkyiaV#aw3rq4(8K{C6aL%BJK zWu6M?$jKb2nxinM?qr?{nBBfJ+3L5~Tx@z=F9=O4=}S$B3+mmc?+w-J24ih^IyaxqFl!6^1H`uJsW27s zSo>jT52SG1n)KDW@6M-nZMXKZ0KeyT2k^PC>y$m?1MRv;r|mWOt2d#@Q<8C;&Qw_C z-iso5eB+ogZPfYJHsdvcIka|_a=sCw?Q?kZ+o>#;ol9{N!;wFiQcPEZ zovSoL#L_;z0hDWiIC$_6>hVt-ic$N)N|wN;z{BC$@a5|IZe)-$#pj3yky?(wefvjc zc%?m%2k{h8^)AclgH}v@O=782eQB7Y$~OuM;+M-;yoXm6KDCNfPRy|Bu`9hng7*aOzybjBgVwZ8)g6vqU>S zGkZ0P+nT*k^Sv9ELzHOz#gR%;KCr0v^58+{Y&9d^lC2UNrU-v9<&Df}&E#fn0jUs> z{LS+5G!8Qy%kO-T9DhsQW9ruJC3Gq@lNna>- zEvMd42z>D&@faJ?mYR=$9h}K+V!U~OG<+A*{6q10t-zyLjf=+-VDE ziIr4Y`wxj<;GnmQB)uiE+Lws_qV$F}mt4H+Jlb{XsiA-WsG@l6z8HnGPvIZO_{z5kIpqrft_*=$R#S#m6f=tl`=fI}?`%Vh-BtC)c z5>`_B6RJYS+W9A}c4NaA$_HAaE$qd<2$w*@tRz|cBk)-5a8-1*h=j@nUu1f2iIxV0 zpV3>CS?S1_#ju0`*OcFJ-|}Z9?Q9ILY#9FK;AIqH)P$#~eBUSB;Dw`{aPOUl?W;h3 z69*a=ti>8pr&-QsZNZlMPgj|b8*h)AZ~MIGZtP4jeQO4 z;LC!y*#=K%BF*U9-gzxl_Oj#EfQ>-qT>n zS&P#hizj%@%RC4`8L~&MUK2S;Tf!JDi;g{&@`M)mluaZ%hVJBAql!C{N1u{)B&l>B zsE^QauHsIWuI<@n)|)^sfBonDsFgWZoYKN-Vx^66RueOXzl=6vIYH_U1-?FQj9#&5 zN3<^mu}Q2VKYn92u1Mwh3tl52^YDF*!V=7dGy{v9llT*fMR__j~$p&$KW{G~G! zr&Cx4V{0%yIS2O#?!kl_!?>~HgezIZBEc-)$x}nVNfr=lYCDB(3VFibTw<&vRSRBYK zE>8K`C*QYu6#5?nlt#Jjwev->hxGIz_-2RZRX;nLF0DX-TAYF#sN3qB6nM*@r;5X) zJ1cv|M^kM}4>nLaHBLZ5JX^S?tzSNCF}oKp#~hgEDdEe`^hNaf%eBLEx`W$4qTr}b z7XG)UBDJvvlBUi6+{FDc+}e=Md$i!wE6&DyM#|}Ys^=2^QJbvg%4%J!+=fp)VoJJHNA)bf`?bWE}mjm-P@ z`R2fD3$Fe!+lUMeP@+uDJQERg<(ib^!)AZo3}oS$JxY$6`E1Aak~SYi_T}lrz_tHP zfZbCp6OX8P^!sq3yoY#W5s6Q)uj}IWbAyfFxJY%!v?s3O=vQ2QrQEO?7!Svv_8E&` zW`8J}um1~U2%o)muG(&u3!;ZD<|Zu=@z|a@ZauYIb$HN_Y$o_K8Cx8b23OQ^o-p5; zr#y&eiKgb}Zb1jyvsEYvOL=ME)gQku8&fbTo1nb1vt-?ywN1H8N$D9j+ikFlGD0(z zhOwvipUjzJtck8wT!acqlBN~n4@Xq1PQDC)jX?jVY%W|fy@((RVsRZoQmj01OkEBE zd?v_Dy zqZIkC1A#>hrO)tajlNxU{tpN+v)w4 zvsKA_Nm?MO!+_oSt4kiz=Il^Ao^f~b**YGK9auF7q2_TzFAq3%3VeO*F&P9V`Ff6!IdARHZRD?2O8B zIAz0sIO=Z2K8dOaNOPD+9tA-OuccRZHEoMkU<)d?X!XUdnE0D_R>gglN8(>vF@R=HJ?bPdz4qOkS zBz_6W@;`*9c^|-+ER9=s0>q+t5C|5F4bW)Eb&qPx;M>iE5Qct<)@89M)#pM_n3C; zZ50a@st=-R!fq1hseZ{s#|7b4sw`U(xQbihX*Fl3E5pP4qt4AlO+(LLlrG~|1~++$ z7+3P?XIe{NWIYF;wzp`p%KnOysbV@(9XRoO?S5%`SN^hSN-TF_KR3-r)3oD4RsDF> z*WgfQBwnO$v8wwpzqRV=@@dI1m~mH<(Bu0=bO_O&Q7P?DnyGxa9F(zMzyFr1VE{`! zk`qkqnbcHYHyo`WAfbK6>)GiPWa1m>l2QqsY#M(2VG?&S0lR&4F7~|Ysej?}yP%pe zWA|(7<8ztZ;Fba^p(y6N@01{!DB=>H`h+; z#7On~I`nOa3=d2ecsfh&hco5j#!QQzirTjtQyz;{f${i&DFC|Bd-{mqwI z86kbiqN&n5B#*@JPMxv@Namq>h2EQ?Ru%8D( zfUsfV#juw3fB--j;*E!yYKQ1enp@MH>s||68q}-4CIx^>t`o|niT9u}MPjXEsv%`0 zd17~yAkm2uL}C*_Bo7&~dex6-3n4P-QZ#PSNTdfaO9`TfPs-@G{EGhC$%Rpdf`oF~ zX+O}B_TTxSGf<*_W9-fy((E77YfJOaMIJfr)5wsNtj-hpZA$8oD)5R}^{s_dr}kbZ zi-j}tF|)!5kq*^EoRJQTTP$4C&mVj5B-gz+Iq8N@<3jj=ozlOM525ClN-13-ij zVK=Nlb?tNqG*)LaM5^^ME3Gud5&tjl-sb_c@wNKdTs2y5`q#Q{t%*=(CkKlD!*U_D z*F7Q6UIrNNM_a4%ZOYi`DCpEgAjuR!@Z}R3LGgbURq0|Gw@RMvFs$oJBp{=B;HHhk zw`So1YhH>qNbc-%b^GfsK?#w65x{=np*5*#94>bLaT)BmR?_$ui68;iX--ggIB@_c zZ&8)|t)O(Y2jm15ka|<8L9;oLq6lA=?4CM}e9rkNhU}J!phX(Vzkr!ub<@SW5u!cX z2)UOdJ^s3lNW3NW=9aWugt2hJFs)aN0oh-}K^2O5fv#e6?+xiP#xtZjfd>Iv3AN;R znuGjN3Q!OrC3fp1MfTjfZ=a;`ADIHU4_pWz=sQ>@s_*Z@q-XVMHv465L;e9Vpy2Y! Xd)*j?eK$z~**2gkrz%@1ZT9(p4TMM- literal 0 HcmV?d00001 diff --git a/resources/img/scala-days-sponsors/xebia.svg b/resources/img/scala-days-sponsors/xebia.svg new file mode 100644 index 000000000..a87af96b1 --- /dev/null +++ b/resources/img/scala-days-sponsors/xebia.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/resources/img/scala-logo-large.svg b/resources/img/scala-logo-large.svg new file mode 100644 index 000000000..249040e4e --- /dev/null +++ b/resources/img/scala-logo-large.svg @@ -0,0 +1,7 @@ + + + + + + + From 7fadad35f122eb5362adf3e03126b1acc1b470a2 Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Fri, 11 Jul 2025 19:53:47 +0900 Subject: [PATCH 03/10] Scala Days 2025 countdown is live --- _includes/scala-days-countdown.html | 8 ++--- _layouts/frontpage.html | 3 -- _sass/layout/navigation.scss | 49 ----------------------------- resources/js/functions.js | 34 ++++++++++++++++++++ 4 files changed, 38 insertions(+), 56 deletions(-) diff --git a/_includes/scala-days-countdown.html b/_includes/scala-days-countdown.html index 58a7cc266..9866f65f2 100644 --- a/_includes/scala-days-countdown.html +++ b/_includes/scala-days-countdown.html @@ -1,21 +1,21 @@

- 38 + DAYS
- 13 + HOURS
- 23 + MINUTES
diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index f166355df..3c3d72665 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -30,9 +30,6 @@
{% include scala-days-countdown.html %} - {% include scala-days-announcement.html %} + {% include scala-days-sponsors.html %}
diff --git a/_sass/components/scala-days-sponsors.scss b/_sass/components/scala-days-sponsors.scss new file mode 100644 index 000000000..745863cc1 --- /dev/null +++ b/_sass/components/scala-days-sponsors.scss @@ -0,0 +1,70 @@ +// SCALA DAYS 2025 SPONSORS +//------------------------------------------------ +//------------------------------------------------ + +.scala-days-sponsors-bar { + width: 100%; + overflow: hidden; + background: transparent; + padding: 0.5em 0; + position: relative; +} + +.sponsors-carousel { + width: 100%; + overflow: hidden; + position: relative; + white-space: nowrap; +} + +.sponsors-track { + display: flex; + flex-direction: row; + align-items: center; + white-space: nowrap; + width: max-content; + animation: sponsors-scroll 40s linear infinite; + will-change: transform; +} + +.sponsor-logo-link { + display: flex; + align-items: center; + justify-content: center; + width: 140px; + height: 48px; + margin: 0 1em; + flex: 0 0 auto; +} + +.sponsor-logo { + max-height: 40px; + max-width: 120px; + width: auto; + height: auto; + filter: brightness(0) invert(1); + opacity: 0.92; + transition: opacity 0.2s; + display: block; + margin: 0 auto; +} +.sponsor-logo-link:hover .sponsor-logo { + opacity: 1; +} + +@keyframes sponsors-scroll { + 0% { transform: translateX(0); } + 100% { transform: translateX(-50%); } +} + +@media (max-width: 700px) { + .sponsor-logo-link { + width: 80px; + height: 28px; + margin: 0 0.5em; + } + .sponsor-logo { + max-height: 24px; + max-width: 60px; + } +} diff --git a/resources/css/style.scss b/resources/css/style.scss index 9d5d4b614..37bbde972 100755 --- a/resources/css/style.scss +++ b/resources/css/style.scss @@ -76,4 +76,5 @@ @import 'components/tab'; @import 'components/tag'; @import 'components/search'; -@import 'components/countdown'; \ No newline at end of file +@import 'components/countdown'; +@import 'components/scala-days-sponsors'; \ No newline at end of file diff --git a/resources/js/functions.js b/resources/js/functions.js index 541eaddab..a7fcc687a 100644 --- a/resources/js/functions.js +++ b/resources/js/functions.js @@ -1,6 +1,3 @@ ---- ---- - // Sliding Panel $(document).ready(function() { $('.navigation-panel-button,.navigation-fade-screen,.navigation-panel-close').on('click touchstart', function(e) { @@ -629,3 +626,22 @@ $(document).ready(function() { }, 60000); } }); + +// Seamless infinite scroll for Scala Days sponsors bar (no memory leak, no visible jump) +document.addEventListener("DOMContentLoaded", function() { + var track = document.getElementById('sponsors-track'); + if (!track) return; + + // Get the width of one set of logos (half the track) + var totalWidth = track.scrollWidth / 2; + var pos = 0; + function animateSponsorsBar() { + pos -= 1; // px per frame, adjust for speed + if (Math.abs(pos) >= totalWidth) { + pos = 0; + } + track.style.transform = 'translateX(' + pos + 'px)'; + requestAnimationFrame(animateSponsorsBar); + } + animateSponsorsBar(); +}); From c2728f6fe51180082e20a2d307a28162d239fd63 Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Fri, 11 Jul 2025 21:24:09 +0900 Subject: [PATCH 05/10] Platinum sponsors separated --- _includes/scala-days-sponsors.html | 26 ++++++++++++++++------- _sass/components/scala-days-sponsors.scss | 26 ++++++++++++++++++++++- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/_includes/scala-days-sponsors.html b/_includes/scala-days-sponsors.html index 42e4cad69..a32e7e10d 100644 --- a/_includes/scala-days-sponsors.html +++ b/_includes/scala-days-sponsors.html @@ -1,15 +1,25 @@
+ +
+ {% for sponsor in site.data.scala-days-sponsors.sponsors %} + {% if sponsor.type == 'Platinum' %} + + {% endif %} + {% endfor %} +
+ + {% include scala-days-countdown.html %} + {% include scala-days-sponsors.html %}
- {% include scala-days-countdown.html %} - {% include scala-days-sponsors.html %}
From c8a2095b82ec90d355632c8b113a878b0b92f49c Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Fri, 11 Jul 2025 21:27:30 +0900 Subject: [PATCH 07/10] Add brought to you by section --- _includes/scala-days-sponsors.html | 5 +++++ _sass/components/scala-days-sponsors.scss | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/_includes/scala-days-sponsors.html b/_includes/scala-days-sponsors.html index a32e7e10d..01c578faa 100644 --- a/_includes/scala-days-sponsors.html +++ b/_includes/scala-days-sponsors.html @@ -1,4 +1,9 @@
+ +
+ Scala Days 2025 is brought to you by: +
+
{% for sponsor in site.data.scala-days-sponsors.sponsors %} diff --git a/_sass/components/scala-days-sponsors.scss b/_sass/components/scala-days-sponsors.scss index af7ae1d7e..6cab4dfeb 100644 --- a/_sass/components/scala-days-sponsors.scss +++ b/_sass/components/scala-days-sponsors.scss @@ -76,6 +76,14 @@ transition: opacity 0.2s; } +.sponsors-brought-to-you-by { + font-size: 1.2em; + font-weight: 600; + color: #fff; + margin-bottom: 1em; + text-align: center; +} + @keyframes sponsors-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } From 3ef3f974797ec2007f42c157738458e37e14dec3 Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Fri, 11 Jul 2025 21:52:52 +0900 Subject: [PATCH 08/10] Writer added --- _data/scala-days-sponsors.yml | 7 ++++++- resources/img/scala-days-sponsors/writer.svg | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 resources/img/scala-days-sponsors/writer.svg diff --git a/_data/scala-days-sponsors.yml b/_data/scala-days-sponsors.yml index 4f74806af..092153c0d 100644 --- a/_data/scala-days-sponsors.yml +++ b/_data/scala-days-sponsors.yml @@ -37,4 +37,9 @@ sponsors: - title: Xebia type: Gold logo: /resources/img/scala-days-sponsors/xebia.svg - url: https://xebia.com \ No newline at end of file + url: https://xebia.com + + - title: Writer + type: Gold + logo: /resources/img/scala-days-sponsors/writer.svg + url: https://writer.com \ No newline at end of file diff --git a/resources/img/scala-days-sponsors/writer.svg b/resources/img/scala-days-sponsors/writer.svg new file mode 100644 index 000000000..257dc440f --- /dev/null +++ b/resources/img/scala-days-sponsors/writer.svg @@ -0,0 +1,8 @@ + + + + + + + + From bae32f4f95b2e0e162867428b407660f7c01dfc9 Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Fri, 11 Jul 2025 21:55:02 +0900 Subject: [PATCH 09/10] Links to sponsors corrected --- _data/scala-days-sponsors.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/scala-days-sponsors.yml b/_data/scala-days-sponsors.yml index 092153c0d..1af86d1da 100644 --- a/_data/scala-days-sponsors.yml +++ b/_data/scala-days-sponsors.yml @@ -17,12 +17,12 @@ sponsors: - title: Signify Technology type: Platinum logo: /resources/img/scala-days-sponsors/signify.png - url: https://signify.com + url: https://www.signifytechnology.com/ - title: Gradle type: Gold logo: /resources/img/scala-days-sponsors/gradle.png - url: https://gradle.org + url: https://gradle.com/ - title: JetBrains type: Gold From ea37e1d7a0a33de30b24b0dab8fdd2fb9a461d2f Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Fri, 11 Jul 2025 22:29:10 +0900 Subject: [PATCH 10/10] Make the sponsor announcement area visually stand out --- _sass/components/countdown.scss | 2 +- _sass/components/scala-days-sponsors.scss | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_sass/components/countdown.scss b/_sass/components/countdown.scss index 490ffd7b2..065867775 100644 --- a/_sass/components/countdown.scss +++ b/_sass/components/countdown.scss @@ -10,7 +10,7 @@ display: flex; align-items: center; justify-content: center; - margin: 0 auto 2em auto; + margin: 0 auto 0 auto; overflow: hidden; } diff --git a/_sass/components/scala-days-sponsors.scss b/_sass/components/scala-days-sponsors.scss index 6cab4dfeb..35963d4f4 100644 --- a/_sass/components/scala-days-sponsors.scss +++ b/_sass/components/scala-days-sponsors.scss @@ -5,8 +5,8 @@ .scala-days-sponsors-bar { width: 100%; overflow: hidden; - background: transparent; - padding: 0.5em 0; + background: rgba(30, 40, 50, 0.2); + padding: 1em 0; position: relative; }