diff --git a/tenants/plataforma/36-kc-theme.yaml b/tenants/plataforma/36-kc-theme.yaml index d2ca235..cb91d64 100644 --- a/tenants/plataforma/36-kc-theme.yaml +++ b/tenants/plataforma/36-kc-theme.yaml @@ -224,7 +224,7 @@ data:

Escolha uma senha para entrar na sua conta

<#if message?? && message.summary?has_content> -
${message.summary!''}
+
${kcSanitize(message.summary)?no_esc}
@@ -453,6 +453,31 @@ data: .entrar.secundario{background:transparent;color:var(--muted);border:1px solid var(--line);margin-top:10px} .entrar.secundario:hover{background:var(--paper);color:var(--navy)} + /* O conteudo que vem das paginas do tema BASE (info, erro, expirado, termos). + Elas trazem a propria marcacao, com classes do PatternFly que este tema nao + carrega — entao o que importa aqui e o texto, o link e o botao ficarem + legiveis, e nao reproduzir cada componente. */ + .conteudo{margin-top:20px;color:var(--navy);font-size:15px;line-height:1.6} + .conteudo p{margin:0 0 14px} + .conteudo a{color:var(--blue);text-decoration:underline} + .conteudo a:hover{color:var(--orange)} + .conteudo ul,.conteudo ol{margin:0 0 14px;padding-left:20px} + .conteudo li{margin:0 0 6px} + .conteudo input[type=text],.conteudo input[type=email],.conteudo input[type=password]{ + width:100%;box-sizing:border-box;padding:13px 14px;font:inherit;font-size:15px; + color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:11px} + .conteudo input:focus{outline:none;border-color:var(--orange); + box-shadow:0 0 0 3px rgba(245,130,32,.16)} + .conteudo label{display:block;font-size:13px;font-weight:600;color:var(--navy); + margin:0 0 6px} + /* O botao de acao das paginas base, qualquer que seja a classe dele. */ + .conteudo button,.conteudo input[type=submit]{width:100%;margin-top:6px; + padding:14px 18px;font:inherit;font-size:16px;font-weight:700;color:#fff; + background:var(--orange);border:0;border-radius:11px;cursor:pointer} + .conteudo button:hover,.conteudo input[type=submit]:hover{background:var(--orange-600)} + .info-extra{margin-top:18px;font-size:14px;color:var(--muted)} + .info-extra a{color:var(--blue)} + .ou{display:flex;align-items:center;gap:16px;margin:4px 0;color:#9C9A95;font-size:13px} .ou::before,.ou::after{content:'';flex:1;height:1px;background:var(--line)} @@ -488,3 +513,118 @@ data: } + template.ftl: |- + <#-- + A MOLDURA DE TODAS AS OUTRAS TELAS do fluxo de login. + + ── POR QUE ELA EXISTE ─────────────────────────────────────────────────────── + + O tema tinha `login.ftl` e `login-update-password.ftl`, escritas a mao. As + OUTRAS quarenta paginas do Keycloak — "execute estas acoes", link expirado, + erro, esqueci a senha, termos — caiam no `parent=keycloak` e apareciam com o + fundo cinza de poligonos e o botao azul de fabrica. + + Escrever quarenta paginas a mao seria trocar um problema por quarenta. Esta + aqui e a que todas elas usam: sobrescrevendo-a, TODAS ganham a marca de uma + vez, e o conteudo de cada uma continua vindo do tema base. + + ── O CONTRATO NAO E MEU, E NAO PODE MUDAR ─────────────────────────────────── + + A assinatura do macro e as quatro secoes `<#nested>` sao do Keycloak. Cada + pagina do tema base chama `<@layout.registrationLayout ...>` passando + `displayInfo`, `displayMessage`, `displayRequiredFields` e preenchendo + `header`, `form`, `info` e `socialProviders`. Mudar um nome aqui nao quebra + uma pagina: quebra as quarenta. + + header o titulo da tela + form o conteudo principal + info o rodape informativo, so quando displayInfo + socialProviders os provedores externos, quando houver + + ── O QUE ELA DELIBERADAMENTE NAO FAZ ──────────────────────────────────────── + + Nao carrega `properties.styles` nem `properties.scripts` do tema base: o + visual e o do `estilo.ftl`, e trazer o CSS do PatternFly junto so devolveria + o cinza que se esta tirando. + + Nao mostra o seletor de idioma. O realm suporta so pt-BR — e com um idioma + so, o seletor e um botao que nao faz nada. + + ── AS IMAGENS VEM DO `estilo.ftl` ─────────────────────────────────────────── + + Mesmo include do `login.ftl`: elas pesam ~400 KB em data URI e existem uma + vez no ConfigMap. + --> + <#macro registrationLayout bodyClass="" displayInfo=false displayMessage=true displayRequiredFields=false> + + + + + + + ${msg("loginTitle",(realm.displayName!''))} + <#include "estilo.ftl"> + + +
+ + + + +
+ + + +
+ + +

<#nested "header">

+ + <#-- A mesma regra do tema base: uma acao iniciada pelo proprio app nao + mostra o aviso de "voce precisa completar isto", porque quem a + iniciou foi o usuario, agora. --> + <#if displayMessage && message?has_content + && (message.type != 'warning' || !isAppInitiatedAction??)> +
+ ${kcSanitize(message.summary)?no_esc} +
+ + +
+ <#nested "form"> +
+ + <#if auth?has_content && auth.showTryAnotherWayLink()> + + + + + + + <#nested "socialProviders"> + + <#if displayInfo> +
<#nested "info">
+ + +

+ Precisa de ajuda? Fale com o suporte + © ${.now?string('yyyy')} Athletic Map. Todos os direitos reservados. +

+
+
+
+ + + +