<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.gla.com.br/index.php?action=history&amp;feed=atom&amp;title=Widget%3ATabber</id>
	<title>Widget:Tabber - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gla.com.br/index.php?action=history&amp;feed=atom&amp;title=Widget%3ATabber"/>
	<link rel="alternate" type="text/html" href="https://wiki.gla.com.br/index.php?title=Widget:Tabber&amp;action=history"/>
	<updated>2026-05-21T01:55:26Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.gla.com.br/index.php?title=Widget:Tabber&amp;diff=40629&amp;oldid=prev</id>
		<title>GhoulBlack: Criou página com '&lt;!DOCTYPE html&gt; &lt;html lang=&quot;pt-BR&quot;&gt; &lt;head&gt;     &lt;meta charset=&quot;UTF-8&quot;&gt;     &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;     &lt;title&gt;Componente de Abas...'</title>
		<link rel="alternate" type="text/html" href="https://wiki.gla.com.br/index.php?title=Widget:Tabber&amp;diff=40629&amp;oldid=prev"/>
		<updated>2025-11-16T04:54:03Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&amp;quot;pt-BR&amp;quot;&amp;gt; &amp;lt;head&amp;gt;     &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;     &amp;lt;title&amp;gt;Componente de Abas...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;pt-BR&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Componente de Abas - MediaWiki&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
        /* Container principal responsivo */&lt;br /&gt;
        .mw-tabber-container {&lt;br /&gt;
            width: 100%;&lt;br /&gt;
            max-width: 100%;&lt;br /&gt;
            margin: 20px 0;&lt;br /&gt;
            border: 1px solid #a7d7f9;&lt;br /&gt;
            border-radius: 4px;&lt;br /&gt;
            background-color: #f8f9fa;&lt;br /&gt;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Container das abas */&lt;br /&gt;
        .mw-tabber-tabs {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            flex-wrap: wrap;&lt;br /&gt;
            background-color: #eaecf0;&lt;br /&gt;
            border-bottom: 2px solid #a7d7f9;&lt;br /&gt;
            padding: 0;&lt;br /&gt;
            margin: 0;&lt;br /&gt;
            list-style: none;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Estilo individual de cada aba */&lt;br /&gt;
        .mw-tabber-tab {&lt;br /&gt;
            flex: 1 1 auto;&lt;br /&gt;
            min-width: 100px;&lt;br /&gt;
            padding: 12px 20px;&lt;br /&gt;
            cursor: pointer;&lt;br /&gt;
            background-color: #eaecf0;&lt;br /&gt;
            border: none;&lt;br /&gt;
            border-right: 1px solid #c8ccd1;&lt;br /&gt;
            text-align: center;&lt;br /&gt;
            font-size: 14px;&lt;br /&gt;
            font-weight: 500;&lt;br /&gt;
            color: #0645ad;&lt;br /&gt;
            transition: all 0.2s ease;&lt;br /&gt;
            user-select: none;&lt;br /&gt;
            position: relative;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .mw-tabber-tab:last-child {&lt;br /&gt;
            border-right: none;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Hover nas abas */&lt;br /&gt;
        .mw-tabber-tab:hover {&lt;br /&gt;
            background-color: #f8f9fa;&lt;br /&gt;
            color: #0b0080;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Aba ativa */&lt;br /&gt;
        .mw-tabber-tab.active {&lt;br /&gt;
            background-color: #ffffff;&lt;br /&gt;
            color: #0645ad;&lt;br /&gt;
            border-bottom: 3px solid #0645ad;&lt;br /&gt;
            font-weight: 600;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Container do conteúdo */&lt;br /&gt;
        .mw-tabber-content {&lt;br /&gt;
            padding: 20px;&lt;br /&gt;
            background-color: #ffffff;&lt;br /&gt;
            min-height: 200px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Painel de conteúdo individual */&lt;br /&gt;
        .mw-tabber-panel {&lt;br /&gt;
            display: none;&lt;br /&gt;
            animation: fadeIn 0.3s ease;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .mw-tabber-panel.active {&lt;br /&gt;
            display: block;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Animação de fade in */&lt;br /&gt;
        @keyframes fadeIn {&lt;br /&gt;
            from {&lt;br /&gt;
                opacity: 0;&lt;br /&gt;
                transform: translateY(5px);&lt;br /&gt;
            }&lt;br /&gt;
            to {&lt;br /&gt;
                opacity: 1;&lt;br /&gt;
                transform: translateY(0);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Responsividade para tablets */&lt;br /&gt;
        @media (max-width: 768px) {&lt;br /&gt;
            .mw-tabber-tabs {&lt;br /&gt;
                flex-direction: column;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            .mw-tabber-tab {&lt;br /&gt;
                border-right: none;&lt;br /&gt;
                border-bottom: 1px solid #c8ccd1;&lt;br /&gt;
                width: 100%;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            .mw-tabber-tab.active {&lt;br /&gt;
                border-bottom: 3px solid #0645ad;&lt;br /&gt;
                border-right: none;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            .mw-tabber-content {&lt;br /&gt;
                padding: 15px;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Responsividade para mobile */&lt;br /&gt;
        @media (max-width: 480px) {&lt;br /&gt;
            .mw-tabber-tab {&lt;br /&gt;
                padding: 10px 15px;&lt;br /&gt;
                font-size: 13px;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            .mw-tabber-content {&lt;br /&gt;
                padding: 12px;&lt;br /&gt;
                min-height: 150px;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Exemplo de uso do componente --&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mw-tabber-container&amp;quot; data-tabber&amp;gt;&lt;br /&gt;
        &amp;lt;ul class=&amp;quot;mw-tabber-tabs&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;li class=&amp;quot;mw-tabber-tab active&amp;quot; data-tab=&amp;quot;tab1&amp;quot;&amp;gt;Aba 1&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li class=&amp;quot;mw-tabber-tab&amp;quot; data-tab=&amp;quot;tab2&amp;quot;&amp;gt;Aba 2&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li class=&amp;quot;mw-tabber-tab&amp;quot; data-tab=&amp;quot;tab3&amp;quot;&amp;gt;Aba 3&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mw-tabber-content&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;mw-tabber-panel active&amp;quot; data-panel=&amp;quot;tab1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;h3&amp;gt;Conteúdo da Aba 1&amp;lt;/h3&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;Este é o conteúdo da primeira aba. Você pode adicionar qualquer HTML aqui.&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;mw-tabber-panel&amp;quot; data-panel=&amp;quot;tab2&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;h3&amp;gt;Conteúdo da Aba 2&amp;lt;/h3&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;Este é o conteúdo da segunda aba. A troca entre abas é instantânea!&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;mw-tabber-panel&amp;quot; data-panel=&amp;quot;tab3&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;h3&amp;gt;Conteúdo da Aba 3&amp;lt;/h3&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;Este é o conteúdo da terceira aba. O componente é totalmente responsivo.&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
        (function() {&lt;br /&gt;
            'use strict';&lt;br /&gt;
&lt;br /&gt;
            // Inicializa todos os componentes de abas na página&lt;br /&gt;
            function initTabbers() {&lt;br /&gt;
                const tabbers = document.querySelectorAll('[data-tabber]');&lt;br /&gt;
                &lt;br /&gt;
                tabbers.forEach(function(tabber) {&lt;br /&gt;
                    const tabs = tabber.querySelectorAll('.mw-tabber-tab');&lt;br /&gt;
                    const panels = tabber.querySelectorAll('.mw-tabber-panel');&lt;br /&gt;
&lt;br /&gt;
                    tabs.forEach(function(tab) {&lt;br /&gt;
                        tab.addEventListener('click', function() {&lt;br /&gt;
                            const targetTab = this.getAttribute('data-tab');&lt;br /&gt;
                            &lt;br /&gt;
                            // Remove classe active de todas as abas&lt;br /&gt;
                            tabs.forEach(function(t) {&lt;br /&gt;
                                t.classList.remove('active');&lt;br /&gt;
                            });&lt;br /&gt;
                            &lt;br /&gt;
                            // Remove classe active de todos os painéis&lt;br /&gt;
                            panels.forEach(function(p) {&lt;br /&gt;
                                p.classList.remove('active');&lt;br /&gt;
                            });&lt;br /&gt;
                            &lt;br /&gt;
                            // Adiciona classe active na aba clicada&lt;br /&gt;
                            this.classList.add('active');&lt;br /&gt;
                            &lt;br /&gt;
                            // Adiciona classe active no painel correspondente&lt;br /&gt;
                            const targetPanel = tabber.querySelector('[data-panel=&amp;quot;' + targetTab + '&amp;quot;]');&lt;br /&gt;
                            if (targetPanel) {&lt;br /&gt;
                                targetPanel.classList.add('active');&lt;br /&gt;
                            }&lt;br /&gt;
                        });&lt;br /&gt;
                    });&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // Inicializa quando o DOM estiver pronto&lt;br /&gt;
            if (document.readyState === 'loading') {&lt;br /&gt;
                document.addEventListener('DOMContentLoaded', initTabbers);&lt;br /&gt;
            } else {&lt;br /&gt;
                initTabbers();&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // Suporte para MediaWiki (quando o conteúdo é carregado dinamicamente)&lt;br /&gt;
            if (typeof mw !== 'undefined' &amp;amp;&amp;amp; mw.hook) {&lt;br /&gt;
                mw.hook('wikipage.content').add(function() {&lt;br /&gt;
                    initTabbers();&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        })();&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
/* Conserta o header das abas para um fundo fixo único e altura consistente */&lt;br /&gt;
.mw-tabber-tabs {&lt;br /&gt;
    display: flex;&lt;br /&gt;
    flex-wrap: wrap;&lt;br /&gt;
    background-color: #eaecf0;&lt;br /&gt;
    border-bottom: 2px solid #a7d7f9;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    list-style: none;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    min-height: 48px; /* Altura fixa para evitar 'tremida' */&lt;br /&gt;
    box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Todas as abas: altura fixa e alinhamento centralizado */&lt;br /&gt;
.mw-tabber-tab {&lt;br /&gt;
    flex: 1 1 auto;&lt;br /&gt;
    min-width: 100px;&lt;br /&gt;
    padding: 12px 20px;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    border: none;&lt;br /&gt;
    border-right: 1px solid #c8ccd1;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    font-size: 14px;&lt;br /&gt;
    font-weight: 500;&lt;br /&gt;
    color: #0645ad;&lt;br /&gt;
    transition: color 0.2s ease, background-color 0.2s;&lt;br /&gt;
    user-select: none;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    height: 48px; /* Altura igual à do container do header */&lt;br /&gt;
    line-height: 24px;&lt;br /&gt;
    display: flex;&lt;br /&gt;
    align-items: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-tabber-tab:last-child {&lt;br /&gt;
    border-right: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Corrige background do header nas abas no hover/active para não sobrescrever o container */&lt;br /&gt;
.mw-tabber-tab.active {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    color: #0645ad;&lt;br /&gt;
    border-bottom: 3px solid #0645ad;&lt;br /&gt;
    font-weight: 600;&lt;br /&gt;
    z-index: 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-tabber-tab:hover:not(.active) {&lt;br /&gt;
    background-color: rgba(248,249,250, 0.4);&lt;br /&gt;
    color: #0b0080;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* CONTEÚDO: Mantém altura fixa para evitar 'tremida' do layout principal */&lt;br /&gt;
.mw-tabber-content {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    padding: 20px;&lt;br /&gt;
    background-color: #ffffff;&lt;br /&gt;
    min-height: 200px;&lt;br /&gt;
    /* Mantém altura mínima e transição só no conteúdo */&lt;br /&gt;
    transition: opacity 0.24s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Painéis: Transição suave para fade-in/fade-out, ocupa mesmo espaço sempre */&lt;br /&gt;
.mw-tabber-panel {&lt;br /&gt;
    opacity: 0;&lt;br /&gt;
    pointer-events: none;&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: 0; right: 0; top: 0; bottom: 0;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    transition: opacity 0.24s;&lt;br /&gt;
    z-index: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-tabber-panel.active {&lt;br /&gt;
    opacity: 1;&lt;br /&gt;
    pointer-events: auto;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Garante altura estável do conteúdo, mesmo com tamanhos distintos nos painéis */&lt;br /&gt;
.mw-tabber-content {&lt;br /&gt;
    min-height: 200px;&lt;br /&gt;
    /* Você pode definir uma altura máxima se desejar */&lt;br /&gt;
    /* max-height: 400px; */&lt;br /&gt;
    overflow: auto;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    /* isola contexto de painéis absolutos */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Para evitar &amp;quot;pulo&amp;quot; do conteúdo, força height igual a maior painel (opcional, ideal JS dinâmico) */&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;/div&gt;</summary>
		<author><name>GhoulBlack</name></author>
	</entry>
</feed>