Mudanças entre as edições de "Widget:CreatorReward"

De Wiki Gla
Ir para navegação Ir para pesquisar
(Criou página com '<style> .rc-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 1.25rem; max-width: 720px; margin: 0 auto 16px auto;...')
 
m
 
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
<style>
<includeonly>
  .rc-card {
    <style>
    background: #fff;
        .tabber__panel:not(.tabber__panel--active) {
    border: 1px solid #e0e0e0;
            display: none !important;
    border-radius: 12px;
        }
    padding: 1.25rem;
    max-width: 720px;
    margin: 0 auto 16px auto;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: #1a1a1a;
    box-sizing: border-box;
  }


  .rc-header {
        .tabber__panel.tabber__panel--active {
    display: flex;
            animation: rcTabIn 0.35s ease-out;
    align-items: center;
        }
    gap: 14px;
    margin-bottom: 16px;
  }


  .rc-sprite-wrap {
        @keyframes rcTabIn {
    width: 56px;
            from {
    height: 56px;
                opacity: 0;
    border-radius: 8px;
                transform: translateY(8px);
    background: #f5f5f5;
            }
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }


  .rc-sprite-wrap img {
            to {
    width: 32px;
                opacity: 1;
    height: 32px;
                transform: translateY(0);
    image-rendering: pixelated;
            }
    image-rendering: -moz-crisp-edges;
        }
  }
 
        .rc-card {
            background: #fff;
            border: 1px solid #e0e0e0;
            border-radius: 12px;
            padding: 1rem 1.25rem;
            max-width: 720px;
            margin: 0 0 16px 0;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
            color: #1a1a1a;
            box-sizing: border-box;
        }


  .rc-title {
        @media (max-width: 760px) {
    font-weight: 600;
            .rc-card {
    font-size: 16px;
                max-width: 100%;
    margin: 0;
            }
    color: #1a1a1a;
        }
  }


  .rc-desc {
        .rc-header {
    font-size: 13px;
            display: flex;
    color: #666;
            flex-direction: column;
    margin: 4px 0 0 0;
            align-items: flex-start;
    line-height: 1.4;
            gap: 8px;
  }
            margin-bottom: 14px;
        }


  .rc-platforms {
        .rc-sprite-wrap {
    display: grid;
            width: 40px;
    grid-template-columns: 1fr 1fr;
            height: 40px;
    gap: 12px;
            border-radius: 8px;
  }
            background: #f5f5f5;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }


  .rc-platform {
        .rc-sprite-wrap img {
    background: #f8f8f8;
            width: 32px;
    border-radius: 8px;
            height: 32px;
    padding: 12px 14px;
            image-rendering: pixelated;
  }
            image-rendering: -moz-crisp-edges;
        }


  .rc-platform-label {
        .rc-title {
    display: flex;
            font-weight: 600;
    align-items: center;
            font-size: 16px;
    gap: 6px;
            margin: 0;
    margin: 0 0 8px 0;
            color: #1a1a1a;
    font-size: 12px;
        }
    font-weight: 600;
    letter-spacing: 0.3px;
  }


  .rc-platform-label.yt {
        .rc-desc {
    color: #cc0000;
            font-size: 13px;
  }
            color: #666;
            margin: 2px 0 0 0;
            line-height: 1.4;
        }


  .rc-platform-label.tw {
        .rc-platforms {
    color: #9146ff;
            display: grid;
  }
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }


  .rc-platform-label svg {
        .rc-platform {
    flex-shrink: 0;
            background: #f8f8f8;
  }
            border-radius: 8px;
            padding: 10px 12px;
        }


  .rc-reqs {
        .rc-platform-label {
    font-size: 13px;
            display: flex;
    color: #333;
            align-items: center;
    margin: 0;
            gap: 6px;
    line-height: 1.7;
            margin: 0 0 6px 0;
  }
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 0.3px;
        }


  .rc-note {
        .rc-platform-label.yt {
    font-size: 12px;
            color: #cc0000;
    color: #888;
        }
    margin: 4px 0 0 0;
    line-height: 1.4;
  }


  .rc-showcase {
        .rc-platform-label.tw {
    margin-top: 16px;
            color: #9146ff;
    display: grid;
        }
    grid-template-columns: 1fr;
    gap: 12px;
  }


  .rc-showcase-img {
        .rc-platform-label svg {
    width: 100%;
            flex-shrink: 0;
    border-radius: 8px;
        }
    background: #f5f5f5;
    display: block;
  }


  .rc-showcase-caption {
        .rc-reqs-list {
    font-size: 12px;
            list-style: disc;
    color: #888;
            margin: 0;
    text-align: center;
            padding-left: 18px;
    margin: 4px 0 0 0;
            font-size: 13px;
  }
            color: #333;
            line-height: 1.8;
        }


  @media (max-width: 520px) {
        .rc-reqs-list li {
    .rc-platforms {
            margin-bottom: 2px;
      grid-template-columns: 1fr;
        }
    }
  }
</style>


<div class="rc-card">
        .rc-note {
  <div class="rc-header">
            font-size: 12px;
    <div class="rc-sprite-wrap">
            color: #888;
      <img src="https://wiki.gla.com.br/index.php/Arquivo:{{{sprite}}}" alt="{{{title}}}">
            margin: 4px 0 0 0;
    </div>
            line-height: 1.4;
    <div>
        }
      <p class="rc-title">{{{title}}}</p>
      <p class="rc-desc">{{{desc}}}</p>
    </div>
  </div>


  <div class="rc-platforms">
        .rc-showcase {
    <div class="rc-platform">
            margin-top: 12px;
      <p class="rc-platform-label yt">
             display: grid;
        <svg width="18" height="13" viewBox="0 0 18 13" fill="none" xmlns="http://www.w3.org/2000/svg">
             grid-template-columns: 1fr;
          <path
             gap: 12px;
             d="M17.6 2.03C17.39 1.24 16.77 0.62 15.98 0.4C14.56 0 9 0 9 0S3.44 0 2.02 0.4C1.23 0.62 0.61 1.24 0.4 2.03C0 3.45 0 6.38 0 6.38S0 9.31 0.4 10.73C0.61 11.52 1.23 12.14 2.02 12.36C3.44 12.76 9 12.76 9 12.76S14.56 12.76 15.98 12.36C16.77 12.14 17.39 11.52 17.6 10.73C18 9.31 18 6.38 18 6.38S18 3.45 17.6 2.03Z"
         }
             fill="#CC0000" />
          <path d="M7.2 9.1L11.88 6.38L7.2 3.66V9.1Z" fill="white" />
        </svg>
        YouTube
      </p>
      <p class="rc-reqs">{{{yt_req}}}</p>
      <!--{{{yt_note|}}}-->
    </div>
    <div class="rc-platform">
      <p class="rc-platform-label tw">
        <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path
             d="M1.18 0L0 3.39V14.84H4.06V17H6.12L8.17 14.84H11.29L16 10.02V0H1.18ZM2.35 1.41H14.82V9.32L12.47 11.73H8.76L6.71 13.89V11.73H2.35V1.41ZM6.71 4.24V8.47H8.18V4.24H6.71ZM10.71 4.24V8.47H12.18V4.24H10.71Z"
            fill="#9146FF" />
         </svg>
        Twitch
      </p>
      <p class="rc-reqs">{{{tw_req}}}</p>
      <!--{{{tw_note|}}}-->
    </div>
  </div>


  <!--rc-gif-placeholder-->
        .rc-showcase-img {
</div>
            width: 100%;
            border-radius: 8px;
            background: #f5f5f5;
            display: block;
        }


<script>
        .rc-showcase-caption {
  (function () {
            font-size: 12px;
    function initRewardCards() {
            color: #888;
      // Handle optional notes
            text-align: center;
      document.querySelectorAll('.rc-platform').forEach(function (el) {
            margin: 4px 0 0 0;
        var html = el.innerHTML;
        // Find yt_note or tw_note comments and replace with actual note element if content exists
        html = html.replace(/<!--(.+?)-->/, function(match, content) {
          content = content.trim();
        if (content && content !== '' && !content.startsWith('{{{')) {
          return '<p class="rc-note">' + content + '</p>';
         }
         }
        return '';
      });
      el.innerHTML = html;
    });


    // Handle optional gif showcase
        @media (max-width: 520px) {
    document.querySelectorAll('.rc-card').forEach(function (card) {
            .rc-platforms {
      var html = card.innerHTML;
                grid-template-columns: 1fr;
      html = html.replace(/<!--rc-gif-placeholder-->/, function () {
            }
        var gif = '{{{gif|}}}';
        if (gif && gif !== '' && !gif.startsWith('{{{')) {
          var caption = '{{{gif_caption|}}}';
          var captionHtml = '';
          if (caption && caption !== '' && !caption.startsWith('{{{')) {
            captionHtml = '<p class="rc-showcase-caption">' + caption + '</p>';
          }
          var imgUrl = 'https://wiki.gla.com.br/index.php/Arquivo:' + gif;
          return '<div class="rc-showcase"><div><img class="rc-showcase-img" src="' + imgUrl + '" alt="Preview">' + captionHtml + '</div></div>';
         }
         }
         return '';
    </style>
      });
 
      card.innerHTML = html;
    <div class="rc-card" data-sprite="<!--{$sprite|escape:'html'}-->" data-title="<!--{$title|escape:'html'}-->"
    });
        data-desc="<!--{$desc|default:''|escape:'html'}-->" data-yt_req="<!--{$yt_req|default:''|escape:'html'}-->"
        data-tw_req="<!--{$tw_req|default:''|escape:'html'}-->"
        data-yt_note="<!--{$yt_note|default:''|escape:'html'}-->"
         data-tw_note="<!--{$tw_note|default:''|escape:'html'}-->" data-gif="<!--{$gif|default:''|escape:'html'}-->"
        data-gif_caption="<!--{$gif_caption|default:''|escape:'html'}-->">
    </div>
 
    <script>
        (function () {
            function resolveFile(filename) {
                if (!filename) return '';
                if (typeof mw !== 'undefined' && mw.util && mw.util.getUrl) {
                    return mw.util.getUrl('Especial:FilePath/' + filename);
                }
                return '/index.php?title=Especial:FilePath/' + encodeURIComponent(filename);
            }
 
            function esc(str) {
                if (!str) return '';
                var div = document.createElement('div');
                div.appendChild(document.createTextNode(str));
                return div.innerHTML;
            }
 
            function reqsToListHtml(reqStr) {
                if (!reqStr || !reqStr.trim()) return '';
                var items = reqStr.split('*').map(function (s) { return s.trim(); }).filter(function (s) { return s.length > 0; });
                if (items.length === 0) return '';
                var html = '<ul class="rc-reqs-list">';
                for (var j = 0; j < items.length; j++) {
                    html += '<li>' + items[j] + '</li>';
                }
                html += '</ul>';
                return html;
            }
 
            function buildCards() {
                var cards = document.querySelectorAll('.rc-card[data-title]');
                for (var i = 0; i < cards.length; i++) {
                    var c = cards[i];
                    var d = c.dataset;
                    if (!d.title) continue;
 
                    var html = '';
 
                    html += '<div class="rc-header">';
                    html += '  <div class="rc-sprite-wrap">';
                    if (d.sprite) {
                        html += '    <img src="' + resolveFile(d.sprite) + '" alt="' + esc(d.title) + '">';
                    }
                    html += '  </div>';
                    html += '  <div>';
                    html += '    <p class="rc-title">' + esc(d.title) + '</p>';
                    if (d.desc) {
                        html += '    <p class="rc-desc">' + esc(d.desc) + '</p>';
                    }
                    html += '  </div>';
                    html += '</div>';
 
                    html += '<div class="rc-platforms">';
 
                    html += '  <div class="rc-platform">';
                    html += '    <p class="rc-platform-label yt">';
                    html += '      <svg width="18" height="13" viewBox="0 0 18 13" fill="none" xmlns="http://www.w3.org/2000/svg">';
                    html += '        <path d="M17.6 2.03C17.39 1.24 16.77 0.62 15.98 0.4C14.56 0 9 0 9 0S3.44 0 2.02 0.4C1.23 0.62 0.61 1.24 0.4 2.03C0 3.45 0 6.38 0 6.38S0 9.31 0.4 10.73C0.61 11.52 1.23 12.14 2.02 12.36C3.44 12.76 9 12.76 9 12.76S14.56 12.76 15.98 12.36C16.77 12.14 17.39 11.52 17.6 10.73C18 9.31 18 6.38 18 6.38S18 3.45 17.6 2.03Z" fill="#CC0000"/>';
                    html += '        <path d="M7.2 9.1L11.88 6.38L7.2 3.66V9.1Z" fill="white"/>';
                    html += '      </svg>';
                    html += '      YouTube';
                    html += '    </p>';
                    if (d.yt_req) {
                        html += '    ' + reqsToListHtml(d.yt_req);
                    }
                    if (d.yt_note) {
                        html += '    <p class="rc-note">' + esc(d.yt_note) + '</p>';
                    }
                    html += '  </div>';
 
                    html += '  <div class="rc-platform">';
                    html += '    <p class="rc-platform-label tw">';
                    html += '      <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">';
                    html += '        <path d="M1.18 0L0 3.39V14.84H4.06V17H6.12L8.17 14.84H11.29L16 10.02V0H1.18ZM2.35 1.41H14.82V9.32L12.47 11.73H8.76L6.71 13.89V11.73H2.35V1.41ZM6.71 4.24V8.47H8.18V4.24H6.71ZM10.71 4.24V8.47H12.18V4.24H10.71Z" fill="#9146FF"/>';
                    html += '      </svg>';
                    html += '      Twitch';
                    html += '    </p>';
                    if (d.tw_req) {
                        html += '    ' + reqsToListHtml(d.tw_req);
                    }
                    if (d.tw_note) {
                        html += '    <p class="rc-note">' + esc(d.tw_note) + '</p>';
                    }
                    html += '  </div>';
 
                    html += '</div>';
 
                    if (d.gif) {
                        html += '<div class="rc-showcase">';
                        html += '  <div>';
                        html += '    <img class="rc-showcase-img" src="' + resolveFile(d.gif) + '" alt="Preview">';
                        if (d.gif_caption) {
                            html += '    <p class="rc-showcase-caption">' + esc(d.gif_caption) + '</p>';
                        }
                        html += '  </div>';
                        html += '</div>';
                    }


    // Fix image paths - convert wiki Arquivo: paths to actual file paths
                    c.innerHTML = html;
    document.querySelectorAll('.rc-card img').forEach(function (img) {
                }
      var src = img.getAttribute('src');
            }
      if (src && src.indexOf('Arquivo:') !== -1) {
        var filename = src.split('Arquivo:').pop();
        img.setAttribute('src', '/index.php?title=Especial:FilePath/' + encodeURIComponent(filename));
      }
    });
  }


  if (document.readyState === 'loading') {
            if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initRewardCards);
                document.addEventListener('DOMContentLoaded', buildCards);
  } else {
            } else {
    initRewardCards();
                buildCards();
  }
            }
}) ();
        })();
</script>
    </script>
</includeonly>

Edição atual tal como às 23h11min de 14 de março de 2026