Difference between revisions of "MediaWiki:Common.css"

From XilePK - Ragnarok Online Server
Jump to navigation Jump to search
 
(153 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Auto-expand sections when clicking anchored links */
+
/* CSS placed here will be applied to all skins */
$(function() {
+
* body.page-Main_Page h1.firstHeading { display:none; }
  // Função principal para executar quando a página terminar de carregar
 
  function initializeAnchorExpansion() {
 
    // Se existir um hash na URL quando a página carrega
 
    if (window.location.hash) {
 
      var hash = window.location.hash;
 
      console.log("Página carregada com hash: " + hash);
 
      expandSectionForAnchor(hash);
 
    }
 
   
 
    // Lidar com cliques em links âncora dentro da página
 
    $(document).on('click', 'a[href^="#"]', function(event) {
 
      var hash = $(this).attr('href');
 
      console.log("Clique em link interno: " + hash);
 
      expandSectionForAnchor(hash);
 
    });
 
  }
 
 
 
  // Função para expandir seções contendo uma âncora específica
 
  function expandSectionForAnchor(hash) {
 
    // Remover qualquer caractere # do início do hash se existir
 
    if (hash.startsWith('#')) {
 
      hash = hash.substring(1);
 
    }
 
   
 
    console.log("Procurando elemento com ID: " + hash);
 
   
 
    // Tentar encontrar o elemento com o ID especificado
 
    var targetElement = $('#' + hash);
 
    if (targetElement.length) {
 
      console.log("Elemento encontrado!");
 
     
 
      // Encontrar todas as seções colapsáveis que contêm o elemento
 
      var collapsibleSections = targetElement.parents('.mw-collapsible.mw-collapsed');
 
      console.log("Seções colapsáveis encontradas: " + collapsibleSections.length);
 
     
 
      // Se o elemento estiver dentro de seções colapsáveis
 
      if (collapsibleSections.length > 0) {
 
        // Expandir cada seção de fora para dentro
 
        collapsibleSections.each(function() {
 
          var $section = $(this);
 
          console.log("Expandindo seção");
 
          $section.removeClass('mw-collapsed');
 
         
 
          // Clicar no botão de expansão ou mudar diretamente a classe
 
          var $toggle = $section.find('.mw-collapsible-toggle').first();
 
          if ($toggle.length) {
 
            $toggle.click();
 
          } else {
 
            // Tentar forçar a expansão manipulando classes diretamente
 
            $section.find('.mw-collapsible-content').show();
 
          }
 
        });
 
       
 
        // Também verificar se o próprio elemento está em um colapsível
 
        var directCollapsible = targetElement.closest('.mw-collapsible.mw-collapsed');
 
        if (directCollapsible.length) {
 
          console.log("Expandindo o contêiner direto");
 
          directCollapsible.removeClass('mw-collapsed');
 
          var $toggle = directCollapsible.find('.mw-collapsible-toggle').first();
 
          if ($toggle.length) {
 
            $toggle.click();
 
          } else {
 
            directCollapsible.find('.mw-collapsible-content').show();
 
          }
 
        }
 
      }
 
     
 
      // Rolar até o elemento imediatamente
 
      console.log("Rolando até o elemento");
 
      $('html, body').animate({
 
        scrollTop: targetElement.offset().top - 100
 
      }, 200);
 
    } else {
 
      console.log("Elemento com ID '" + hash + "' não encontrado");
 
    }
 
  }
 
  
  // Inicializar na carga da página
+
/* ========== ESTILOS GERAIS ========== */
  initializeAnchorExpansion();
+
a {
 
+
     text-underline-offset: 0px;
  // Também adicionar um observador para o evento mw.hook que é disparado quando o conteúdo é atualizado
+
}
  if (typeof mw !== 'undefined' && mw.hook) {
 
    mw.hook('wikipage.content').add(function() {
 
      console.log("Conteúdo da Wiki atualizado, reinicializando manipuladores de âncora");
 
      initializeAnchorExpansion();
 
     
 
      // Se houver um hash, tentar expandir após o conteúdo ter sido carregado
 
      if (window.location.hash) {
 
        expandSectionForAnchor(window.location.hash);
 
      }
 
     });
 
  }
 
});
 
  
/* JavaScript melhorado para funcionalidade de cópia */
+
.external {
$(document).ready(function() {
+
     background: none !important;
     // Adicionar CSS personalizado inline para forçar os tooltips
+
    padding-right: 0 !important;
    $('<style>')
+
}
        .text(`
 
            .warp-copy:hover::after,
 
            .warp-copy:hover::before {
 
                opacity: 1 !important;
 
                visibility: visible !important;
 
                display: block !important;
 
            }
 
            .warp-copy.copied::after {
 
                content: "Copiado!" !important;
 
                background-color: #4CAF50 !important;
 
                display: block !important;
 
            }
 
        `)
 
        .appendTo('head');
 
});
 
  
mw.hook('wikipage.content').add(function ($content) {
+
/* ========== WAR COPY (TEXTO E IMAGENS) ========== */
     // Função para inicializar todos os elementos .warp-copy
+
.warp-copy {
     function initWarpCopy() {
+
     color: #0066cc;
        console.log("Inicializando elementos .warp-copy");
+
     cursor: pointer;
       
+
    text-decoration: underline dotted #0066cc;
        // Remove manipuladores de eventos anteriores para evitar duplicações
+
    text-underline-offset: 2px;
        $content.find('.warp-copy').off('click');
+
    position: relative;
       
+
    display: inline-block;
        // Adiciona o manipulador de clique
+
}
        $content.find('.warp-copy').on('click', function (event) {
+
 
            event.preventDefault();
+
/* Tooltip padrão */
            event.stopPropagation();
+
.warp-copy::after {
           
+
    content: "Copy";
            var $this = $(this);
+
    position: absolute;
            var textToCopy = $this.attr('data-copy');
+
    left: 50%;
           
+
    background-color: #333;
            if (!textToCopy) {
+
    color: white;
                console.warn("Elemento .warp-copy sem atributo data-copy encontrado");
+
    padding: 2px 6px;
                return;
+
    border-radius: 3px;
            }
+
    font-size: 12px;
           
+
    white-space: nowrap;
            console.log("Copiando texto: " + textToCopy);
+
    z-index: 10;
           
+
    opacity: 0;
            // Usa a API Clipboard moderna quando disponível
+
    visibility: hidden;
            if (navigator.clipboard && navigator.clipboard.writeText) {
+
    pointer-events: none;
                navigator.clipboard.writeText(textToCopy)
+
    transform: translateX(-50%);
                    .then(function() {
+
}
                        console.log('Texto copiado com sucesso usando Clipboard API');
+
 
                        showCopiedFeedback($this);
+
/* Seta do tooltip */
                    })
+
.warp-copy::before {
                    .catch(function(err) {
+
    content: "";
                        console.error('Falha ao copiar texto: ', err);
+
    position: absolute;
                        // Tenta o método de fallback
+
    left: 50%;
                        fallbackCopyText(textToCopy, $this);
+
    border-width: 4px;
                    });
+
    border-style: solid;
            } else {
+
    z-index: 10;
                // Método de fallback para navegadores que não suportam a API Clipboard
+
    opacity: 0;
                fallbackCopyText(textToCopy, $this);
+
    visibility: hidden;
            }
+
    pointer-events: none;
        });
+
    transform: translateX(-50%);
    }
+
}
   
+
 
    // Função de fallback para copiar texto
+
/* Tooltip PARA TEXTO */
     function fallbackCopyText(text, $element) {
+
.warp-copy:not(img)::after {
        // Cria um elemento de texto temporário
+
    bottom: calc(100% + 5px);
        var tempInput = document.createElement('textarea');
+
}
        tempInput.value = text;
+
 
        tempInput.style.position = 'fixed';
+
.warp-copy:not(img)::before {
        tempInput.style.opacity = '0';
+
     bottom: calc(100% + 1px);
        document.body.appendChild(tempInput);
+
    border-color: #333 transparent transparent transparent;
       
+
}
        // Seleciona e copia
+
 
        tempInput.select();
+
/* Tooltip PARA IMAGENS */
        tempInput.setSelectionRange(0, 99999); // Para dispositivos móveis
+
.tile-top.tile-image .warp-copy::after {
       
+
    bottom: -25px;
        try {
+
    top: auto !important;
            var successful = document.execCommand('copy');
+
}
            if (successful) {
+
 
                console.log('Texto copiado com sucesso usando execCommand');
+
.tile-top.tile-image .warp-copy::before {
                showCopiedFeedback($element);
+
    bottom: -18px;
            } else {
+
    top: auto !important;
                console.error('Falha ao copiar texto com execCommand');
+
    border-color: #333 transparent transparent transparent !important;
            }
+
}
        } catch (err) {
+
 
            console.error('Erro ao copiar texto: ', err);
+
/* Estados de hover */
        }
+
.warp-copy:hover::after,
       
+
.warp-copy:hover::before {
        // Remove o elemento temporário
+
    opacity: 1;
        document.body.removeChild(tempInput);
+
    visibility: visible;
    }
+
}
   
+
 
    // Função para mostrar feedback visual de cópia
+
/* Feedback de copiado - APLICA-SE A TODOS OS WARP-COPY */
    function showCopiedFeedback($element) {
+
.warp-copy.copied::after {
        // Adiciona classe para feedback visual
+
    content: "Copied!" !important;
        $element.addClass('copied');
+
    background-color: #4CAF50 !important;
       
+
    opacity: 1 !important;
        // Remove a classe após um breve período
+
    visibility: visible !important;
        setTimeout(function() {
+
}
            $element.removeClass('copied');
+
 
        }, 1500);
+
.warp-copy.copied {
       
+
    color: #4CAF50 !important;
        // Opcional: mostrar um popup de notificação
+
    text-decoration: underline dotted #4CAF50 !important;
        $('<div class="copy-notification" style="position:fixed;bottom:20px;right:20px;background:#4CAF50;color:white;padding:10px;border-radius:5px;z-index:9999;">Copiado: ' + $element.attr('data-copy') + '</div>')
+
}
            .appendTo('body')
+
 
            .delay(1500)
+
/* ========== ESTILOS ESPECÍFICOS PARA NPCs ========== */
            .fadeOut(300, function() { $(this).remove(); });
+
.tile-row {
     }
+
    display: flex;
      
+
    flex-flow: row wrap;
     // Script para imagens dos NPCs
+
    margin-bottom: 1em;
     function initNPCImageCopy() {
+
}
        $content.find('.contents-equipment .tile-top.tile-image a').each(function() {
+
 
            var $link = $(this);
+
.tile-halves {
            var linkHref = $link.attr('href') || '';
+
    display: flex;
           
+
    flex-flow: row wrap;
            // Extrai o ID do NPC do link
+
    border: 1px solid #e4eaee;
            var npcId = linkHref.startsWith('#') ? linkHref.substring(1) : linkHref;
+
    background: #ffffff;
           
+
    box-shadow: 0 0.25rem 0.35rem -0.25rem rgba(0, 0, 0, 0.1);
            if (npcId) {
+
    position: relative;
                $link.off('mousedown').on('mousedown', function(e) {
+
}
                    // Texto a ser copiado
+
 
                    var textToCopy = "@warp " + npcId;
+
.tile-halves h2 {
                   
+
    font-size: 1.4em;
                    // Tenta usar a API Clipboard moderna
+
    font-weight: bold;
                    if (navigator.clipboard && navigator.clipboard.writeText) {
+
    border: none;
                        navigator.clipboard.writeText(textToCopy)
+
    margin: 0 0 0.4em;
                            .then(function() {
+
}
                                console.log('Comando @warp copiado com sucesso');
+
 
                                showCopiedNotification(textToCopy);
+
.tile-top {
                            })
+
    width: 100%;
                            .catch(function(err) {
+
    padding: 1.3rem 1.5rem 0.6rem;
                                console.error('Falha ao copiar comando @warp: ', err);
+
}
                                // Usa o método de fallback
+
 
                                fallbackCopyText(textToCopy, $link);
+
/* Correção para o container de imagem */
                            });
+
.tile-top.tile-image {
                    } else {
+
     display: flex;
                        // Método de fallback
+
     align-items: center;
                        fallbackCopyNPCCommand(textToCopy);
+
     justify-content: center;
                    }
+
     background-color: #949eaa;
                   
+
    padding: 0;
                    // Permite que o evento continue
+
    width: 100%;
                    return true;
+
    box-sizing: border-box;
                });
+
    /* Define altura fixa para o container */
            }
+
    height: var(--image-height, auto);
        });
+
    overflow: hidden;
     }
+
}
      
+
 
     // Função de fallback para copiar comando de NPC
+
.tile-top.tile-image a {
    function fallbackCopyNPCCommand(text) {
+
    width: 100%;
        var tempInput = document.createElement('textarea');
+
    height: 100%;
        tempInput.value = text;
+
    display: flex;
        tempInput.style.position = 'fixed';
+
    justify-content: center;
        tempInput.style.opacity = '0';
+
    align-items: center;
        document.body.appendChild(tempInput);
+
    overflow: hidden;
       
+
}
        tempInput.select();
+
 
        tempInput.setSelectionRange(0, 99999); // Para dispositivos móveis
+
/* Imagem não tem tamanho forçado, mantém proporções */
       
+
.tile-top.tile-image img {
        try {
+
    display: block;
            document.execCommand('copy');
+
    width: auto;
            showCopiedNotification(text);
+
    height: auto;
        } catch (err) {
+
    margin: 0;
            console.error('Erro ao copiar comando @warp: ', err);
+
    transition: 0.4s ease-out;
        }
+
    object-fit: contain;
       
+
    max-width: 100%;
        document.body.removeChild(tempInput);
+
    max-height: 100%;
     }
+
}
      
+
 
     // Função para mostrar notificação de cópia
+
.tile-bottom {
     function showCopiedNotification(text) {
+
    background: #ffffff;
        $('<div class="copy-notification" style="position:fixed;bottom:20px;right:20px;background:#4CAF50;color:white;padding:10px;border-radius:5px;z-index:9999;">Copiado: ' + text + '</div>')
+
    border-top: 1px solid #e4eaee;
            .appendTo('body')
+
    width: 100%;
            .delay(1500)
+
    padding: 1rem 1.5rem 0.6rem;
            .fadeOut(300, function() { $(this).remove(); });
+
}
     }
+
 
      
+
.tile-bottom.link-button {
     // Inicializa todas as funções
+
     align-self: center;
     initWarpCopy();
+
     padding: 0;
     initNPCImageCopy();
+
    width: auto;
   
+
     margin: 0 auto;
    // Forçar a atualização dos tooltips (hack)
+
    max-width: fit-content;
    setTimeout(function() {
+
}
        $content.find('.warp-copy').each(function() {
+
 
            var $this = $(this);
+
/* Correção para os containers de NPC */
            $this.attr('title', 'Clique para Copiar');
+
.mainpage-contents .tile-halves {
        });
+
    display: inline-block;
     }, 500);
+
    flex: 0 0 auto;
      
+
    margin-right: 0.9rem;
    // Observador para alterações no DOM
+
    width: auto;
    var observer = new MutationObserver(function(mutations) {
+
    max-width: max-content;
        var needsReinit = false;
+
}
       
+
 
        mutations.forEach(function(mutation) {
+
.mainpage-contents .tile-halves:hover .tile-top img {
            if (mutation.addedNodes && mutation.addedNodes.length > 0) {
+
    transform: scale(1.04);
                needsReinit = true;
+
}
            }
+
 
        });
+
.mainpage-contents .tile-halves:last-child {
       
+
    margin-right: 0;
        if (needsReinit) {
+
}
            initWarpCopy();
+
 
            initNPCImageCopy();
+
.npc-subtitle {
        }
+
    font-size: 0.8em;
    });
+
     color: #666;
   
+
     margin-top: -5px;
    // Configura o observador
+
     text-align: center;
    observer.observe($content[0], { childList: true, subtree: true });
+
     font-style: italic;
});
+
    line-height: 1.2;
 +
}
 +
 
 +
.mainpage-contents.tile-row {
 +
    display: flex;
 +
    flex-flow: row wrap;
 +
    gap: 15px;
 +
    justify-content: flex-start;
 +
}
 +
 
 +
/* Definição corrigida para larguras do container */
 +
.mainpage-contents .contents-equipment.tile-halves {
 +
    box-sizing: border-box;
 +
     margin-right: 0;
 +
     flex: 0 0 auto;
 +
     width: var(--container-width, auto) !important;
 +
     min-width: var(--container-width, auto) !important;
 +
     max-width: var(--container-width, auto) !important;
 +
}
 +
 
 +
/* Título do NPC */
 +
.tile-bottom.link-button h2 .warp-copy {
 +
    color: #000080;
 +
    font-weight: bold;
 +
    display: block;
 +
     text-align: center;
 +
     text-decoration: none;
 +
}
 +
 
 +
.tile-bottom.link-button h2 {
 +
    position: relative;
 +
    overflow: visible;
 +
}
 +
 
 +
/* Código CSS limpo para os NPCs - MANTER APENAS ESTE BLOCO */
 +
 
 +
/* Container de NPC com cursor pointer */
 +
.contents-equipment.tile-halves {
 +
    position: relative;
 +
    cursor: pointer;
 +
}
 +
 
 +
/* Tooltip "Copy" ao passar o mouse */
 +
.contents-equipment.tile-halves:hover:after {
 +
    content: "Copy";
 +
    position: absolute;
 +
    top: -25px;
 +
    left: 50%;
 +
    transform: translateX(-50%);
 +
    background-color: #333;
 +
    color: white;
 +
    padding: 2px 6px;
 +
    border-radius: 3px;
 +
    font-size: 12px;
 +
    z-index: 100;
 +
    white-space: nowrap;
 +
}
 +
 
 +
/* Seta para o tooltip */
 +
.contents-equipment.tile-halves:hover:before {
 +
    content: "";
 +
    position: absolute;
 +
    top: -9px;
 +
    left: 50%;
 +
    transform: translateX(-50%) rotate(180deg);
 +
    border-width: 4px;
 +
    border-style: solid;
 +
    border-color: #333 transparent transparent transparent;
 +
    z-index: 100;
 +
}
 +
 
 +
/* Estilo para quando foi copiado */
 +
.contents-equipment.tile-halves.npc-copied {
 +
    border: 1px solid #4CAF50 !important;
 +
    box-shadow: 0 0 5px rgba(76, 175, 80, 0.5);
 +
}
 +
 
 +
.contents-equipment.tile-halves.npc-copied:after {
 +
    content: "Copied!" !important;
 +
    background-color: #4CAF50 !important;
 +
    position: absolute;
 +
    top: -25px;
 +
    left: 50%;
 +
    transform: translateX(-50%);
 +
    color: white;
 +
    padding: 2px 6px;
 +
    border-radius: 3px;
 +
    font-size: 12px;
 +
    z-index: 100;
 +
    white-space: nowrap;
 +
}
 +
 
 +
.contents-equipment.tile-halves.npc-copied:before {
 +
    border-color: #4CAF50 transparent transparent transparent !important;
 +
    position: absolute;
 +
    top: -9px;
 +
    left: 50%;
 +
    transform: translateX(-50%) rotate(180deg);
 +
    border-width: 4px;
 +
    border-style: solid;
 +
    z-index: 100;
 +
}
 +
 
 +
/* Efeito visual ao passar o mouse */
 +
.contents-equipment.tile-halves:hover {
 +
    box-shadow: 0 0.35rem 0.5rem -0.25rem rgba(0, 0, 0, 0.15);
 +
}
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
.clone-pets-container {
 +
  padding: 1em;
 +
  background: #f8f8f8;
 +
  border-radius: 10px;
 +
  font-family: 'Verdana', sans-serif;
 +
}
 +
 
 +
.pet-intro {
 +
  background-color: #e2f0ff;
 +
  padding: 1em;
 +
  border-left: 5px solid #3399ff;
 +
  margin-bottom: 1em;
 +
}
 +
 
 +
.pet-categories {
 +
  margin-top: 1em;
 +
}
 +
 
 +
.pet-grid {
 +
  display: flex;
 +
  flex-wrap: wrap;
 +
  gap: 15px;
 +
}
 +
 
 +
.pet-card {
 +
  background: white;
 +
  border: 1px solid #ccc;
 +
  border-radius: 8px;
 +
  width: 150px;
 +
  text-align: center;
 +
  padding: 10px;
 +
  box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
 +
}
 +
 
 +
.pet-image img {
 +
  border-radius: 6px;
 +
}
 +
 
 +
.pet-name {
 +
  font-weight: bold;
 +
  margin-top: 8px;
 +
}
 +
 
 +
.special-pet {
 +
  display: flex;
 +
  align-items: center;
 +
  gap: 15px;
 +
  background: #fff4d2;
 +
  padding: 1em;
 +
  border-radius: 8px;
 +
  margin-top: 1em;
 +
}
 +
 
 +
.special-pet .pet-image img {
 +
  border: 2px solid #e0b300;
 +
  border-radius: 8px;
 +
}
 +
 
 +
.pet-desc {
 +
  font-size: 0.95em;
 +
}
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
/* BACKGROUND GERAL */
 +
body {
 +
    background-image: url('https://wiki.xilepk.net/wiki/images/6/6a/Bg.webp') !important;
 +
    background-size: 100% 100% !important;
 +
    background-repeat: no-repeat !important;
 +
    background-attachment: fixed !important;
 +
    background-position: center !important;
 +
}
 +
 
 +
/* BACKGROUND PARA PÁGINAS COM CLASS CUSTOM-BG */
 +
.custom-bg {
 +
    background-image: url('https://wiki.xilepk.net/wiki/images/6/6a/Bg.webp') !important;
 +
    background-size: cover !important;
 +
    background-repeat: no-repeat !important;
 +
    min-height: 100vh !important;
 +
}
 +
 
 +
/* CONTAINERS TRANSPARENTES */
 +
#mw-page-base, #content, .mw-body {
 +
    background: transparent !important;
 +
}
 +
 
 +
