Template:Campeao/styles.css: Difference between revisions
Appearance
CSS das fichas de Campeao, tema claro e escuro, sem variaveis CSS |
Paineis de Requisitos e Recompensas com a mesma altura: align-items stretch no cp-split |
||
| (11 intermediate revisions by the same user not shown) | |||
| Line 4: | Line 4: | ||
.cp-boss { | .cp-boss { | ||
margin: 0 0 1.5em; | margin: 0 0 1.5em; | ||
color: # | color: #16293a; | ||
font-size: 14px; | font-size: 14px; | ||
line-height: 1.6; | line-height: 1.6; | ||
| Line 13: | Line 13: | ||
/* --- Cabeçalho ----------------------------------------------------------- */ | /* --- Cabeçalho ----------------------------------------------------------- */ | ||
/* O cabecalho fica solto sobre a pagina, sem caixa. E o contraste com ele | |||
que faz os paineis abaixo lerem como blocos destacados; se tudo for caixa, | |||
nada e caixa. */ | |||
.cp-head { | .cp-head { | ||
display: flex; | display: flex; | ||
| Line 18: | Line 21: | ||
gap: 22px; | gap: 22px; | ||
align-items: flex-start; | align-items: flex-start; | ||
padding: | padding: 4px 0 18px; | ||
border: | border: 0; | ||
background: | background: transparent; | ||
} | } | ||
| Line 26: | Line 29: | ||
flex: 0 0 200px; | flex: 0 0 200px; | ||
max-width: 200px; | max-width: 200px; | ||
border: 1px solid # | border: 1px solid #c5d0da; | ||
background: # | background: #dfe6ee; | ||
line-height: 0; | line-height: 0; | ||
} | } | ||
| Line 43: | Line 46: | ||
.cp-title { | .cp-title { | ||
margin-bottom: 8px; | margin-bottom: 8px; | ||
color: # | color: #16293a; | ||
font-size: 30px; | font-size: 30px; | ||
font-weight: bold; | font-weight: bold; | ||
| Line 53: | Line 56: | ||
margin-bottom: 12px; | margin-bottom: 12px; | ||
padding: 4px 12px; | padding: 4px 12px; | ||
border: 1px solid # | border: 1px solid #aebbc6; | ||
background: # | background: #9cebff; | ||
color: # | color: #096390; | ||
font-size: 12px; | font-size: 12px; | ||
font-weight: bold; | font-weight: bold; | ||
| Line 62: | Line 65: | ||
.cp-desc { | .cp-desc { | ||
margin: 0 0 16px; | margin: 0 0 16px; | ||
color: # | color: #4a6072; | ||
max-width: 62ch; | max-width: 62ch; | ||
} | } | ||
| Line 74: | Line 77: | ||
.cp-stat { | .cp-stat { | ||
padding: 0 20px; | padding: 0 20px; | ||
border-left: 1px solid # | border-left: 1px solid #c5d0da; | ||
} | } | ||
| Line 84: | Line 87: | ||
.cp-stat-label { | .cp-stat-label { | ||
display: block; | display: block; | ||
color: # | color: #4a6072; | ||
font-size: 12px; | font-size: 12px; | ||
} | } | ||
| Line 90: | Line 93: | ||
.cp-stat-value { | .cp-stat-value { | ||
display: block; | display: block; | ||
color: # | color: #16293a; | ||
font-weight: bold; | font-weight: bold; | ||
} | } | ||
| Line 102: | Line 105: | ||
.cp-tab { | .cp-tab { | ||
display: block; | |||
flex: 1 1 0; | flex: 1 1 0; | ||
text-align: center; | |||
padding: 12px 16px; | padding: 12px 16px; | ||
border: 1px solid # | border: 1px solid #c5d0da; | ||
background: # | background: #dfe6ee; | ||
color: # | color: #4a6072; | ||
font-family: inherit; | font-family: inherit; | ||
font-size: 15px; | font-size: 15px; | ||
| Line 114: | Line 119: | ||
.cp-tab:hover { | .cp-tab:hover { | ||
border-color: # | border-color: #aebbc6; | ||
color: # | color: #16293a; | ||
} | } | ||
.cp-tab.is-active { | .cp-tab.is-active { | ||
border-color: # | border-color: #096390; | ||
background: # | background: #9cebff; | ||
color: # | color: #096390; | ||
} | } | ||
| Line 129: | Line 134: | ||
/* --- Painéis -------------------------------------------------------------- */ | /* --- Painéis -------------------------------------------------------------- */ | ||
/* stretch, nao flex-start: os dois paineis fecham na mesma altura e a base | |||
da linha fica reta. Com flex-start cada um tomava a altura do proprio | |||
conteudo (Requisitos 188px contra Recompensas 322px) e a pagina ficava | |||
com um degrau no meio. */ | |||
.cp-split { | .cp-split { | ||
display: flex; | display: flex; | ||
flex-wrap: wrap; | flex-wrap: wrap; | ||
gap: 14px; | gap: 14px; | ||
align-items: | align-items: stretch; | ||
} | } | ||
| Line 144: | Line 153: | ||
position: relative; | position: relative; | ||
margin: 0 0 14px; | margin: 0 0 14px; | ||
padding: | padding: 26px 18px 18px; | ||
border: 1px solid # | border: 1px solid #aebbc6; | ||
background: # | /* superficie propria: e o que faz cada painel ler como um bloco separado, | ||
e nao como uma moldura desenhada sobre a pagina */ | |||
background: #dfe6ee; | |||
} | } | ||
/* O título sobre a borda é o que dá cara de ficha, e não de card */ | /* O título sobre a borda é o que dá cara de ficha, e não de card */ | ||
/* A legenda e uma caixa propria encaixada na borda do painel, nao apenas | |||
texto com fundo. E o que faz ela se destacar tanto do painel quanto da | |||
pagina, em vez de sumir na emenda entre os dois. */ | |||
.cp-panel-title { | .cp-panel-title { | ||
position: absolute; | position: absolute; | ||
top: - | top: -13px; | ||
left: 14px; | left: 14px; | ||
margin: 0; | margin: 0; | ||
padding: | padding: 3px 12px; | ||
border: | border: 1px solid #aebbc6; | ||
background: # | border-radius: 2px; | ||
color: # | background: #ecf0f4; | ||
color: #16293a; | |||
font-family: inherit; | font-family: inherit; | ||
font-size: | font-size: 14px; | ||
font-weight: bold; | font-weight: bold; | ||
line-height: 1.4; | |||
} | } | ||
| Line 171: | Line 187: | ||
.cp-panel li { | .cp-panel li { | ||
margin-bottom: 6px; | margin-bottom: 6px; | ||
color: # | color: #4a6072; | ||
} | } | ||
| Line 177: | Line 193: | ||
.cp-rewards-label { | .cp-rewards-label { | ||
margin: 10px 0 6px; | margin: 10px 0 6px; | ||
color: # | color: #4a6072; | ||
font-size: 12px; | font-size: 12px; | ||
font-weight: bold; | font-weight: bold; | ||
| Line 190: | Line 206: | ||
.cp-exp { | .cp-exp { | ||
padding: 6px 12px; | padding: 6px 12px; | ||
border: 1px solid # | border: 1px solid #aebbc6; | ||
background: # | background: #9cebff; | ||
color: # | color: #096390; | ||
font-weight: bold; | font-weight: bold; | ||
} | } | ||
| Line 198: | Line 214: | ||
.cp-rewards-hint { | .cp-rewards-hint { | ||
margin-top: 12px; | margin-top: 12px; | ||
color: # | color: #4a6072; | ||
font-size: 12px; | font-size: 12px; | ||
} | } | ||
| Line 208: | Line 224: | ||
width: 48px; | width: 48px; | ||
height: 48px; | height: 48px; | ||
border: 1px solid # | border: 1px solid #c5d0da; | ||
background: # | background: #dfe6ee; | ||
} | } | ||
| Line 224: | Line 240: | ||
} | } | ||
/* Contador pendurado sob o icone, centralizado, em preto translucido. | |||
E o tratamento da referencia: mais limpo que um retangulo solido no canto, | |||
e nao tapa o sprite. */ | |||
.cp-item-qty { | .cp-item-qty { | ||
position: absolute; | position: absolute; | ||
bottom: -9px; | |||
left: 50%; | |||
padding: | transform: translateX(-50%); | ||
background: | padding: 1px 5px; | ||
color: # | background: rgba(0, 0, 0, 0.75); | ||
color: #fff; | |||
font-size: 11px; | font-size: 11px; | ||
font-weight: bold; | font-weight: bold; | ||
line-height: 1. | line-height: 1.45; | ||
white-space: nowrap; | |||
z-index: 2; | |||
} | |||
.cp-item-qty-x { | |||
color: #bfbebe; | |||
margin-right: 1px; | |||
} | } | ||
| Line 245: | Line 272: | ||
margin-left: -95px; | margin-left: -95px; | ||
padding: 8px 10px; | padding: 8px 10px; | ||
border: 1px solid # | border: 1px solid #aebbc6; | ||
background: # | background: #ecf0f4; | ||
text-align: left; | text-align: left; | ||
} | } | ||
| Line 256: | Line 283: | ||
.cp-tip-name { | .cp-tip-name { | ||
display: block; | display: block; | ||
color: # | color: #16293a; | ||
font-weight: bold; | font-weight: bold; | ||
} | } | ||
| Line 262: | Line 289: | ||
.cp-tip-qty { | .cp-tip-qty { | ||
display: block; | display: block; | ||
color: # | color: #4a6072; | ||
font-size: 12px; | font-size: 12px; | ||
} | } | ||
| Line 269: | Line 296: | ||
.cp-skill { | .cp-skill { | ||
padding: 10px 0; | padding: 10px 0; | ||
border-top: 1px solid # | border-top: 1px solid #c5d0da; | ||
} | } | ||
| Line 277: | Line 304: | ||
.cp-skill-name { | .cp-skill-name { | ||
color: # | color: #16293a; | ||
font-weight: bold; | font-weight: bold; | ||
} | } | ||
| Line 285: | Line 312: | ||
margin-left: 8px; | margin-left: 8px; | ||
padding: 1px 8px; | padding: 1px 8px; | ||
background: # | background: #9cebff; | ||
color: # | color: #096390; | ||
font-size: 12px; | font-size: 12px; | ||
font-weight: bold; | font-weight: bold; | ||
| Line 293: | Line 320: | ||
.cp-skill-desc, | .cp-skill-desc, | ||
.cp-empty { | .cp-empty { | ||
color: # | color: #4a6072; | ||
} | } | ||
| Line 303: | Line 330: | ||
align-items: baseline; | align-items: baseline; | ||
padding: 12px 16px; | padding: 12px 16px; | ||
border: 1px solid # | border: 1px solid #c5d0da; | ||
background: # | background: #dfe6ee; | ||
color: # | color: #4a6072; | ||
} | } | ||
.cp-tip-tag { | .cp-tip-tag { | ||
color: # | color: #096390; | ||
font-weight: bold; | font-weight: bold; | ||
} | } | ||
| Line 315: | Line 342: | ||
/* --- Botão de tema --------------------------------------------------------- */ | /* --- Botão de tema --------------------------------------------------------- */ | ||
.cp-tema { | .cp-tema { | ||
display: inline-block; | |||
float: right; | float: right; | ||
padding: 5px 12px; | padding: 5px 12px; | ||
border: 1px solid # | border: 1px solid #c5d0da; | ||
background: # | background: #dfe6ee; | ||
color: # | color: #4a6072; | ||
font-family: inherit; | font-family: inherit; | ||
font-size: 12px; | font-size: 12px; | ||
| Line 339: | Line 367: | ||
.cp-head { | .cp-head { | ||
gap: 14px; | gap: 14px; | ||
} | |||
/* Sem o filete vertical os stats encostam e os valores viram uma | |||
palavra so ("TyranitarExpedition Palmer3"). Vira grade de duas | |||
colunas, que separa por espaco em vez de por borda. */ | |||
.cp-stats { | |||
display: grid; | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
gap: 10px 18px; | |||
} | } | ||
.cp-stat { | .cp-stat { | ||
padding: | padding: 0; | ||
border-left: 0; | border-left: 0; | ||
} | } | ||
| Line 349: | Line 386: | ||
font-size: 24px; | font-size: 24px; | ||
} | } | ||
} | |||
/* No celular nem duas colunas cabem: cada stat vira uma linha, rotulo a | |||
esquerda e valor a direita. Nada de var() aqui dentro — o gerador do tema | |||
escuro nao entende media query e jogaria a regra para o escopo global. */ | |||
@media (max-width: 420px) { | |||
.cp-stats { | |||
grid-template-columns: minmax(0, 1fr); | |||
gap: 8px; | |||
} | |||
.cp-stat { | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: baseline; | |||
gap: 12px; | |||
} | |||
} | |||
/* --- Painel de habilidades ------------------------------------------------- | |||
Seletor em cima, detalhe da habilidade escolhida embaixo. As variaveis sao | |||
as mesmas do resto da ficha, entao o tema escuro sai automatico. */ | |||
.cp-skill-bar { | |||
display: flex; | |||
flex-wrap: wrap; | |||
gap: 6px; | |||
margin-bottom: 16px; | |||
padding-bottom: 14px; | |||
border-bottom: 1px solid #c5d0da; | |||
} | |||
.cp-skill-pick { | |||
padding: 7px 13px; | |||
border: 1px solid #c5d0da; | |||
background: #dfe6ee; | |||
color: #4a6072; | |||
font-size: 13px; | |||
font-weight: bold; | |||
cursor: pointer; | |||
} | |||
.cp-skill-pick:hover { | |||
border-color: #aebbc6; | |||
color: #16293a; | |||
} | |||
.cp-skill-pick.is-active { | |||
border-color: #096390; | |||
background: #9cebff; | |||
color: #096390; | |||
} | |||
.cp-skill-name { | |||
margin-bottom: 8px; | |||
color: #16293a; | |||
font-size: 19px; | |||
font-weight: bold; | |||
} | |||
/* Linha de fichas tecnicas: tipo, elemento, alcance, recarga, dano */ | |||
.cp-skill-meta { | |||
display: flex; | |||
flex-wrap: wrap; | |||
gap: 6px; | |||
margin-bottom: 12px; | |||
} | |||
.cp-skill-meta > span { | |||
padding: 3px 10px; | |||
border: 1px solid #c5d0da; | |||
background: #dfe6ee; | |||
color: #4a6072; | |||
font-size: 12px; | |||
} | |||
.cp-skill-meta > .cp-skill-flag { | |||
border-color: #096390; | |||
color: #096390; | |||
font-weight: bold; | |||
} | |||
.cp-skill-desc { | |||
margin-bottom: 12px; | |||
color: #4a6072; | |||
} | |||
.cp-skill-video { | |||
color: #4a6072; | |||
} | |||
/* Campo ainda nao preenchido: presente, mas discreto */ | |||
.cp-empty { | |||
color: #4a6072; | |||
font-style: italic; | |||
opacity: 0.75; | |||
} | |||
@media (max-width: 760px) { | |||
.cp-skill-pick { | |||
flex: 1 1 auto; | |||
text-align: center; | |||
} | |||
} | |||
/* --- Seletor de habilidade em quadrados ------------------------------------ | |||
Como na referencia: uma fileira centralizada de icones, e abaixo o detalhe | |||
em duas colunas — texto a esquerda, video a direita. */ | |||
.cp-skill-bar { | |||
justify-content: center; | |||
} | |||
.cp-skill-pick { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 46px; | |||
height: 46px; | |||
padding: 0; | |||
overflow: hidden; | |||
} | |||
.cp-skill-pick img { | |||
max-width: 100%; | |||
height: auto; | |||
} | |||
/* Sem icone ainda: quadrado neutro com a marca do lugar */ | |||
.cp-skill-pick--vazio { | |||
color: #4a6072; | |||
font-size: 11px; | |||
font-weight: normal; | |||
opacity: 0.7; | |||
} | |||
.cp-skill-body { | |||
display: flex; | |||
flex-wrap: wrap; | |||
gap: 20px; | |||
align-items: flex-start; | |||
} | |||
.cp-skill-texto { | |||
flex: 1 1 260px; | |||
min-width: 0; | |||
} | |||
.cp-skill-midia { | |||
flex: 0 1 480px; | |||
max-width: 100%; | |||
} | |||
.cp-skill-midia img, | |||
.cp-skill-midia video { | |||
max-width: 100%; | |||
height: auto; | |||
} | |||
/* Placeholder do video: bloco preto na proporcao em que o video vai entrar */ | |||
.cp-skill-video-vazio { | |||
width: 100%; | |||
aspect-ratio: 16 / 9; | |||
min-height: 200px; | |||
background: #000; | |||
} | |||
@media (max-width: 760px) { | |||
.cp-skill-midia { | |||
flex-basis: 100%; | |||
} | |||
} | |||
/* --- Escala de arredondamento ---------------------------------------------- | |||
Medida no CSS da referencia: o raio cresce com o tamanho da caixa. | |||
4px em icone, 6px em midia, 8px em etiqueta, 10px em controle, 12px em | |||
painel. Nao e decoracao solta: e o que evita o visual de tabela de planilha | |||
sem transformar tudo em bolha. | |||
-------------------------------------------------------------------------- */ | |||
.cp-panel { | |||
border-radius: 12px; | |||
} | |||
.cp-art { | |||
border-radius: 12px; | |||
} | |||
.cp-art img { | |||
border-radius: 8px; | |||
} | |||
.cp-tab, | |||
.cp-badge, | |||
.cp-exp, | |||
.cp-tema { | |||
border-radius: 8px; | |||
} | |||
.cp-skill-pick, | |||
.cp-tip-bar { | |||
border-radius: 10px; | |||
} | |||
.cp-panel-title, | |||
.cp-tip, | |||
.cp-skill-midia img, | |||
.cp-skill-midia video, | |||
.cp-skill-video-vazio { | |||
border-radius: 6px; | |||
} | |||
.cp-item, | |||
.cp-skill-meta > span { | |||
border-radius: 4px; | |||
} | |||
/* O contador do item mora no canto do chip: so a ponta de fora acompanha */ | |||
.cp-item-qty { | |||
border-radius: 4px 0 4px 0; | |||
} | |||
/* --- Lavagem no lugar de preenchimento solido ------------------------------- | |||
Na referencia o estado ativo nao e um bloco de cor: e fundo a 18% da matiz, | |||
borda a 42% e texto num tom fundo. Le como selecionado sem virar mancha. */ | |||
.cp-tab.is-active { | |||
background: rgba(9, 99, 144, 0.16); | |||
border-color: rgba(9, 99, 144, 0.45); | |||
color: #0a4f74; | |||
} | |||
.cp-tab.is-active[data-dif="hard"] { | |||
background: rgba(192, 57, 43, 0.16); | |||
border-color: rgba(192, 57, 43, 0.45); | |||
color: #a93226; | |||
} | |||
.cp-tab.is-active:hover { | |||
background: rgba(9, 99, 144, 0.26); | |||
} | |||
.cp-tab.is-active[data-dif="hard"]:hover { | |||
background: rgba(192, 57, 43, 0.26); | |||
} | |||
/* Mesma logica nos outros elementos que estavam solidos */ | |||
.cp-badge, | |||
.cp-exp, | |||
.cp-skill-pick.is-active, | |||
.cp-skill-meta > .cp-skill-flag { | |||
background: rgba(9, 99, 144, 0.14); | |||
border-color: rgba(9, 99, 144, 0.42); | |||
color: #0a4f74; | |||
} | |||
/* No escuro a lavagem precisa de mais opacidade e texto claro */ | |||
.cp-boss[data-tema="escuro"] .cp-tab.is-active, | |||
.cp-boss[data-tema="escuro"] .cp-badge, | |||
.cp-boss[data-tema="escuro"] .cp-exp, | |||
.cp-boss[data-tema="escuro"] .cp-skill-pick.is-active, | |||
.cp-boss[data-tema="escuro"] .cp-skill-meta > .cp-skill-flag { | |||
background: rgba(78, 168, 214, 0.24); | |||
border-color: rgba(126, 190, 230, 0.45); | |||
color: #9ecbff; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-tab.is-active[data-dif="hard"] { | |||
background: rgba(214, 88, 74, 0.26); | |||
border-color: rgba(240, 140, 128, 0.45); | |||
color: #ffb3a7; | |||
} | |||
/* O contador precisa de espaco para pendurar sem encostar na linha de baixo */ | |||
.cp-rewards-row { | |||
gap: 14px 10px; | |||
padding-bottom: 4px; | |||
} | |||
.cp-item { | |||
margin-bottom: 8px; | |||
} | } | ||
/* --- Tema escuro ---------------------------------------------------------- */ | /* --- Tema escuro ---------------------------------------------------------- */ | ||
.cp-boss[data-tema="escuro"] { | |||
color: #e3eaf2; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-art { | .cp-boss[data-tema="escuro"] .cp-art { | ||
border: 1px solid # | border: 1px solid #3b4551; | ||
background: # | background: #2b323c; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-title { | .cp-boss[data-tema="escuro"] .cp-title { | ||
color: # | color: #e3eaf2; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-badge { | .cp-boss[data-tema="escuro"] .cp-badge { | ||
border: 1px solid # | border: 1px solid #52606f; | ||
background: # | background: #173444; | ||
color: # | color: #6fc9ee; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-desc { | .cp-boss[data-tema="escuro"] .cp-desc { | ||
color: # | color: #a0b0bd; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-stat { | .cp-boss[data-tema="escuro"] .cp-stat { | ||
border-left: 1px solid # | border-left: 1px solid #3b4551; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-stat-label { | .cp-boss[data-tema="escuro"] .cp-stat-label { | ||
color: # | color: #a0b0bd; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-stat-value { | .cp-boss[data-tema="escuro"] .cp-stat-value { | ||
color: # | color: #e3eaf2; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tab { | .cp-boss[data-tema="escuro"] .cp-tab { | ||
border: 1px solid # | border: 1px solid #3b4551; | ||
background: # | background: #2b323c; | ||
color: # | color: #a0b0bd; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tab:hover { | .cp-boss[data-tema="escuro"] .cp-tab:hover { | ||
border-color: # | border-color: #52606f; | ||
color: # | color: #e3eaf2; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tab.is-active { | .cp-boss[data-tema="escuro"] .cp-tab.is-active { | ||
border-color: # | border-color: #6fc9ee; | ||
background: # | background: #173444; | ||
color: # | color: #6fc9ee; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-panel { | .cp-boss[data-tema="escuro"] .cp-panel { | ||
border: 1px solid # | border: 1px solid #52606f; | ||
background: # | background: #2b323c; | ||
} | |||
.cp-boss[data-tema="escuro"] .cp-panel-title { | |||
border: 1px solid #52606f; | |||
background: #222831; | |||
color: #e3eaf2; | |||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-panel li { | .cp-boss[data-tema="escuro"] .cp-panel li { | ||
color: # | color: #a0b0bd; | ||
} | |||
.cp-boss[data-tema="escuro"] .cp-rewards-label { | |||
color: #a0b0bd; | |||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-exp { | .cp-boss[data-tema="escuro"] .cp-exp { | ||
border: 1px solid # | border: 1px solid #52606f; | ||
background: # | background: #173444; | ||
color: # | color: #6fc9ee; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-rewards-hint { | .cp-boss[data-tema="escuro"] .cp-rewards-hint { | ||
color: # | color: #a0b0bd; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-item | .cp-boss[data-tema="escuro"] .cp-item { | ||
border: 1px solid #3b4551; | |||
background: #2b323c; | |||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tip { | .cp-boss[data-tema="escuro"] .cp-tip { | ||
border: 1px solid # | border: 1px solid #52606f; | ||
background: # | background: #222831; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tip-name { | .cp-boss[data-tema="escuro"] .cp-tip-name { | ||
color: # | color: #e3eaf2; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tip-qty { | .cp-boss[data-tema="escuro"] .cp-tip-qty { | ||
color: # | color: #a0b0bd; | ||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill { | |||
border-top: 1px solid #3b4551; | |||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-skill-name { | .cp-boss[data-tema="escuro"] .cp-skill-name { | ||
color: # | color: #e3eaf2; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-skill-hp { | .cp-boss[data-tema="escuro"] .cp-skill-hp { | ||
background: # | background: #173444; | ||
color: # | color: #6fc9ee; | ||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-skill-desc, | .cp-boss[data-tema="escuro"] .cp-skill-desc, | ||
.cp-boss[data-tema="escuro"] .cp-empty { | .cp-boss[data-tema="escuro"] .cp-empty { | ||
color: # | color: #a0b0bd; | ||
} | |||
.cp-boss[data-tema="escuro"] .cp-tip-bar { | |||
border: 1px solid #3b4551; | |||
background: #2b323c; | |||
color: #a0b0bd; | |||
} | } | ||
.cp-boss[data-tema="escuro"] .cp-tip-tag { | .cp-boss[data-tema="escuro"] .cp-tip-tag { | ||
color: # | color: #6fc9ee; | ||
} | |||
.cp-boss[data-tema="escuro"] .cp-tema { | |||
border: 1px solid #3b4551; | |||
background: #2b323c; | |||
color: #a0b0bd; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-bar { | |||
border-bottom: 1px solid #3b4551; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-pick { | |||
border: 1px solid #3b4551; | |||
background: #2b323c; | |||
color: #a0b0bd; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-pick:hover { | |||
border-color: #52606f; | |||
color: #e3eaf2; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-pick.is-active { | |||
border-color: #6fc9ee; | |||
background: #173444; | |||
color: #6fc9ee; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-name { | |||
color: #e3eaf2; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-meta > span { | |||
border: 1px solid #3b4551; | |||
background: #2b323c; | |||
color: #a0b0bd; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-meta > .cp-skill-flag { | |||
border-color: #6fc9ee; | |||
color: #6fc9ee; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-desc { | |||
color: #a0b0bd; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-video { | |||
color: #a0b0bd; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-empty { | |||
color: #a0b0bd; | |||
} | |||
.cp-boss[data-tema="escuro"] .cp-skill-pick--vazio { | |||
color: #a0b0bd; | |||
} | } | ||
Latest revision as of 16:29, 12 September 2026
/* Ficha de Campeao do Champion's Path — carregado por Module:Campeao.
Gerado por gen_css.py: nao editar a mao, editar o gerador. */
.cp-boss {
margin: 0 0 1.5em;
color: #16293a;
font-size: 14px;
line-height: 1.6;
}
/* Ficha de Campeão do Champion's Path.
Carregado por Module:Campeao via <templatestyles>.
Tema claro por padrão; o escuro entra com data-tema="escuro" na raiz. */
/* --- Cabeçalho ----------------------------------------------------------- */
/* O cabecalho fica solto sobre a pagina, sem caixa. E o contraste com ele
que faz os paineis abaixo lerem como blocos destacados; se tudo for caixa,
nada e caixa. */
.cp-head {
display: flex;
flex-wrap: wrap;
gap: 22px;
align-items: flex-start;
padding: 4px 0 18px;
border: 0;
background: transparent;
}
.cp-art {
flex: 0 0 200px;
max-width: 200px;
border: 1px solid #c5d0da;
background: #dfe6ee;
line-height: 0;
}
.cp-art img {
width: 100%;
height: auto;
}
.cp-head-info {
flex: 1 1 380px;
min-width: 0;
}
.cp-title {
margin-bottom: 8px;
color: #16293a;
font-size: 30px;
font-weight: bold;
line-height: 1.15;
}
.cp-badge {
display: inline-block;
margin-bottom: 12px;
padding: 4px 12px;
border: 1px solid #aebbc6;
background: #9cebff;
color: #096390;
font-size: 12px;
font-weight: bold;
}
.cp-desc {
margin: 0 0 16px;
color: #4a6072;
max-width: 62ch;
}
/* Linha de stats separados por filete, como na referência */
.cp-stats {
display: flex;
flex-wrap: wrap;
}
.cp-stat {
padding: 0 20px;
border-left: 1px solid #c5d0da;
}
.cp-stat:first-child {
padding-left: 0;
border-left: 0;
}
.cp-stat-label {
display: block;
color: #4a6072;
font-size: 12px;
}
.cp-stat-value {
display: block;
color: #16293a;
font-weight: bold;
}
/* --- Abas de dificuldade -------------------------------------------------- */
.cp-tabs {
display: flex;
gap: 10px;
margin: 14px 0;
}
.cp-tab {
display: block;
flex: 1 1 0;
text-align: center;
padding: 12px 16px;
border: 1px solid #c5d0da;
background: #dfe6ee;
color: #4a6072;
font-family: inherit;
font-size: 15px;
font-weight: bold;
cursor: pointer;
}
.cp-tab:hover {
border-color: #aebbc6;
color: #16293a;
}
.cp-tab.is-active {
border-color: #096390;
background: #9cebff;
color: #096390;
}
.cp-boss .is-hidden {
display: none;
}
/* --- Painéis -------------------------------------------------------------- */
/* stretch, nao flex-start: os dois paineis fecham na mesma altura e a base
da linha fica reta. Com flex-start cada um tomava a altura do proprio
conteudo (Requisitos 188px contra Recompensas 322px) e a pagina ficava
com um degrau no meio. */
.cp-split {
display: flex;
flex-wrap: wrap;
gap: 14px;
align-items: stretch;
}
.cp-split > .cp-panel {
flex: 1 1 320px;
min-width: 0;
}
.cp-panel {
position: relative;
margin: 0 0 14px;
padding: 26px 18px 18px;
border: 1px solid #aebbc6;
/* superficie propria: e o que faz cada painel ler como um bloco separado,
e nao como uma moldura desenhada sobre a pagina */
background: #dfe6ee;
}
/* O título sobre a borda é o que dá cara de ficha, e não de card */
/* A legenda e uma caixa propria encaixada na borda do painel, nao apenas
texto com fundo. E o que faz ela se destacar tanto do painel quanto da
pagina, em vez de sumir na emenda entre os dois. */
.cp-panel-title {
position: absolute;
top: -13px;
left: 14px;
margin: 0;
padding: 3px 12px;
border: 1px solid #aebbc6;
border-radius: 2px;
background: #ecf0f4;
color: #16293a;
font-family: inherit;
font-size: 14px;
font-weight: bold;
line-height: 1.4;
}
.cp-panel ul {
margin: 0 0 0 20px;
padding: 0;
}
.cp-panel li {
margin-bottom: 6px;
color: #4a6072;
}
/* --- Recompensas ---------------------------------------------------------- */
.cp-rewards-label {
margin: 10px 0 6px;
color: #4a6072;
font-size: 12px;
font-weight: bold;
}
.cp-rewards-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.cp-exp {
padding: 6px 12px;
border: 1px solid #aebbc6;
background: #9cebff;
color: #096390;
font-weight: bold;
}
.cp-rewards-hint {
margin-top: 12px;
color: #4a6072;
font-size: 12px;
}
/* --- Chip de item com tooltip ---------------------------------------------- */
.cp-item {
position: relative;
display: inline-block;
width: 48px;
height: 48px;
border: 1px solid #c5d0da;
background: #dfe6ee;
}
.cp-item-icon {
display: block;
line-height: 0;
text-align: center;
padding: 4px;
}
.cp-item-icon img {
max-width: 100%;
height: auto;
}
/* Contador pendurado sob o icone, centralizado, em preto translucido.
E o tratamento da referencia: mais limpo que um retangulo solido no canto,
e nao tapa o sprite. */
.cp-item-qty {
position: absolute;
bottom: -9px;
left: 50%;
transform: translateX(-50%);
padding: 1px 5px;
background: rgba(0, 0, 0, 0.75);
color: #fff;
font-size: 11px;
font-weight: bold;
line-height: 1.45;
white-space: nowrap;
z-index: 2;
}
.cp-item-qty-x {
color: #bfbebe;
margin-right: 1px;
}
.cp-tip {
position: absolute;
bottom: 54px;
left: 50%;
z-index: 5;
display: none;
width: 190px;
margin-left: -95px;
padding: 8px 10px;
border: 1px solid #aebbc6;
background: #ecf0f4;
text-align: left;
}
.cp-item:hover .cp-tip {
display: block;
}
.cp-tip-name {
display: block;
color: #16293a;
font-weight: bold;
}
.cp-tip-qty {
display: block;
color: #4a6072;
font-size: 12px;
}
/* --- Mecânicas ------------------------------------------------------------- */
.cp-skill {
padding: 10px 0;
border-top: 1px solid #c5d0da;
}
.cp-skill:first-of-type {
border-top: 0;
}
.cp-skill-name {
color: #16293a;
font-weight: bold;
}
.cp-skill-hp {
display: inline-block;
margin-left: 8px;
padding: 1px 8px;
background: #9cebff;
color: #096390;
font-size: 12px;
font-weight: bold;
}
.cp-skill-desc,
.cp-empty {
color: #4a6072;
}
/* --- Faixa de dica --------------------------------------------------------- */
.cp-tip-bar {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: baseline;
padding: 12px 16px;
border: 1px solid #c5d0da;
background: #dfe6ee;
color: #4a6072;
}
.cp-tip-tag {
color: #096390;
font-weight: bold;
}
/* --- Botão de tema --------------------------------------------------------- */
.cp-tema {
display: inline-block;
float: right;
padding: 5px 12px;
border: 1px solid #c5d0da;
background: #dfe6ee;
color: #4a6072;
font-family: inherit;
font-size: 12px;
cursor: pointer;
}
/* --- Telas estreitas ------------------------------------------------------- */
@media (max-width: 1050px) {
.cp-art {
flex-basis: 140px;
}
.cp-stat {
padding: 0 12px;
}
}
@media (max-width: 760px) {
.cp-head {
gap: 14px;
}
/* Sem o filete vertical os stats encostam e os valores viram uma
palavra so ("TyranitarExpedition Palmer3"). Vira grade de duas
colunas, que separa por espaco em vez de por borda. */
.cp-stats {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 18px;
}
.cp-stat {
padding: 0;
border-left: 0;
}
.cp-title {
font-size: 24px;
}
}
/* No celular nem duas colunas cabem: cada stat vira uma linha, rotulo a
esquerda e valor a direita. Nada de var() aqui dentro — o gerador do tema
escuro nao entende media query e jogaria a regra para o escopo global. */
@media (max-width: 420px) {
.cp-stats {
grid-template-columns: minmax(0, 1fr);
gap: 8px;
}
.cp-stat {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12px;
}
}
/* --- Painel de habilidades -------------------------------------------------
Seletor em cima, detalhe da habilidade escolhida embaixo. As variaveis sao
as mesmas do resto da ficha, entao o tema escuro sai automatico. */
.cp-skill-bar {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 16px;
padding-bottom: 14px;
border-bottom: 1px solid #c5d0da;
}
.cp-skill-pick {
padding: 7px 13px;
border: 1px solid #c5d0da;
background: #dfe6ee;
color: #4a6072;
font-size: 13px;
font-weight: bold;
cursor: pointer;
}
.cp-skill-pick:hover {
border-color: #aebbc6;
color: #16293a;
}
.cp-skill-pick.is-active {
border-color: #096390;
background: #9cebff;
color: #096390;
}
.cp-skill-name {
margin-bottom: 8px;
color: #16293a;
font-size: 19px;
font-weight: bold;
}
/* Linha de fichas tecnicas: tipo, elemento, alcance, recarga, dano */
.cp-skill-meta {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 12px;
}
.cp-skill-meta > span {
padding: 3px 10px;
border: 1px solid #c5d0da;
background: #dfe6ee;
color: #4a6072;
font-size: 12px;
}
.cp-skill-meta > .cp-skill-flag {
border-color: #096390;
color: #096390;
font-weight: bold;
}
.cp-skill-desc {
margin-bottom: 12px;
color: #4a6072;
}
.cp-skill-video {
color: #4a6072;
}
/* Campo ainda nao preenchido: presente, mas discreto */
.cp-empty {
color: #4a6072;
font-style: italic;
opacity: 0.75;
}
@media (max-width: 760px) {
.cp-skill-pick {
flex: 1 1 auto;
text-align: center;
}
}
/* --- Seletor de habilidade em quadrados ------------------------------------
Como na referencia: uma fileira centralizada de icones, e abaixo o detalhe
em duas colunas — texto a esquerda, video a direita. */
.cp-skill-bar {
justify-content: center;
}
.cp-skill-pick {
display: flex;
align-items: center;
justify-content: center;
width: 46px;
height: 46px;
padding: 0;
overflow: hidden;
}
.cp-skill-pick img {
max-width: 100%;
height: auto;
}
/* Sem icone ainda: quadrado neutro com a marca do lugar */
.cp-skill-pick--vazio {
color: #4a6072;
font-size: 11px;
font-weight: normal;
opacity: 0.7;
}
.cp-skill-body {
display: flex;
flex-wrap: wrap;
gap: 20px;
align-items: flex-start;
}
.cp-skill-texto {
flex: 1 1 260px;
min-width: 0;
}
.cp-skill-midia {
flex: 0 1 480px;
max-width: 100%;
}
.cp-skill-midia img,
.cp-skill-midia video {
max-width: 100%;
height: auto;
}
/* Placeholder do video: bloco preto na proporcao em que o video vai entrar */
.cp-skill-video-vazio {
width: 100%;
aspect-ratio: 16 / 9;
min-height: 200px;
background: #000;
}
@media (max-width: 760px) {
.cp-skill-midia {
flex-basis: 100%;
}
}
/* --- Escala de arredondamento ----------------------------------------------
Medida no CSS da referencia: o raio cresce com o tamanho da caixa.
4px em icone, 6px em midia, 8px em etiqueta, 10px em controle, 12px em
painel. Nao e decoracao solta: e o que evita o visual de tabela de planilha
sem transformar tudo em bolha.
-------------------------------------------------------------------------- */
.cp-panel {
border-radius: 12px;
}
.cp-art {
border-radius: 12px;
}
.cp-art img {
border-radius: 8px;
}
.cp-tab,
.cp-badge,
.cp-exp,
.cp-tema {
border-radius: 8px;
}
.cp-skill-pick,
.cp-tip-bar {
border-radius: 10px;
}
.cp-panel-title,
.cp-tip,
.cp-skill-midia img,
.cp-skill-midia video,
.cp-skill-video-vazio {
border-radius: 6px;
}
.cp-item,
.cp-skill-meta > span {
border-radius: 4px;
}
/* O contador do item mora no canto do chip: so a ponta de fora acompanha */
.cp-item-qty {
border-radius: 4px 0 4px 0;
}
/* --- Lavagem no lugar de preenchimento solido -------------------------------
Na referencia o estado ativo nao e um bloco de cor: e fundo a 18% da matiz,
borda a 42% e texto num tom fundo. Le como selecionado sem virar mancha. */
.cp-tab.is-active {
background: rgba(9, 99, 144, 0.16);
border-color: rgba(9, 99, 144, 0.45);
color: #0a4f74;
}
.cp-tab.is-active[data-dif="hard"] {
background: rgba(192, 57, 43, 0.16);
border-color: rgba(192, 57, 43, 0.45);
color: #a93226;
}
.cp-tab.is-active:hover {
background: rgba(9, 99, 144, 0.26);
}
.cp-tab.is-active[data-dif="hard"]:hover {
background: rgba(192, 57, 43, 0.26);
}
/* Mesma logica nos outros elementos que estavam solidos */
.cp-badge,
.cp-exp,
.cp-skill-pick.is-active,
.cp-skill-meta > .cp-skill-flag {
background: rgba(9, 99, 144, 0.14);
border-color: rgba(9, 99, 144, 0.42);
color: #0a4f74;
}
/* No escuro a lavagem precisa de mais opacidade e texto claro */
.cp-boss[data-tema="escuro"] .cp-tab.is-active,
.cp-boss[data-tema="escuro"] .cp-badge,
.cp-boss[data-tema="escuro"] .cp-exp,
.cp-boss[data-tema="escuro"] .cp-skill-pick.is-active,
.cp-boss[data-tema="escuro"] .cp-skill-meta > .cp-skill-flag {
background: rgba(78, 168, 214, 0.24);
border-color: rgba(126, 190, 230, 0.45);
color: #9ecbff;
}
.cp-boss[data-tema="escuro"] .cp-tab.is-active[data-dif="hard"] {
background: rgba(214, 88, 74, 0.26);
border-color: rgba(240, 140, 128, 0.45);
color: #ffb3a7;
}
/* O contador precisa de espaco para pendurar sem encostar na linha de baixo */
.cp-rewards-row {
gap: 14px 10px;
padding-bottom: 4px;
}
.cp-item {
margin-bottom: 8px;
}
/* --- Tema escuro ---------------------------------------------------------- */
.cp-boss[data-tema="escuro"] {
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-art {
border: 1px solid #3b4551;
background: #2b323c;
}
.cp-boss[data-tema="escuro"] .cp-title {
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-badge {
border: 1px solid #52606f;
background: #173444;
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-desc {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-stat {
border-left: 1px solid #3b4551;
}
.cp-boss[data-tema="escuro"] .cp-stat-label {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-stat-value {
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-tab {
border: 1px solid #3b4551;
background: #2b323c;
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-tab:hover {
border-color: #52606f;
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-tab.is-active {
border-color: #6fc9ee;
background: #173444;
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-panel {
border: 1px solid #52606f;
background: #2b323c;
}
.cp-boss[data-tema="escuro"] .cp-panel-title {
border: 1px solid #52606f;
background: #222831;
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-panel li {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-rewards-label {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-exp {
border: 1px solid #52606f;
background: #173444;
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-rewards-hint {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-item {
border: 1px solid #3b4551;
background: #2b323c;
}
.cp-boss[data-tema="escuro"] .cp-tip {
border: 1px solid #52606f;
background: #222831;
}
.cp-boss[data-tema="escuro"] .cp-tip-name {
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-tip-qty {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-skill {
border-top: 1px solid #3b4551;
}
.cp-boss[data-tema="escuro"] .cp-skill-name {
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-skill-hp {
background: #173444;
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-skill-desc,
.cp-boss[data-tema="escuro"] .cp-empty {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-tip-bar {
border: 1px solid #3b4551;
background: #2b323c;
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-tip-tag {
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-tema {
border: 1px solid #3b4551;
background: #2b323c;
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-skill-bar {
border-bottom: 1px solid #3b4551;
}
.cp-boss[data-tema="escuro"] .cp-skill-pick {
border: 1px solid #3b4551;
background: #2b323c;
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-skill-pick:hover {
border-color: #52606f;
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-skill-pick.is-active {
border-color: #6fc9ee;
background: #173444;
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-skill-name {
color: #e3eaf2;
}
.cp-boss[data-tema="escuro"] .cp-skill-meta > span {
border: 1px solid #3b4551;
background: #2b323c;
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-skill-meta > .cp-skill-flag {
border-color: #6fc9ee;
color: #6fc9ee;
}
.cp-boss[data-tema="escuro"] .cp-skill-desc {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-skill-video {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-empty {
color: #a0b0bd;
}
.cp-boss[data-tema="escuro"] .cp-skill-pick--vazio {
color: #a0b0bd;
}