From 7b9fb34462807e2daeb6082214a360b8e053b17c Mon Sep 17 00:00:00 2001 From: Ronaldo Date: Mon, 6 Apr 2026 10:05:22 +0000 Subject: [PATCH] inicio do dia 06-04-26 --- css/custom.css | 45 ++++++---- dados/config.json | 29 +++--- img/ius_logo_branco.jpg | Bin 0 -> 22216 bytes index.html | 195 ++++++++++++++++++++++------------------ js/controllers.js | 103 ++++++++++++--------- templates/page.html | 2 - 6 files changed, 211 insertions(+), 163 deletions(-) create mode 100755 img/ius_logo_branco.jpg diff --git a/css/custom.css b/css/custom.css index e642506..31ef0a9 100755 --- a/css/custom.css +++ b/css/custom.css @@ -86,7 +86,7 @@ body, .pane, .view { } .logo-top-small { -max-width: 74%; + max-width: 74%; position: fixed; top: 0; left: 50%; @@ -110,17 +110,18 @@ max-width: 74%; /* Question Screen */ .question-box { - background-color: var(--cor-fundo-escuro); + background-color: #FFFFFF; /* Folhinha branca */ border-radius: 4rem 1rem; padding: 1.5rem; line-height: 2.3rem; width: 90%; margin-bottom: 1.5rem; - box-shadow: 0.2rem 0.2rem 0.5rem rgba(0, 0, 0, 0.5); + box-shadow: 0.2rem 0.2rem 0.5rem rgba(0, 0, 0, 0.2); + z-index: 5; } .question-box p { - color: var(--cor-texto-principal); + color: var(--cor-texto-secundario); /* Fonte verde */ font-family: 'General Sans' !important; font-size: 2.5rem; font-weight: 600; @@ -157,8 +158,8 @@ max-width: 74%; justify-content: center; font-size: 3em; font-weight: bold; - color: #000; - border-right: 0.1rem solid rgba(0,0,0,0.1); + color: var(--cor-texto-secundario); /* Fonte verde */ + border-right: 0.1rem solid rgba(0,0,0,0.05); } .text-box { @@ -167,8 +168,8 @@ width: 80%; display: flex; align-items: center; font-size: 1.8rem; - color: #000; - font-weight: 500; + color: var(--cor-texto-secundario); /* Fonte verde */ + font-weight: 600; line-height: 0.9em; } @@ -193,14 +194,14 @@ width: 80%; } .result-title-box h1 { - color: var(--cor-fundo-escuro); + color: var(--cor-texto-secundario); /* Fonte verde */ font-size: 4rem; font-weight: bold; margin: 0; } .score-box { - background-color: var(--cor-fundo-escuro); + background-color: #FFFFFF; /* Quadrado branco */ border-radius: 1.5rem; padding: 2rem; width: 80%; @@ -210,13 +211,13 @@ width: 80%; } .score-box p { - color: #fff; + color: var(--cor-texto-secundario); /* Fonte verde */ font-size: 2rem; margin: 0; } .score-box h2 { - color: var(--cor-titulos); + color: var(--cor-fundo-resultado); /* Fonte verde escura */ font-size: 8rem; font-weight: bold; margin: -0.5rem 0; @@ -252,19 +253,29 @@ body { background-color: var(--cor-fundo-principal) !important; } -/* --- Modo Debug (rotaciona -90deg e redimensiona para view) --- */ +/* --- Modo Debug (Simulação Real 1080x1920 em Monitor Horizontal) --- */ html.debug-mode { - width: calc(100vh * 9 / 16); - height: 100vh; + /* Força o container em 9:16 baseado na altura total do monitor */ + height: 100vh !important; + width: 56.25vh !important; /* (1080 / 1920 * 100) = 56.25vh */ + position: fixed !important; - top: 50vh !important; - left: 0; + top: 50% !important; + left: 50% !important; + + /* Centraliza e rotaciona -90deg para teste em monitor widescreen */ transform: translate(-50%, -50%) rotate(-90deg) !important; transform-origin: center center !important; + + /* Auxílio visual para delimitar a área da TV */ + border: 1px solid rgba(255,255,255,0.2) !important; + box-shadow: 0 0 5rem rgba(0,0,0,0.8) !important; + background-color: #000 !important; overflow: hidden !important; } html.debug-mode body { + /* No Modo Debug, 1vh refere-se à altura desse container simulado */ width: 100% !important; height: 100% !important; max-width: none !important; diff --git a/dados/config.json b/dados/config.json index 32e2b58..d92e112 100755 --- a/dados/config.json +++ b/dados/config.json @@ -5,11 +5,16 @@ "texto_botao_iniciar": "INICIAR", "texto_resultado_parabens": "Parabéns!", "texto_resultado_acertos": "Você acertou {{pontuacao}} perguntas", - "texto_resultado_derrota": "Você acertou apenas {{pontuacao}} perguntas. Tente novamente!" + "texto_resultado_derrota": "Você acertou apenas {{pontuacao}} perguntas. Tente novamente!", + "transitionDuration": 2000, + "transitionBackgroundColor": "#FFFFFF", + "feedbackDelay": 4500, + "initDelay": 1000 }, "imagens": { + "transitionLogo": "img/ius_logo_branco.jpg", "fundo_padrao": "img/quiz_patternBG.png", - "logo_tela_inicial": "img/quiz_LOGO_TITLE.png", + "logo_tela_inicial": "img/quiz_LOGO_GAME.png", "logo_tela_jogo": "img/quiz_LOGO_GAME.png", "logo_tela_resultado": "img/quiz_LOGO_END.png", "logo_patrocinador": "img/quiz_LOGO_TITLE.png", @@ -17,20 +22,20 @@ }, "cores": { "fundoPrincipal": "#83B81A", - "fundoEscuro": "#1e294a", + "fundoEscuro": "#83B81A", "corFundoResultado": "#537813", "textoPrincipal": "#FFFFFF", - "textoSecundario": "#263D6B", - "tituloCor": "#A1C633", - "btnIniciarFundo": "#A1C633", - "btnIniciarTexto": "#FFFFFF", - "corAcerto": "#20386f", + "textoSecundario": "#537813", + "tituloCor": "#FFFFFF", + "btnIniciarFundo": "#FFFFFF", + "btnIniciarTexto": "#537813", + "corAcerto": "#537813", "corErro": "#702e21", "alternativas": { - "A": "#cfd6e2", - "B": "#cfd6e2", - "C": "#cfd6e2", - "D": "#cfd6e2" + "A": "#FFFFFF", + "B": "#FFFFFF", + "C": "#FFFFFF", + "D": "#FFFFFF" } } } diff --git a/img/ius_logo_branco.jpg b/img/ius_logo_branco.jpg new file mode 100755 index 0000000000000000000000000000000000000000..1afbaa753f861ef0ec0e86581b6d773ca9d970cb GIT binary patch literal 22216 zcmeIZ30RZY_AeZ?;w(i3RHh!NAW*;<=CQ3{S_M)JAqoU4$P^}-!VFq#We_Mu1Og-q z8X!Or8A1pF2L@#{gb*Nv83KWXG0X`!o^yKIbK3iS_kZtq?{mNJ=?lrb*Ur1&wfEY4 z?fqM8ue~?0HwO6h%H?k_1H{At05Q=YU~e3tVHM%y2>^Witp?x_;A1vWY#-pDD0No! z`FMTj<9;*brs!EF;77pzegAeH`UiFJp!h#iA8GLeqR+?s5pnTDhYlY;yzju#<3|o1 z7e93Pkl6lDJ`q14epp=m@S#J8L_hymuf10Q$wT{p6#a=Q1NKRZ?UxkWYX&Ha>b-Bj z*vIQ1l?DI~9TpQmxbKq#`;UlzcmGt>Tv6Tkiy!^;#9^^R`$Y}ixBrs^;s+%Uo&1{= z@S?$2HHVe$ZUzOT(yLxmPf5$Ffb_q<<`5G0OJ-#?{q*O0Ft^a~yBUujKYh6*a|vn> z|Dm^UoOVvl((2xi1#eW{Z;6=5ifsAB_PsJ@8h_gM%d>tSRFaM zsa=(4HOqs_H>6vJ53SGg)+NMDkr;z9;o7=R& z6ws=?r%LHc_IuW;Yn6ei8o+!82#2+<_(i)s`(c!69aW#&YNB010w7+eij{Ur@C8~5+oHfvD_a2TnFG*77W%a%dy@5B6@lQEwp1rus zCFdaHlP@=oD)5Jp;A)DavKOK;wgfVpefy51i!m9;d-wiRno{#n21k zD?1&thE$DCTYO%7HQbvFIl{81TXWE!8fng6$Fj5YfzN+dsCe@Kf}U8Ygz-!jiimu~ z+hRH}@%hbe#E{Q)H{rQy`E{a{IeHqdnlQbqHeVNhh2_Fi?V;+TRecI?FpL?I*6Xbq zDXadctlI|o^TH_?jvM>nkK{N#WK6noRVppwujIUzfY! zXKWEY&j*u=N(0bH%=q18>vd?Fm1$vBlUWt>;%=}BbwNVknFMRc)z2XDq#V4Lb!T@@ zj&Bvn*z2KK|K`71E#K4$09l1=AqoVgnL|whk<2D!eL*pwJ6hmY8nOUM|A0zUsC!Ty zotYHoibeZ3U0rQLBoR;{sns{S=BS7)cSluadtLd*@uu+f`L(iK<1J8?8L;xglx>NHJAc4+YD?lpEO?{kkxV@ zXwP^3I%#W!s;5a*%}(uZ7`sL9ZaCUdk~+YKc>PdG1jWHDTN?b0S}SS_E@rdw2~^Wn zTUVO8T*Q02E5UejHusXv_@cCah2-rWTw12#b|%_*uwK=VD(lTwsG$XDOlPL`V2cW| z8CdO@+$36M9BW&78edSaL5G3z;v28$1M$~F>C%^jaA(9urv4@1|H;HY^H7qYV_*;P zlg<`;=&M5ZRqQY&ZPRTJkW*e0yBa$f?V*%=Nlt2vGrRdlAFw*{AAH2te1=k=KJ%R9 zI64Ge#$pqLwI@9$Sa@^^8ktn!O~9%dEFw8mga`t35D3Mo#DhSu8G1MHgoM5@zj_a+n#eJmsY{ z_w&ir5C3TJ>6~d{tjp3xqwr6+ZI(dy2jSHMc5^-%$Eo9oT?~DAmH1MJ3S2irJ0u58 z4_^@=3(oTBa}`u||B$ z0gkz@>Q&zZcV}6UqLr3f_5dI!S7^F5Mw^Y6%j2Ek?W5J?J%H1CLzQq*k?c3J zKFMU6WSu9$>|5&HipQplj5=(Cz9=)xCV`~#Jl-WJebsnAw#64qZ(4~J-+a0uO^A2c z1GERNq`8h_A5AMZHCbpza#fD91LGumyB9Pfy;y5s^*k9pWj;~U!x`N&zZdh}P7=eS zG=AD}3tX|-(;ocylD`%~Nt;&jwm)Nk2uxB6a%A%Zcd@^5%!?^xY_O+|{$381et(tN zba2k(2=o9w&r&8JF6>se=le9&6_Re=)JZ4`;aeo8WVuw zKgQTrS<@ZbhBJc~Tk`d%UHJMti>-aNxLN8PzT7Fmw;rJz0mVM|pmt=%=P|%;uSBdj zX)Bewmg|s>=J=gUc*^8JHc!VnQHb=xo7uhItm{64QOCl!;jUXNLS(@wykS$&0J9($ zYmRD7&xo1|&Z`G{7qD@QT}A^`X{vcM>BQ1((SzVzl9T2QN+QZk@2o==2%(S;k|{%; zioKXL6KyoiKJI&_Vb>!YU2bDgU|7QQT}M)>($=fM`8V*hFR`I}fQ>5#X-t-rW~g6T zPc~6IJ)_7OA93>ef_hJM300RaB_-z;`u2#M zyX7n(%p4%r?e7t5`lqwx6W#fQM;xeq;D!R>* zo*R+mN<%^_T82W*alQRZ#o614j!;X6E_C!^)GUVqDG$ktJ4d2Ox(Q^tG}Q1?F-Z~z>N1Og%0r*N zfZD^(w3YzENgtJMzm#c#S6^!UjA`+48Uv?Fs^wer4&5f&Q=TIYHDZ>r6wXI+_%G zFFZ}5S4{IL)H~k;6#;n|;JIpMI2+0)Y zmfg;^?@T`1ot_oNjR)>ho$Xx4Kd5q{hO3sHu;5OVGj4cgje3Q30TfgtZ|b*e(s#?v z)18)?oQ@QAaIh9Fs%1XRavP~pgOC!($KXA%P1UB8oQ-)1rP!`J^qbJ%}8^gpp~9Tv@2E8{)=+PxbV zzH1R*4*olRBf4#AgQ8$@@#+Br>e4N-+vo25gQwWi{8{bHiZRz-e!hj&wO8+oG8ddX zbYa#TTX0GHsH>ITkuZf94|g4Ar}LjcGb;QXgY~qOS)h1LOFRv_(YNjYEOJAp(iN!Ffe2V^} zBVni<1~Jo7b?3UV^c?p9+}N<^4XnO){0q36)eVNPxq7NFo2k&}SDLAIkF+aQYdl%r zf5%DvyN_KGQ;$(Nvw0>09=T!KfUFF#j>>V+c6Tl%_7!lUyY1&E9>4F42x|79tK>WT zW|N!(gIKg;VlYNf_nyE@&wwmx`xsmxfXm}#Uz=67$5T#id#xD|+x(nN*lzR(xMd6Q z+pW~;hvWMhg0$wToZV}SBW+$TF0h?Pg#Uf}8RpQ2{ z5qQt~0<=$Zgp4L8hTSfKE=kjgGC^XXQ(SzcC2Bpyc@J<2qsU%j6pl*h9(OuBqga{w zynCF!tlbeXTuBo*`+;iqWwThQ*DO3ry43uvR;qT3vtfKz!tC@HBhJKZsI z@X0@P;J^0$Zvf*P-QS~++KR?NvW{Qjs<*pai~>UG^yOEIF<%12EM(tdoQ<|yhFsX( zxU@rZ|4tv(i4ZDo6c){V`+ZIKJHI>HpS<|BM*F4YslLy=j;MbCX^a}5&~@t7`yv%b zO7={(^PHYr%c-`r4kkW85#Fy@IXAM@u_uVnzV{uneOkytsi^F~){@zth0^Gu6Y~BIPe$IG^w?A?WmY9$U$b?8ddE^+qL*OmF_GpI|Al-h{rfk`eub)R0;~8RESll$*Jl>bV*dWxSM;D zgSu3=3Vo$HKIS5$R(!lDbb&>zXo>AD2VcRF`Fns9&9?fXE2$e?vH@lN%^Iup5vw5g z(Hu^M+c3yN!;P!A61zdE7Y_Q)eiXR50{m-gSZ73Ye|0_x-hzvyrQpAJV~OUO5L~MV zz62L(8D98qOE)&B8pVH4dE)O+dODKL>0-%UqJ7bWV@pF>w}ZSfP$~1B^)KC&RVeZe zO-dGCxu5;ooByS|%I}SpXJ>zJ$uQxg2CS@FyRB+qrTGa$+C!D^CCo)!u*p*pZFzwk zS0`k>3H;;nf2Z$fHN;CqQ)#Q8zi?#V(*II+-}T=rBsu@wr3c45kwOXb2Zz0(tmeY- zNzrS!_=K@hGW_v*ij6&ZxjG}ha= z*wYtZ#~TDT05TEM{P$ghXH%1d*^V>!%X@+fu~8#WJy}chGb6ctt#vvrt`H9I!zFUX*IDb7t1ZKy=n@ypLeP_OCrWA zE-+tb&$onjq9EyXUIdUkIj(NU{-$^jFxn&|7@gWu*=XGZlpS>yWK+&GO`c!~li>oF zxK5XcqstF`_W)Lh;jcQCTHVpb1|I-vew#m(Mv8 zumqnvE!k8wPwC*Vj?#lyMs9p*BkR_8}nvuQ)MFU zr^X3j1It_P6+ln>vt_3T4H|D=^+nvTuV$6r$KUE!6u(?(Yu^%fgD4wtgSe`dR8%3u zN#ydKkSDe^6m<;Ud2cp;v54}EdU0ZF2N(s4Z&j!e$W&}M{99|Dzgq;qhrEl&@GU;m zPFr_d6G{1@iR-qOD?i$Qd{Hg}-r|=JmUuvBe#5$9Y-{R))DIm3Df`o+>WE10D7vy_ zt;)F>b-rnLqhw2}=tJrD(nJ#}+5DS5Kzw1}og1QFIcD9A>hTKHiE~pn+j?-0z71as z{}6@%ThccxYM1m7D#qmoc5f(u@0KI{h^^}k&xdDH=WOP~npd!uVabihVpq&%?w?tn zu-F)EshCzWcn?_=KAqn;6z{2XIdJoB%^skDz6XF~t7Hoec5e>t0jS75KxrRI7~Qw~ z;A8*nn=Qf_Ty}KxjA*GTP&Vq^&~kl0iXGl?q1DK1IqjE#(q5kLc-05=>3sXXM$|KT zxk0EFj`6ZoUv3!Gtg&=g=(3$TN`d@>t;XJnkw3re^}?)mGO|Km?)#6>x-k3VR+s|R zruV{%o&wzBs5Nc*JTE75`zKg3YBpiIyCJUuJ&}BB+nbAbZybwNt9M(7OS_)wUAN}M z%KN6HjW-|%k=0Pn1)?yhkPUPHx*S@NY7WkA*m4-Jis^=hW!`J){@EEmi7E;)iRI;W zmMPAG?$<79l6+-4VeQ#f$K7kR))hg^hJR2V8uuKOc zIWDx?%ejcT#MF1V{7c&8>m*4~Pi=CBLaJW*wuX}}>wOC4O>76&7yG=_k@2DoQVt4~ zP~3%@HssMeB-^tKOwK1vpMtil2p!c^?O(T>eY0`*dl`Xr(oB5;`;+?Gt?e6y3E`^o zm_()|9TP`(qsE>R+(+S6ZZ9=O`m8}b+Sd?Z>v!3FF0+%+?2Pri>C{lzX9O-$T+*8N z6j^e!J!FDoYg0oNDm84oAlWebtyKpRq!;^edain;(krVJ7Ib3c2``pZf7_>Ty`NGT zaNL-%j!G^WA1SOgYSFuO(*=*#oSw>I4?JlcLAZp_F#=O|)+){H7l9zB`S|kN{44zx zmEkU=ny{l%b2{Fnjq|C4Y=rCuoNCLEr%^M%7<=Ta*ke!PEl03U6$vKffTfDWXfJjx zsV-O;J|{=^oupZZ6?ApbLV~?Fv~3JGE8P`KN|jkq)A_V-<;P9tFhNoZbE$E=A>v>D zHV6M9C8lKTESz45e=ED&<^LIV^?47^rEM1&-`PLZxYf8od70MrG$nBVu{q~{V3_>vC7|x)tKWF8+FP~-Mq>k8 z@5m8tQk231%runUbOlJBfx7U74cr~OihykIo~5KEedm?jzms(;d^l2LICEI|OSi5t zE^fPev_(??3r3qwd&w+5k3IEcfWApKCaz+s?@Q?H&wx;2%AhMK2x41^J>S_IcoU{r z5n80Uq0`!y76~kfY=)G|?*T|hB91##TVjiLP0?JTzPR(wNT#0mlKOhnDebOlI_5~- zN+4{pAklh^U6)V!Zf$?O*Bt=Blrh#uO#AUUIA6ITdO46KgyaQQoM;j^Ylu0gVLB&0 zIhq`|xDqoNBfkWQAdSJfYO6ZXA6(9F`twxex@sT6Lta%3L1tWvK54L9Vh&$6$o1bJ z4){c2&EC}Ib{p&dqV9n0=f9^8_<^I&xS4!-cbGN{6GQ~L4tHT`vtQksThkCW7*_B+ zd*;^mwTWaKK^|)xRT=lTD^fH?1^I4)yHj&!=0`(?~<2L#T0#5vE&9QNCve{jpiCkC2*w8C6rR|$*nJu#$ zZ)Zu*;b|Go3iSS0LubQA1`108*GI;?YlP!&=#uQjB~Eq%n_e<{QJd;U4-bHyva>Ra zn$KCZI@J}f$)0z@i8y9n5ol~SWwkcy2XK2t4vJ6(gNvwcYL#>+%~n4-Jw&l(H~!kg zhxou-Jy{sPwx8vj9Q$ix-PN_9nHC=iu;Y?j)?X)?9W{Jf&icG#47n;r2;?9##jkL87 zZ$0+Zb|S+RZahSq7}spa4Ne`B(4#@_!*q9iut|qV0nv=}SU2S6oJ&7#T;do?|D2%- z_@=)CCB-t#yYR{f-R)>r9)|?WL35_3F@tfK^2*vcN}7vyP0jjxxf|O9#aEEEC8$+p z`N7hdgP%P$--v&KSsAIz_@GoMTFcv-T*PTbH<5fMW)klgHPHfuh4hf8ykqMISD9v+ zZ;l7GJ@Gnics1*?=V)6+LM~WGKhM-Z@T<3ER#|rd%rHAM;P^>Qm^(9xUfwo|{Hge`PIi#guqgjhHg2!J(b~7%{m1Y$clsgDTPKM8EikE-ei}+2We@p$J z#geB>UzZMS{v7fUqf2ZW-)`KmV8~fQuA6@@KdF|YwYV8qaivPxd-oQl!kkW86je#v?zb}&|2LN*V$aWlG0Un=qUl$ev` z$WPZ(*Dmf0-Ik7bk%w=9yw3GVgElnZM zQE0asvj-^F(O$f#6q9!U>E*nL<$vInp6xrj--%89iNbS~D16PPDD2XeO+&khp6{bm zTUT8S^;pdDak?XJC0TwCZbvN&}X#Y(1 zmA&3Z%qsBP)!3LRNkn0SoV|(5%hlv?W%pMp(IA_OtgO0~6@qF4hbCzzL^SmJPrG5SKxH%6_HvreN+ z0#~tALiplDEyZBnA+2?zl8AToKH_r%aD3ygx!(GN<)H>v9(pa})Q)S?r-gsWlD)hV zW6Q>2e;M*RIAS|e93^(M>Xm4`_%69K+umF&>`r$v+a&V#0BYR^j0djw6i3WYW-5jz zEibk-g>RV$HJ*q7m^%Mq*j~~6<05yLd}rTpcpvSjcJlYszFHN^u}X#6Tc7-X3H$8j z?+3P+`#QIk}G#?^{BdjJCFiojwJoHCESGo?Y=x#$Z%lvWtp@0RzIh2ixLJ zNY)N)h-4-5+Cv=bHBxus*3{rs7fL-oZR-)S_wBtic@mT6Y-VK&j6y7%hLLIm>>aal zWwB1m(?b^)tWlPe9yY^~sUkm}ZS35gpe3=|rL08bo#f&wzAY>F;f#@*c{G&tk^dyM@! z=oq;Ce8M7vs5_jx29pGxlzpfif51#qQDXVzh+<|VzV!YMZc!5y2yfDxK;TKl0Cidz z(?OUSjOXB^^V{7^CFSQI;a>HvaiJ%><8t#8vG>yHTjqA-X zq=+fZDn|e6`!d8t%lZWGU}`w=ojehg(fW8}*8={^y-303 zxJz5}y}Vn?&nbHV3Hs7$4m(b$=}U|E@ZJrKmWz6hyMz0A3@{oYHR%>QCkiI+3_HLBFS7 zX^LQGhiIMo(iZ!5#r)eO;f$XU`}I*Z$Wu6fyd^$FKOXW##$2><)AA=Ocwn0KXX+}R z1Tg)Fow|AMpGIn%dt`;erH#ht;fqk=Vb_C4Om8em1PzS%wu$!xPU!W<7d{@DlYT+) zz7ekF6I}tG_gdh-*Dr`pX)kXv0D^pqYK3W0=<@~j(aVz7ZT@DIM+c5B3YB<5*?@AW zXJCq~+9k$XF6HVbV?wm6mNV`39c`t+n6&K?x`Ga%4FcinoK72H1z{tFqGagbMrk^$ zz1h;QrzU3$uui|lAC{7s@0_>D*P|Md7;Vv|?#x|1o8M59hVYc`XEIK&0xb)@c<80|jWg9`6In+xFwHk~E_S3r zE)zB=?Kuh8b79i-x`2}13lQ@V*afs>T;W~(_$247XMpO{yE(q(3D2>qK|<18>1#?# zMw&A<-7~Tchx1fo3*EQKMyM#kCicci6ezTQl%mM@i#0FZlEePAWw6B|TWAYhug>$m zN!Z#z=bSBizRV;iXsv!bUA_csee~zEJtsC3t2dulhsJVW@|}!p@0Gi6_(k{Gm?1TA z$`?ZgmlQQ}n*02R**5l&$3|_2**Sy1Dc!%c@3+K3nK|fvR_zIKzhFUOoj=V&unSL7 z8nuq*^|JG#dkbOX0dqyAdc&{Yrnu07iU@7K!GwB3+R;Zn4fk24uD*AgEQ5v!?*70x zX)(rumqTIlz4y~c(!N)zs_Mh0f^*Tc0I3l+2ZaNJZQyL|(NGiT31n}DGnJDXyO{kl z(uuA34O%-y7;5lMKq5I+d4@ei^u^SK(g-)9_H9wA*Ka(slNyH`Xckm#dDI7jrDVdt zMti|H8ihqxL5oG&k3CP85j>_X+gz`G1EA1;*VdLlOeb?~e?SAI(Wa!Kwb4OG3%QZj zkrJOL>dy=T1|y$rGKQ4ekgKR*U+Nf?8+ZQe)IVe)^S_*OxfVqqet7?T%l1H;NHELcuhSaA zZ$1>-nno;4FjmrX*@CYk!(&eGOvPv&(Vc8d?beDvzttGuCsuGrLiSIllJ5k61_xf( zh+b~mrAr@8Q`7E=&oW#w15CzTpUrsH2((&Ap;ld3;&(g>Qy<<5DNV_MsI!5qp3;rw z9M!0X3A`E>-Zc8Pi*D4}2CKpKV1A>tuYN?zv+IdXF84D7x*iTG8!=#pwL3+(>0DX> zwl+BvqHW*albxNoxCg+xn0FDMA$#;REubK==L#V>!C{{<9BL)s! zsl0ezgt(doDRw7?MtRv;?8}%dYZMgtzn_D{cju4g2SkWkwyE^>XXAb~d8zg#8 zf$z(51qH(&JxU#qw%m7cW*b`@Ys)YYvR<@0ZzG1hYI7ENa3AcsP!+af}!MdrvC9GnNF??|@C4ZN^BZG;mqMZ@yHdr2hU zpmCA)E>CeI1!%6r#+TSZ+=O1`x)rmf7TYYGYAqy0eCQe5_tN9} z_u{YibkQyrKDN!za=@m`H+CEmL~M}Fx2zx&bNPQ;Z`(F%&IhZ~6|A*d-15Wa9zo9M zHr1@op-B-Txk$b<TIHM_jRpFgs>yD_Ii_1AMV+)c1gwkFq2lXkiZ*rycrT0^ z*qm~0fXk4kNrUA+`y6rSS2-Vp{im6c7xtfsr!;?Ov%JDakXg7)S@7pPM(;yky0bra z43ZN2bQe`&;H64YJYde4`0@N7vhGtGuu`PCqN&=P*Bco`yyBhfej-ElAbR)o`ts7F z;?-yHv^cGuruVBU{P92WuHC}`BxFsG2%ZT&IJd91C>^IXyGPdcCh`7YRzC?C1KblP z#nyAi+m35nMqQ0==juU5L&>^S!Ls_R2XTqK3>dw>~{tquHWYa?_h$NUFV3YOb$`OH{0dN0Oedzo6T5jg9m1twC<;zN7y;#g=@Uoekm@5C_7 z%_yC;-tyV%dE!GsdUYr;A*989h+oIxpWi2ARo7$Y$r}A*tu>6UAtGCQil$KItEygA zY`KyeZd@sYPY_CfldD+t*u-r5f!DNB@dfcyAxZT+TH3VsV4D^*MvLel1~5vEn;1mO%cIo=N`DpaQmnHc=Djg z+_K>n4w6Y%Th=KseN65bLUhS|2M*GNf91Bl)&M_Y5RH3q$w84HfdsK5Rcab;k zlpB7}CB$uEBdE=qGftClfPv*hnlCPG2)jc!swy}bl^X-Odw{^@{a|9LcO(#I-v+gS zkYQ%MU5M-GGLNAZaG;0XpuKhU@to)(iWNtBy1oGK`*5N-Z{ntrl+>Bl?4J*Y{C&?_ z)Jgxpa#HMnxYjgqL;mvYYIFYn{c&@W?@Ihek_T zuB@L6(S`~4?;=0OCrkr_lge2&K=Ui*bo=;DiB-OhJwpQ8Z3F7K!cuFor}P=bj<(STp96lH=^a*Sk*DZ=ZaotxiH0W9Jl zFejbHaT`pz)c{s>yH#lpU@>=V) zF#Yyw(5=})S(07x7~Dp0;2o}S8eeUwC8(D!EbJ>Z-+$;Yz}`j z{@6j^UpH=uUK>ypP#Olg6{}*|=N34Wy1PD%*;JcNSc_5>DB${FF8R$v+AHkgLQm_q zj4JZw(sp;o6eCQuMXhsx0L95CzU`W?K&0(Uxuj;>lE_^dZZBAbj(pNj0iJ3znqGT1 zEznX(SG-|Y@%QbFmu_(hTa}`a614E?AP_jHz1kvSnU)gGP*SrV%yv{e9@?3JR@1pk zgzb`&({<@c3dEw^OEIcy5P??5tJR)66#@e3ebHGCw(EG`)6@OF6l7p)((dcS&GWfL;D$jCut zC#Q1M!;p8H$rj9|5^tYq>g&=z^-wxP%2sL;Bdt-0q%hU&YH@^t&}g zjB8~2D0{Hc_Xiqf?jNH#b`=<7M-h}^o)1w!fvirAW2YriA!^)0pcUqmAHNNlg z5?G*)32~SEmOe`ggcL-A{j+hgp$~_INpPtPSp5Urb2(TzmV$EyN$u#t#2NlX6kR=d)ge{*iVtm1MA;!ij@*- z_+~Sf))jl0CW<;#dLgWfz;m%`jF~_$N9|T>l-8P>goWSLtG~MT^H9EG?PbpjYr|o`I2&TBYlT3Q;ZPK{4I_n!KR&qfr6}( zb?NXgoUcUoII!ePimht-NFMFW_5bqCrt}>3x>oB zpJ|U4s!3>!2kxu$dAaD68(EJUE&|!(>WyHsVI9PDU_5sIri@Z)o;R!Bp2^RE8xIG;K;&j;!w#z?0 z$37NtV&(+jLAw=ZXC@7nw(A1o%%IN+3`;7=dKqxR86dWu>lNxtwt!WYak*cwWAlA` zyByfP426I&_v!1Uy;IjQA%pgj(MAyDceh8Mc@D9FDY$@u$yz>V%Q1-nUrVksEl`tE zB?(G`y|B+JC>?JsYgLt_RZY}hy1ALnB`&^+58eorBGKbpjHsY|2M*18wM_xkqX0C{ zU$1}#IuLBnB{`7;xTl|h#l@X$PnyezO7#ltmSTidi`ccMc0<>VgFRfSjZy2}!uxxG+wXR+nBrq^ zPv@C0|MQuiKRgrrT+u#itXnB!(>&fA+qmsDEw8h4kG-C_vxtkcd$R|qGw)5)FuUy~ z(Ga6#Q4JZ51+ApY3SO`7SPC|17U##~hn0N5nTmCw2dqE1Jdm&o@BABkfT3;I=#936 zeZmX(t(yfZO0`L|IZ1^BeCd7x9(TL;Wj1!Ju4qfN z=ch(WpN{bv==^vHLO`2(ehm}FWLhjC3^n2m+~kmeokA*$hRiYNoEOCNvUtCtbmfXM*N0 zrKrTt<}*PjQyujuY50PNWjAv0cwbu0iD#=-{rE=Id{XhYhs$Ht$RB?Gv2;@Q>0qn> zy?7mqo3yl+<3uYcq9Q-Gz2D>13VJ4_+PY)eYRIRssvJ2T0(bB#RhYWjzh)Nb=K;G% z(v5`%dO}@8wz3ekl?50G5|@kOo9NGML@z|%n{a;wi93^kchgAHM0-)}?ch2y`0VK~ zteeAk%rNn%6&&OG&1Q`(!wXclo~G7V_$%(1PDHaBn<34|9`b!Ld~(KuQ^hLZwWppr zPxGyJzBtuaQqnt&kRY^rT!ln94vy=|+C8y-vb-`)orJr^>oJ78`;O_gm0mFPU z&GtEdsK(8mG5;+7xZoJ?Lcoo-_R($L==cmaSecytc&4nOI3XL&9e&k{e;5se_*u4a zC@zRQ58y>}aI-7LX!V@zMY?s1t|i^9rn3_j&PH!Wz-;VqGj2i=dUh}qi?irr0=mHc zaaLM4x&&`TGw*n`6#rxoAhu~0A_uJ`5(2e)+%R1&6pgAVA9P9T+}XGseRn099@kpq zJ{ZijFw<6q!%i`A=<~Sq1=$>$4N$(YR9+N4ow^pBuyJ?pr!T*husWJdX*=kB+x6=E z)VW;eKpRE?%O0X}fk#gxUZ}8<>aPqAJ48nLl)l7!W=6F|$s*cLB=4S^f}T;j8&Dt6W&)Beq*uZ8;$!j86z`SVhtCqs(3+cbM%Ei8 zgxDmFEx>7#y<=*4TqcC+k}cA}_JwBs^0YUE&zE&BcAt1VD3=k!dbgd)HL#%!lfANx z`DNLKGJV0^HHJ#VaX7YVBw?4jP~QW_r0mQ;Gw0Mi_uq|1doo_XOIyQ6dbl(6gG%OC zNM4H3Dt7&xBxKSTP&45WE<1J5>{ZVto$uZ?Js>PIoQa8v)}jMsYjVh`u+oZ`n#pHJ znh=cyEyXM4j!C5T71H75>RJ?I0DVGyU~pR|pIEJMaWwc%?^(&3M9DdoHwIqk3gsb9IAn;*seg0BDBHh6_I%|Hi^QZ8dT*}ubOZ0SL%98k&bQO7d8)*^`eBwJ7B@v2#)VG5dMqL zj~Wy4$7@{Vd^av!bepkF&$4Gx!vcyt+TG%wN4dWoiIr^EDC%feH4$XwY&yO5n#~=x zZ2wTx>D`o^uHYN4KHX1*0oTeJu2%6i*Ls>pFgq|7_ibTlxtFc|2vMQMx#>N8rRS9B z^xa&_ndXVnDp?hb9^~5o<4uXCAV!^kX}4lwKtsNc>Qr||xg*i+YNb4f2R8z1o}ohG z68Wm`c_GLnX9dZRwP8pu$R^YlYCWH}Y&_v^*_!>~9zF*boG%497XB&V#Fw9J2eeak zqcVfBJp5@~k~g;ieLiQgOJ+7L&Kqa+az7)KtTZ1GXBN*_=-=3J!ltqFpwJpg^@X%_A@%KeX*{4JZ$3fKeuv*@bmfa8p( zXSAo+WRB>#20*NFNv*Z(S$9CQ`=@MUl zp&udY*-f7JHf)GP3bA=b3a+oGGhAdo?_A}g@%U0xPS(Kw@vZlTLjK%n-v!Zdl*mI{ zEV|?iE=lYGzS;n6#s!Ivol&9!`Nu2-2M4WAIenZwME}OsqS-@Io=mmTZ9D(q$;SaC zmY9HXo>0s3i>WmKHqM+3_?MOVR5=nuZqynJ7dPKUnwS^^}6PD|Lo-=R3h7k>kfjE%(EzPhrDecG$lJUmi$`# zq`yh1BeTJ1aLC?n4DKE{N3#zzRV?2nOEVy=SHs12%iRYm19BbwX-N7h{`sl^W%Yy| zM?Y#i+PyaVgD_oE1k@7}7A?Uo$L@&a0|ZKgH3~G+uDMz0zT7|Ar<Oaj)BGe3NN4xxYYd zAnZ%YQP2}Lt2{i1z&Kv+vkc#+SUAwt6V@NG+Do$Hs1hiU^9t)%*s8EZRPUU|W5^vk6gC^S1SDiwS8 zxzCV`-sz}-6RP6pn)b^cJlj%l;-(zw?#9HWu7NY&ZNG9;RyMK>7B%(%!5;ZIOaKy{ z!zSTima&6NGU5Bd9@^@84y!T>v)1NM?hgR_KTJZ3a5iQj`^WDlh+_P%#1J(&)u*YP zdmS@pq(7TO5}B9YePvWdOfytiYhtDosBW!>p2dj{Qx<68iaB)a=1BKP%`{-Udxk5^ zzxgdM^Ne%q@pkt*l6AOUmpROoMg&{}-;m(k)_2@USWzE8X`y`E~Qvb6H zT$X2Jxb`?-Z6>Rc~G%?(ClJv_TlO!Z!@W@f-0y5=9P5<^Nx zDt57(TFj0#XaOFeowLcGe42X{H}InybS7BRrDzO}!L z+#m=ny^)_yPU8EvVM3)kuKT5~y>3!)8ps(~pT|X_+8pTv(_QN)^q|tBqioi;iHS5R`HcPd7qyd}!l8Jc z3$-uMe*sU?{eIf2qc)Nb0s)z+YIYp(cD&5^kf{9VAj)wRA z5XPBIoANd$UdEh3DnwOY(9=@nhV)bvA#74T8KtE>#nZVVQ&@*S7?zaWbNa5!_oM*l4BK z0ysZssDExNi9&WQTkyp|8qEnOOxhN%FofLD_yu9FO905K$iApHcsyVO=m{Z zaAB&ED1J2VDQXI;)VV+gJ&1F$ literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 534dd11..37acc5c 100755 --- a/index.html +++ b/index.html @@ -1,109 +1,126 @@ - - - - - - - - - - - - - - - + + + + + - + + + + + + + + - - + - - - - - + + + + + + + + + + + + + + - - - -
-
-
- - - - + #transition img { + max-width: 50%; + height: auto; + } + + + +
+
-
- - +
+
+ + + + +
+
+ + + + \ No newline at end of file diff --git a/js/controllers.js b/js/controllers.js index c70cf01..6c1f425 100755 --- a/js/controllers.js +++ b/js/controllers.js @@ -42,6 +42,9 @@ angular.module('app.controllers', []) // Carregar os dados de parametrização global e aplicar ao tema $http.get('dados/config.json').then(function (response) { S.themeConfig = response.data; + S.transitionDuration = S.themeConfig.tema.transitionDuration || 3500; + S.feedbackDelay = S.themeConfig.tema.feedbackDelay || 3000; + S.initDelay = S.themeConfig.tema.initDelay || 500; console.log(S.themeConfig) if (S.themeConfig.debug) { @@ -95,6 +98,7 @@ angular.module('app.controllers', []) rootNode.style.setProperty('--cor-acerto', S.themeConfig.cores.corAcerto); rootNode.style.setProperty('--cor-erro', S.themeConfig.cores.corErro); rootNode.style.setProperty('--cor-fundo-resultado', S.themeConfig.cores.corFundoResultado); + rootNode.style.setProperty('--cor-transition-bg', S.themeConfig.tema.transitionBackgroundColor || '#000000'); Object.keys(S.themeConfig.cores.alternativas).forEach(key => { rootNode.style.setProperty(`--cor-alt-${key.toLowerCase()}`, S.themeConfig.cores.alternativas[key]); @@ -139,7 +143,11 @@ S.derrotas = 0; $http.get('dados/perguntas.json').then(function (response) { // Atribuir os dados ao escopo $scope.quizDataOriginal = response.data; - + + // Revelar a tela inicial após o carregamento completo + $timeout(() => { + S.setupTransitionOut(); + }, S.initDelay); }); @@ -171,10 +179,14 @@ S.derrotas = 0; }); S.correctList = S.generateNonRepeatingRandomNumbers(5, 5) S.wrongList = S.generateNonRepeatingRandomNumbers(5, 5) - S.showGame = true - S.setupTransitionOut(S.start) S.play('startgame', 0) - + + S.setupTransitionIn(); + $timeout(() => { + S.showStart = false; + S.showGame = true; + S.setupTransitionOut(); + }, S.transitionDuration); } // Função para configurar a transição de entrada @@ -187,6 +199,7 @@ S.derrotas = 0; ]; var i = Math.floor(Math.random() * inList.length); el.attr('transition-style', inList[i]); + el.css('--transition__duration', (S.transitionDuration / 1000) + 's'); } // Função para configurar a transição de saída @@ -199,6 +212,7 @@ S.derrotas = 0; ]; var i = Math.floor(Math.random() * outList.length); el.attr('transition-style', outList[i]); + el.css('--transition__duration', (S.transitionDuration / 1000) + 's'); S.botoesAtivos = true; } @@ -259,30 +273,35 @@ S.derrotas = 0; S.chamaResultado = function () { if ($scope.quiz.pontuacao >= 3) { $timeout(() => { - S.vitorias++ - S.salvarDadosJogos(); - S.victory = true - S.showGame = false - if (S.quiz.pontuacao === 5) { - S.v5by5 = true - S.play("success2", 1) - } else { - S.play("success1", 1) - S.v5by5 = false - } + S.setupTransitionIn(); + $timeout(() => { + S.vitorias++ + S.salvarDadosJogos(); + S.victory = true + S.showGame = false + if (S.quiz.pontuacao === 5) { + S.v5by5 = true + S.play("success2", 1) + } else { + S.play("success1", 1) + S.v5by5 = false + } + S.setupTransitionOut(); + }, S.transitionDuration); }, 3000) } else { $timeout(_ => { - S.derrotas++ - S.salvarDadosJogos(); - S.criarListaDinamica(10, '.circles2') - S.victory = false - S.showGame = false - S.lose = true - S.play('wawawa', 0.5) + S.setupTransitionIn(); + $timeout(() => { + S.derrotas++ + S.salvarDadosJogos(); + S.victory = false + S.showGame = false + S.lose = true + S.play('wawawa', 0.5) + S.setupTransitionOut(); + }, S.transitionDuration); }, 3000) - - // Adicione aqui qualquer outra lógica que você queira executar quando o jogador perder. } }; @@ -327,8 +346,6 @@ S.derrotas = 0; S.botoesAtivos = false S.respostaAtual = $scope.quiz.perguntas[$scope.quiz.perguntaAtual].respostas[indiceResposta]; S.botaoClicado = angular.element($evento.currentTarget); - - S.transition.removeClass('resposta-correta').removeClass('resposta-incorreta') // Verifica se a resposta está correta if (S.respostaAtual.correta) { // Se a resposta estiver correta, altera a classe para verde @@ -336,7 +353,6 @@ S.derrotas = 0; var pontuacaoDaResposta = 1 S.play('correct') S.botaoClicado.addClass('resposta-correta'); - S.transition.addClass('resposta-correta') } else { @@ -345,7 +361,6 @@ S.derrotas = 0; S.botaoClicado.addClass('resposta-incorreta'); S.destacarRespostaCorreta() S.erros++ - S.transition.addClass('resposta-incorreta') var pontuacaoDaResposta = 0 } @@ -354,26 +369,28 @@ S.derrotas = 0; S.chamaResultado() } - // Aguarda 4 segundos antes de passar para a próxima pergunta + // Aguarda o tempo de feedback antes de passar para a próxima pergunta $timeout(function () { - // Remove a classe para garantir que ela seja aplicada corretamente na próxima vez - S.botaoClicado.removeClass('resposta-correta').removeClass('resposta-incorreta'); + // Iniciar transição entre perguntas + S.setupTransitionIn(); - // Atualizar pontuação + $timeout(function () { + // No meio da transição (quando a tela estiver coberta), trocamos a pergunta + // Remove a classe para garantir que ela seja aplicada corretamente na próxima vez + S.botaoClicado.removeClass('resposta-correta').removeClass('resposta-incorreta'); - // Passa para a próxima pergunta - $scope.quiz.perguntaAtual++; - $scope.quiz.perguntasRespondidas++; - + // Passa para a próxima pergunta + $scope.quiz.perguntaAtual++; + $scope.quiz.perguntasRespondidas++; - }, 3000); - $timeout(()=>{ - S.checarAlturaResposta() - },3100) - $timeout(() => S.setupTransitionIn(), 2000); + // Reseta posições e alturas se necessário + S.checarAlturaResposta(); - $timeout(() => S.setupTransitionOut(), 3250); + // Retira a transição + S.setupTransitionOut(); + }, S.transitionDuration); // Tempo dinâmico baseado no config.json + }, S.feedbackDelay); }; @@ -477,5 +494,5 @@ S.derrotas = 0; } - + ]) \ No newline at end of file diff --git a/templates/page.html b/templates/page.html index 43002e3..81806f9 100755 --- a/templates/page.html +++ b/templates/page.html @@ -61,6 +61,4 @@ - -
\ No newline at end of file