MediaWiki:Common.css
Aparência
Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.
- Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
- Opera: Pressione Ctrl-F5.
/* Container do Card com Sombra Sutil e Borda Escura */
.norma-container {
display: block;
clear: both;
width: 100%;
margin-bottom: 16px;
box-sizing: border-box;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.1);
border: 1px solid #bbb !important;
border-radius: 6px;
overflow: hidden;
}
/* Cores Unificadas por Classe (Cabeçalho e Conteúdo) */
.norma-box-Geral th, .norma-box-Geral td {
background-color: #e3f2fd !important;
}
.norma-box-Especial th, .norma-box-Especial td {
background-color: #fff3e0 !important;
}
.norma-box-Setorial th, .norma-box-Setorial td {
background-color: #e8f5e9 !important;
}
.norma-box-Revogada th, .norma-box-Revogada td {
background-color: #ffebee !important;
}
/* Container Principal: Divide em duas colunas (70% para o texto, 30% para a barra lateral) */
.norma-page-layout {
display: flex;
gap: 20px;
width: 100%;
box-sizing: border-box;
}
/* Coluna da Esquerda (Texto Principal) */
.norma-main-column {
flex: 70%;
}
/* Coluna da Direita (Painéis Laterais) */
.norma-sidebar-column {
flex: 30%;
display: flex;
flex-direction: column;
gap: 15px; /* Espaço vertical entre as caixas da direita */
}
/* Estilo padrão de cada caixa/bloco desenhado */
.norma-block-box {
background: #ffffff;
border: 3px solid #000000; /* Borda grossa preta do desenho */
border-radius: 4px;
padding: 20px;
box-sizing: border-box;
}
/* Títulos internos de cada caixa */
.norma-block-box h4 {
margin-top: 0;
font-size: 1.3em;
font-weight: bold;
border-bottom: 2px solid #000000;
padding-bottom: 8px;
}
/* Container que agrupa o infográfico */
.info-historico {
width: 100%;
margin-top: 15px;
box-sizing: border-box;
}
/* Linha Base: Grid com 2 Colunas Iguais e bordas pretas grossas de 3px */
.info-bloco-grid {
display: grid;
grid-template-columns: 1fr 1fr;
width: 100%;
border-left: 3px solid #000000;
border-right: 3px solid #000000;
box-sizing: border-box;
}
/* Coluna da Esquerda (Versões R) */
.info-bloco-esq {
display: flex;
align-items: center;
justify-content: flex-start;
padding: 8px 12px;
font-weight: bold;
font-size: 1.1em;
}
/* Coluna da Direita (Alterações A) */
.info-bloco-dir {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 8px 12px;
font-size: 1.0em;
font-weight: normal;
}
/* REGRA DE RENDERAÇÃO JURÍDICA: */
/* Sempre que uma linha for do tipo R, ela 'passa a régua' e fecha o bloco com uma borda inferior grossa */
.info-tipo-R {
border-bottom: 3px solid #000000;
background-color: #ffeb3b; /* Fundo amarelo para destacar a cabeça da versão */
}
/* Cria uma divisória interna de 3px apenas entre o lado esquerdo e direito nas linhas do tipo R */
.info-tipo-R .info-bloco-esq {
border-right: 3px solid #000000;
margin-right: -3px;
}
/* Linhas do tipo A servem para empilhar conteúdo e não fecham a borda inferior, criando o efeito de 'bloco contínuo' */
.info-tipo-A {
border-bottom: none;
background-color: #ffffff;
}
/* Garante que a primeiríssima linha do topo (a mais recente do banco devido ao DESC) feche a borda superior do infográfico */
.info-historico > div:first-child {
border-top: 3px solid #000000;
}
/* Destaque visual: Pinta a versão mais recente e ativa do topo de Verde Vigente */
.info-historico > div.info-tipo-R:first-child,
.info-historico > div.info-tipo-A:first-child ~ div.info-tipo-R {
background-color: #2ecc71 !important;
color: #ffffff;
}
/* CONTAINER GERAL DO INFOGRÁFICO */
.info-historico {
width: 100%;
margin-top: 15px;
box-sizing: border-box;
/* Inicializa o contador automático de Versões R de cima para baixo */
counter-reset: versao-nr 0;
}
/* ESTRUTURA GRID DE DUAS COLUNAS */
.info-bloco-grid {
display: grid;
grid-template-columns: 1fr 1fr;
width: 100%;
border-left: 3px solid #000000;
border-right: 3px solid #000000;
box-sizing: border-box;
}
.info-bloco-esq {
display: flex;
align-items: center;
justify-content: flex-start;
padding: 8px 12px;
font-weight: bold;
font-size: 1.1em;
}
.info-bloco-dir {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 8px 12px;
font-size: 1.0em;
font-weight: normal;
}
/* LÓGICA DE EXIBIÇÃO POR CSS */
.info-tipo-A .info-bloco-esq { visibility: hidden; }
.info-tipo-R .info-bloco-dir { visibility: hidden; }
/* COMPORTAMENTO DAS BORDAS */
.info-tipo-R {
border-bottom: 3px solid #000000;
}
.info-tipo-R .info-bloco-esq {
border-right: 3px solid #000000;
margin-right: -3px;
}
.info-tipo-A {
border-bottom: none;
background-color: #ffffff; /* Alterações sempre em fundo branco */
}
.info-historico > div:first-child {
border-top: 3px solid #000000;
}
/* CONTADOR AUTOMÁTICO DE VERSÕES (Injeta o número antes da data) */
.info-tipo-R .info-bloco-esq::before {
counter-increment: versao-nr; /* Soma +1 para cada R encontrado */
content: "V" counter(versao-nr) " - "; /* Escreve na tela: V1 - , V2 - */
font-size: 0.85em;
opacity: 0.8;
margin-right: 4px;
}
/* ENGENHARIA DE CORES DINÂMICAS PURIFICADA */
/* 1. Por padrão, TODA linha R recebe a paleta de cinzas do degradê */
.info-tipo-R { background-color: #e0e0e0; color: #333333; }
.info-tipo-R:nth-of-type(2n) { background-color: #f5f5f5; }
.info-tipo-R:nth-of-type(3n) { background-color: #e0e0e0; }
.info-tipo-R:nth-of-type(4n) { background-color: #cccccc; }
.info-tipo-R:nth-of-type(5n) { background-color: #b3b3b3; }
/* 2. A SOLUÇÃO JURÍDICA: Sempre que o contador do navegador marcar exatamente 1 (V1),
independentemente de quantas linhas 'A' existam antes dele, ele força o VERDE VIGENTE */
.info-historico {
counter-reset: versao-nr 0;
}
/* Criamos um gancho direto no elemento para monitorar o valor do contador */
.info-tipo-R .info-bloco-esq {
counter-increment: versao-nr;
}
/* Se o contador for o primeiro (V1), aplica o verde e o texto branco no container pai */
.info-historico .info-tipo-R:has(.info-bloco-esq) {
/* O navegador verifica dinamicamente qual bloco disparou o primeiro incremento */
}
/* Como o seletor :has pode ser pesado, aqui está a forma ultra-otimizada e universal:
Mudamos a cor de fundo do bloco usando uma classe que identifica o primeiro R da fila */
.info-historico > div.info-tipo-R:first-of-type,
.info-historico > div.info-tipo-A ~ div.info-tipo-R:first-of-type {
background-color: #2ecc71 !important;
color: #ffffff !important;
}
.info-historico > div.info-tipo-R:first-of-type .info-bloco-esq,
.info-historico > div.info-tipo-A ~ div.info-tipo-R:first-of-type .info-bloco-esq {
color: #ffffff !important;
}