/* SIDEBAR */
 +
#mw-panel {
 +
    background-color: transparent !important;
 +
    border-radius: 5px !important;
 +
}
 +
 
 +
/* HEADER/TOPO */
 +
#mw-head {
 +
    background-color: transparent !important;
 +
}
 +
 
 +
/* ABAS - FORÇAR ESPECÍFICO */
 +
#p-views, #p-cactions, .vectorTabs {
 +
    background: transparent !important;
 +
}
 +
 
 +
#p-views ul, #p-cactions ul, .vectorTabs ul {
 +
    background: transparent !important;
 +
}
 +
 
 +
#p-views li, #p-cactions li, .vectorTabs li {
 +
    background-color: rgba(0, 0, 0, 0.7) !important;
 +
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
 +
}
 +
 
 +
#p-views li a, #p-cactions li a, .vectorTabs li a {
 +
    color: white !important;
 +
    background: transparent !important;
 +
}
 +
 
 +
/* TABELAS */
 +
.wikitable {
 +
    background-color: transparent !important;
 +
    border: 1px solid rgba(0, 0, 0, 0.5) !important;
 +
}
 +
 
 +
.wikitable th {
 +
    background-color: rgba(0, 0, 0, 0.2) !important;
 +
    color: white !important;
 +
}
 +
 
 +
