From c0deb15e4328020d7a245e8e797f72d37c126912 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Wed, 8 Dec 2021 20:05:32 +0100 Subject: [PATCH 01/10] Fix link on the frontend roadmap --- public/project/frontend.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/project/frontend.json b/public/project/frontend.json index 1d1620723..19d96b99c 100644 --- a/public/project/frontend.json +++ b/public/project/frontend.json @@ -3543,7 +3543,7 @@ "x": "624", "y": "273", "properties": { - "controlName": "roadmap:frontend" + "controlName": "ext_link:roadmap.sh/frontend" }, "children": { "controls": { From 73ea7554ebe7ef41d3e3512bfd8cd9ef38906003 Mon Sep 17 00:00:00 2001 From: Eihab Khan Date: Thu, 9 Dec 2021 08:56:38 +0100 Subject: [PATCH 02/10] Added CSS Flexbox learning resource --- content/roadmaps/100-frontend/content/102-css/readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/roadmaps/100-frontend/content/102-css/readme.md b/content/roadmaps/100-frontend/content/102-css/readme.md index 77d84371c..fd5077c78 100644 --- a/content/roadmaps/100-frontend/content/102-css/readme.md +++ b/content/roadmaps/100-frontend/content/102-css/readme.md @@ -1 +1,4 @@ -# Css \ No newline at end of file +# Css + +Free Content +What The Flexbox! From 8875b383be744201f8d7e35c4d085d71c3782a72 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 13:25:01 +0100 Subject: [PATCH 03/10] Update banner colors --- components/page-wrapper.tsx | 2 +- components/updates-banner.tsx | 89 ++++++++++++++++++++++++---------- public/bg.jpg | Bin 0 -> 14517 bytes styles/theme.ts | 6 +-- 4 files changed, 67 insertions(+), 30 deletions(-) create mode 100644 public/bg.jpg diff --git a/components/page-wrapper.tsx b/components/page-wrapper.tsx index d3edc71f3..626e01471 100644 --- a/components/page-wrapper.tsx +++ b/components/page-wrapper.tsx @@ -9,7 +9,7 @@ export function PageWrapper(props: PageWrapperProps) { const { children } = props; return ( - + { children } ); diff --git a/components/updates-banner.tsx b/components/updates-banner.tsx index 0515fd73b..ca6309140 100644 --- a/components/updates-banner.tsx +++ b/components/updates-banner.tsx @@ -1,40 +1,77 @@ -import { Box, Button, Container, Flex, Heading, Link, Text } from '@chakra-ui/react'; +import { + Box, + Button, + Container, + Flex, + Heading, + Link, + Text, +} from '@chakra-ui/react'; import siteConfig from '../content/site.json'; export function UpdatesBanner() { return ( - - - Stay - Informed - Subscribe yourself to get - updates, new - guides, videos and roadmaps in your inbox. + + + + Stay Informed + + + Subscribe yourself to get updates, new guides, videos and roadmaps in + your inbox. + - - Free subscription for updates + + Free subscription for updates + - - Support the project by paying as little as 5$ - per month + + + Support the project by paying as little as{' '} + + 5$ per month + + diff --git a/public/bg.jpg b/public/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c9345c21acbcb98f79a34634c2d55667effbeea GIT binary patch literal 14517 zcmeHtc_5T)`~M)yGTF&gwiqEBs$aWYZ zOK}ga~_Hgs;-N(zv4{m4@f^c$hadGb9;^yA72izSAu0!?+bBoAnp5+m> z_uMNVB&KyMqjcX9)Utp?-v%AJ}iG;-`J#m+4{OoXU~fR z!u5BP{Wh_GnHMku2j`wWTzmGi=f%Mp27bAO_i)Q;@`#+Z-|HD9Dz9~GpO|q*X~R?A zBPWob#Jz$?_#_mxe^va_F(t zJCFh1XGqGGVAJZQ6n86r$7a~Fxyp!NeFwL;z19xIvNldXDT{FY?UMC($#!1f_dcko z^wCdIo&8ik7|EN5Gm*=zqg5{dO}?8ZcE8Wg>)P6d7p00hAHO==RTeH=cdVTBdBIP1 z#&}CMcpBDybu=8KGiooZlOA;}3tR@r$Oe{pHqm3_M4sIWqg^8FNu=S+53Vn03sL#7Dz<)CJW-mjNmIyZ zc=@Yi23kmSWes)2we0a0!JG72pYP@DC&GiVMQ^`NRbu#S!%2MQ&*9=8#L=cSyA}HK zHy9!LCDV}UvA9WiM=$8Dny&UBkLp{lF|mD(9;J;~tl%twTp{hJV(_&%r>Wf3{zALY(!3Kt}h?mjqp$g6a1U0JALkSbvLi`zcS=Wcf_lLSt&;nc zoD)92X_i<|9IXu0X;%>UYsr-?S+lu*G$+F8nks&vD16k|P0MrQw#7O7^CrjYJi4=9 z@n#ZC|+ULYzpa6`E;zeBzC9{z0no_^*~j&R!A>ZteICF5Ml78{-Nh zRh~GPuE|t&Of4gdJeK)P@FKpTvpP5Y%GzZnn(ppECi-5itDc_wHu2f4qGqw~Jxiz2 zzB~f!@#&fG8K$ajUxTVXdTezz#4m>eJZdn0rL=0vX!;5wAn{;_UmL78E^OJLc#*-n zUUsZDVj`u~s+3FGppm`<@t9<2)|jIzVPz64U!4dkZsIRd-tyJQ;wrGE7$2kQ51ado z<>5KAJD>KEiIw?)+~Zri+WY0e6{Y&bVUwk^ zQm4USrpWp)5WbHiH1+!?kZ%^`RFwlYRZj~jL(X#;aYMx3a!zDS8Ba8DbT_(jDxgNL z0V0rlbk;?>T!e2#;*@hyf^>PxB%M_}(YOPN*%tW83BkM9-ua2PTdri2izi`_8>J>8 ziZiGwbNcA`M78ug8jfsLsl%yQapIV|y;Vuuk4bq1D@sCx)>egYu#!U;n8?wo!Br6I zAs0FlkEvS@rf1*S)LAm(?PcOZ3a#;Y1t zljp%~ECYaeB_3d1ukwiRYcLHnoKtnJTcOi7b&^$EnR~azA9+m9`{mJ?*dFnpb|7hs zZisR5dow3D9&F;LGlsp4r~OCDC~@tJjO5z5O;+dS5NjVN-&pwF2a)>@cIejAg$*t5 zS7f%9Zz*OphbNGSS6u>|)GtM36eL|cAs2{WVMP^N-Y+F5PGBl{N}Ua-0fUb@o(7yu@0W!3ze0ULxzmo>WaSISSM;0N#xN2}e^ z`;(i#LgG-_`*k7WJL5#M`HLM$hI1YmbRDTl1diGG z;QWAfx!ibol12~#-{djrfFRBZow&{fu=uJzG_L+tG4zZ#08lY5Ama*s7gI{KBdm?2+Cz)YMy@K#hbfY^xFm1Sy=71_k zE*Vd&49go$`!?1x*otWc_haz&J!0ly>j0{ed!{AEp!1Y$Ognu z&j^XbzF!n9pPPt0il`SUbG!2gNleVCq1Yrb#VuYFo|qn5?Iuo2$KEGSG%hD%CpVM0 zQB$~jpd{j(6~xOZWkJKpDJfZk1Qplt-F-uK@TJTEJSjW0+MORUI8oi;^R^Nys{Fws zeyAw?ykM~D2jqay(v2O+8EkPs9m&eq$JTwteDw+%#bpkjT>|h>a(FqBk)1bZjc>9# zaXFR^j3gz8ZP;)bOv&N(V_)kcyOj%#J|o}VpUtrv2QFc7!IQ`UX3J`0t6F~bgg5II zelO`h%hTV0TQ*i0EAY;>75c`BD|A*zglKh?Q=tczwrqtct=5(Ku;lyJ^5Ey1*W2Og zZ%^sA;$ASZ-^Z?}5NGn#^Jp9UJ>+yF(d+bU)I$%fqQor?CmE+LejLars!tHk(OE=- zm3drY@`(CZ?8;xH!33cxdS|}RC1JW8AoWwKaNOu(NVu-0`>i(xT-OM3DQp-KIg1}h?u~5wfz_m zOS-0DIk>8+s?@@Jp`(vY6YSKX)}?AB(dbsXU%Uo!#yO?Z%FCXPEe^*$QcM%Ca}-_% z=NjD4CAU!Rzxyd|gB4B>a%`*zStT$TG2ovJRHBnwvYSZdQ=YnOer*zaQQmHub-0r! zZR7LK>LY!sC$bc&mUy1>gsJ+@?EGUncK-1uaEJa;d}SeGZc{ry%bl0J0n+Um?0tWj zLXnNnVB}!-reTqZnT=>A^UBFP1#pKqqoof{CXEvT8NWkL0*cOCx~vE&A>VDi;>49T zC71rMnP*Dn{%o|%W6OV%?K+f>GAnQ$|JFf3QoLOz6 zK6=>g{;%wJ-xJ3N-%Dc0XbR1&v7e zeFs>L^nzzX4Idp-g+-;u{YJzo^J6f^Kp_FCCVU!C!j-jhNs~$P@@TGcpj)(`7-J{r z5#f&dcV>Fkk;h}V^@OBp;oWEG|1)|@sA@dyal%p>_ASveH@{I zFe}|uWgVom(x3n0mU;3KCR9^ZGtPGxB)eE~?$2u}*g) z#5T*I`mZmX|IAJuB6xP{V17StWT`@j>$IxSs;MvBfdS~`BLCcX?iSoAZ8r(APe)A@ z_m);qi?_iYhRt(_MI%V^=fhz!CvEX#jI$(F9O)-O4)PkGoBUh$d2z-TMoTCWz-)RQ#RS@Vy%~ud+OXwC?Xfifm`%e-Nq0 z(yLG(OA9?d%|9PEXah*0g`7-s>iEvFDHx_GxB~%&5nqA`YK<9iMwcAq@LV;@Bu3^u zkZdasfH_>mftT_2VNAokZL#3m?)Nkn@vLsK$Hun(i+MeR*~#gW=^5f8gLz`6@*GJl z;sa269-nw5x7bE%-qwD=)XMx=cV%;9lFszS$u5L)0r!7hyHr$kC5U-Qu)04m61qQs6AOYV3|)q0#YJCO14afHa$ z5&a!V54ib$Qz6AKk*wd>=Zpz8&&hgq$8yN?H%{4w3yQ*Boft=O9x#bRze*KR2PQFG z{7evfb+kGSxp$n9!7fNN@uUn}L2$_+#~UtgRexPU{ED|}>v#8atV#la3@m>@K&b`V zCNvpz;xdzQ6kLOb_Pr-QE2Gg7nd&$zxh%Pl=9xfas9XTlB4e3rqUb<(1moL*ImG zk?C)OxJBeEG$@|LsIRQXclzAwKnuM+V@O=I>~2n<>tC@PaNfpx+-M&@REja|vRR}! zyyr)I;+VF6&NAxh-802STG{3=qTmI9p$X5;Q;Qj2s+xW#)_JU~sv#1a7af~6wXIg= z)xH*#r+`=Q?eTIywlmQ%MRHQ%x;S{` zO$Jr&mw4|Bt=hEQCFFJSy%AAq@(B9+5${`$C|U2Pr99NwF>jya5mDFmE#&mkTHnuG zhm$=j4@d5UT8;2mN>ya!^WO*XW*FA`8{Hv$RFrE>*kSD1rRJ?v7WSooLaRAjbsDbF zS#8jonQoCs>Ae*Z0xFQ-%1!W6mB{bR7MVu&D79Ny4|!9avJcGg)Xe0jR)HJUZWLTS z=sk4sG)t?DksjKr;9n^)j?8IRbPNu{safNR2RT8hz(~RG$Wf|JbzmsD81?SasycW-i7!zf3-xN?MDI0$is?aeAv!amon>UH&|4#T;0 z(J7LaRo&)4%j+B)&d~gL-tzT49JjUv-#nrODF#!U ztcXZA^8Y?jsE1u7uoa@ZXMAZ#BrgI%Hoy_~?aIVofK1GtQ~aA;oGjlTu2m*;RwZ~-+$z~>9uWb6}#7L7~MiEYBV@tO9BaCkj>qoO;%lGwZC;u9y6vcHrJ*OpfWAx8uUa@-DwV^!kgDo+_SK}AMnPgVHE zCvkv^L9WbbrZ~q6(RfCK?np@ygnk`uP~&gQDGmz0JH3iU9s5GM*m<^nc6)4F_WinO z7;ytvcM1G)T>@J|g}?n zO^{Et_=r-_2H__5!aVjT=276y`yf;m5d9#M^N@MLJg46l=UaXQUa%2Mq|7;~4>TI} z#U6YlkM8UVmxrH{L1mgl;Z{ey&u_6heGHz3o+1hv!vVf^ z=A20Jzu&$)yT-y6sooTQF@Jmwr^=u0-j~81 zI~7?`za5ECU)y$QPT&49ewBfyfar^OTVP`DiLtB}_l)bfsbe9LaZtDJJ#Zj!8dGId zN|=3AmY1K&7Rw73iQohN(zrhkZWBILW!{+R`gzT%eN%b|61fAJ6Us`y9B5`2UN&%V zAx-`XPzUqI{hJRPjS>gf%yWS-Qvw+iq{t6k@=6_6a-HSYSdamK{Yo|*ikpfqu&Xaz z28!x7&kBfy?KSd%0Q^C_Xe5ub&5~SvDfJvu3!IjjDBV;By|5jKv6jDd?OdPp539Y3 zK3@*x6drKg&6vB61pWjCx&K?aE3WL~eP4PwTe}sE7~u4i&Q_ze4t#cQjKZlU@Qs8@ z_pF#UAeMvmSlV46`m&S6He42v}f>MGmDmT!N(@Hv9Wh(Dvh!e0gvwoPa zUu(HvS=-7*26I_b*vm)4$(!q3J{rGD}ZAK_cm052r~&EX@!b#Z6g~1Yl7MT z;*a_k$MgU_HN-6@m=HT@pDAZ4loDa_oyLz2XIOSWmOj8lyB5lYMIh^4bp^wZsq(i^ zjn)U#d0QgJ>RoMS$gZJ64YX%^`+ER;j>0_T;yOM%<_(1+E;9{JIF{K2B`IY9y(-4ly1f;!-bk`XtJc+1v*>G{@-fZwC{}GF{y+oYz`-iT3^`B{OXL8vEH!C<; zdHzs(>NK4MjqG{aKbnPTH0Kpp5LFG6NmXBd+Z=p8#IoD(MqnR1Aol_}l;oGLi<3s^ zOx?hA--bya7;QKyeIQaLKo#qeM{8j&JbcOwlRgxw>}qKLhWR0Qn{NQ<6-#IF^gwOb zW6{kd`%8~t9y7)2>D2ZpnFZ|@`q+CxAP9brJ&s;aV{_K}5j9ria;D6~9)4Igcf1I< zR%T204F1!DF>tjOS8itOXWm$2<~CX>pSh~>lapfbXshVS(^WEg>>5WQYvNW$Rxu7~ zT5dLcS2;TmDIYP?4jo8Z15$*VIM`=np_eW?yZ*pamwcxnp0$2(*|-lsVAaa2UF_us zLe8L9=<(n1+w z=Ac#nN1kIV8A1T(c(3t9W#UzxvZcO!dAbw+@j->X45t4GR8ZV+w;@ua^FUe^K^L3cWX6E}lGY`0pri7_X_lYi}Ddq7ZHcrX)-P2W>%77*#*o_qb zs2El)!tTA%q?cBtN~W@0?Av_w#n_)nf&+;K5l~eDr4D%S^nldkS^Rqzb^x~^uZ7k+ zc*NU2Sl34&x>P&x(j+kRN5rnORf@ABA^4^R6y6vyp0fmmo5(? ze7;as4lbh@1A`Tqib4ROje{3Dgkst55%i4vJ(vCIUC8R zQt4w$XJF+hpDN1S=0kf8?J-!W0#8xx$)vNm`Z`j!ke{dtJE)BPZss5pJhrLZxq3>uouYd#|#?i^oq9!pBBkQbA5K{x=9 z$?cSE_Zc#O-jHsD!~XNrAB}>OTE5u>rJ0tq&y7qn@Q`bdlkk3guw}%nCO%WIAoOs2 z?k3&~#7Hr!8Y&k@6x`UvUlI2~3{#@6^#p50+Heaf={WB?$KqmAp*9ya@gB>`>MUX3 zU}Yq5Pky`L#s^kZcC4|TzfI=s*;w*PlgNFpi;M!}SHhym>A}Dr-mYPjFoo!!MmfsK zHySrF3HIDv*pH1T-7{mpdjk^FX5aA$U52m(u%k+1+#l{Gqzr&4Qd)tYc0s^4KKpTzO- z-k1V(+o7p%e2@!Cad|TT^wur|-g>qtZLiKr#nPvVG@*R z?jakHqz-1HDb;ekoJ9$qajAN8uX_W&ZW+!yz>X*sa1Ehl9qLC9*!m|^JOk{Tx5WeJ z5hTf_#KB?bo~FdX$^e^;$DxPOm?e1;zku96(d78Sz+UTV;xGOdD1V?D1}w_I@pjgD zR$$7G1S_51+@1cH^dmZIo6vYi-LE3r1;g!(*gjZ1eG^f364++50#i2yGLYml{N&>R zV<0OuRd~ezkPClw@^&@Espuy3t3=d<`e%+S2&!DyINmEuVJ|2-o)bbv5z*tdy;OFh zA@p;hl!EY{bK^?ENluR^87!p^m!&MVJ+?5Ss%Aj;X(R|<4X;J0{y9zz|ISQkhG zM`+JPisq}N7W+%}g_RT$m>YSdWb=snl5*N7m}>!N5ASbELX3(uvFJy6H%Ntt3nI)= zIkm7yTKL>r&kvjG|fd6c37$~%D3;tjH+R^|~nP#48FUdPiE zEQj0gSPm|8I-b-h|7S(;$2;euE>uhBZHY$Pw_>mn|M;SW80X>{ds)N9Wza2O8D9f@ zArAwh3K*YkLAj2)oW@f(3^jm0WR#s|8XIg~fP2c(g#rRN>}F)Jppw0;Hy6(w-+}m}wm8C)!?$@#e~tjtoQP&Mi-O^S?F9A}O{_vrR?J2T zb}~q}*q^f}3?v%k^ITzkp(@=XcEDXl2|l_8jeXk9IIiYkEpnhF)y!>d<6-*8@jLMN zr|kmphx4n5;rm5LX`EV-$|tQN<3*9Lpc%R1hLa_P@${?$m-;}Bf?TRe*a0_j0ffS6 zV3$Tg+DSMaS`lEvTM_s=eY&sM!wzV%(hAHP449wz^P>~zrxQgU2kfbtrwdrdQ#C4f zm%;y>+kemW1)-2?5DfH0)QCaZA*ee&73;BZMrLCeMB((pLcs@C}syGzngWaRm=C-0tC*|KnWFDDFpA4QfO`OL^s9g8iP_pK`1XAkw= z4lA!Z4aRWM9+3CO*y!zN_VeH$NZ+~Pe@s;nYJU8TVI62Er*$1`+dn`narPo{&eKQ5 z)7w)ez@ekk_1M8U34Z<-dtX&eUA|*_JRr{>Dho6qQzb+JJ;}Y|wf2(WOaY>K1YdDM zZD4T4tTbv?y$g-$E4ux%qB|13lu&lS#wtuSGX8}3ia8?S72W>HoSBVkI%PCc#Z9rZ z*Ls%KR&3PljIdEHSE}gtcY9J34+NQGcw+2NqmdLS9Jd7u7P9V^oB;fB^s^=7PgO|7tW=?Q>hm&1kC<%3F!^Yey^X)B|?mCcHm-I`xnkjA*SCTbN*Yf z&_lrdQWi8s)hwVv&U;%lMV!U2f5x6xD*5gO^o~#7OJS|twVx1 znC4P{Ag!#sevVuNEA1jlt{z_tH!vZE(zQ3l^MbL@?Yvi9ns zGRy;`N2~A+BR}m1ZSHS!xQ->L>nNG32UQ}EjqoG}qA$9@%vZ55QH6<#o#B8$zIvsd zKce)xj2RbHPA4}{#ech_v|brFKl4pEmrd#!xR!vQ2a?KXJ$1)Z;kb58tJ)O$R0XCb z(RF@wV-H}Jx)NQCeG`<~n+h*&PilxI>tc=Vr3@Ekn3xqL=ueRwH45Tap{W%C8LB5) zzb0MKy()rhh%^7E%Ky(PncaRxg>m?gEdkqi0leP^@TESVrGxt687fj{z-B+7l2|Gr z4eGAt<4?ibDdnqY4uSc6a9Y|^vbdX$X!s>A0Qh$u30zJQfljMuPO5b95raWLoWRS7 zt76AQf6%L{Ru}IWhmq`j*^rquyI$`eu9=i*>e%6D!+Lk$#+Z`)`UAE7B#c+Tly$$~ zfRbI09skwz_K+^0Grz`^;Y$z@Dctu!lZ`6j6C%WFw(h`jo!yug z0PY5L`#Y4q_p$7K1+oZRv`0&P7IK=&(GIP^tSX>&ptB?!<~!aBOz9C7FoBzNtrFsyj=%zC4jW~j6OPn}*6Ut_I zD_DX^(v{`Yu(=ubn@oAk6dXuq6AJKPk(Sdb~%Qo02cxSgQ)1Im&@! z9wqbS!c&DV`T}el`)2t}rw*$oFL`3X;tPCmJOk{eI9;wUd9NGoE(e8YO$K8qf&Ok( zi-U&vZLodnx~!>1J0zAoTm2hz?EB5GY%e5cl(P)ewizl1sYrwmS$9OxGe<2`(RVr; zFg1Hw$t3JQW9xqySQ$^^tl_SH%s6Kh-hFvAe1wGuZ@~K@AALp-}&< zZ%Lr&9<#@jt|Ko4i0e`HwhkAR(>2os*ez!Lj^*g=L!{zMhYPA7>NOtKak(;to(e@T zJ#SYKT(Q<>J&`^*lM-JM>R+pOcUaP-rB%n}Fr~HZT}vPyD>uD=dd)0`c&{{Z&Ft3I znaJJNhkh_OlY7Rmxq@fI^yeLjkZ2I?fstrf2aKE1w~&&&bi(p&OTP9+7cbu&Qmw9b zt!k>;TEW@sDNigrjlCqu`E{^Y#2TbdmT7jt+0zxI&jS6UCt&Cy z^0aEh#I9wz{JEqKdW)X|==cq(eD%~Jr$7k>!AZl#*Y^bX8pi20ay_>FaQ7pBL3Jar ztX^5|sguf#?yad%I_DtmccU+ddACE!tCEuPDRCqp`)hioA+}3g2Al5tS=dD1l+ugV z$u4KFNr_!N9y=^4-a8F&+&jHy33~T$$(~qCF54QkmmmL^g9R=|z|c%y%z~Vb+M6Ml z0JQ9NTtwm>B3@=OZKIgg#t}Q(al6N&GLU6{uzrf%OeuV#Xo5Wn%nPVFb=WFwQ>dHW zF#@ZBl>y~I$zw`ZPnHr_8sr^yG3S4`D00?_Fa1A~z+W;$m0bzHQ~hm%#;*8t!bkRa zc8x1xjI*Q#w+$DQ%b%9MGyK&lsv`FktbA=*wGq60%ZW&F2Kmq_f~wu`TgB`6gZgG;z~5kYtuE`BiUh_UOk0V{s* z%{tGP6sB2nuGAN%5!5)TfqpG@3vjeMSn408d9{mbxBeU}cVr?9Qz6XWP6PJvvCMfy z3vAw871b`J!hn$2PJZX_27sy?qze%JgM1)mY6tRDa_+YVil;snmCLfCPn81&IQ_Ie zJhc*23aooc9VrJ8OUF=zq;~yWq7kh!(%3h63DMZMP=Wgx=yf3wqdT zdpnSk39YgQn`@wp65?1K#Aa1An-W+ik~$WQzT^IlOKgg$?tIWDcF3Xa(kWe_(A*fH zAp(}~>oh>E0`?^AKoXkAMx$jiY;>o%hYc{Y0wdS-8bWMWTHI3#!nb5Jd{a7q9iEpe zqaKgZc8??Zrqs6yjD$^{{u#X8+K-VtVRhC$9_`LO8+78FZhGvoz1WS39EyNC&^h6w z9JnN~^#0%z6cE9@u6Ci-&@o`=xKWsm&BvBPs-lv5hP-bXGa9Xs5E#hK`@vTM}HBT^B-#&tDi&95@(#>f#?8xDGV3yH(9(HD%}6e zcc7Rn?ykJa*S%21>^%iTe>wc^?yysz8WO7+kDlg!%{KD8mR9`mye5ciZh>=RtV?<~ z*`o%9cstltOJg48FuAkI@?iRFL(e>$I!Y{F;Ap|3)EB=-2TBuPHtBWlKoWU=U9keE z!$+`&LwjcQmpJ&@>u4Vs^z$-uICiJi@Rw+zhTTR2y<$5$A9sz@H&6GHsCMl)0A2Dl zHzm7pd!IFVwjMfcwE=(Yn-v+WYxs_J)!%JZvm87N1cbhS;B5Nnsz!ke)ge@>Aa|f8 z2Rg-B+Swyg+S#RO-VKgo(SKk6{L7I4i<8RuOMHYbR5?|)+OD1-)P8aRkyj;k{K5`F z^%%)hQQ=V_{fAd?!DlCF>xTrvT=dbikHzDLoxUZ8qUrmo7suKUlNwjs@1Qy{_jvr; z_!~m(Y~L-cOKPuvizBt-L-k6A56u{fg~$qwwQ+=4E**pWE$qG>8J_3dMdfJws-&@R zZqc(LfH6Mm3ClIop2}dhox+w>OHWvAH@Ji3|3xVFcakr5)`L#%-DY9O2ym83{b;0( zl{dSb-cDx5;)W^4jwjhAZ$;o7+br$T{|S=*GG_mDQt1+3<0|KvZ8u*d>l1+7F5FtH z+BjZSbtD9JjS&YT?n1YBX=b8|>U_93{CEeqXNXhi&(AzVY?)mb$2PqIwAl04+vX-U zhTOcPQn$c4w%{c&GQ?4E`saiV0bl|djbX`6$b)-l&z;~<_89VXxCXApvV)D3U(R?I zbi#6_r0HOW<;QLA7=R$qBDz+q2UTN*JI>DQf&Qmzn&%12kIC;skke0ua@4jU6~Rg^%iKX{~B`_Huhz z?~AAB(~d}@WteyZ7vS`5#!}lR8y~Ylt|v?>t{2Bz{*H=vfsqaVc=XCH30?X9cw7p% z!4KGdRAA)#)bZY7)l&C(zZQSC1=te?^o+!`bDUsdWpJvcZ|JOh-Po6SfWtHPSos<_ zwmU0w_5};#YCYQG4hX*US70$_k_fJo%87eX-wR3_ZY!*;NVz9+_7b1b|BP(@goZx~ zNhdgmBj*@W$VmxoAz4`Euwh%|;&j&u+odp?7_7Q;?jCgnD>vmnv$+~`HiUKVy)6rS z!_|F;h|^1+9g{r5-dq_SczkRsP}^ z47%XP_Q*8}0XFW_J`@~pkBfcDMjXwdZB;_jAfZFGq`r{&Qsy04P=7fo=FS}xs=ota z6V8e~Ru0&TSZA*bb_V%N00FXbIL2VJw!?V9dX$*%9)+D83iKo1tA+aq#)`Gx<3-M1 z<+~4b*{e* z!KL3*7m!q71&>$nPgc`T+aqE@vl{30fKMrvgYjEq8a!YP7jFhLhIMCD4 z_Msf-PC&}2d&;PsIl%5N;L_1H2yRFNH^hlt*nm_5h6Fw_=ggsMRATD6W&fL^?qA3A zZ(>||I@)0Yg1^RL&0R)4YfI%U)=lR=^kRs!X!0uG@%Cs3rt>wjjfe>1qhdf4%<--cYa#92h*mfWq=E{Q>qkg}B) pZb@LXbnfGq_`qEk|Ed`NA6n7n{{uxDXtn?V literal 0 HcmV?d00001 diff --git a/styles/theme.ts b/styles/theme.ts index 4e31b6065..97f4b9df2 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -3,9 +3,9 @@ import { extendTheme } from '@chakra-ui/react'; export const roadmapTheme = extendTheme({ colors: { brand: { - bg: '#222222', - hero: '#161616', - footer: '#1c1c1c' + bg: '#06020d', + hero: '#06020d', + footer: '#0d041e' } } }); From a9b89edfc2eaf10806d0468a5c7e42f94f57dd8a Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 13:30:55 +0100 Subject: [PATCH 04/10] Make edit page less attention grabbing --- components/roadmap/edit-content-page-link.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/roadmap/edit-content-page-link.tsx b/components/roadmap/edit-content-page-link.tsx index a744d40de..ebdf30343 100644 --- a/components/roadmap/edit-content-page-link.tsx +++ b/components/roadmap/edit-content-page-link.tsx @@ -29,8 +29,8 @@ export function EditContentPageLink(props: EditContentPageLinkProps) { href={href} target="_blank" isFullWidth - colorScheme={'purple'} - _hover={{ textDecoration: 'none' }} + colorScheme={'gray'} + _hover={{ textDecoration: 'none', bg: 'gray.200' }} > Edit this Page From 2b6432ebf6657fc6956505aa34fed0dc284a5f1d Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 16:39:09 +0100 Subject: [PATCH 05/10] Marking progress on roadmap --- .../md-renderer/mdx-components/heading.tsx | 12 ++-- components/roadmap/content-drawer.tsx | 67 +++++++++++++++++-- pages/[roadmap]/interactive.tsx | 17 +++-- pages/_app.tsx | 5 ++ 4 files changed, 82 insertions(+), 19 deletions(-) diff --git a/components/md-renderer/mdx-components/heading.tsx b/components/md-renderer/mdx-components/heading.tsx index 1bda10f03..ea94a5e40 100644 --- a/components/md-renderer/mdx-components/heading.tsx +++ b/components/md-renderer/mdx-components/heading.tsx @@ -70,12 +70,12 @@ const H6 = styled(H1).attrs({ as: 'h6' })` `; const Headings = { - h1: linkify(H1), - h2: linkify(H2), - h3: linkify(H3), - h4: linkify(H4), - h5: linkify(H5), - h6: linkify(H6) + h1: H1, + h2: H2, + h3: H3, + h4: H4, + h5: H5, + h6: H6 }; export default Headings; diff --git a/components/roadmap/content-drawer.tsx b/components/roadmap/content-drawer.tsx index 9d179809d..42b5b6c65 100644 --- a/components/roadmap/content-drawer.tsx +++ b/components/roadmap/content-drawer.tsx @@ -1,7 +1,8 @@ -import { Box, CloseButton } from '@chakra-ui/react'; +import { Box, Button, Flex, Text } from '@chakra-ui/react'; import { RemoveScroll } from 'react-remove-scroll'; import { RoadmapType } from '../../lib/roadmap'; import RoadmapGroup from '../../pages/[roadmap]/[group]'; +import { CheckIcon, CloseIcon, RepeatIcon } from '@chakra-ui/icons'; type ContentDrawerProps = { roadmap: RoadmapType; @@ -15,6 +16,8 @@ export function ContentDrawer(props: ContentDrawerProps) { return null; } + const isDone = localStorage.getItem(groupId) === 'done'; + return ( - + > + {!isDone && ( + + )} + {isDone && ( + + )} + + diff --git a/pages/[roadmap]/interactive.tsx b/pages/[roadmap]/interactive.tsx index 140c38b0c..c54a91b1e 100644 --- a/pages/[roadmap]/interactive.tsx +++ b/pages/[roadmap]/interactive.tsx @@ -12,6 +12,7 @@ import { RoadmapPageHeader } from '../../components/roadmap/roadmap-page-header' import { ContentDrawer } from '../../components/roadmap/content-drawer'; import { RoadmapError } from '../../components/roadmap/roadmap-error'; import { RoadmapLoader } from '../../components/roadmap/roadmap-loader'; +import { removeSortingInfo } from '../../lib/renderer/utils'; type RoadmapProps = { roadmap: RoadmapType; @@ -19,10 +20,6 @@ type RoadmapProps = { export function InteractiveRoadmapRenderer(props: RoadmapProps) { const { roadmap } = props; - if (!roadmap.jsonUrl) { - return null; - } - const { loading: isLoading, error: hasErrorLoading, get } = useFetch(); const roadmapRef = useRef(null); @@ -33,6 +30,10 @@ export function InteractiveRoadmapRenderer(props: RoadmapProps) { const [hasErrorRendering, setHasErrorRendering] = useState(false); useEffect(() => { + if (!roadmap.jsonUrl) { + return; + } + get(roadmap.jsonUrl) .then((roadmapJson) => { setRoadmapJson(roadmapJson); @@ -65,7 +66,7 @@ export function InteractiveRoadmapRenderer(props: RoadmapProps) { // e.g. 100-internet:how-does-the-internet-work // will be translated to `internet:how-does-the-internet-work` - setGroupId(groupId.replace(/^\d+-/, '')); + setGroupId(removeSortingInfo(groupId)); } window.addEventListener('keydown', keydownListener); @@ -104,8 +105,12 @@ export function InteractiveRoadmapRenderer(props: RoadmapProps) { }); }, [roadmapJson]); + if (!roadmap.jsonUrl) { + return null; + } + if (hasErrorLoading || hasErrorRendering) { - return + return ; } return ( diff --git a/pages/_app.tsx b/pages/_app.tsx index fcd7ac9c8..245a60b87 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -43,6 +43,11 @@ const GlobalStyles = css` &:hover > [fill="rgb(153,153,153)"] { fill: #646464; } &:hover > [fill="rgb(255,255,255)"] { fill: #d7d7d7; } } + + svg .done { + & rect { fill: #cbcbcb; } + & text { text-decoration: line-through; } + } `; From cd1b8ca94bc249b2220414dbf7ad7e02b66da541 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 18:05:01 +0100 Subject: [PATCH 06/10] Change finished node marking --- pages/_app.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/_app.tsx b/pages/_app.tsx index 245a60b87..8bfe5847c 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -45,7 +45,7 @@ const GlobalStyles = css` } svg .done { - & rect { fill: #cbcbcb; } + & rect { fill: #cbcbcb !important; } & text { text-decoration: line-through; } } `; From 5561605285eca359b63161d2a7c93e5f98424ac9 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 18:09:32 +0100 Subject: [PATCH 07/10] Change finished node marking --- components/roadmap/content-drawer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/roadmap/content-drawer.tsx b/components/roadmap/content-drawer.tsx index 42b5b6c65..7aa276264 100644 --- a/components/roadmap/content-drawer.tsx +++ b/components/roadmap/content-drawer.tsx @@ -76,7 +76,7 @@ export function ContentDrawer(props: ContentDrawerProps) { ?.classList?.remove('done'); onClose(); }} - colorScheme="purple" + colorScheme="red" leftIcon={} size="xs" iconSpacing={0} From 5780a34f73727239b375b3e3bb18d7593e633f94 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 18:17:02 +0100 Subject: [PATCH 08/10] Bump roadmap in GitHub ranking --- components/opensource-banner.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/opensource-banner.tsx b/components/opensource-banner.tsx index 8327605cb..61cbdb054 100644 --- a/components/opensource-banner.tsx +++ b/components/opensource-banner.tsx @@ -12,7 +12,7 @@ export function OpensourceBanner() { target='_blank' borderBottomWidth={1} fontWeight={600} - >7th most starred project on GitHub and is visited by hundreds of thousands of + >6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.