Mudanças entre as edições de "Predefinição:Gb"

De Wiki Gla
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
{
<noinclude>{{Documentação}}</noinclude>
   "description": "Widget visual para ficha de criatura do bestiário.",
 
   "params": {
<style>
    "nome": {"label": "Nome", "type": "string", "required": true},
/* ==========================
    "imagem": {"label": "Imagem", "type": "string"},
  ESTILO DO WIDGET (TABS)
    "tipo": {"label": "Tipo", "type": "string"},
  ========================== */
    "habitat": {"label": "Habitat", "type": "string"},
 
    "perigo": {"label": "Perigo", "type": "string"},
.ot-tabs {
    "descricao": {"label": "Descrição", "type": "string"},
  width: 100%;
    "ultima_vista": {"label": "Última Vista", "type": "string"},
   background: #0d0d0d;
    "primeira_aparicao": {"label": "Primeira Aparição", "type": "string"},
  border: 1px solid #2a2a2a;
    "favorita": {"label": "Favorita", "type": "string"}
   padding: 10px;
   }
  border-radius: 8px;
}
 
/* Barra de botões */
.ot-tab-buttons {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
 
/* Botões */
.ot-tab-buttons button {
  background: #1a1a1a;
  color: #b5b5b5;
  border: 1px solid #333;
  padding: 8px 20px;
  cursor: pointer;
  font-weight: 600;
  border-radius: 6px;
  transition: 0.2s;
}
 
.ot-tab-buttons button:hover {
  background: #262626;
  color: #e5e5e5;
}
 
/* Aba ativa (estilo dourado igual ao do seu print) */
.ot-tab-buttons button.active {
  background: linear-gradient(90deg, #d89c00, #ffcc33);
  color: #000;
  border-color: #d89c00;
}
 
/* Conteúdo das abas */
.ot-tab-content {
  display: none;
  padding: 15px;
  border: 1px solid #333;
  border-radius: 6px;
  background: #151515;
}
 
.ot-tab-content.active {
   display: block;
}
}
</templatedata>
</style>
 
<script>
/* ==========================
  SISTEMA DE TROCA DE TABS
  ========================== */
document.addEventListener("click", function (e) {
    const btn = e.target.closest(".ot-tab-buttons button");
    if (!btn) return;
 
    const container = btn.closest(".ot-tabs");
    const target = btn.dataset.target;


<widget>
    // Atualiza botões
<div style="background:#21223a; border-radius:10px; padding:15px; width:350px; color:#f1e9d3; font-family:sans-serif;">
    container.querySelectorAll(".ot-tab-buttons button")
  <div style="display:flex; align-items:center; margin-bottom:10px;">
        .forEach(b => b.classList.remove("active"));
     <div style="width:60px; height:60px; border-radius:8px; overflow:hidden; background:#252736; margin-right:10px;">
    btn.classList.add("active");
      <img src="{{{imagem|https://via.placeholder.com/60}}}" alt="Imagem da criatura" style="width:60px; height:60px;">
 
    </div>
    // Atualiza conteúdos
    <div>
     container.querySelectorAll(".ot-tab-content")
      <div style="font-size:1.3em; font-weight:bold; color:#f7de72;">{{{nome|Criatura}}}</div>
        .forEach(c => c.classList.remove("active"));
      <div style="font-size:1em; color:#b0b0b0;">{{{tipo|Tipo desconhecido}}}</div>
 
      <div style="font-size:0.94em; color:#67b06a; margin-top:2px;">{{{habitat|Habitat desconhecido}}}</div>
    container.querySelector("#" + target).classList.add("active");
      <div style="font-size:0.97em; color:#e55a5a;">Perigo: {{{perigo|?}}}</div>
});
     </div>
</script>
    {{#if:{{{favorita|}}}|<div style="margin-left:auto; font-size:1.2em; color:gold;" title="Favorita">&#9733;</div>}}
 
<div class="ot-tabs">
 
  <div class="ot-tab-buttons">
    <button data-target="ot-tab-1" class="active">
      {{{label1|Outfit}}}
    </button>
    <button data-target="ot-tab-2">
      {{{label2|Cursed Backpack}}}
    </button>
    <button data-target="ot-tab-3">
      {{{label3|Crimsonevil's Head}}}
     </button>
   </div>
   </div>
   <div style="margin-top:10px;">
 
    <div style="background:#171821; border-radius:8px; padding:8px 10px; margin-bottom:6px;">
   <div class="ot-tab-content active" id="ot-tab-1">
      <span style="font-weight:bold; color:#f7de72;">Descrição</span><br />
    {{{1|Conteúdo da aba 1}}}
      <span style="font-size:0.98em;">{{{descricao|Sem descrição.}}}</span>
  </div>
    </div>
 
    {{#if:{{{ultima_vista|}}}|
  <div class="ot-tab-content" id="ot-tab-2">
    <div style="background:#171821; border-radius:8px; padding:7px 10px; margin-bottom:2px;">
     {{{2|Conteúdo da aba 2}}}
      <span style="font-weight:bold; color:#f7de72;">Última Vista:</span>
      <span style="margin-left:4px; font-size:0.97em;">
        <span style="color:gold;">&#9679;</span> {{{ultima_vista}}}
      </span>
    </div>
    |}}
     {{#if:{{{primeira_aparicao|}}}|
    <div style="background:#171821; border-radius:8px; padding:7px 10px;">
      <span style="font-weight:bold; color:#f7de72;">Primeira Aparição:</span>
      <span style="margin-left:4px; font-size:0.97em;">
        <span style="color:gold;">&#9679;</span> {{{primeira_aparicao}}}
      </span>
    </div>
    |}}
   </div>
   </div>
</div>
</widget>


----
  <div class="ot-tab-content" id="ot-tab-3">
    {{{3|Conteúdo da aba 3}}}
  </div>


==Predefinição:Gb==
</div>
<pre>
{{#invoke:Widget|render|Gb
|nome={{{nome|}}}
|imagem={{{imagem|}}}
|tipo={{{tipo|}}}
|habitat={{{habitat|}}}
|perigo={{{perigo|}}}
|descricao={{{descricao|}}}
|ultima_vista={{{ultima_vista|}}}
|primeira_aparicao={{{primeira_aparicao|}}}
|favorita={{{favorita|}}}
}}
</pre>

Edição das 14h31min de 19 de novembro de 2025

Predefinição:Documentação

<style> /* ==========================

  ESTILO DO WIDGET (TABS)
  ========================== */

.ot-tabs {

 width: 100%;
 background: #0d0d0d;
 border: 1px solid #2a2a2a;
 padding: 10px;
 border-radius: 8px;

}

/* Barra de botões */ .ot-tab-buttons {

 display: flex;
 gap: 8px;
 margin-bottom: 12px;

}

/* Botões */ .ot-tab-buttons button {

 background: #1a1a1a;
 color: #b5b5b5;
 border: 1px solid #333;
 padding: 8px 20px;
 cursor: pointer;
 font-weight: 600;
 border-radius: 6px;
 transition: 0.2s;

}

.ot-tab-buttons button:hover {

 background: #262626;
 color: #e5e5e5;

}

/* Aba ativa (estilo dourado igual ao do seu print) */ .ot-tab-buttons button.active {

 background: linear-gradient(90deg, #d89c00, #ffcc33);
 color: #000;
 border-color: #d89c00;

}

/* Conteúdo das abas */ .ot-tab-content {

 display: none;
 padding: 15px;
 border: 1px solid #333;
 border-radius: 6px;
 background: #151515;

}

.ot-tab-content.active {

 display: block;

} </style>

<script> /* ==========================

  SISTEMA DE TROCA DE TABS
  ========================== */

document.addEventListener("click", function (e) {

   const btn = e.target.closest(".ot-tab-buttons button");
   if (!btn) return;
   const container = btn.closest(".ot-tabs");
   const target = btn.dataset.target;
   // Atualiza botões
   container.querySelectorAll(".ot-tab-buttons button")
       .forEach(b => b.classList.remove("active"));
   btn.classList.add("active");
   // Atualiza conteúdos
   container.querySelectorAll(".ot-tab-content")
       .forEach(c => c.classList.remove("active"));
   container.querySelector("#" + target).classList.add("active");

}); </script>

   <button data-target="ot-tab-1" class="active">
     Outfit
   </button>
   <button data-target="ot-tab-2">
     Cursed Backpack
   </button>
   <button data-target="ot-tab-3">
     Crimsonevil's Head
   </button>
   Conteúdo da aba 1
   Conteúdo da aba 2
   Conteúdo da aba 3