.wikitable td {
 +
    background-color: rgba(0, 0, 0, 0.1) !important;
 +
}
 +
 
 +
 
 +
 
 +
 
 +
 
 +
/* FORÇAR TODAS AS ABAS - MAIS ESPECÍFICO */
 +
#p-views li, #p-cactions li, #right-navigation li, #left-navigation li {
 +
    background-color: rgba(0, 0, 0, 0.7) !important;
 +
    background-image: none !important;
 +
}
 +
 
 +
#p-views li a, #p-cactions li a, #right-navigation li a, #left-navigation li a {
 +
    background-color: transparent !important;
 +
    background-image: none !important;
 +
    color: white !important;
 +
}
 +
 
 +
/* NAVEGAÇÃO DIREITA E ESQUERDA */
 +
#right-navigation, #left-navigation {
 +
    background: transparent !important;
 +
}
 +
 
 +
#right-navigation ul, #left-navigation ul {
 +
    background: transparent !important;
 +
}
 +
 
 +
/* ABAS ESPECÍFICAS DO VECTOR */
 +
.vector-menu-tabs li, .vector-menu-dropdown li {
 +
    background-color: rgba(0, 0, 0, 0.7) !important;
 +
    background-image: none !important;
 +
}
 +
 
 +
.vector-menu-tabs li a, .vector-menu-dropdown li a {
 +
    background-color: transparent !important;
 +
    background-image: none !important;
 +
    color: white !important;
 +
}
 +
 
 +
