From 8d6f5cf4de4bed724578ab471266e670727dfd0b Mon Sep 17 00:00:00 2001 From: Pierre Jarriges <pierre.jarriges@tutanota.com> Date: Tue, 25 May 2021 17:47:01 +0200 Subject: [PATCH] feat: new education page --- public/assets/images/learning_theme_2d.png | Bin 5214 -> 5466 bytes .../assets/images/learning_theme_coding.png | Bin 3967 -> 2351 bytes public/assets/images/learning_theme_math.png | Bin 6455 -> 8226 bytes public/assets/images/learning_theme_pc.png | Bin 3987 -> 4128 bytes public/education/education.js | 308 +++++++++---- .../gamedev.js} | 349 ++------------ .../{game-studio-club => gamedev}/index.html | 4 +- public/games/games.js | 34 +- public/main.js | 34 +- .../software-development.js | 34 +- .../subpages/gamedev/gamedev-page.css | 3 + public/style/pages/games/games.css | 6 +- public/style/style.css | 131 +++++- src/pages/education/education.js | 274 ++++++++--- src/pages/education/education.scss | 425 ++++++------------ .../subpages/game-studio-club/index.js | 5 - .../gamedev-page.js} | 10 +- .../gamedev-page.scss} | 0 src/pages/education/subpages/gamedev/index.js | 5 + .../{game-studio-club => gamedev}/meta.json | 0 src/pages/games/games.scss | 6 +- src/style.scss | 6 + src/template/components/navbar.js | 29 +- src/template/template.js | 5 +- 24 files changed, 789 insertions(+), 879 deletions(-) rename public/education/{game-studio-club/game-studio-club.js => gamedev/gamedev.js} (50%) rename public/education/{game-studio-club => gamedev}/index.html (96%) create mode 100644 public/style/pages/education/subpages/gamedev/gamedev-page.css delete mode 100644 src/pages/education/subpages/game-studio-club/index.js rename src/pages/education/subpages/{game-studio-club/game-studio-club.js => gamedev/gamedev-page.js} (97%) rename src/pages/education/subpages/{game-studio-club/game-studio-club.scss => gamedev/gamedev-page.scss} (100%) create mode 100644 src/pages/education/subpages/gamedev/index.js rename src/pages/education/subpages/{game-studio-club => gamedev}/meta.json (100%) diff --git a/public/assets/images/learning_theme_2d.png b/public/assets/images/learning_theme_2d.png index 2877b0f54c612958690a5f7db96f1159755ea892..3419306cbd8556f14322d48520f1a6db31e2f1a0 100755 GIT binary patch literal 5466 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 Qw%7m$Ag~Tb>*=fi0md-LH~;_u literal 5214 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 diff --git a/public/assets/images/learning_theme_coding.png b/public/assets/images/learning_theme_coding.png index b2e86cb98c2b7553a2e021483a5097249aa92010..82efabc56b127ef43be662d012064b1c68786afb 100755 GIT binary patch delta 2305 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 b0ABDv8Cfthx^mQw00000NkvXXu0mjf?lX2Y delta 3934 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 diff --git a/public/assets/images/learning_theme_math.png b/public/assets/images/learning_theme_math.png index 4db8753f5879146b36d62c2e1d51098a255aa657..f57bbfcc7e79ac4fd7a756bbdd6fa5ee2f5882be 100755 GIT binary patch literal 8226 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 TVdTqJF_M~+mSUZ}Wz_!xyUj1! literal 6455 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 diff --git a/public/assets/images/learning_theme_pc.png b/public/assets/images/learning_theme_pc.png index 4a9f92981c7b457485736d04590719a5d8546c63..f0f7c7d4db71de8b67fcf0d989e2c8dc42252321 100755 GIT binary patch literal 4128 zcmcInc{CeZ(2v$uTBSuwt9EVCXw}wMcnD&rq)NqBRBUN%(GXj!kJ>5TtL+Jj#PW&; zkx*OhG(tVQT4Rg7cKP)C|NHZsbLP&R-<^Bz@661(b8d{ess1G{VJ-jwaLE7)d2(hC z&oqvc{cMG0RR073Sl%LZbj%HObi`iyBHa*Pt^mO8WNb1R+VaPZHU~>1m@H4AIjX}v zTRvJ4H7LuUr(G;y8*r~~hx?<F)E!Vlq-Rr8VjKQVY*jf=d8F7r%gn+;0bN4+RN-!Q z^yYM}=sE+;m}JqW^e7QL&wckFGnSrlmZ_Izci{WVi{aIQxTW8}Wnd7LP!YVpj{(lx zOfH_@z<TsKhnq>|xV}SNMe>><N7)y#Gxy}WWH%pf)*1k%Lgz>WbE<u88EiR1DzuW< zGxt6}qdOM9v7rt|zi8!y(e5~ODA~-D+ic{lZB}xQqw=yEDtiJxN<tm^jFQB(wFIO; zI7u23Oy5WGueF1ZTgn|IGPKLDTze>J9>G4c`-a)H?o)O==<?tWKgT(RgzfuWtmp{6 zUQ|P(ND=DXer|*uWvyZ`;%~D7Pw%_FtUJi_z+rEbk@FyQc+)K%6<6ym8voYo>65sI zJKPt?&rv*kCvA_^uz-O<*cQ8*8tXT%4;02GgV8s63Z^ZubChiRQciVvH_yt#?rfwF z0l)xofRnWoaOn)W@Cs_<2LOO1e=AE+p=RJ2$l-5bqRTPQCUikX)ndGs<qQ(?*L~)% zgY@=x_3;Pj__{jzySj*>5&rIC`UWQE))73wvo_c_fM{6-jjm;zMe~n{w1*X@zR55V zz0xFqiT1CYP_k5pI|oJH!%@NSuVPLa`8w7(FTs~XI-Ku~o}~vMMlMQZb|(caI@kOC z*BzO#+Vr<emK}d9%T@P0EiLfH;7w<eFFh38h}pIuB9!B;*I{9r->v$M(Pqpe^3?jt zWUj=yGot_hqSobwmdsl7AxEIk0gkrVj-OT2iKjroACmt>x!)Y!cK}$WUAQcqloWmL zV6O~wi7EoniBxxy*Cy3+@^rF5+f}S{pT+fzZGL7k=c5)5W~&0gAzpxIyl_)O?ClSq z+b;&)Wzl^I;G*Zh<dZXUz!2;Ch|6Cb&rJ35mn0D#i9;=deQ<o@<?t*>Vlv#SMQ3RC zRp;dfzn~!I{CavMf91OSkY@$^@cHzJx6q#~9X31F$#7t2-3FqN1Hhk2;wZ!1RZ4?H z`_?n0)C)MiCP({R8KM2^gf;760J1WV&LE1$VW5O!iND#|l}xRD-#S#VKuZ!E>KOW< zxRj1}*SL1dwf%lMDU=Lhj<tsg*)wUm%;nzTvC}PX4~N{#vUe~8<G*l=4LTTzf3(J< ztL%~b_{B#t^Yok60itZ;)$(MII1RGdH>T=78>}I(Hsq)LYEMU9qQ>^&!L9coxBR~$ z2$gC<!7t5m`mfS<&=vB0eAGiO>R?2fzR=`tD_zV~{y|mD_RjVm`um$Y>y~`S;T1EZ z#03p!rD1ScH8DLI6jsCEQF3%>$doAeTRK>`D(GbW<8)Qs@4m!CK3yqb{MWPd^IZ&^ zQ6GM)iRC8Qa@QjNShQGlo*C*NGshl&TQ<b*ZH1x#p0xMW>jj)*WV<f*xy9sOH8_oK zaOKtsrNduCI6kAg<|kDHlnqQ&<vBqES%Jx8R=(Lgu0^|(MU3)oI^L!W9Poz-HDF2o z$!oOq)b1heXIo))XsPbY`dUHR1U#}_T>}A;AV)Ls?UAbtXn9H|(?0FT*xa|ZA#*!f zIa2RhZmN_uY)rDflc!7*;bkv1GXG)n)(Ez^wkXX`8a=S~J_%et6FU3LBWQIa^ig0? zV`{FB4=z>%Bg9q*F1iD~I#R^L+ncrey{EJ9UNb?Mb=oa=+-kp4qCN>*`UHJ_%(Uci zW-Hl2t#Z{4Gj+654jcD|g1B>Gfps%Jiq${tN&4+P>u6cL8ULMtk7M(&WHaNj!hCuK z_ehb<<E|ZeM}i?4-dXi@z#BG`D2iZL$08Lbu7BD9$wzi7<Jvof4co`1flKu$EgxxF z6^q7o(982;4*PL6vb>W;=63!|NBIQ)P;5EhQ@x#Qi1SN-1xs1)4$VUq9NbKQwFy>s zzgWSCKEiK|{F_D`yApCu>FMCo(MG-MNM1$1vNkQxu}BvvfVO;nK(y5D=*zEC#8p6O zdu>tQ(zUb9D(h`g3Uc24SM5=Yxs99`)z9;%)MPNIpG8$AM`jOG+0(>>^RRy^nh~TX zdkPF6F~eIq6#Xhw)!y{AHIU><+-+*&4-@I-yA`v%XD;UGFyuGuoG0GRGtHk?EmO1q zyEu3-I3eJV4TKdq*ttV&C)%ReJMR+5p|v^9^;W1wZmWTv-tL@vw@2+0)u2}CMO{av zZtj|oml^)+Wz#4!#eJkL$_QjVad5pqk^C8IJHxd@PtST9Q7x%%7nsRL(uP>C2^AR* zRjuC5(0`jD&Fq~w{i=XJ()u-Xv;flGg=)edyvtF+ZHGI@YWF3Uk3D^lG!{=#F^eF7 zF&j)yz@$8_XTgr<D5q#<s;yf&nKIZv`uH{%IgEWu!Ux;&Tc0$P9&93nqiZ8?;z$}F z{W=MXfqm!o?C|Ar3~6XiJw0TsqyT!?=Rqw6h^v*aC+K*R0U65pjPy!5!K#f>vr$;; zWGqO3WrXpK=b>$Xplalqmrzi=?jgr$!DUp+F^G%Rzz9SeJVe22MXnVUgjF2X<qr@; z9?^|wtntNWkjZrWRF#jdc0mDC<o5z-II(D@B3OXR(c+AZTLC^(1|^<iLZ;L`M;VsH zqQ_k+-PDQBK?<w_yN+Qgqf1=;QJT5eOE7<HWSb+L(M%9DdniIJbo%@`!LGRZ_s)%8 z*O7Vmz9Pz&m{aBj%epr7U+mknu^MctW|b>Xf}WoQWXLk?wq$p@X*vHo^&_}26#Hwe zT45I5q8y$y^d1u=Sf>W0O2=@+-Io0h8HU0Rfo*W<*Y+j#W#YurquMEQ)sGC@QpXpb zv@wOJMlp1o{=v%ZZ`V?3;P~gl3i>-J!wEM1%WK!|7b|1+YEPVpD1-1*##Zqpei$=* zdq0Q9AMN_DLFLNf>g$5tpI9z$EMji{Q{<vGNLp_PrR60p-BOcII(sb3PPRc`5NS8z z-tUO%c;T47!`Y^3jf%GQ_Ag<eqIDU+?9@3`Z%!}Q3y<n%eXgp8+6NrKQexdFnPV@L zIj26sBs@rGnWe$rG${>xJCjzt&@XVX3JUS$6OVAN=-I$o?~Yr}hx!PYbsrCWg!&BV zD|pC*83&y<dJE8#pXzMGsmNP<?RCc?!$POqRp_ZpXzY>q&nDmJT%G6*@h?rbTNfl` z?_$xe>W%M%n>8DK5w~R<3zqV^H(~Kj#qk||4}e#%=UH4YDZPXo4`ui|nI4Crf8o;l zY2DRhg?ZoxW=7z0e$%eSPwWm(j)7bDmX$?b(=!;`#{Vda*&xq=-u>_iQ9}+E4(w9v zrhQ#*Eh7cijF%ZH<8#wN4a*-)@$u&ahG{AnT}$JEp3R~?e_v2wf)!ArJro>c+<y+e zyVpq7m?BHon+C!m!v+m|sMMPbqNVY!Tfdrh`!;OMM5xT@X_ky^$^Gx}n)sw1rR;tk zuTVZ_7%ERImODOrj&$|@D0FtrXz%vLme!r@VolUH8GCP@rNf{GLucAatFiF;398DG zsYn51TnRgQ9Ik;3O{(9h{IAB;m{xX`maL~|eD}oVz(mfsd%ec+*R1}>rryV%&s`ST z)Wqw8N-2pV1k&Soma_*Tc3{&`I3|~9G2Q;BLRTtwZB+3tNa@{`Qw$?>u!Mw<;7u&* zmTCo2*0BNKZO@lKLgvcGYhv6**|h#KS&Et?#uDvg7+XQ1<E<PTb$UQ?J#W_58_SA( z{qsL!5SVqsn-*L);=^!EnKo2Ic|_bcl(xKLIi&A0f}FIm>;joCh=u*&1<PR32=&Gu zy>Os!*I%<B9BKSs4F92MBmBpts<#r+BK13LeD*y-Js#Qk3}#r~&Fj_G(5us#eZ9Yb zl(YC(u4?k6fY(~m^KUB&nUdm~xl)~N=I%nd;zaNkXC04uAjF}b=mm#-E`RPdne<W< zE<jaKUaV1aBk7f$I0tm|j-?NI8tu8S&$>YZuWwJ(Xo)uB8VUU-H|={;L|P3r{3<P% zS7`Ac-fFHS`)I}T+8rOi+LJw`e>MJ9Y1){ncaFwC<bU|D+JURk^ZQHoi-QqbQkPT4 z95t>dynLbRv!~fD@v=k9KQRjEz?*SM$5(w{?sLvms`w)y_~wM>XR83~0JD8RFvi0H zH!WlNqRmuGmorg=RJ5^{-!%%;+o8fz2slT<5y>TAmK4I_A|x|Yds(sA36f~@{mQKx z9`Smz$$!Q107ykR9n@45*flWvaX4Eb6y$$^#7DY6sZO^<*Qpg<g@=42JB8DECmwdf zPAsN$GoqMFCH6D5b*2j)GW_>zl0{$ek5~k7)EPE3T#27<Fv$6&SGlOf<}BG!ed1?h zPa6!gGLPH7m*UXyinudjUlSebZMo6=d9BL6p*<Bz@eX<3z*k_nQS0uV<>W%vgzPE7 z`bi=vzS0V%KP`^O^-ml6*AyE6xy3xWd~)Q_t+%v!)|fG~i!yu^_asuVSS=w+)l^`> zpQ@@FPp8-`#2MAip3UsWSmP-^DmZ!?MGiR~JQ_aC&(`cbQSMAcTxp|yS|hppNIYyb zc_N<hz+*@R7YtHkYBz?Q`tMhn4bKm!Eu3z>C=kesewR`tT@se_Y}kC2>v7lYU*SKM zA+K)XUjG<Y#!sKI2dncib6zc2o&Fs!f%C|Vl}*dI{zjfp1nX~hIIWPYDWa!{;&XWA zP|?lzXzgUKvB-qRroHuR_u#9QuXr}u<iiD(qlIXC^mO4~dli|e<VzUXv5*MLv4AIR zRBoUiEQlRm+ijv9n+9Z7OM%@+nGZc2G-9WHKj!GZ%3ehr4f$$;d~SxMw}E&k#G45G zlvJsjq082~n`BniG<d){4jbPCV-PO|$9H3nBO^<HTY?psyGhkKa_*1yxk62Sf{x~C zDs#JFQ_n(V?a#lQ1F0D1j!|hJe9cuJ`yV3VHI#=c9#qJtVC&1**|w|<3ws>jgCdNG zJz^Do-qihmM*XAQ9#S<4d?B=6JuoYR&U+*B<^C#6w?;{u09lwSArsRg{}(*wq2p9C ztah=VQ6!gWM&0!6JEO?V4xi^P(K%P!L-&F?87ceH+&P2$^->S{o>s7M<_HZJ=t25B q6v6^{EhtjP=#bwZ!2eUiMUO>g-m<nxujt484l>X+g_LVMM*a`A8Toer literal 3987 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 diff --git a/public/education/education.js b/public/education/education.js index 7caba15..57b79f1 100644 --- a/public/education/education.js +++ b/public/education/education.js @@ -123,50 +123,49 @@ module.exports = WebPage; const { images_url } = require("../../../constants"); const WebPage = require("../../lib/web-page"); -// const GameStudioClub = require("./components/game-studio-club"); -// const Popularization = require("./components/popularization"); const EDU_THEMES = [ - { - title: "Game Studio Club", - description: "Conception, graphisme et animation, programmation, je vous accompagne dans la découverte des techniques pour créer un jeu vidéo de A à Z", - image: "learning_theme_conception.png", - pageUrl: "game-studio-club", - }, + // { + // title: "Création de jeux vidéo", + // description: "Conception, graphisme et animation, programmation, je vous accompagne dans la découverte des techniques pour créer un jeu vidéo de A à Z", + // image: "learning_theme_conception.png", + // pageUrl: "gamedev", + // }, { title: "Programmation", - description: "Vous avez une idée de projet à réaliser en programmation ou vous êtes simplement curieux ? Apprenez à programmer avec différent langages, pour du web du logiciel ou du jeu vidéo.", + description: `<b>Franchissez le mur du code !</b><br /> + Apprenez à programmer avec différents langages (Python, Javascript, C ...), pour du web, du logiciel, du jeu vidéo ou autre.`, image: "learning_theme_coding.png", - pageUrl: "coding", + // pageUrl: "coding", }, { title: "Dessin numérique et animation 2D", - description: "Maîtriser des logiciels libres de création graphique 2D et d'animation.", + description: `Apprenez à utiliser des logiciels libres de création graphique 2D et d'animation.<br /> + Créez des personnages et des décors, menez un projet de dessin animé, d'illustration ou de jeu vidéo`, image: "learning_theme_2d.png", - pageUrl: "2d", + // pageUrl: "2d", }, { title: "Maths et physiques", - description: "Fâché avec les maths ? Aborder les notions fondamentales de façon décontractée pour le plaisir de comprendre.", + description: "Abordez les notions fondamentales de façon décontractée pour le plaisir de comprendre.", image: "learning_theme_math.png", - pageUrl: "math", - }, - { - title: "Musique et sons électroniques", - description: "Maîtriser des logiciels libres de composition musicales, de synthèse sonore et de prise de son.", - image: "learning_theme_sound.png", - pageUrl: "sound", + // pageUrl: "math", }, + // { + // title: "Musique et sons électroniques", + // description: "Découvrez des logiciels libres de composition musicales, de synthèse sonore et de prise de son.", + // image: "learning_theme_sound.png", + // pageUrl: "sound", + // }, { title: "Aide informatique générale", - description: "Perdu avec votre ordinateur, les logicels, internet ? Je vous aide pas à pas à comprendre les fondamentaux et à utiliser sereinement la technologie.", + description: "Perdu avec votre ordinateur ou votre smartphone, les logiciels, internet ? Je vous aide pas à pas à comprendre les fondamentaux et à utiliser sereinement la technologie.", image: "learning_theme_pc.png", - pageUrl: "popularization" + // pageUrl: "popularization" } ]; class EducationPage extends WebPage { - render() { return { tag: "div", @@ -195,7 +194,8 @@ class EducationPage extends WebPage { { tag: "h1", contents: "Pédagogie" }, { tag: "p", - contents: `Animations autour de la création de jeux vidéos, vulgarisation numérique.`, + contents: `Animation d'ateliers informatiques accessibles à tous. + Programmation, graphisme 2D, jeux vidéo, vulgarisation, accompagnement de projet, etc.`, }, ], }, @@ -206,66 +206,200 @@ class EducationPage extends WebPage { class: "title-banner", }, { - tag: "div", - class: "page-contents-center", + tag: "section", + class: "bg-dark", contents: [ { - tag: "p", - class: "edu-pitch", - contents: `La pédagogie est un des objectifs majeurs de Kuadrado Software. <br /> - L'informatique est aujourd'hui un élément incontournable de notre société et j'ai la conviction - qu'il est fondamental de pouvoir accéder de façon simple à une forme d'apprentissage et de partage de connaissances.<br /> - Je propose donc des séances d'enseignement autour des sujets que je suis en position de transmettre en tant que développeur et artiste.` + tag: "div", + class: "page-contents-center", + contents: [ + { + tag: "ul", + class: "edu-themes", + contents: EDU_THEMES.map(theme => { + return { + tag: "li", + class: "edu-theme", + contents: [ + { tag: "img", width: 250, height: 140, class: "pixelated", src: `${images_url}${theme.image}` }, + { tag: "h3", contents: theme.title }, + { tag: "p", contents: theme.description }, + ] + } + }) + }, + ] }, + ] + }, + { + tag: "section", + class: "practical-info", + contents: [ { - tag: "ul", - class: "edu-themes", - contents: EDU_THEMES.map(theme => { - return { - tag: "li", - class: "edu-theme", + tag: "div", + class: "page-contents-center", + contents: [ + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Pour qui ?" }, + { + tag: "p", + class: "info-body", + contents: `Les ateliers sont accessibles aux adultes comme aux enfants, plutôt à partir de 12 ans.<br/> + Les séances ont lieu en groupes mixtes. + ` + } + ] + }, + { + tag: "div", + class: "info-block", contents: [ + { tag: "h3", class: "info-title", contents: "Où ça ?" }, { - tag: "a", - href: theme.pageUrl, + tag: "p", + class: "info-body", + contents: "Dans mon local professionnel : <br /><blue>32 rue Simon Vialet, passage du Cheminou, 07240 Vernoux en Vivarais.</blue>" + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Quel matériel ?" }, + { + tag: "p", + class: "info-body", + contents: `Le matériel informatique est fourni sur place (ordinateurs et tablettes graphique) + mais il est possible d'amener le sien. + <br />Il est recommandé d'apporter au moins une clé USB pour faire ses sauvegardes.` + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Quand ?" }, + { + tag: "ul", + class: "info-body tabled", contents: [ - { tag: "h3", contents: theme.title }, - { tag: "img", class: "pixelated", src: `${images_url}/${theme.image}` }, - { tag: "p", contents: theme.description }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Mardi" }, + { tag: "span", contents: "16h - 18h" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Mercredi" }, + { tag: "span", contents: "14h - 16h" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Jeudi" }, + { tag: "span", contents: "16h - 18h" }, + ] + }, + { + tag: "li", + class: "fullwidth", + contents: "<em><blue>Ouvert de Septembre à Juin, sauf vacances scolaires ou fermetures exceptionnelles</blue></em>" + } + ] + }, + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Combien ça coûte ?" }, + { + tag: "ul", + class: "info-body tabled", + contents: [ + { + tag: "li", + contents: [ + { tag: "span", contents: "Inscription au mois" }, + { tag: "span", contents: "50€" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Inscription à la séance" }, + { tag: "span", contents: "15€" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Cours particuliers" }, + { tag: "span", contents: "30€/h, sur place ou en visio. Horaires à définir." }, + ] + } + ] + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Pour s'inscrire ou en savoir plus" }, + { + tag: "ul", + class: "info-body", + contents: [ + { + tag: "li", + contents: [ + { tag: "span", contents: "Me contacter" }, + { + tag: "a", + href: "mailto:contact@kuadrado-software.fr", + contents: "contact@kuadrado-software.fr", + } + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "" }, + { + tag: "a", + href: "tel:+33475780872", + contents: "04 75 78 08 72", + property: "telephone", + }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "ou passer directement me voir au local !" } + ] + } ] } - ] } - }) - }, - { - tag: "div", - contents: "Pour qui ? Tout le monde à partir de 12 ans, ados ou adultes." - }, - { - tag: "div", - contents: "Ou ça ? Dans mon local professionel 32 rue Simon Vialet Vernoux" - }, - { - tag: "div", - contents: "Tarfs: 60 bal par mois. Ou 30€/h pour des cours particuliers, visio possible." - }, - { - tag: "div", - contents: "Horaires: mardi 17h 18h30, mercredi 15h 16h30, jeudi 17h 18h30" - }, - { - tag: "div", - contents: "Matos informatique fournis sur place, on peut amener le sien si on veut." - }, - { - tag: "div", - contents: "Pour s'inscrire: Me contacter ou passer me voir. Télécharger le ficher d'inscription -> ici" + ] } ] - }, + }, ], }; } @@ -297,17 +431,15 @@ module.exports = function runPage(PageComponent) { const { images_url } = require("../../../constants"); const NAV_MENU_ITEMS = [ - ["/games/", "Jeux"], - [ - "/education/", - "Pédagogie", - [ - // submenu - ["/education/#game-studio-club", "Game Studio Club"], - ["/education/#popularization", "Vulgarisation numérique"], - ], - ], - ["/software-development/", "Software"], + { url: "/games/", text: "Jeux" }, + { + url: "/education/", + text: "Pédagogie", + // submenu: [ + // { url: "/gamedev", text: "Création de jeux vidéo" }, + // ] + }, + { url: "/software-development/", text: "Software" } ]; class NavBar { @@ -357,13 +489,14 @@ class NavBar { }; } - renderMenu(menuItemsArray, isSubmenu = false) { + renderMenu(menuItemsArray, isSubmenu = false, parentUrl = "") { return { tag: "ul", id: "nav-menu-list", class: isSubmenu ? "submenu" : "", - contents: menuItemsArray.map(link => { - const [href, text, submenu] = link; + contents: menuItemsArray.map(item => { + const { url, text, submenu } = item; + const href = `${parentUrl}${url}`; return { tag: "li", class: !isSubmenu && window.location.pathname === href ? "active" : "", @@ -373,7 +506,7 @@ class NavBar { href, contents: text, }, - ].concat(submenu ? [this.renderMenu(submenu, true)] : []), + ].concat(submenu ? [this.renderMenu(submenu, true, url)] : []), }; }), }; @@ -459,13 +592,12 @@ class Template { }, { tag: "span", - contents: - "<b><blue>Où sommes-nous ? </blue></b>32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", + contents: "32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", }, { tag: "div", contents: [ - { tag: "strong", contents: "<blue>Nous contacter : </blue>" }, + { tag: "strong", contents: "<blue>Contact : </blue>" }, { tag: "a", href: "mailto:contact@kuadrado-software.fr", diff --git a/public/education/game-studio-club/game-studio-club.js b/public/education/gamedev/gamedev.js similarity index 50% rename from public/education/game-studio-club/game-studio-club.js rename to public/education/gamedev/gamedev.js index d4f746a..3f699d8 100644 --- a/public/education/game-studio-club/game-studio-club.js +++ b/public/education/gamedev/gamedev.js @@ -121,7 +121,8 @@ module.exports = WebPage; },{}],5:[function(require,module,exports){ "use strict"; -const { images_url } = require("../../../../constants"); +const { images_url } = require("../../../../../constants"); +const WebPage = require("../../../../lib/web-page"); const GAMEDEV_THEMES = [ { @@ -207,27 +208,8 @@ class GameStudioClub { { tag: "div", class: "title-banner game-banner", - id: "game-studio-club", // anchor id contents: [{ tag: "h2", contents: "Game Studio Club", property: "name" }], }, - // { - // tag: "div", - // class: "special-announcement", - // contents: [ - // { - // tag: "div", - // class: "page-contents-center", - // contents: [ - // { - // tag: "p", - // contents: ` - // Démarrage des séances à partir du <blue>1er Mars 2021</blue> - // `, - // }, - // ], - // }, - // ], - // }, { tag: "div", class: "section-contents page-contents-center", @@ -255,63 +237,6 @@ class GameStudioClub { }, ], }, - { - tag: "div", - class: "practical-infos", - contents: [ - { - tag: "div", - class: "info-item", - property: "about", - contents: [ - { tag: "strong", contents: "Ça se passe où ?" }, - { - tag: "span", - - contents: - "Dans les locaux,<br/><em>32 rue Simon Vialet, passage du Cheminou<br/>07240 Vernoux en Vivarais</em>", - }, - ], - }, - { - tag: "div", - class: "info-item", - property: "about", - contents: [ - { tag: "strong", contents: "Pour qui ?" }, - { - tag: "span", - contents: `Tout le monde à partir de <b><blue>12 ans</blue></b>. - <br><br><b><blue>Ados</blue></b> et <b><blue>adultes</blue></b>. - `, - }, - ], - }, - { - tag: "div", - class: "info-item", - property: "about", - contents: [ - { - tag: "strong", - contents: "Contact", - }, - { - tag: "a", - href: "tel:+33475780872", - contents: "04 75 78 08 72", - property: "telephone", - }, - { - tag: "a", - href: "mailto:contact@kuadrado-software.fr", - contents: "contact@kuadrado-software.fr", - property: "email", - }, - ], - }, - ], - }, { tag: "div", class: "list-wrapper", @@ -365,217 +290,6 @@ class GameStudioClub { }, ], }, - { - tag: "div", - class: "infos-inscriptions full-row", - property: "about", - contents: [ - { - tag: "div", - class: "groups", - contents: [ - { - tag: "h3", - contents: "Groupes", - }, - { - tag: "p", - contents: - "Les groupes sont de <b><blue>5 personnes</blue></b> maximum.", - }, - { - tag: "div", - class: "table-wrapper", - contents: [ - { - tag: "table", - contents: [ - { - tag: "tr", - contents: [ - { tag: "td", contents: "Mardi" }, - { - tag: "td", - contents: "16h - 19h", - }, - ], - }, - { - tag: "tr", - contents: [ - { tag: "td", contents: "Mercredi" }, - { - tag: "td", - contents: "14h - 17h", - }, - ], - }, - { - tag: "tr", - contents: [ - { tag: "td", contents: "Jeudi" }, - { - tag: "td", - contents: "16h - 19h", - }, - ], - }, - ], - }, - ], - }, - { - tag: "p", - contents: ` - Les séances sont accessibles sur des plages horaires de 3 heures, - mais les participants peuvent arriver et repartir à l'heure qu'ils souhaitent, - ils ne sont pas obligés de rester les 3 heures. - <br><br> - Le club est ouvert à toute personne à partir de <b><blue>12 ans</blue></b>, - adolescent ou adulte, et les groupes sont aussi <b><blue>intergénérationnels</blue></b> que possible. - `, - }, - ], - }, - { - tag: "div", - class: "pricing", - contents: [ - { - tag: "h3", - contents: "Inscription, fonctionnement et tarifs", - }, - { - tag: "p", - contents: `Vous pouvez vous inscrire dans un des groupes pour un mois ou un trimestre.<br /><br /> - Le matériel informatique (pc portable, souris, tablette graphique) est fourni sur place, mais vous pouvez amener votre propre ordinateur portable si vous le souhaitez. - `, - }, - { - tag: "div", - class: "table-wrapper", - contents: [ - { - tag: "table", - contents: [ - { - tag: "tr", - contents: [ - { - tag: "td", - contents: "Abonnement 1 mois", - }, - { - tag: "td", - contents: "(4 séances)", - }, - { - tag: "td", - contents: - "<b><blue>60€</blue></b>", - }, - ], - }, - { - tag: "tr", - contents: [ - { - tag: "td", - contents: - "Abonnement 1 trimestre", - }, - { - tag: "td", - contents: "(12 séances)", - }, - { - tag: "td", - contents: - "<b><blue>160€</blue></b>", - }, - ], - }, - ], - }, - ], - }, - { - tag: "div", - class:"documents", - contents: [ - { - tag: "div", - contents: "Télécharger la fiche d'inscription", - }, - { - tag:"div", - class: "links", - contents: [ - { - tag: "a", - class: "download-link", - download: "fiche-inscription", - href: "/assets/documents/fiche-inscription.pdf", - contents: "PDF", - }, - { - tag: "a", - class: "download-link", - download: "fiche-inscription", - href: "/assets/documents/fiche-inscription.odt", - contents: "Libre Office", - }, - ] - } - - ], - }, - ], - }, - ], - }, - { - tag: "div", - class: "teacher", - contents: [ - - { - tag: "div", - class: "teacher-card", - contents: [ - { - tag: "h3", - contents: "Animé par", - }, - { - tag: "div", - class: "pic", - contents: [ - { - tag: "img", - src: - "/assets/images/pijar_profile_lt_square.png", - }, - ], - }, - { - tag:"div", - class:"infos-text", - contents: [ - { - tag:"h4", - contents: "Pierre Jarriges" - }, - { - tag: "p", - contents: "Développeur jeu vidéo, auteur BD, compositeur." - } - ] - } - ], - }, - ], - }, ], }, ], @@ -583,15 +297,8 @@ class GameStudioClub { } } -module.exports = GameStudioClub; -},{"../../../../constants":2}],6:[function(require,module,exports){ -"use strict"; - -const WebPage = require("../../../../lib/web-page"); -const GameStudioClub = require("../../components/game-studio-club"); - -class GameStudioClubPage extends WebPage { +class GamedevPage extends WebPage { render() { return { @@ -604,16 +311,16 @@ class GameStudioClubPage extends WebPage { } } -module.exports = GameStudioClubPage; +module.exports = GamedevPage; -},{"../../../../lib/web-page":4,"../../components/game-studio-club":5}],7:[function(require,module,exports){ +},{"../../../../../constants":2,"../../../../lib/web-page":4}],6:[function(require,module,exports){ "use strict"; const runPage = require("../../../../run-page"); -const GameStudioClubPage = require("./game-studio-club"); -runPage(GameStudioClubPage); +const GamedevPage = require("./gamedev-page"); +runPage(GamedevPage); -},{"../../../../run-page":8,"./game-studio-club":6}],8:[function(require,module,exports){ +},{"../../../../run-page":7,"./gamedev-page":5}],7:[function(require,module,exports){ "use strict"; const objectHtmlRenderer = require("./lib/object-html-renderer"); @@ -625,23 +332,21 @@ module.exports = function runPage(PageComponent) { objectHtmlRenderer.renderCycle(); }; -},{"./lib/object-html-renderer":3,"./template/template":10}],9:[function(require,module,exports){ +},{"./lib/object-html-renderer":3,"./template/template":9}],8:[function(require,module,exports){ "use strict"; const { images_url } = require("../../../constants"); const NAV_MENU_ITEMS = [ - ["/games/", "Jeux"], - [ - "/education/", - "Pédagogie", - [ - // submenu - ["/education/#game-studio-club", "Game Studio Club"], - ["/education/#popularization", "Vulgarisation numérique"], - ], - ], - ["/software-development/", "Software"], + { url: "/games/", text: "Jeux" }, + { + url: "/education/", + text: "Pédagogie", + // submenu: [ + // { url: "/gamedev", text: "Création de jeux vidéo" }, + // ] + }, + { url: "/software-development/", text: "Software" } ]; class NavBar { @@ -691,13 +396,14 @@ class NavBar { }; } - renderMenu(menuItemsArray, isSubmenu = false) { + renderMenu(menuItemsArray, isSubmenu = false, parentUrl = "") { return { tag: "ul", id: "nav-menu-list", class: isSubmenu ? "submenu" : "", - contents: menuItemsArray.map(link => { - const [href, text, submenu] = link; + contents: menuItemsArray.map(item => { + const { url, text, submenu } = item; + const href = `${parentUrl}${url}`; return { tag: "li", class: !isSubmenu && window.location.pathname === href ? "active" : "", @@ -707,7 +413,7 @@ class NavBar { href, contents: text, }, - ].concat(submenu ? [this.renderMenu(submenu, true)] : []), + ].concat(submenu ? [this.renderMenu(submenu, true, url)] : []), }; }), }; @@ -736,7 +442,7 @@ class NavBar { module.exports = NavBar; -},{"../../../constants":2}],10:[function(require,module,exports){ +},{"../../../constants":2}],9:[function(require,module,exports){ "use strict"; const { in_construction } = require("../../config"); @@ -793,13 +499,12 @@ class Template { }, { tag: "span", - contents: - "<b><blue>Où sommes-nous ? </blue></b>32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", + contents: "32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", }, { tag: "div", contents: [ - { tag: "strong", contents: "<blue>Nous contacter : </blue>" }, + { tag: "strong", contents: "<blue>Contact : </blue>" }, { tag: "a", href: "mailto:contact@kuadrado-software.fr", @@ -847,4 +552,4 @@ class Template { module.exports = Template; -},{"../../config":1,"../../constants":2,"./components/navbar":9}]},{},[7]); +},{"../../config":1,"../../constants":2,"./components/navbar":8}]},{},[6]); diff --git a/public/education/game-studio-club/index.html b/public/education/gamedev/index.html similarity index 96% rename from public/education/game-studio-club/index.html rename to public/education/gamedev/index.html index 64c1eed..4ae9e1f 100644 --- a/public/education/game-studio-club/index.html +++ b/public/education/gamedev/index.html @@ -11,7 +11,7 @@ <meta property="og:title" content="Kuadrado Software | Game Studio Club"/> <meta property="og:description" content="Apprendre à créer un jeu vidéo de A à Z"/> <meta property="og:type" content="website" /> - <meta property="og:url" content="https://kuadrado-software.fr/game-studio-club"/> + <meta property="og:url" content="https://kuadrado-software.fr/gamedev"/> <meta property="og:image" content="https://kuadrado-software.fr/assets/images/brain.png"/> <meta property="twitter:image" content="https://kuadrado-software.fr/assets/images/brain.png"/> <meta property="og:locale" content="fr_FR"/> @@ -31,5 +31,5 @@ <!-- The H1 tag will be never seen but it's necessary for SEO --> <main><h1 style="visibility: hidden">Kuadrado Software | Game Studio Club</h1></main> </body> - <script type="text/javascript" src="./game-studio-club.js"></script> + <script type="text/javascript" src="./gamedev.js"></script> </html> diff --git a/public/games/games.js b/public/games/games.js index 7932baa..38cc7a6 100644 --- a/public/games/games.js +++ b/public/games/games.js @@ -554,17 +554,15 @@ module.exports = function runPage(PageComponent) { const { images_url } = require("../../../constants"); const NAV_MENU_ITEMS = [ - ["/games/", "Jeux"], - [ - "/education/", - "Pédagogie", - [ - // submenu - ["/education/#game-studio-club", "Game Studio Club"], - ["/education/#popularization", "Vulgarisation numérique"], - ], - ], - ["/software-development/", "Software"], + { url: "/games/", text: "Jeux" }, + { + url: "/education/", + text: "Pédagogie", + // submenu: [ + // { url: "/gamedev", text: "Création de jeux vidéo" }, + // ] + }, + { url: "/software-development/", text: "Software" } ]; class NavBar { @@ -614,13 +612,14 @@ class NavBar { }; } - renderMenu(menuItemsArray, isSubmenu = false) { + renderMenu(menuItemsArray, isSubmenu = false, parentUrl = "") { return { tag: "ul", id: "nav-menu-list", class: isSubmenu ? "submenu" : "", - contents: menuItemsArray.map(link => { - const [href, text, submenu] = link; + contents: menuItemsArray.map(item => { + const { url, text, submenu } = item; + const href = `${parentUrl}${url}`; return { tag: "li", class: !isSubmenu && window.location.pathname === href ? "active" : "", @@ -630,7 +629,7 @@ class NavBar { href, contents: text, }, - ].concat(submenu ? [this.renderMenu(submenu, true)] : []), + ].concat(submenu ? [this.renderMenu(submenu, true, url)] : []), }; }), }; @@ -716,13 +715,12 @@ class Template { }, { tag: "span", - contents: - "<b><blue>Où sommes-nous ? </blue></b>32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", + contents: "32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", }, { tag: "div", contents: [ - { tag: "strong", contents: "<blue>Nous contacter : </blue>" }, + { tag: "strong", contents: "<blue>Contact : </blue>" }, { tag: "a", href: "mailto:contact@kuadrado-software.fr", diff --git a/public/main.js b/public/main.js index 6199d7f..bc1ea8a 100644 --- a/public/main.js +++ b/public/main.js @@ -766,17 +766,15 @@ module.exports = function runPage(PageComponent) { const { images_url } = require("../../../constants"); const NAV_MENU_ITEMS = [ - ["/games/", "Jeux"], - [ - "/education/", - "Pédagogie", - [ - // submenu - ["/education/#game-studio-club", "Game Studio Club"], - ["/education/#popularization", "Vulgarisation numérique"], - ], - ], - ["/software-development/", "Software"], + { url: "/games/", text: "Jeux" }, + { + url: "/education/", + text: "Pédagogie", + // submenu: [ + // { url: "/gamedev", text: "Création de jeux vidéo" }, + // ] + }, + { url: "/software-development/", text: "Software" } ]; class NavBar { @@ -826,13 +824,14 @@ class NavBar { }; } - renderMenu(menuItemsArray, isSubmenu = false) { + renderMenu(menuItemsArray, isSubmenu = false, parentUrl = "") { return { tag: "ul", id: "nav-menu-list", class: isSubmenu ? "submenu" : "", - contents: menuItemsArray.map(link => { - const [href, text, submenu] = link; + contents: menuItemsArray.map(item => { + const { url, text, submenu } = item; + const href = `${parentUrl}${url}`; return { tag: "li", class: !isSubmenu && window.location.pathname === href ? "active" : "", @@ -842,7 +841,7 @@ class NavBar { href, contents: text, }, - ].concat(submenu ? [this.renderMenu(submenu, true)] : []), + ].concat(submenu ? [this.renderMenu(submenu, true, url)] : []), }; }), }; @@ -928,13 +927,12 @@ class Template { }, { tag: "span", - contents: - "<b><blue>Où sommes-nous ? </blue></b>32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", + contents: "32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", }, { tag: "div", contents: [ - { tag: "strong", contents: "<blue>Nous contacter : </blue>" }, + { tag: "strong", contents: "<blue>Contact : </blue>" }, { tag: "a", href: "mailto:contact@kuadrado-software.fr", diff --git a/public/software-development/software-development.js b/public/software-development/software-development.js index dcc038d..19b47a4 100644 --- a/public/software-development/software-development.js +++ b/public/software-development/software-development.js @@ -595,17 +595,15 @@ module.exports = function runPage(PageComponent) { const { images_url } = require("../../../constants"); const NAV_MENU_ITEMS = [ - ["/games/", "Jeux"], - [ - "/education/", - "Pédagogie", - [ - // submenu - ["/education/#game-studio-club", "Game Studio Club"], - ["/education/#popularization", "Vulgarisation numérique"], - ], - ], - ["/software-development/", "Software"], + { url: "/games/", text: "Jeux" }, + { + url: "/education/", + text: "Pédagogie", + // submenu: [ + // { url: "/gamedev", text: "Création de jeux vidéo" }, + // ] + }, + { url: "/software-development/", text: "Software" } ]; class NavBar { @@ -655,13 +653,14 @@ class NavBar { }; } - renderMenu(menuItemsArray, isSubmenu = false) { + renderMenu(menuItemsArray, isSubmenu = false, parentUrl = "") { return { tag: "ul", id: "nav-menu-list", class: isSubmenu ? "submenu" : "", - contents: menuItemsArray.map(link => { - const [href, text, submenu] = link; + contents: menuItemsArray.map(item => { + const { url, text, submenu } = item; + const href = `${parentUrl}${url}`; return { tag: "li", class: !isSubmenu && window.location.pathname === href ? "active" : "", @@ -671,7 +670,7 @@ class NavBar { href, contents: text, }, - ].concat(submenu ? [this.renderMenu(submenu, true)] : []), + ].concat(submenu ? [this.renderMenu(submenu, true, url)] : []), }; }), }; @@ -757,13 +756,12 @@ class Template { }, { tag: "span", - contents: - "<b><blue>Où sommes-nous ? </blue></b>32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", + contents: "32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", }, { tag: "div", contents: [ - { tag: "strong", contents: "<blue>Nous contacter : </blue>" }, + { tag: "strong", contents: "<blue>Contact : </blue>" }, { tag: "a", href: "mailto:contact@kuadrado-software.fr", diff --git a/public/style/pages/education/subpages/gamedev/gamedev-page.css b/public/style/pages/education/subpages/gamedev/gamedev-page.css new file mode 100644 index 0000000..a45152e --- /dev/null +++ b/public/style/pages/education/subpages/gamedev/gamedev-page.css @@ -0,0 +1,3 @@ + + +/*# sourceMappingURL=gamedev-page.css.map */ diff --git a/public/style/pages/games/games.css b/public/style/pages/games/games.css index 9eb419b..e86516d 100644 --- a/public/style/pages/games/games.css +++ b/public/style/pages/games/games.css @@ -1,9 +1,9 @@ /* Error: Undefined variable. * , - * 14 | color: $light_2; + * 15 | color: $light_2; * | ^^^^^^^^ * ' - * src/pages/games/games.scss 14:28 root stylesheet */ + * src/pages/games/games.scss 15:28 root stylesheet */ body::before { font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono", @@ -13,5 +13,5 @@ body::before { padding: 1em; margin-bottom: 1em; border-bottom: 2px solid black; - content: "Error: Undefined variable.\a \2577 \a 14 \2502 color: $light_2;\a \2502 ^^^^^^^^\a \2575 \a src/pages/games/games.scss 14:28 root stylesheet"; + content: "Error: Undefined variable.\a \2577 \a 15 \2502 color: $light_2;\a \2502 ^^^^^^^^\a \2575 \a src/pages/games/games.scss 15:28 root stylesheet"; } diff --git a/public/style/style.css b/public/style/style.css index f129f48..2fcd18b 100644 --- a/public/style/style.css +++ b/public/style/style.css @@ -30,6 +30,10 @@ body .bg-blue { background-color: #4baabb; color: white; } +body .bg-dark { + background-color: #3c4144; + color: #aabbc8; +} body #seo-title { visibility: hidden; } @@ -824,22 +828,127 @@ main #page-container #education-page .special-announcement .page-contents-center font-weight: 600; margin: 0; } -main #page-container #education-page .edu-pitch { - font-size: 18px; -} main #page-container #education-page .edu-themes { display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 20px; + grid-template-columns: 1fr 1fr; + gap: 50px; + font-family: monospace; + padding: 70px 0; } main #page-container #education-page .edu-themes .edu-theme { - transition: transform 0.3s; + display: grid; + grid-template-columns: auto 1fr; } -main #page-container #education-page .edu-themes .edu-theme:hover { - transform: scale(1.03); +main #page-container #education-page .edu-themes .edu-theme * { + border-style: dashed; + border-color: #00ff00; + border-width: 0 0 0 0; +} +main #page-container #education-page .edu-themes .edu-theme h3 { + color: #00ff00; + grid-row: 1; + margin: 0; + padding: 0 10px; + display: flex; + align-items: center; + border-width: 0 0 0 1px; } main #page-container #education-page .edu-themes .edu-theme img { width: 100%; + grid-row: 1/span 2; + border-width: 1px 0 1px 1px; +} +main #page-container #education-page .edu-themes .edu-theme p { + text-align: justify; + color: #72e3f0; + grid-row: 2; + margin: 0; + padding: 10px 30px 0 10px; + border-width: 1px 1px 1px 0; +} +main #page-container #education-page .edu-themes .edu-theme p * { + color: #72e3f0; +} +main #page-container #education-page .practical-info { + padding: 50px 0; +} +main #page-container #education-page .practical-info .page-contents-center { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 50px; +} +main #page-container #education-page .practical-info .page-contents-center .info-block { + display: grid; + grid-template-rows: auto 1fr; +} +main #page-container #education-page .practical-info .page-contents-center .info-block .info-title { + color: #4baabb; + margin: 0; + border-bottom: 1px dashed #aabbc8; + border-left: 1px dashed #aabbc8; + padding: 10px; +} +main #page-container #education-page .practical-info .page-contents-center .info-block .info-body { + margin: 0; + padding: 20px 10px; + border-right: 1px dashed #aabbc8; + border-bottom: 1px dashed #aabbc8; +} +main #page-container #education-page .practical-info .page-contents-center .info-block ul { + display: flex; + flex-direction: column; + gap: 5px; +} +main #page-container #education-page .practical-info .page-contents-center .info-block ul li:not(.fullwidth) { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; +} +main #page-container #education-page .practical-info .page-contents-center .info-block ul.tabled li span { + padding: 3px 0; +} +main #page-container #education-page .practical-info .page-contents-center .info-block ul.tabled li span:first-child { + font-weight: bold; + color: #6b7880; +} +main #page-container #education-page .practical-info .page-contents-center .info-block ul.tabled li span:last-child { + color: #4baabb; +} +@media screen and (max-width: 1200px) { + main #page-container #education-page .edu-themes { + grid-template-columns: 1fr; + gap: 30px; + padding: 70px 0; + } +} +@media screen and (max-width: 780px) { + main #page-container #education-page .practical-info .page-contents-center { + grid-template-columns: 1fr; + gap: 30px; + } + main #page-container #education-page .practical-info .page-contents-center .info-block .info-title { + border-top: 1px dashed #aabbc8; + } + main #page-container #education-page .practical-info .page-contents-center .info-block .info-body { + border-bottom: none; + } +} +@media screen and (max-width: 560px) { + main #page-container #education-page .edu-themes .edu-theme h3 { + border-width: 0 0 1px 1px; + } + main #page-container #education-page .edu-themes .edu-theme img { + max-width: 150px; + height: auto; + grid-row: 1; + border-width: 1px 0 0 1px; + } + main #page-container #education-page .edu-themes .edu-theme p { + grid-row: 2; + grid-column: 1/span 2; + padding: 20px 10px 30px 10px; + border-width: 0 1px 1px 1px; + } } main #page-container #games-page .game-articles article { display: grid; @@ -849,6 +958,7 @@ main #page-container #games-page .game-articles article { } main #page-container #games-page .game-articles article.game-article { grid-template-rows: repeat(7, auto); + width: 100%; } main #page-container #games-page .game-articles article.game-article .game-title { grid-column: 1/span 2; @@ -866,6 +976,7 @@ main #page-container #games-page .game-articles article.game-article .game-banne flex-direction: row; flex-direction: column; background-color: black; + overflow: hidden; } main #page-container #games-page .game-articles article.game-article .game-banner img { height: 500px; @@ -956,16 +1067,18 @@ main #page-container #games-page .game-articles article.placeholder * { } main #page-container #games-page .game-articles article.game-article .game-title { grid-column: 1; - padding: 20px; + padding: 0; font-size: 25px; } main #page-container #games-page .game-articles article.game-article .game-banner { grid-column: 1; + margin: 0 -20px; } main #page-container #games-page .game-articles article.game-article .image-carousel { grid-column: 1; grid-row: 3; height: 400px; + margin: 0 -20px; } main #page-container #games-page .game-articles article.game-article .game-team { grid-column: 1; diff --git a/src/pages/education/education.js b/src/pages/education/education.js index 05159b0..53c9ac3 100644 --- a/src/pages/education/education.js +++ b/src/pages/education/education.js @@ -2,50 +2,49 @@ const { images_url } = require("../../../constants"); const WebPage = require("../../lib/web-page"); -// const GameStudioClub = require("./components/game-studio-club"); -// const Popularization = require("./components/popularization"); const EDU_THEMES = [ - { - title: "Game Studio Club", - description: "Conception, graphisme et animation, programmation, je vous accompagne dans la découverte des techniques pour créer un jeu vidéo de A à Z", - image: "learning_theme_conception.png", - pageUrl: "game-studio-club", - }, + // { + // title: "Création de jeux vidéo", + // description: "Conception, graphisme et animation, programmation, je vous accompagne dans la découverte des techniques pour créer un jeu vidéo de A à Z", + // image: "learning_theme_conception.png", + // pageUrl: "gamedev", + // }, { title: "Programmation", - description: "Vous avez une idée de projet à réaliser en programmation ou vous êtes simplement curieux ? Apprenez à programmer avec différent langages, pour du web du logiciel ou du jeu vidéo.", + description: `<b>Franchissez le mur du code !</b><br /> + Apprenez à programmer avec différents langages (Python, Javascript, C ...), pour du web, du logiciel, du jeu vidéo ou autre.`, image: "learning_theme_coding.png", - pageUrl: "coding", + // pageUrl: "coding", }, { title: "Dessin numérique et animation 2D", - description: "Maîtriser des logiciels libres de création graphique 2D et d'animation.", + description: `Apprenez à utiliser des logiciels libres de création graphique 2D et d'animation.<br /> + Créez des personnages et des décors, menez votre projet de dessin animé, d'illustration ou de jeu vidéo.`, image: "learning_theme_2d.png", - pageUrl: "2d", + // pageUrl: "2d", }, { title: "Maths et physiques", - description: "Fâché avec les maths ? Aborder les notions fondamentales de façon décontractée pour le plaisir de comprendre.", + description: "Abordez les notions fondamentales de façon décontractée pour le plaisir de comprendre.", image: "learning_theme_math.png", - pageUrl: "math", - }, - { - title: "Musique et sons électroniques", - description: "Maîtriser des logiciels libres de composition musicales, de synthèse sonore et de prise de son.", - image: "learning_theme_sound.png", - pageUrl: "sound", + // pageUrl: "math", }, + // { + // title: "Musique et sons électroniques", + // description: "Découvrez des logiciels libres de composition musicales, de synthèse sonore et de prise de son.", + // image: "learning_theme_sound.png", + // pageUrl: "sound", + // }, { title: "Aide informatique générale", - description: "Perdu avec votre ordinateur ou votre smartphone, les logicels, internet ? Je vous aide pas à pas à comprendre les fondamentaux et à utiliser sereinement la technologie.", + description: "Perdu avec votre ordinateur ou votre smartphone, les logiciels, internet ? Je vous aide pas à pas à comprendre les fondamentaux et à utiliser sereinement la technologie.", image: "learning_theme_pc.png", - pageUrl: "popularization" + // pageUrl: "popularization" } ]; class EducationPage extends WebPage { - render() { return { tag: "div", @@ -74,7 +73,8 @@ class EducationPage extends WebPage { { tag: "h1", contents: "Pédagogie" }, { tag: "p", - contents: `Animations autour de la création de jeux vidéos, vulgarisation numérique.`, + contents: `Animation d'ateliers informatiques accessibles à tous. + Programmation, graphisme 2D, jeux vidéo, vulgarisation, accompagnement de projet, etc.`, }, ], }, @@ -85,66 +85,200 @@ class EducationPage extends WebPage { class: "title-banner", }, { - tag: "div", - class: "page-contents-center", + tag: "section", + class: "bg-dark", contents: [ { - tag: "p", - class: "edu-pitch", - contents: `La pédagogie est un des objectifs majeurs de Kuadrado Software. <br /> - L'informatique est aujourd'hui un élément incontournable de notre société et j'ai la conviction - qu'il est fondamental de pouvoir accéder de façon simple à une forme d'apprentissage et de partage de connaissances.<br /> - Je propose donc des séances d'enseignement autour des sujets que je suis en position de transmettre en tant que développeur et artiste.` + tag: "div", + class: "page-contents-center", + contents: [ + { + tag: "ul", + class: "edu-themes", + contents: EDU_THEMES.map(theme => { + return { + tag: "li", + class: "edu-theme", + contents: [ + { tag: "img", width: 250, height: 140, class: "pixelated", src: `${images_url}${theme.image}` }, + { tag: "h3", contents: theme.title }, + { tag: "p", contents: theme.description }, + ] + } + }) + }, + ] }, + ] + }, + { + tag: "section", + class: "practical-info", + contents: [ { - tag: "ul", - class: "edu-themes", - contents: EDU_THEMES.map(theme => { - return { - tag: "li", - class: "edu-theme", + tag: "div", + class: "page-contents-center", + contents: [ + { + tag: "div", + class: "info-block", contents: [ + { tag: "h3", class: "info-title", contents: "Pour qui ?" }, { - tag: "a", - href: theme.pageUrl, + tag: "p", + class: "info-body", + contents: `Les ateliers sont accessibles aux adultes comme aux enfants, plutôt à partir de 12 ans.<br/> + Les séances ont lieu en groupes mixtes. + ` + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Où ça ?" }, + { + tag: "p", + class: "info-body", + contents: "Dans mon local professionnel : <br /><blue>32 rue Simon Vialet, passage du Cheminou, 07240 Vernoux en Vivarais.</blue>" + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Quel matériel ?" }, + { + tag: "p", + class: "info-body", + contents: `Le matériel informatique est fourni sur place (ordinateurs et tablettes graphique) + mais il est possible d'amener le sien. + <br />Il est recommandé d'apporter au moins une clé USB pour faire ses sauvegardes.` + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Quand ?" }, + { + tag: "ul", + class: "info-body tabled", contents: [ - { tag: "h3", contents: theme.title }, - { tag: "img", class: "pixelated", src: `${images_url}/${theme.image}` }, - { tag: "p", contents: theme.description }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Mardi" }, + { tag: "span", contents: "16h - 18h" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Mercredi" }, + { tag: "span", contents: "14h - 16h" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Jeudi" }, + { tag: "span", contents: "16h - 18h" }, + ] + }, + { + tag: "li", + class: "fullwidth", + contents: "<em><blue>Ouvert de Septembre à Juin, sauf vacances scolaires ou fermetures exceptionnelles</blue></em>" + } + ] + }, + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Combien ça coûte ?" }, + { + tag: "ul", + class: "info-body tabled", + contents: [ + { + tag: "li", + contents: [ + { tag: "span", contents: "Inscription au mois" }, + { tag: "span", contents: "50€" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Inscription à la séance" }, + { tag: "span", contents: "15€" }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "Cours particuliers" }, + { tag: "span", contents: "30€/h, sur place ou en visio. Horaires à définir." }, + ] + } + ] + } + ] + }, + { + tag: "div", + class: "info-block", + contents: [ + { tag: "h3", class: "info-title", contents: "Pour s'inscrire ou en savoir plus" }, + { + tag: "ul", + class: "info-body", + contents: [ + { + tag: "li", + contents: [ + { tag: "span", contents: "Me contacter" }, + { + tag: "a", + href: "mailto:contact@kuadrado-software.fr", + contents: "contact@kuadrado-software.fr", + } + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "" }, + { + tag: "a", + href: "tel:+33475780872", + contents: "04 75 78 08 72", + property: "telephone", + }, + ] + }, + { + tag: "li", + contents: [ + { tag: "span", contents: "ou passer directement me voir au local !" } + ] + } ] } - ] } - }) - }, - { - tag: "div", - contents: "Pour qui ? Tout le monde à partir de 12 ans, ados ou adultes." - }, - { - tag: "div", - contents: "Ou ça ? Dans mon local professionel 32 rue Simon Vialet Vernoux" - }, - { - tag: "div", - contents: "Tarfs: 60 bal par mois. Ou 30€/h pour des cours particuliers, visio possible." - }, - { - tag: "div", - contents: "Horaires: mardi 17h 18h30, mercredi 15h 16h30, jeudi 17h 18h30" - }, - { - tag: "div", - contents: "Matos informatique fournis sur place, on peut amener le sien si on veut." - }, - { - tag: "div", - contents: "Pour s'inscrire: Me contacter ou passer me voir. Télécharger le ficher d'inscription -> ici" + ] } ] - }, + }, ], }; } diff --git a/src/pages/education/education.scss b/src/pages/education/education.scss index ec16f66..710bdd9 100644 --- a/src/pages/education/education.scss +++ b/src/pages/education/education.scss @@ -36,317 +36,142 @@ } } - .edu-pitch { - font-size: 18px; - } - .edu-themes { display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 20px; + grid-template-columns: 1fr 1fr; + gap: 50px; + font-family: monospace; + padding: 70px 0; .edu-theme { - transition: transform 0.3s; - &:hover { - transform: scale(1.03); + display: grid; + grid-template-columns: auto 1fr; + * { + border-style: dashed; + border-color: $green; + border-width: 0 0 0 0; + } + h3 { + color: $green; + grid-row: 1; + margin: 0; + padding: 0 10px; + display: flex; + align-items: center; + border-width: 0 0 0 1px; } img { width: 100%; + grid-row: 1 / span 2; + border-width: 1px 0 1px 1px; + } + p { + text-align: justify; + color: $blue_3; + * { + color: $blue_3; + } + grid-row: 2; + margin: 0; + padding: 10px 30px 0 10px; + border-width: 1px 1px 1px 0; } } } - // .section-contents { - // padding: 20px 40px 60px; - // display: grid; - // grid-template-columns: auto 1fr; - // gap: 20px; - // height: auto; - // .full-row { - // grid-column: 1 / span 2; - // } - // .practical-infos { - // grid-column: 2; - // grid-row: 2; - // display: flex; - // flex-direction: column; - // gap: 40px; - // background-image: url("/assets/images/wallpaper_binary_light.png"); - // padding: 30px; - // .info-item { - // display: flex; - // flex-direction: column; - // background-color: white; - // padding: 20px; - // strong { - // margin-bottom: 10px; - // white-space: nowrap; - // color: $medium_grey; - // } - // span, - // a { - // font-size: 14px; - // } - // } - // } - // .list-wrapper { - // grid-column: 1; - // grid-row: 2; - // ul.learning-themes { - // display: flex; - // gap: 20px 30px; - // flex-wrap: wrap; - // li.learning-theme { - // position: relative; - // border: solid $light_0; - // border-width: 0 2px 2px 0; - // display: flex; - // flex-direction: column; - // .title { - // color: $medium_grey; - // display: block; - // position: absolute; - // background-color: #fffa; - // padding: 3px 10px; - // width: 100%; - // } - // img { - // width: 100%; - // height: auto; - // image-rendering: pixelated; - // image-rendering: -moz-crisp-edges; - // image-rendering: crisp-edges; - // } - // .details { - // background-color: #fffe; - // position: absolute; - // top: 25px; - // left: 25px; - // width: 300px; - // height: auto; - // max-height: 0; - // visibility: hidden; - // z-index: 1; - // transition: max-height 0.6s; - // padding: 20px; - // border: solid $light_0; - // border-width: 0 1px 1px 0; - // overflow: hidden; - // display: flex; - // flex-direction: column; - // gap: 10px; - // .comment { - // font-style: italic; - // * { - // color: $medium_grey; - // } - // } - // ul { - // list-style-type: disc; - // font-size: 14px; - // margin-left: 10px; - // li { - // color: $medium_grey; - // } - // } - // } - // &:hover { - // .details { - // max-height: 1000px; - // visibility: visible; - // } - // } - // } - // } - // } - - // .infos-inscriptions { - // display: flex; - // gap: 40px; - // background-image: url("/assets/images/wallpaper_binary_light.png"); - // padding: 30px; - // .groups, - // .pricing { - // background-color: white; - // padding: 20px; - // display: flex; - // flex-direction: column; - // h3 { - // margin: 0; - // color: $light_1; - // } - // .table-wrapper { - // table { - // border: 1px solid #dde; - // border-collapse: collapse; - // td { - // border: 1px solid #dde; - // padding: 10px 20px; - // } - // } - // } - // .documents { - // margin-top: 20px; - // .links { - // display: flex; - // gap: 20px; - // .download-link { - // border: 1px solid; - // padding: 8px; - // display: flex; - // margin: 10px 0 0; - // border-radius: 4px; - // } - // } - // } - - // } - // } - // .teacher { - // grid-column: 1 / span 2; - // background: url("/assets/images/wallpaper_binary_light.png"); - // padding: 30px; - // @include flex-center-col; - // .teacher-card { - // background-color: white; - // display: grid; - // grid-template-columns: auto 1fr; - // width: 100%; - // gap: 20px; - // padding: 20px; - // h3 { - // margin: 0; - // width: 100%; - // color: $light_1; - // grid-column: 1 / span 2; - // } - // .pic { - // img { - // width: 100px; - // } - // } - // .infos-text { - // padding: 0 20px; - // h4 { - // color: $blue_2; - // margin: 0; - // font-size: 18px; - // } - // p { - // color: $light_1; - // display: block; - // } - // } - // } - // } - // } - - // @media screen and (max-width: $screen_l) { - // .section-contents { - // .list-wrapper { - // ul.learning-themes { - // display: block; - // li.learning-theme { - // width: 100%; - // margin-bottom: 20px; - // .details { - // background-color: #fff9; - // position: relative; - // top: unset; - // width: 100%; - // left: unset; - // max-height: unset; - // visibility: visible; - // padding: 10px; - // box-shadow: none; - // ul { - // list-style-type: disc; - // font-size: 14px; - // margin-left: 10px; - // } - // } - // } - // } - // } + .practical-info { + padding: 50px 0; + .page-contents-center { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 50px; + .info-block { + display: grid; + grid-template-rows: auto 1fr; + .info-title { + color: $blue_2; + margin: 0; + border-bottom: 1px dashed $light_2; + border-left: 1px dashed $light_2; + padding: 10px; + } + .info-body { + margin: 0; + padding: 20px 10px; + border-right: 1px dashed $light_2; + border-bottom: 1px dashed $light_2; + } + ul { + display: flex; + flex-direction: column; + gap: 5px; + li:not(.fullwidth) { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; + } + &.tabled { + li { + span { + padding: 3px 0; + &:first-child { + font-weight: bold; + color: $medium_grey; + } + &:last-child { + color: $blue_2; + } + } + } + } + } + } + } + } - // .infos-inscriptions { - // flex-direction: column; - // } - // } - // } + @media screen and (max-width: 1200px) { + .edu-themes { + grid-template-columns: 1fr; + gap: 30px; + padding: 70px 0; + } + } - // @media screen and (max-width: $screen_m) { - // h3 { - // &.big { - // font-size: 22px; - // } - // } - // .title-banner { - // height: 170px; - // min-height: unset; - // h2 { - // font-size: 2em; - // margin: 20px; - // text-shadow: 0 0 4px #000b; - // } - // } - // .section-contents { - // padding: 20px 20px 40px; - // grid-template-columns: 100%; - // .full-row { - // grid-column: 1; - // } - // .practical-infos { - // grid-column: 1; - // grid-row: 3; - // gap: 10px; - // padding: 10px; - // } - // .list-wrapper { - // ul.learning-themes { - // grid-column: 1; - // grid-row: 2; - // display: block; - // li.learning-theme { - // margin-bottom: 20px; - // .details { - // background-color: #fff9; - // position: relative; - // top: unset; - // width: 100%; - // left: unset; - // max-height: unset; - // visibility: visible; - // padding: 10px; - // box-shadow: none; - // } - // } - // } - // } + @media screen and (max-width: $screen_m) { + .practical-info { + .page-contents-center { + grid-template-columns: 1fr; + gap: 30px; + .info-block { + .info-title { + border-top: 1px dashed $light_2; + } + .info-body { + border-bottom: none; + } + } + } + } + } - // .infos-inscriptions { - // gap: 10px; - // padding: 10px; - // .groups, - // .pricing { - // background-color: white; - // padding: 20px; - // display: flex; - // flex-direction: column; - // .table-wrapper { - // table { - // width: 100%; - // td { - // border: 1px solid #dde; - // padding: 10px; - // } - // } - // } - // } - // } - // .teacher { - // grid-column: 1; - // padding: 20px; - // } - // } - // } + @media screen and (max-width: $screen_s) { + .edu-themes { + .edu-theme { + h3 { + border-width: 0 0 1px 1px; + } + img { + max-width: 150px; + height: auto; + grid-row: 1; + border-width: 1px 0 0 1px; + } + p { + grid-row: 2; + grid-column: 1 / span 2; + padding: 20px 10px 30px 10px; + border-width: 0 1px 1px 1px; + } + } + } + } } diff --git a/src/pages/education/subpages/game-studio-club/index.js b/src/pages/education/subpages/game-studio-club/index.js deleted file mode 100644 index fa0bba5..0000000 --- a/src/pages/education/subpages/game-studio-club/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -const runPage = require("../../../../run-page"); -const GameStudioClubPage = require("./game-studio-club"); -runPage(GameStudioClubPage); diff --git a/src/pages/education/subpages/game-studio-club/game-studio-club.js b/src/pages/education/subpages/gamedev/gamedev-page.js similarity index 97% rename from src/pages/education/subpages/game-studio-club/game-studio-club.js rename to src/pages/education/subpages/gamedev/gamedev-page.js index c7b7545..2b418b1 100644 --- a/src/pages/education/subpages/game-studio-club/game-studio-club.js +++ b/src/pages/education/subpages/gamedev/gamedev-page.js @@ -1,11 +1,7 @@ "use strict"; +const { images_url } = require("../../../../../constants"); const WebPage = require("../../../../lib/web-page"); -const GameStudioClub = require("../../components/game-studio-club"); - -"use strict"; - -const { images_url } = require("../../../../constants"); const GAMEDEV_THEMES = [ { @@ -181,7 +177,7 @@ class GameStudioClub { } -class GameStudioClubPage extends WebPage { +class GamedevPage extends WebPage { render() { return { @@ -194,4 +190,4 @@ class GameStudioClubPage extends WebPage { } } -module.exports = GameStudioClubPage; +module.exports = GamedevPage; diff --git a/src/pages/education/subpages/game-studio-club/game-studio-club.scss b/src/pages/education/subpages/gamedev/gamedev-page.scss similarity index 100% rename from src/pages/education/subpages/game-studio-club/game-studio-club.scss rename to src/pages/education/subpages/gamedev/gamedev-page.scss diff --git a/src/pages/education/subpages/gamedev/index.js b/src/pages/education/subpages/gamedev/index.js new file mode 100644 index 0000000..794ec96 --- /dev/null +++ b/src/pages/education/subpages/gamedev/index.js @@ -0,0 +1,5 @@ +"use strict"; + +const runPage = require("../../../../run-page"); +const GamedevPage = require("./gamedev-page"); +runPage(GamedevPage); diff --git a/src/pages/education/subpages/game-studio-club/meta.json b/src/pages/education/subpages/gamedev/meta.json similarity index 100% rename from src/pages/education/subpages/game-studio-club/meta.json rename to src/pages/education/subpages/gamedev/meta.json diff --git a/src/pages/games/games.scss b/src/pages/games/games.scss index c6bc762..f6e1f14 100644 --- a/src/pages/games/games.scss +++ b/src/pages/games/games.scss @@ -7,6 +7,7 @@ margin: 20px 0; &.game-article { grid-template-rows: repeat(7, auto); + width: 100%; .game-title { grid-column: 1 / span 2; margin: 0; @@ -20,6 +21,7 @@ grid-column: 1 / span 2; @include flex-center-col; background-color: black; + overflow: hidden; img { height: 500px; } @@ -111,18 +113,20 @@ grid-template-rows: repeat(6, auto); .game-title { grid-column: 1; - padding: 20px; + padding: 0; font-size: 25px; } .game-banner { grid-column: 1; + margin: 0 -20px; } .image-carousel { grid-column: 1; grid-row: 3; height: 400px; + margin: 0 -20px; } .game-team { grid-column: 1; diff --git a/src/style.scss b/src/style.scss index 1f74170..f9caa42 100644 --- a/src/style.scss +++ b/src/style.scss @@ -33,6 +33,12 @@ body { background-color: $blue_2; color: white; } + + .bg-dark { + background-color: $dark_2; + color: $light_2; + } + #seo-title { visibility: hidden; } diff --git a/src/template/components/navbar.js b/src/template/components/navbar.js index d469da0..d8f837f 100644 --- a/src/template/components/navbar.js +++ b/src/template/components/navbar.js @@ -3,17 +3,15 @@ const { images_url } = require("../../../constants"); const NAV_MENU_ITEMS = [ - ["/games/", "Jeux"], - [ - "/education/", - "Pédagogie", - [ - // submenu - ["/education/#game-studio-club", "Game Studio Club"], - ["/education/#popularization", "Vulgarisation numérique"], - ], - ], - ["/software-development/", "Software"], + { url: "/games/", text: "Jeux" }, + { + url: "/education/", + text: "Pédagogie", + // submenu: [ + // { url: "/gamedev", text: "Création de jeux vidéo" }, + // ] + }, + { url: "/software-development/", text: "Software" } ]; class NavBar { @@ -63,13 +61,14 @@ class NavBar { }; } - renderMenu(menuItemsArray, isSubmenu = false) { + renderMenu(menuItemsArray, isSubmenu = false, parentUrl = "") { return { tag: "ul", id: "nav-menu-list", class: isSubmenu ? "submenu" : "", - contents: menuItemsArray.map(link => { - const [href, text, submenu] = link; + contents: menuItemsArray.map(item => { + const { url, text, submenu } = item; + const href = `${parentUrl}${url}`; return { tag: "li", class: !isSubmenu && window.location.pathname === href ? "active" : "", @@ -79,7 +78,7 @@ class NavBar { href, contents: text, }, - ].concat(submenu ? [this.renderMenu(submenu, true)] : []), + ].concat(submenu ? [this.renderMenu(submenu, true, url)] : []), }; }), }; diff --git a/src/template/template.js b/src/template/template.js index 5862f3a..9512eae 100644 --- a/src/template/template.js +++ b/src/template/template.js @@ -54,13 +54,12 @@ class Template { }, { tag: "span", - contents: - "<b><blue>Où sommes-nous ? </blue></b>32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", + contents: "32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France", }, { tag: "div", contents: [ - { tag: "strong", contents: "<blue>Nous contacter : </blue>" }, + { tag: "strong", contents: "<blue>Contact : </blue>" }, { tag: "a", href: "mailto:contact@kuadrado-software.fr", -- GitLab