/* REMOVER GRADIENTES */
 +
#p-views li, #p-cactions li {
 +
    background-image: none !important;
 +
    filter: none !important;
 +
}
 +
 
 +
 
 +
/* Cor branca para todos os links do sidebar */
 +
#mw-panel a {
 +
    color: white !important;
 +
}
 +
 
 +
/* Cor branca para os cabeçalhos das seções do sidebar */
 +
#mw-panel .portal h3 {
 +
    color: white !important;
 +
}
 +
 
 +
/* Cor branca para texto normal do sidebar */
 +
#mw-panel {
 +
    color: white !important;
 +
}
 +
 
 +
/* Para garantir que links visitados também fiquem brancos */
 +
#mw-panel a:visited {
 +
    color: white !important;
 +
}
 +
 
 +
/* Para links quando hover (opcional - pode escolher outra cor) */
 +
#mw-panel a:hover {
 +
    color: #cccccc !important;
 +
}
 +
 
 +
* {
 +
    color: white !important;
 +
    background-color: transparent !important;
 +
}
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
#content, .mw-body {
 +
    color: white !important;
 +
}
 +
a {
 +
    color: white !important;
 +
}
 +
body {
 +
    color: white !important;
 +
}
 +
body, #content, .mw-body, #mw-content-text {
 +
    color: white !important;
 +
}

Latest revision as of 22:32, 6 July 2025

/* CSS placed here will be applied to all skins */
* body.page-Main_Page h1.firstHeading { display:none; }

/* ========== ESTILOS GERAIS ========== */
a {
    text-underline-offset: 0px;
}

.external {
    background: none !important;
    padding-right: 0 !important;
}

/* ========== WAR COPY (TEXTO E IMAGENS) ========== */
.warp-copy {
    color: #0066cc;
    cursor: pointer;
    text-decoration: underline dotted #0066cc;
    text-underline-offset: 2px;
    position: relative;
    display: inline-block;
}

/* Tooltip padrão */
.warp-copy::after {
    content: "Copy";
    position: absolute;
    left: 50%;
    background-color: #333;
    color: white;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%);
}

/* Seta do tooltip */
.warp-copy::before {
    content: "";
    position: absolute;
    left: 50%;
    border-width: 4px;
    border-style: solid;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%);
}

/* Tooltip PARA TEXTO */
.warp-copy:not(img)::after {
    bottom: calc(100% + 5px);
}

.warp-copy:not(img)::before {
    bottom: calc(100% + 1px);
    border-color: #333 transparent transparent transparent;
}

/* Tooltip PARA IMAGENS */
.tile-top.tile-image .warp-copy::after {
    bottom: -25px;
    top: auto !important;
}

.tile-top.tile-image .warp-copy::before {
    bottom: -18px;
    top: auto !important;
    border-color: #333 transparent transparent transparent !important;
}

/* Estados de hover */
.warp-copy:hover::after,
.warp-copy:hover::before {
    opacity: 1;
    visibility: visible;
}

/* Feedback de copiado - APLICA-SE A TODOS OS WARP-COPY */
.warp-copy.copied::after {
    content: "Copied!" !important;
    background-color: #4CAF50 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.warp-copy.copied {
    color: #4CAF50 !important;
    text-decoration: underline dotted #4CAF50 !important;
}

/* ========== ESTILOS ESPECÍFICOS PARA NPCs ========== */
.tile-row {
    display: flex;
    flex-flow: row wrap;
    margin-bottom: 1em;
}

.tile-halves {
    display: flex;
    flex-flow: row wrap;
    border: 1px solid #e4eaee;
    background: #ffffff;
    box-shadow: 0 0.25rem 0.35rem -0.25rem rgba(0, 0, 0, 0.1);
    position: relative;
}

.tile-halves h2 {
    font-size: 1.4em;
    font-weight: bold;
    border: none;
    margin: 0 0 0.4em;
}

.tile-top {
    width: 100%;
    padding: 1.3rem 1.5rem 0.6rem;
}

/* Correção para o container de imagem */
.tile-top.tile-image {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #949eaa;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
    /* Define altura fixa para o container */
    height: var(--image-height, auto);
    overflow: hidden;
}

.tile-top.tile-image a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

/* Imagem não tem tamanho forçado, mantém proporções */
.tile-top.tile-image img {
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    transition: 0.4s ease-out;
    object-fit: contain;
    max-width: 100%;
    max-height: 100%;
}

.tile-bottom {
    background: #ffffff;
    border-top: 1px solid #e4eaee;
    width: 100%;
    padding: 1rem 1.5rem 0.6rem;
}

.tile-bottom.link-button {
    align-self: center;
    padding: 0;
    width: auto;
    margin: 0 auto;
    max-width: fit-content;
}

/* Correção para os containers de NPC */
.mainpage-contents .tile-halves {
    display: inline-block;
    flex: 0 0 auto;
    margin-right: 0.9rem;
    width: auto;
    max-width: max-content;
}

.mainpage-contents .tile-halves:hover .tile-top img {
    transform: scale(1.04);
}

.mainpage-contents .tile-halves:last-child {
    margin-right: 0;
}

.npc-subtitle {
    font-size: 0.8em;
    color: #666;
    margin-top: -5px;
    text-align: center;
    font-style: italic;
    line-height: 1.2;
}

.mainpage-contents.tile-row {
    display: flex;
    flex-flow: row wrap;
    gap: 15px;
    justify-content: flex-start;
}

/* Definição corrigida para larguras do container */
.mainpage-contents .contents-equipment.tile-halves {
    box-sizing: border-box;
    margin-right: 0;
    flex: 0 0 auto;
    width: var(--container-width, auto) !important;
    min-width: var(--container-width, auto) !important;
    max-width: var(--container-width, auto) !important;
}

/* Título do NPC */
.tile-bottom.link-button h2 .warp-copy {
    color: #000080;
    font-weight: bold;
    display: block;
    text-align: center;
    text-decoration: none;
}

.tile-bottom.link-button h2 {
    position: relative;
    overflow: visible;
}

/* Código CSS limpo para os NPCs - MANTER APENAS ESTE BLOCO */

/* Container de NPC com cursor pointer */
.contents-equipment.tile-halves {
    position: relative;
    cursor: pointer;
}

/* Tooltip "Copy" ao passar o mouse */
.contents-equipment.tile-halves:hover:after {
    content: "Copy";
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #333;
    color: white;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 12px;
    z-index: 100;
    white-space: nowrap;
}

/* Seta para o tooltip */
.contents-equipment.tile-halves:hover:before {
    content: "";
    position: absolute;
    top: -9px;
    left: 50%;
    transform: translateX(-50%) rotate(180deg);
    border-width: 4px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
    z-index: 100;
}

/* Estilo para quando foi copiado */
.contents-equipment.tile-halves.npc-copied {
    border: 1px solid #4CAF50 !important;
    box-shadow: 0 0 5px rgba(76, 175, 80, 0.5);
}

.contents-equipment.tile-halves.npc-copied:after {
    content: "Copied!" !important;
    background-color: #4CAF50 !important;
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 12px;
    z-index: 100;
    white-space: nowrap;
}

.contents-equipment.tile-halves.npc-copied:before {
    border-color: #4CAF50 transparent transparent transparent !important;
    position: absolute;
    top: -9px;
    left: 50%;
    transform: translateX(-50%) rotate(180deg);
    border-width: 4px;
    border-style: solid;
    z-index: 100;
}

/* Efeito visual ao passar o mouse */
.contents-equipment.tile-halves:hover {
    box-shadow: 0 0.35rem 0.5rem -0.25rem rgba(0, 0, 0, 0.15);
}












.clone-pets-container {
  padding: 1em;
  background: #f8f8f8;
  border-radius: 10px;
  font-family: 'Verdana', sans-serif;
}

.pet-intro {
  background-color: #e2f0ff;
  padding: 1em;
  border-left: 5px solid #3399ff;
  margin-bottom: 1em;
}

.pet-categories {
  margin-top: 1em;
}

.pet-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}

.pet-card {
  background: white;
  border: 1px solid #ccc;
  border-radius: 8px;
  width: 150px;
  text-align: center;
  padding: 10px;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}

.pet-image img {
  border-radius: 6px;
}

.pet-name {
  font-weight: bold;
  margin-top: 8px;
}

.special-pet {
  display: flex;
  align-items: center;
  gap: 15px;
  background: #fff4d2;
  padding: 1em;
  border-radius: 8px;
  margin-top: 1em;
}

.special-pet .pet-image img {
  border: 2px solid #e0b300;
  border-radius: 8px;
}

.pet-desc {
  font-size: 0.95em;
}











/* BACKGROUND GERAL */
body {
    background-image: url('https://wiki.xilepk.net/wiki/images/6/6a/Bg.webp') !important;
    background-size: 100% 100% !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
    background-position: center !important;
}

/* BACKGROUND PARA PÁGINAS COM CLASS CUSTOM-BG */
.custom-bg {
    background-image: url('https://wiki.xilepk.net/wiki/images/6/6a/Bg.webp') !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    min-height: 100vh !important;
}

/* CONTAINERS TRANSPARENTES */
#mw-page-base, #content, .mw-body {
    background: transparent !important;
}

/* SIDEBAR */
#mw-panel {
    background-color: transparent !important;
    border-radius: 5px !important;
}

/* HEADER/TOPO */
#mw-head {
    background-color: transparent !important;
}

/* ABAS - FORÇAR ESPECÍFICO */
#p-views, #p-cactions, .vectorTabs {
    background: transparent !important;
}

#p-views ul, #p-cactions ul, .vectorTabs ul {
    background: transparent !important;
}

#p-views li, #p-cactions li, .vectorTabs li {
    background-color: rgba(0, 0, 0, 0.7) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

#p-views li a, #p-cactions li a, .vectorTabs li a {
    color: white !important;
    background: transparent !important;
}

/* TABELAS */
.wikitable {
    background-color: transparent !important;
    border: 1px solid rgba(0, 0, 0, 0.5) !important;
}

.wikitable th {
    background-color: rgba(0, 0, 0, 0.2) !important;
    color: white !important;
}

.wikitable td {
    background-color: rgba(0, 0, 0, 0.1) !important;
}





/* FORÇAR TODAS AS ABAS - MAIS ESPECÍFICO */
#p-views li, #p-cactions li, #right-navigation li, #left-navigation li {
    background-color: rgba(0, 0, 0, 0.7) !important;
    background-image: none !important;
}

#p-views li a, #p-cactions li a, #right-navigation li a, #left-navigation li a {
    background-color: transparent !important;
    background-image: none !important;
    color: white !important;
}

/* NAVEGAÇÃO DIREITA E ESQUERDA */
#right-navigation, #left-navigation {
    background: transparent !important;
}

#right-navigation ul, #left-navigation ul {
    background: transparent !important;
}

/* ABAS ESPECÍFICAS DO VECTOR */
.vector-menu-tabs li, .vector-menu-dropdown li {
    background-color: rgba(0, 0, 0, 0.7) !important;
    background-image: none !important;
}

.vector-menu-tabs li a, .vector-menu-dropdown li a {
    background-color: transparent !important;
    background-image: none !important;
    color: white !important;
}

/* REMOVER GRADIENTES */
#p-views li, #p-cactions li {
    background-image: none !important;
    filter: none !important;
}


/* Cor branca para todos os links do sidebar */
#mw-panel a {
    color: white !important;
}

/* Cor branca para os cabeçalhos das seções do sidebar */
#mw-panel .portal h3 {
    color: white !important;
}

/* Cor branca para texto normal do sidebar */
#mw-panel {
    color: white !important;
}

/* Para garantir que links visitados também fiquem brancos */
#mw-panel a:visited {
    color: white !important;
}

/* Para links quando hover (opcional - pode escolher outra cor) */
#mw-panel a:hover {
    color: #cccccc !important;
}

* {
    color: white !important;
    background-color: transparent !important;
}










#content, .mw-body {
    color: white !important;
}
a {
    color: white !important;
}
body {
    color: white !important;
}
body, #content, .mw-body, #mw-content-text {
    color: white !important;
}