Mudanças entre as edições de "Widget:Droflax"
Ir para navegação
Ir para pesquisar
| Linha 1: | Linha 1: | ||
<script> | <script> | ||
(function () { | (function () { | ||
const buttons = document.querySelectorAll('.tab-btn'); | |||
const contents = document.querySelectorAll('.tab-content'); | |||
const cuadrosContainer = document.querySelector('.cuadros-container'); | |||
const descripcionContainer = document.querySelector('.descripcion-container'); | |||
const videoContainer = document.querySelector('.video-container'); | |||
const cuadros = [...cuadrosContainer.querySelectorAll('.cuadro')]; | |||
const mwBody = document.querySelector('.personaje-box'); | |||
let totalVideos = 0; | |||
let loadedVideos = 0; | |||
const videosCache = {}; | |||
let autoplayEnabled = false; | |||
activarFlechasCarrusel(); | |||
const placeholder = document.createElement('div'); | |||
placeholder.className = 'video-placeholder'; | |||
placeholder.innerHTML = `<img src="/images/d/d5/Icon_gla.png" alt="Cargando...">`; | |||
videoContainer.appendChild(placeholder); | |||
function removePlaceholderSmooth() { | |||
placeholder.classList.add('fade-out'); | |||
placeholder.addEventListener('transitionend', () => placeholder.remove(), { once: true }); | |||
} | |||
function checkAllVideosLoaded() { | |||
if (loadedVideos === totalVideos && totalVideos > 0) { | |||
autoplayEnabled = true; | |||
} | |||
} | } | ||
// Pré-carregar todos os vídeos | |||
cuadros.forEach(div => { | |||
const videoSrc = div.dataset.video; | |||
const index = div.dataset.index; | |||
if (videoSrc && videoSrc.trim() !== '' && !videosCache[index]) { | |||
totalVideos++; | |||
const videoEl = document.createElement('video'); | |||
videoEl.setAttribute('width', '100%'); | |||
videoEl.setAttribute('controls', ''); | |||
videoEl.setAttribute('preload', 'auto'); | |||
videoEl.setAttribute('playsinline', ''); | |||
videoEl.dataset.index = index; | |||
videoEl.style.display = 'none'; | |||
const source = document.createElement('source'); | |||
source.src = videoSrc; | |||
source.type = 'video/webm'; | |||
videoEl.appendChild(source); | |||
// Quando o vídeo já estiver pronto, remover placeholder | |||
videoEl.addEventListener('canplay', () => { | |||
loadedVideos++; | |||
if (loadedVideos === 1) { | |||
videoEl.pause(); | |||
videoEl.currentTime = 0; | |||
} | |||
const activeCuadro = document.querySelector('.cuadro.activo'); | |||
if (activeCuadro && activeCuadro.dataset.index === videoEl.dataset.index) { | |||
setTimeout(removePlaceholderSmooth, 200); | |||
} | |||
checkAllVideosLoaded(); | |||
}); | |||
videoEl.addEventListener('error', () => { | |||
loadedVideos++; | |||
removePlaceholderSmooth(); | |||
checkAllVideosLoaded(); | |||
}); | |||
videoContainer.appendChild(videoEl); | |||
videosCache[index] = videoEl; | |||
} | |||
}); | |||
// Se não houver vídeos, ocultar imediatamente | |||
if (totalVideos === 0) { | |||
placeholder.remove(); | |||
} | } | ||
buttons.forEach(btn => btn.addEventListener('click', () => { | |||
buttons.forEach(b => b.classList.remove('active')); | |||
contents.forEach(c => c.classList.remove('active')); | |||
btn.classList.add('active'); | |||
document.getElementById(btn.dataset.tab).classList.add('active'); | |||
})); | |||
cuadros.forEach(div => { | |||
const nome = div.dataset.nome; | |||
const desc = div.dataset.desc.replace(/'''(.*?)'''/g, '<b>$1</b>'); | |||
const atr = div.dataset.atr; | |||
const index = div.dataset.index; | |||
const hasVideo = div.dataset.video && div.dataset.video.trim() !== ''; | |||
div.title = nome; | |||
div.addEventListener('click', () => { | |||
if (!autoplayEnabled && loadedVideos > 0) { | |||
autoplayEnabled = true; | |||
} | |||
descripcionContainer.innerHTML = ` | |||
<div class="titulo-habilidad"> | <div class="titulo-habilidad"> | ||
<h3>${nome}</h3> | <h3>${nome}</h3> | ||
| Linha 112: | Linha 112: | ||
`; | `; | ||
Object.values(videosCache).forEach(v => { | |||
v.pause(); | |||
v.style.display = 'none'; | |||
}); | |||
// Gerenciar habilidades com/sem vídeo | |||
if (hasVideo) { | |||
const videoEl = videosCache[index]; | |||
if (videoEl) { | |||
videoContainer.style.display = 'block'; | |||
videoEl.style.display = 'block'; | |||
videoEl.currentTime = 0; | |||
if (autoplayEnabled) { | |||
videoEl.play().catch(e => console.log('Autoplay bloqueado:', e)); | |||
} | |||
} | |||
} else { | |||
videoContainer.style.display = 'none'; | |||
} | |||
cuadros.forEach(c => c.classList.remove('activo')); | |||
div.classList.add('activo'); | |||
}); | }); | ||
['data-nome', 'data-desc', 'data-atr', 'data-video'].forEach(attr => div.removeAttribute(attr)); | |||
}); | |||
if ( | |||
const | if (Object.keys(videosCache).length === 0) { | ||
if ( | videoContainer.style.display = 'none'; | ||
} | |||
if (cuadros.length) cuadros[0].click(); | |||
cuadrosContainer.addEventListener('wheel', e => { | |||
if (e.deltaY) { | |||
e.preventDefault(); | |||
cuadrosContainer.scrollLeft += e.deltaY; | |||
} | |||
}); | |||
function activarFlechasCarrusel() { | |||
const carousel = document.querySelector('.skins-carousel'); | |||
const wrapper = document.querySelector('.skins-carousel-wrapper'); | |||
const [leftBtn, rightBtn] = ['.skins-arrow.left', '.skins-arrow.right'].map(sel => document.querySelector(sel)); | |||
let isPredictingScroll = false, isAutoScrolling = false; | |||
const getScrollAmount = () => carousel.clientWidth * 0.6; | |||
const hideArrow = btn => { | |||
if (!btn.classList.contains('desapareciendo') && btn.style.display !== 'none') { | |||
btn.classList.add('desapareciendo'); | |||
setTimeout(() => { | |||
btn.style.display = 'none'; | |||
btn.classList.remove('desapareciendo'); | |||
}, 300); | |||
} | |||
}; | |||
const showArrow = btn => { | |||
if (btn.style.display === 'none') { | |||
btn.style.display = 'inline-block'; | |||
void btn.offsetWidth; | |||
} | |||
btn.classList.remove('desapareciendo'); | |||
}; | |||
const setArrowsState = scrollLeft => { | |||
const maxScroll = carousel.scrollWidth - carousel.clientWidth; | |||
const hasLeft = scrollLeft > 5, hasRight = scrollLeft < maxScroll - 5; | |||
hasLeft ? showArrow(leftBtn) : hideArrow(leftBtn); | |||
hasRight ? showArrow(rightBtn) : hideArrow(rightBtn); | |||
wrapper.classList.toggle('has-left', hasLeft); | |||
wrapper.classList.toggle('has-right', hasRight); | |||
if (!hasLeft && !hasRight) { carousel.style.justifyContent = 'center'; } else { carousel.style.justifyContent = ''; } | |||
}; | |||
const handleArrowClick = dir => { | |||
isPredictingScroll = true; | |||
const scrollLeft = carousel.scrollLeft, maxScroll = carousel.scrollWidth - carousel.clientWidth; | |||
const nextScroll = dir === 'left' ? Math.max(0, scrollLeft - getScrollAmount()) : Math.min(maxScroll, scrollLeft + getScrollAmount()); | |||
setArrowsState(nextScroll); | |||
carousel.scrollTo({ left: nextScroll, behavior: 'smooth' }); | |||
let last = -1, still = 0; | |||
const wait = setInterval(() => { | |||
const current = Math.round(carousel.scrollLeft); | |||
if (current === last) { | |||
if (++still >= 2) { | |||
clearInterval(wait); | |||
isPredictingScroll = false; | |||
setArrowsState(current); | |||
} | |||
} else { | |||
last = current; | |||
still = 0; | |||
} | } | ||
} | }, 50); | ||
}; | |||
carousel.addEventListener('scroll', () => { | |||
if (!isPredictingScroll) setArrowsState(carousel.scrollLeft); | |||
}); | |||
new ResizeObserver(() => { | |||
if (!isPredictingScroll) setArrowsState(carousel.scrollLeft); | |||
}).observe(carousel); | |||
} | leftBtn.addEventListener('click', () => handleArrowClick('left')); | ||
rightBtn.addEventListener('click', () => handleArrowClick('right')); | |||
setArrowsState(carousel.scrollLeft); | |||
} | |||
// Resolve o arquivo de forma confiável (cai no /images/... certo) | |||
function resolveFile(name) { | |||
if (window.mw && mw.util && typeof mw.util.getUrl === 'function') { | |||
return mw.util.getUrl('Special:FilePath/' + encodeURIComponent(name)); | |||
} | } | ||
return '/index.php/Special:FilePath/' + encodeURIComponent(name); | |||
} | |||
function generarHTMLAtributos(str) { | |||
const vals = (str || '').split(',').map(v => v.trim()); | |||
const pveRaw = vals[0]; | |||
const pvpRaw = vals[1]; | |||
const eneRaw = vals[2]; | |||
const cdRaw = vals[3]; | |||
const recNum = parseInt(cdRaw, 10); | |||
const recargaVal = isNaN(recNum) ? '-' : recNum; | |||
const eneNum = parseInt(eneRaw, 10); | |||
const energiaLabel = isNaN(eneNum) ? 'Energia' | |||
: (eneNum >= 0 ? 'Ganho de energia' : 'Custo de energia'); | |||
const energiaVal = isNaN(eneNum) ? '-' : Math.abs(eneNum); | |||
const pveNum = parseInt(pveRaw, 10); | |||
const pvpNum = parseInt(pvpRaw, 10); | |||
const poderVal = isNaN(pveNum) ? '-' : pveNum; | |||
const poderPvpVal = isNaN(pvpNum) ? '-' : pvpNum; | |||
const rows = [ | |||
['Recarga', recargaVal], | |||
[energiaLabel, energiaVal], | |||
['Poder', poderVal], | |||
['Poder PvP', poderPvpVal], | |||
]; | |||
const visible = rows.filter(([, v]) => v !== '-'); | |||
const empties = rows.length - visible.length; | |||
const visibleHtml = visible.map(([label, value]) => ` | |||
<div class="attr-row"> | |||
<span class="attr-label">${label}:</span> | |||
<span class="attr-value">${value}</span> | |||
</div>`).join(''); | |||
const emptyHtml = Array.from({ length: empties }).map(() => ` | |||
<div class="attr-row is-empty"> | |||
<span class="attr-label"> </span> | |||
<span class="attr-value"> </span> | |||
</div>`).join(''); | |||
return `<div class="attr-list">${visibleHtml}${emptyHtml}</div>`; | |||
} | |||
})(); | |||
</script> | |||
<style> | |||
img { | |||
pointer-events: none; | |||
user-select: none; | |||
} | |||
video { | |||
max-height: 33.25em; | |||
object-fit: fill; | |||
} | |||
.mw-body { | |||
padding: unset !important; | |||
} | |||
.mw-body-content { | |||
line-height: 1.5 !important; | |||
} | |||
.mw-body-content p { | |||
display: none; | |||
} | |||
/* --------- Banner de fundo do topo ---------- */ | |||
.banner { | |||
position: absolute; | |||
z-index: -9; | |||
width: 100%; | |||
height: 100%; | |||
background-image: url(https://i.imgur.com/OVGhLvl.png); | |||
background-size: cover; | |||
} | |||
.banner-personaje { | |||
width: 100%; | |||
height: auto; | |||
} | |||
.banner::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
background: linear-gradient(to right, rgba(0, 0, 0, .6), rgba(0, 0, 0, .2)); | |||
} | |||
.personaje-box { | |||
padding: unset !important; | |||
color: #000; | |||
font-family: 'Noto Sans', sans-serif !important; | |||
width: 100%; | |||
margin: auto; | |||
position: relative; | |||
user-select: none; | |||
} | |||
.personaje-box p { | |||
display: unset; | |||
} | |||
.personaje-topbar { | |||
display: flex; | |||
flex-direction: column; | |||
align-items: flex-start; | |||
padding: 8px 20px; | |||
padding-top: 4px; | |||
} | |||
.personaje-nome-box { | |||
display: flex; | |||
align-items: center; | |||
gap: 14px; | |||
} | |||
.topbar-icon { | |||
margin-top: 8px; | |||
width: 100px; | |||
height: 100px; | |||
object-fit: none; | |||
} | |||
.nome { | |||
text-shadow: 0 0 6px #000, 0 0 9px #000; | |||
color: #fff; | |||
font-size: 56px; | |||
font-family: 'Orbitron', sans-serif; | |||
font-weight: 900; | |||
} | |||
.topbar-description { | |||
display: none !important; | |||
font-size: 16px; | |||
margin-top: 6px; | |||
width: fit-content; | |||
padding-inline: 16px; | |||
border-radius: 0 10px 10px 0; | |||
box-shadow: 0 0 2px rgb(0 0 0 / 70%); | |||
} | |||
.personaje-header { | |||
position: relative; | |||
overflow: hidden; | |||
display: flex; | |||
gap: 10px; | |||
flex-direction: column; | |||
} | |||
/* arte do personagem */ | |||
.art-personaje { | |||
width: 34.3vw; | |||
height: auto; | |||
position: absolute; | |||
right: 3.5rem; | |||
top: -3.1rem; | |||
z-index: 1; | |||
pointer-events: none; | |||
} | |||
.classes { | |||
display: flex; | |||
gap: 9px; | |||
flex-wrap: wrap; | |||
margin-left: .28rem; | |||
} | |||
.classe { | |||
background: #353420; | |||
color: #fff; | |||
outline: 2px solid #000; | |||
padding: 1px 6px; | |||
border-radius: 4px; | |||
font-size: .9em; | |||
font-weight: bold; | |||
box-shadow: 0 0 2px rgb(0 0 0 / 70%); | |||
} | |||
.personaje-info { | |||
user-select: none; | |||
} | |||
.personaje-info .tier, | |||
.personaje-info .classe { | |||
font-size: 18px; | |||
color: #bbb; | |||
} | |||
/* --------- aba ---------- */ | |||
.personaje-tabs { | |||
margin: 4px 0 4px 8px; | |||
display: flex; | |||
gap: 12px; | |||
justify-content: flex-start; | |||
} | |||
.tab-btn { | |||
padding: 5px 20px; | |||
background: #333; | |||
color: #fff; | |||
border: 2px solid transparent; | |||
border-radius: 8px; | |||
font-size: 20px; | |||
cursor: pointer; | |||
font-weight: 600; | |||
line-height: 1; | |||
transition: background .15s ease, border-color .15s ease; | |||
} | |||
.tab-btn.active { | |||
background: #156bc7; | |||
border-color: #156bc7; | |||
} | |||
.tab-content { | |||
display: none; | |||
background: #26211cd6; | |||
padding: 0 8px 8px; | |||
position: relative; | |||
z-index: 3; | |||
} | |||
.tab-content.active { | |||
display: block; | |||
} | |||
/* --------- skill ---------- */ | |||
.habilidades-container { | |||
display: flex; | |||
gap: 20px; | |||
} | |||
.habilidades-details { | |||
flex: 1; | |||
display: flex; | |||
flex-direction: column; | |||
gap: 10px; | |||
width: 50%; | |||
justify-content: center; | |||
} | |||
.cuadros-container { | |||
display: flex; | |||
flex-wrap: nowrap; | |||
gap: 10px; | |||
width: 100%; | |||
overflow-x: auto; | |||
overflow-y: hidden; | |||
padding: 10px 0 3px 1px; | |||
position: relative; | |||
z-index: 4; | |||
margin-bottom: 6px; | |||
scrollbar-width: thin; | |||
scrollbar-color: #ababab transparent; | |||
scroll-behavior: smooth; | |||
justify-content: flex-start; | |||
} | |||
.cuadros-container::-webkit-scrollbar { | |||
height: 6px; | |||
} | |||
.cuadros-container::-webkit-scrollbar-track { | |||
background: transparent; | |||
} | |||
.cuadros-container::-webkit-scrollbar-thumb { | |||
background-color: #151515; | |||
border-radius: 3px; | |||
} | |||
.cuadros-container .cuadro { | |||
flex: 0 0 auto; | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 5px; | |||
cursor: pointer; | |||
transition: transform .2s, box-shadow .2s; | |||
} | |||
.cuadros-container .cuadro.activo { | |||
box-shadow: 0 0 0 1.5px #FFD700; | |||
} | |||
.cuadro img { | |||
width: 100%; | |||
height: 100%; | |||
object-fit: cover; | |||
} | |||
.titulo-habilidad { | |||
position: relative; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
margin-bottom: 8px; | |||
padding-right: 32px; | |||
} | |||
.titulo-habilidad h3 { | |||
font-size: 1.6em; | |||
color: #fff; | |||
text-align: center; | |||
margin: 0; | |||
width: 100%; | |||
} | |||
.tooltip-container { | |||
position: absolute; | |||
right: 0; | |||
top: 50%; | |||
transform: translateY(-50%); | |||
} | |||
.info-btn { | |||
border: none; | |||
color: #D3DBDC; | |||
background: #787878; | |||
font-weight: bold; | |||
border-radius: 50%; | |||
width: 44px; | |||
height: 44px; | |||
font-family: 'Noto Sans'; | |||
cursor: pointer; | |||
transition: .2s; | |||
box-shadow: 0 0 3px #000; | |||
font-size: 40px; | |||
padding: 0; | |||
line-height: 24px; | |||
text-align: center; | |||
} | |||
.tooltip-text { | |||
visibility: hidden; | |||
width: 220px; | |||
background: #222; | |||
color: #fff; | |||
text-align: left; | |||
padding: 8px 10px; | |||
border-radius: 8px; | |||
position: absolute; | |||
z-index: 10; | |||
bottom: 130%; | |||
left: 50%; | |||
transform: translate(-85%, 110%); | |||
opacity: 0; | |||
transition: opacity .3s; | |||
font-size: 12px; | |||
box-shadow: 0 2px 10px rgba(0, 0, 0, .5); | |||
pointer-events: none; | |||
} | |||
.tooltip-container:hover .tooltip-text { | |||
visibility: visible; | |||
opacity: 1; | |||
} | |||
.descripcion-container { | |||
min-height: 27.5rem; | |||
height: 100%; | |||
padding: 4px 16px !important; | |||
background: #26211C; | |||
border-radius: 8px; | |||
position: relative; | |||
box-shadow: 0 6px 18px rgba(0, 0, 0, .28); | |||
color: #fff; | |||
backdrop-filter: blur(2px); | |||
transition: all .3s ease; | |||
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; | |||
padding-top: 0 !important; | |||
z-index: 99; | |||
} | |||
.descripcion-container h3 { | |||
font-size: 2.7em; | |||
margin: 0; | |||
text-align: center; | |||
padding-top: 0; | |||
} | |||
.descripcion-container p, | |||
.desc { | |||
font-size: 1.2em; | |||
margin: 0; | |||
} | |||
.desc { | |||
overflow-y: auto !important; | |||
max-height: inherit; | |||
margin-top: 10px; | |||
} | |||
.desc * { | |||
font-size: inherit !important; | |||
line-height: inherit; | |||
} | |||
.descripcion-container .descLevel { | |||
margin-top: 5px; | |||
font-weight: bold; | |||
} | |||
.descripcion-container .desc::-webkit-scrollbar, | |||
.tabSkill--container::-webkit-scrollbar { | |||
width: 7px; | |||
height: 7px; | |||
} | |||
.descripcion-container .desc::-webkit-scrollbar-thumb, | |||
.tabSkill--container::-webkit-scrollbar-thumb { | |||
background-color: rgb(71 153 255); | |||
border-radius: 10px; | |||
} | |||
.descripcion-container .desc::-webkit-scrollbar-track, | |||
.tabSkill--container::-webkit-scrollbar-track { | |||
background-color: #151515a8; | |||
border-radius: 10px; | |||
} | |||
/* Tiers */ | |||
.tier-bronze .topbar-icon, | |||
.tier-bronze .tier { | |||
outline: 2px solid #7b4e2f !important; | |||
} | |||
.tier-silver .topbar-icon, | |||
.tier-silver .tier { | |||
outline: 2px solid #d6d2d2 !important; | |||
} | |||
.tier-gold .topbar-icon, | |||
.tier-gold .tier { | |||
outline: 2px solid #fcd300 !important; | |||
} | |||
.tier-diamond .topbar-icon, | |||
.tier-diamond .tier { | |||
outline: 2px solid #60dae2 !important; | |||
} | |||
/* video da habilidade */ | |||
video::-webkit-media-controls { | |||
opacity: 0; | |||
transition: opacity .3s; | |||
} | |||
video:hover::-webkit-media-controls { | |||
opacity: 1; | |||
} | |||
.video-container { | |||
position: relative; | |||
width: 43%; | |||
background: #000; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-radius: 2%; | |||
box-shadow: 0 8px 24px rgba(0, 0, 0, .35); | |||
overflow: hidden; | |||
z-index: 999; | |||
} | |||
.video-placeholder { | |||
position: absolute; | |||
inset: 0; | |||
background: #000; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
z-index: 2; | |||
opacity: 1; | |||
transition: opacity .9s ease; | |||
} | |||
.video-placeholder img { | |||
width: 120px; | |||
height: auto; | |||
animation: breathe 2.5s ease-in-out infinite; | |||
filter: drop-shadow(0 0 6px rgba(255, 255, 255, .3)); | |||
} | |||
.video-placeholder.fade-out { | |||
opacity: 0; | |||
} | |||
@keyframes breathe { | |||
0%, | |||
100% { | |||
transform: scale(1); | |||
opacity: 1; | |||
} | |||
50% { | |||
transform: scale(1.07); | |||
opacity: .85; | |||
} | |||
} | |||
/* ==== attributos ==== */ | |||
.attrs, | |||
.attr-list { | |||
display: block; | |||
margin: 6px 0 12px; | |||
} | |||
.descripcion-container .attrs, | |||
.descripcion-container .attrs *, | |||
.descripcion-container .attr-list, | |||
.descripcion-container .attr-list * { | |||
text-shadow: none; | |||
font-family: 'Noto Sans', sans-serif; | |||
} | |||
.attrs__row, | |||
.attr-row { | |||
display: flex; | |||
align-items: baseline; | |||
gap: 8px; | |||
min-height: 22px; | |||
line-height: 1.2; | |||
} | |||
.attrs__row--empty, | |||
.attr-row.is-empty { | |||
visibility: hidden; | |||
} | |||
.attrs__label, | |||
.attr-label { | |||
font-weight: 700; | |||
color: #f0c87b; | |||
font-size: 0.98rem; | |||
white-space: nowrap; | |||
line-height: 1.2; | |||
margin: 0; | |||
} | |||
.attr-row.is-empty { | |||
visibility: hidden; | |||
} | |||
.attrs__value, | |||
.attr-value { | |||
color: #fff; | |||
font-weight: 800; | |||
font-size: 1.08rem; | |||
letter-spacing: .01em; | |||
line-height: 1.2; | |||
margin: 0; | |||
} | } | ||
@media (max-width: 1000px), | |||
(max-aspect-ratio: 3/4) { | |||
.attrs__row, | |||
.attr-row { | |||
min-height: 26px; | |||
} | |||
.attrs__label, | |||
.attr-label { | |||
font-size: 1.15rem; | |||
} | } | ||
.attrs__value, | |||
.attr-value { | |||
font-size: 1.22rem; | |||
} | |||
} | |||
/* --------- Skins ---------- */ | |||
.attribute-title, | |||
.card-skins-title { | |||
font-size: 1.4em; | |||
text-align: center; | |||
letter-spacing: 1px; | |||
font-family: 'Noto Sans', sans-serif !important; | |||
border-bottom: 2px solid #9d9c9c; | |||
color: #fff !important; | |||
padding-bottom: 8px; | |||
margin-bottom: 16px; | |||
width: 75%; | |||
} | |||
.card-skins { | |||
padding-block: 12px; | |||
border-radius: 12px; | |||
user-select: none; | |||
} | |||
.skins-carousel-wrapper { | |||
min-height: 21.1rem; | |||
max-height: 60%; | |||
padding: 0 16px 1px !important; | |||
background: #26211C; | |||
border-radius: 8px; | |||
position: relative; | |||
box-shadow: 0 8px 24px rgba(0, 0, 0, .35); | |||
color: #fff; | |||
backdrop-filter: blur(2px); | |||
transition: all .3s ease; | |||
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; | |||
flex: 1; | |||
display: flex; | |||
flex-direction: row; | |||
gap: 10px; | |||
justify-content: center; | |||
align-items: center; | |||
overflow: visible; | |||
z-index: 99; | |||
} | |||
.skins-carousel-wrapper::before, | |||
.skins-carousel-wrapper::after { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
width: 60px; | |||
height: 100%; | |||
pointer-events: none; | |||
opacity: 0; | |||
transition: opacity .4s ease; | |||
z-index: 3; | |||
} | |||
.skins-carousel-wrapper::before { | |||
left: 0; | |||
background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%); | |||
} | |||
.skins-carousel-wrapper::after { | |||
right: 0; | |||
background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%); | |||
} | |||
.skins-carousel-wrapper.has-left::before, | |||
.skins-carousel-wrapper.has-right::after { | |||
opacity: 1; | |||
} | |||
.has-left { | |||
padding-left: 60px; | |||
} | |||
.has-left .skins-carousel { | |||
mask-image: linear-gradient(to right, transparent 0px, black 40px, black 100%); | |||
} | |||
.has-right { | |||
padding-right: 60px; | |||
} | |||
.has-right .skins-carousel { | |||
mask-image: linear-gradient(to right, black 0px, black calc(100% - 40px), transparent 100%); | |||
} | |||
.card-skins-title { | |||
display: block; | |||
border-bottom: unset; | |||
font-size: 40px; | |||
font-weight: bold; | |||
padding-bottom: unset; | |||
margin-bottom: 10px; | |||
width: 47%; | |||
} | |||
.skins-carousel { | |||
display: flex; | |||
gap: 1vw; | |||
overflow-x: auto; | |||
scroll-behavior: smooth; | |||
padding: 10px 0; | |||
flex-grow: 1; | |||
} | |||
.skins-carousel.both-mask { | |||
mask-image: linear-gradient(to right, transparent 0px, black 40px, black calc(100% - 40px), transparent 100%); | |||
} | |||
.skins-carousel.left-mask { | |||
mask-image: linear-gradient(to right, transparent 0px, black 40px, black 100%); | |||
} | |||
.skins-carousel.right-mask { | |||
mask-image: linear-gradient(to right, black 0px, black calc(100% - 40px), transparent 100%); | |||
} | |||
.skins-carousel.no-mask { | |||
mask-image: none; | |||
} | |||
.skins-carousel::-webkit-scrollbar { | |||
display: none; | |||
} | |||
.skins-arrow { | |||
background: none; | |||
border: none; | |||
color: #fff; | |||
font-size: 36px; | |||
cursor: pointer; | |||
padding: 8px; | |||
z-index: 5; | |||
transition: opacity .3s ease, transform .3s ease; | |||
} | |||
.skins-arrow.left { | |||
margin-right: 8px; | |||
} | |||
.skins-arrow.right { | |||
margin-left: 8px; | |||
} | |||
.skins-arrow.hidden { | |||
opacity: 0; | |||
} | transform: scale(.8); | ||
pointer-events: none; | |||
visibility: hidden; | |||
} | |||
.skin-card { | |||
position: relative; | |||
width: 12vw; | |||
height: 39vh; | |||
flex: 0 0 auto; | |||
border: 2px solid #697EC9 !important; | |||
border-radius: 8px; | |||
overflow: hidden; | |||
box-shadow: 0 2px 10px rgba(0, 0, 0, .25); | |||
background: #111; | |||
} | } | ||
.skin-card::before { | |||
content: ''; | |||
position: absolute; | |||
inset: 0; | |||
pointer-events: none; | |||
border-radius: inherit; | |||
z-index: 2; | |||
box-shadow: inset 0 0 8px rgba(180, 180, 180, .18); | |||
} | } | ||
.skins--imageBanner { | |||
width: 100%; | |||
height: 109%; | |||
} | |||
. | |||
.skins--imageBanner img { | |||
width: 100%; | |||
height: 100%; | |||
object-fit: cover; | |||
filter: brightness(.5); | |||
scale: 1.1; | |||
} | } | ||
.skins--imageSkin img { | |||
position: absolute; | |||
bottom: 10px; | |||
left: 50%; | |||
transform: translateX(-50%); | |||
height: 140px; | |||
width: auto; | |||
z-index: 2; | |||
transition: transform .2s; | |||
} | } | ||
@media (max-aspect-ratio: 3/4) { | @media (max-aspect-ratio: 3/4) { | ||
.desc { font-size: 26px; line-height: 1.5; overflow-y: auto !important; max-height: inherit; margin: 0; width: 100%; margin-top: 8px; } | .desc { | ||
.desc * { font-size: inherit !important; line-height: inherit; } | font-size: 26px; | ||
.habilidades-container { display: flex; gap: 20px; flex-direction: column-reverse; } | line-height: 1.5; | ||
.habilidades-details { flex: 1; display: flex; flex-direction: column; width: 96%; align-self: center; } | overflow-y: auto !important; | ||
.video-container { width: 80%; border-radius: 3%; margin-top: 2%; align-self: center; } | max-height: inherit; | ||
.art-personaje { display: none; width: 370px; height: 290px; position: absolute; right: | margin: 0; | ||
.topbar-description{ font-size: 22px; } | width: 100%; | ||
.personaje-info .tier, .personaje-info .classe { font-size: 30px; } | margin-top: 8px; | ||
.cuadros-container { width: 98%; place-self: center; padding: 10px 0 16px 1px; } | } | ||
.cuadros-container .cuadro { | |||
.descripcion-container h3 { font-size: 3.6em; margin-top: -14px; } | .desc * { | ||
.descripcion-container p { font-size: 2.3em; margin-bottom: 5px; } | font-size: inherit !important; | ||
.descripcion-container { padding: 22px !important; } | line-height: inherit; | ||
.tab-btn { padding: 10px 20px; font-size: 26px; } | } | ||
.tab-content{ padding: 0 8px 20px; } | |||
.classe { padding: | .habilidades-container { | ||
. | display: flex; | ||
. | gap: 20px; | ||
flex-direction: column-reverse; | |||
. | } | ||
. | |||
.skins-carousel { gap: 20px; } | .habilidades-details { | ||
.skin-card { width: 236px; height: 400px; } | flex: 1; | ||
.skins--imageSkin img { height: 170px; } | display: flex; | ||
.tooltipster-content { font-size: 26px; } | flex-direction: column; | ||
.attribute-title, .card-skins-title { width: 100% !important; } | width: 96%; | ||
.skins-arrow { display: none !important; } | align-self: center; | ||
.skins-carousel-wrapper::after, .skins-carousel-wrapper::before { background: unset; } | } | ||
video::-webkit-media-controls { opacity: unset; transition: unset; } | |||
video:hover::-webkit-media-controls { opacity: unset; } | .video-container { | ||
width: 80%; | |||
border-radius: 3%; | |||
margin-top: 2%; | |||
align-self: center; | |||
} | |||
.art-personaje { | |||
display: none; | |||
width: 370px; | |||
height: 290px; | |||
position: absolute; | |||
right: .5rem; | |||
top: 1.1rem; | |||
z-index: 1; | |||
pointer-events: none; | |||
} | |||
.topbar-description { | |||
font-size: 22px; | |||
} | |||
.personaje-info .tier, | |||
.personaje-info .classe { | |||
font-size: 30px; | |||
} | |||
.cuadros-container { | |||
width: 98%; | |||
place-self: center; | |||
padding: 10px 0 16px 1px; | |||
} | |||
.cuadros-container .cuadro { | |||
width: 80px; | |||
height: 80px; | |||
} | |||
.descripcion-container h3 { | |||
font-size: 3.6em; | |||
margin-top: -14px; | |||
} | |||
.descripcion-container p { | |||
font-size: 2.3em; | |||
margin-bottom: 5px; | |||
} | |||
.descripcion-container { | |||
padding: 22px !important; | |||
} | |||
.tab-btn { | |||
padding: 10px 20px; | |||
font-size: 26px; | |||
} | |||
.tab-content { | |||
position: relative; | |||
z-index: 1; | |||
padding: 0 8px 20px; | |||
} | |||
.classe { | |||
padding: 0 5px; | |||
font-size: 1.4em; | |||
} | |||
.attr-chips { | |||
gap: 14px; | |||
} | |||
.attr-chip { | |||
padding: 10px 14px; | |||
border-radius: 12px; | |||
} | |||
.attr-label, | |||
.attr-value { | |||
font-size: 1.3rem; | |||
} | |||
.skins-carousel { | |||
gap: 20px; | |||
} | |||
.skin-card { | |||
width: 236px; | |||
height: 400px; | |||
} | |||
.skins--imageSkin img { | |||
height: 170px; | |||
} | |||
.tooltipster-content { | |||
font-size: 26px; | |||
} | |||
.attribute-title, | |||
.card-skins-title { | |||
width: 100% !important; | |||
} | |||
.skins-arrow { | |||
display: none !important; | |||
} | |||
.skins-carousel-wrapper::after, | |||
.skins-carousel-wrapper::before { | |||
background: unset; | |||
} | |||
video::-webkit-media-controls { | |||
opacity: unset; | |||
transition: unset; | |||
} | |||
video:hover::-webkit-media-controls { | |||
opacity: unset; | |||
} | |||
} | |||
@media (max-width: 1100px), | |||
(max-aspect-ratio: 3/4) { | |||
.personaje-header .art-personaje { | |||
display: none !important; | |||
} | |||
.habilidades-container { | |||
flex-direction: column-reverse; | |||
gap: 20px; | |||
} | |||
.habilidades-details { | |||
width: 100%; | |||
max-width: 820px; | |||
align-self: center; | |||
} | |||
.video-container { | |||
width: 80%; | |||
max-width: 820px; | |||
border-radius: 3%; | |||
margin-top: 2%; | |||
align-self: center; | |||
} | |||
.cuadros-container { | |||
width: 100%; | |||
place-self: center; | |||
padding: 10px 0 16px 1px; | |||
} | |||
.cuadros-container .cuadro { | |||
width: 80px; | |||
height: 80px; | |||
} | |||
.tab-btn { | |||
padding: 10px 20px; | |||
font-size: 26px; | |||
} | |||
.tab-content { | |||
position: relative; | |||
z-index: 1; | |||
padding: 0 8px 20px; | |||
} | |||
} | } | ||
</style> | </style> | ||
Edição das 19h02min de 19 de agosto de 2025
<script>
(function () {
const buttons = document.querySelectorAll('.tab-btn');
const contents = document.querySelectorAll('.tab-content');
const cuadrosContainer = document.querySelector('.cuadros-container');
const descripcionContainer = document.querySelector('.descripcion-container');
const videoContainer = document.querySelector('.video-container');
const cuadros = [...cuadrosContainer.querySelectorAll('.cuadro')];
const mwBody = document.querySelector('.personaje-box');
let totalVideos = 0;
let loadedVideos = 0;
const videosCache = {};
let autoplayEnabled = false;
activarFlechasCarrusel();
const placeholder = document.createElement('div');
placeholder.className = 'video-placeholder';
placeholder.innerHTML = `<img src="/images/d/d5/Icon_gla.png" alt="Cargando...">`;
videoContainer.appendChild(placeholder);
function removePlaceholderSmooth() {
placeholder.classList.add('fade-out');
placeholder.addEventListener('transitionend', () => placeholder.remove(), { once: true });
}
function checkAllVideosLoaded() {
if (loadedVideos === totalVideos && totalVideos > 0) {
autoplayEnabled = true;
}
}
// Pré-carregar todos os vídeos
cuadros.forEach(div => {
const videoSrc = div.dataset.video;
const index = div.dataset.index;
if (videoSrc && videoSrc.trim() !== && !videosCache[index]) {
totalVideos++;
const videoEl = document.createElement('video');
videoEl.setAttribute('width', '100%');
videoEl.setAttribute('controls', );
videoEl.setAttribute('preload', 'auto');
videoEl.setAttribute('playsinline', );
videoEl.dataset.index = index;
videoEl.style.display = 'none';
const source = document.createElement('source');
source.src = videoSrc;
source.type = 'video/webm';
videoEl.appendChild(source);
// Quando o vídeo já estiver pronto, remover placeholder
videoEl.addEventListener('canplay', () => {
loadedVideos++;
if (loadedVideos === 1) {
videoEl.pause();
videoEl.currentTime = 0;
}
const activeCuadro = document.querySelector('.cuadro.activo');
if (activeCuadro && activeCuadro.dataset.index === videoEl.dataset.index) {
setTimeout(removePlaceholderSmooth, 200);
}
checkAllVideosLoaded();
});
videoEl.addEventListener('error', () => {
loadedVideos++;
removePlaceholderSmooth();
checkAllVideosLoaded();
});
videoContainer.appendChild(videoEl);
videosCache[index] = videoEl;
}
});
// Se não houver vídeos, ocultar imediatamente
if (totalVideos === 0) {
placeholder.remove();
}
buttons.forEach(btn => btn.addEventListener('click', () => {
buttons.forEach(b => b.classList.remove('active'));
contents.forEach(c => c.classList.remove('active'));
btn.classList.add('active');
document.getElementById(btn.dataset.tab).classList.add('active');
}));
cuadros.forEach(div => {
const nome = div.dataset.nome;
const desc = div.dataset.desc.replace(/(.*?)/g, '$1');
const atr = div.dataset.atr;
const index = div.dataset.index;
const hasVideo = div.dataset.video && div.dataset.video.trim() !== ;
div.title = nome;
div.addEventListener('click', () => {
if (!autoplayEnabled && loadedVideos > 0) {
autoplayEnabled = true;
}
descripcionContainer.innerHTML = `
${nome}
${generarHTMLAtributos(atr)}
${desc}
`;
Object.values(videosCache).forEach(v => {
v.pause();
v.style.display = 'none';
});
// Gerenciar habilidades com/sem vídeo
if (hasVideo) {
const videoEl = videosCache[index];
if (videoEl) {
videoContainer.style.display = 'block';
videoEl.style.display = 'block';
videoEl.currentTime = 0;
if (autoplayEnabled) {
videoEl.play().catch(e => console.log('Autoplay bloqueado:', e));
}
}
} else {
videoContainer.style.display = 'none';
}
cuadros.forEach(c => c.classList.remove('activo'));
div.classList.add('activo');
});
['data-nome', 'data-desc', 'data-atr', 'data-video'].forEach(attr => div.removeAttribute(attr));
});
if (Object.keys(videosCache).length === 0) {
videoContainer.style.display = 'none';
}
if (cuadros.length) cuadros[0].click();
cuadrosContainer.addEventListener('wheel', e => {
if (e.deltaY) {
e.preventDefault();
cuadrosContainer.scrollLeft += e.deltaY;
}
});
function activarFlechasCarrusel() {
const carousel = document.querySelector('.skins-carousel');
const wrapper = document.querySelector('.skins-carousel-wrapper');
const [leftBtn, rightBtn] = ['.skins-arrow.left', '.skins-arrow.right'].map(sel => document.querySelector(sel));
let isPredictingScroll = false, isAutoScrolling = false;
const getScrollAmount = () => carousel.clientWidth * 0.6;
const hideArrow = btn => {
if (!btn.classList.contains('desapareciendo') && btn.style.display !== 'none') {
btn.classList.add('desapareciendo');
setTimeout(() => {
btn.style.display = 'none';
btn.classList.remove('desapareciendo');
}, 300);
}
};
const showArrow = btn => {
if (btn.style.display === 'none') {
btn.style.display = 'inline-block';
void btn.offsetWidth;
}
btn.classList.remove('desapareciendo');
};
const setArrowsState = scrollLeft => {
const maxScroll = carousel.scrollWidth - carousel.clientWidth;
const hasLeft = scrollLeft > 5, hasRight = scrollLeft < maxScroll - 5;
hasLeft ? showArrow(leftBtn) : hideArrow(leftBtn);
hasRight ? showArrow(rightBtn) : hideArrow(rightBtn);
wrapper.classList.toggle('has-left', hasLeft);
wrapper.classList.toggle('has-right', hasRight);
if (!hasLeft && !hasRight) { carousel.style.justifyContent = 'center'; } else { carousel.style.justifyContent = ; }
};
const handleArrowClick = dir => {
isPredictingScroll = true;
const scrollLeft = carousel.scrollLeft, maxScroll = carousel.scrollWidth - carousel.clientWidth;
const nextScroll = dir === 'left' ? Math.max(0, scrollLeft - getScrollAmount()) : Math.min(maxScroll, scrollLeft + getScrollAmount());
setArrowsState(nextScroll);
carousel.scrollTo({ left: nextScroll, behavior: 'smooth' });
let last = -1, still = 0;
const wait = setInterval(() => {
const current = Math.round(carousel.scrollLeft);
if (current === last) {
if (++still >= 2) {
clearInterval(wait);
isPredictingScroll = false;
setArrowsState(current);
}
} else {
last = current;
still = 0;
}
}, 50);
};
carousel.addEventListener('scroll', () => {
if (!isPredictingScroll) setArrowsState(carousel.scrollLeft);
});
new ResizeObserver(() => {
if (!isPredictingScroll) setArrowsState(carousel.scrollLeft);
}).observe(carousel);
leftBtn.addEventListener('click', () => handleArrowClick('left'));
rightBtn.addEventListener('click', () => handleArrowClick('right'));
setArrowsState(carousel.scrollLeft);
}
// Resolve o arquivo de forma confiável (cai no /images/... certo)
function resolveFile(name) {
if (window.mw && mw.util && typeof mw.util.getUrl === 'function') {
return mw.util.getUrl('Special:FilePath/' + encodeURIComponent(name));
}
return '/index.php/Special:FilePath/' + encodeURIComponent(name);
}
function generarHTMLAtributos(str) {
const vals = (str || ).split(',').map(v => v.trim());
const pveRaw = vals[0];
const pvpRaw = vals[1];
const eneRaw = vals[2];
const cdRaw = vals[3];
const recNum = parseInt(cdRaw, 10);
const recargaVal = isNaN(recNum) ? '-' : recNum;
const eneNum = parseInt(eneRaw, 10);
const energiaLabel = isNaN(eneNum) ? 'Energia'
: (eneNum >= 0 ? 'Ganho de energia' : 'Custo de energia');
const energiaVal = isNaN(eneNum) ? '-' : Math.abs(eneNum);
const pveNum = parseInt(pveRaw, 10);
const pvpNum = parseInt(pvpRaw, 10);
const poderVal = isNaN(pveNum) ? '-' : pveNum;
const poderPvpVal = isNaN(pvpNum) ? '-' : pvpNum;
const rows = [
['Recarga', recargaVal],
[energiaLabel, energiaVal],
['Poder', poderVal],
['Poder PvP', poderPvpVal],
];
const visible = rows.filter(([, v]) => v !== '-');
const empties = rows.length - visible.length;
const visibleHtml = visible.map(([label, value]) => `
${label}: ${value}
`).join();
const emptyHtml = Array.from({ length: empties }).map(() => `
`).join(); return `
${visibleHtml}${emptyHtml}
`;
} })();
</script>
<style>
img {
pointer-events: none;
user-select: none;
}
video {
max-height: 33.25em;
object-fit: fill;
}
.mw-body {
padding: unset !important;
}
.mw-body-content {
line-height: 1.5 !important;
}
.mw-body-content p {
display: none;
}
/* --------- Banner de fundo do topo ---------- */
.banner {
position: absolute;
z-index: -9;
width: 100%;
height: 100%;
background-image: url(https://i.imgur.com/OVGhLvl.png);
background-size: cover;
}
.banner-personaje {
width: 100%;
height: auto;
}
.banner::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to right, rgba(0, 0, 0, .6), rgba(0, 0, 0, .2));
}
.personaje-box {
padding: unset !important;
color: #000;
font-family: 'Noto Sans', sans-serif !important;
width: 100%;
margin: auto;
position: relative;
user-select: none;
}
.personaje-box p {
display: unset;
}
.personaje-topbar {
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 8px 20px;
padding-top: 4px;
}
.personaje-nome-box {
display: flex;
align-items: center;
gap: 14px;
}
.topbar-icon {
margin-top: 8px;
width: 100px;
height: 100px;
object-fit: none;
}
.nome {
text-shadow: 0 0 6px #000, 0 0 9px #000;
color: #fff;
font-size: 56px;
font-family: 'Orbitron', sans-serif;
font-weight: 900;
}
.topbar-description {
display: none !important;
font-size: 16px;
margin-top: 6px;
width: fit-content;
padding-inline: 16px;
border-radius: 0 10px 10px 0;
box-shadow: 0 0 2px rgb(0 0 0 / 70%);
}
.personaje-header {
position: relative;
overflow: hidden;
display: flex;
gap: 10px;
flex-direction: column;
}
/* arte do personagem */
.art-personaje {
width: 34.3vw;
height: auto;
position: absolute;
right: 3.5rem;
top: -3.1rem;
z-index: 1;
pointer-events: none;
}
.classes {
display: flex;
gap: 9px;
flex-wrap: wrap;
margin-left: .28rem;
}
.classe {
background: #353420;
color: #fff;
outline: 2px solid #000;
padding: 1px 6px;
border-radius: 4px;
font-size: .9em;
font-weight: bold;
box-shadow: 0 0 2px rgb(0 0 0 / 70%);
}
.personaje-info {
user-select: none;
}
.personaje-info .tier,
.personaje-info .classe {
font-size: 18px;
color: #bbb;
}
/* --------- aba ---------- */
.personaje-tabs {
margin: 4px 0 4px 8px;
display: flex;
gap: 12px;
justify-content: flex-start;
}
.tab-btn {
padding: 5px 20px;
background: #333;
color: #fff;
border: 2px solid transparent;
border-radius: 8px;
font-size: 20px;
cursor: pointer;
font-weight: 600;
line-height: 1;
transition: background .15s ease, border-color .15s ease;
}
.tab-btn.active {
background: #156bc7;
border-color: #156bc7;
}
.tab-content {
display: none;
background: #26211cd6;
padding: 0 8px 8px;
position: relative;
z-index: 3;
}
.tab-content.active {
display: block;
}
/* --------- skill ---------- */
.habilidades-container {
display: flex;
gap: 20px;
}
.habilidades-details {
flex: 1;
display: flex;
flex-direction: column;
gap: 10px;
width: 50%;
justify-content: center;
}
.cuadros-container {
display: flex;
flex-wrap: nowrap;
gap: 10px;
width: 100%;
overflow-x: auto;
overflow-y: hidden;
padding: 10px 0 3px 1px;
position: relative;
z-index: 4;
margin-bottom: 6px;
scrollbar-width: thin;
scrollbar-color: #ababab transparent;
scroll-behavior: smooth;
justify-content: flex-start;
}
.cuadros-container::-webkit-scrollbar {
height: 6px;
}
.cuadros-container::-webkit-scrollbar-track {
background: transparent;
}
.cuadros-container::-webkit-scrollbar-thumb {
background-color: #151515;
border-radius: 3px;
}
.cuadros-container .cuadro {
flex: 0 0 auto;
width: 50px;
height: 50px;
border-radius: 5px;
cursor: pointer;
transition: transform .2s, box-shadow .2s;
}
.cuadros-container .cuadro.activo {
box-shadow: 0 0 0 1.5px #FFD700;
}
.cuadro img {
width: 100%;
height: 100%;
object-fit: cover;
}
.titulo-habilidad {
position: relative;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 8px;
padding-right: 32px;
}
.titulo-habilidad h3 {
font-size: 1.6em;
color: #fff;
text-align: center;
margin: 0;
width: 100%;
}
.tooltip-container {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.info-btn {
border: none;
color: #D3DBDC;
background: #787878;
font-weight: bold;
border-radius: 50%;
width: 44px;
height: 44px;
font-family: 'Noto Sans';
cursor: pointer;
transition: .2s;
box-shadow: 0 0 3px #000;
font-size: 40px;
padding: 0;
line-height: 24px;
text-align: center;
}
.tooltip-text {
visibility: hidden;
width: 220px;
background: #222;
color: #fff;
text-align: left;
padding: 8px 10px;
border-radius: 8px;
position: absolute;
z-index: 10;
bottom: 130%;
left: 50%;
transform: translate(-85%, 110%);
opacity: 0;
transition: opacity .3s;
font-size: 12px;
box-shadow: 0 2px 10px rgba(0, 0, 0, .5);
pointer-events: none;
}
.tooltip-container:hover .tooltip-text {
visibility: visible;
opacity: 1;
}
.descripcion-container {
min-height: 27.5rem;
height: 100%;
padding: 4px 16px !important;
background: #26211C;
border-radius: 8px;
position: relative;
box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
color: #fff;
backdrop-filter: blur(2px);
transition: all .3s ease;
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
padding-top: 0 !important;
z-index: 99;
}
.descripcion-container h3 {
font-size: 2.7em;
margin: 0;
text-align: center;
padding-top: 0;
}
.descripcion-container p,
.desc {
font-size: 1.2em;
margin: 0;
}
.desc {
overflow-y: auto !important;
max-height: inherit;
margin-top: 10px;
}
.desc * {
font-size: inherit !important;
line-height: inherit;
}
.descripcion-container .descLevel {
margin-top: 5px;
font-weight: bold;
}
.descripcion-container .desc::-webkit-scrollbar,
.tabSkill--container::-webkit-scrollbar {
width: 7px;
height: 7px;
}
.descripcion-container .desc::-webkit-scrollbar-thumb,
.tabSkill--container::-webkit-scrollbar-thumb {
background-color: rgb(71 153 255);
border-radius: 10px;
}
.descripcion-container .desc::-webkit-scrollbar-track,
.tabSkill--container::-webkit-scrollbar-track {
background-color: #151515a8;
border-radius: 10px;
}
/* Tiers */
.tier-bronze .topbar-icon,
.tier-bronze .tier {
outline: 2px solid #7b4e2f !important;
}
.tier-silver .topbar-icon,
.tier-silver .tier {
outline: 2px solid #d6d2d2 !important;
}
.tier-gold .topbar-icon,
.tier-gold .tier {
outline: 2px solid #fcd300 !important;
}
.tier-diamond .topbar-icon,
.tier-diamond .tier {
outline: 2px solid #60dae2 !important;
}
/* video da habilidade */
video::-webkit-media-controls {
opacity: 0;
transition: opacity .3s;
}
video:hover::-webkit-media-controls {
opacity: 1;
}
.video-container {
position: relative;
width: 43%;
background: #000;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2%;
box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
overflow: hidden;
z-index: 999;
}
.video-placeholder {
position: absolute;
inset: 0;
background: #000;
display: flex;
align-items: center;
justify-content: center;
z-index: 2;
opacity: 1;
transition: opacity .9s ease;
}
.video-placeholder img {
width: 120px;
height: auto;
animation: breathe 2.5s ease-in-out infinite;
filter: drop-shadow(0 0 6px rgba(255, 255, 255, .3));
}
.video-placeholder.fade-out {
opacity: 0;
}
@keyframes breathe {
0%,
100% {
transform: scale(1);
opacity: 1;
}
50% {
transform: scale(1.07);
opacity: .85;
}
}
/* ==== attributos ==== */
.attrs,
.attr-list {
display: block;
margin: 6px 0 12px;
}
.descripcion-container .attrs,
.descripcion-container .attrs *,
.descripcion-container .attr-list,
.descripcion-container .attr-list * {
text-shadow: none;
font-family: 'Noto Sans', sans-serif;
}
.attrs__row,
.attr-row {
display: flex;
align-items: baseline;
gap: 8px;
min-height: 22px;
line-height: 1.2;
}
.attrs__row--empty,
.attr-row.is-empty {
visibility: hidden;
}
.attrs__label,
.attr-label {
font-weight: 700;
color: #f0c87b;
font-size: 0.98rem;
white-space: nowrap;
line-height: 1.2;
margin: 0;
}
.attr-row.is-empty {
visibility: hidden;
}
.attrs__value,
.attr-value {
color: #fff;
font-weight: 800;
font-size: 1.08rem;
letter-spacing: .01em;
line-height: 1.2;
margin: 0;
}
@media (max-width: 1000px),
(max-aspect-ratio: 3/4) {
.attrs__row,
.attr-row {
min-height: 26px;
}
.attrs__label,
.attr-label {
font-size: 1.15rem;
}
.attrs__value,
.attr-value {
font-size: 1.22rem;
}
}
/* --------- Skins ---------- */
.attribute-title,
.card-skins-title {
font-size: 1.4em;
text-align: center;
letter-spacing: 1px;
font-family: 'Noto Sans', sans-serif !important;
border-bottom: 2px solid #9d9c9c;
color: #fff !important;
padding-bottom: 8px;
margin-bottom: 16px;
width: 75%;
}
.card-skins {
padding-block: 12px;
border-radius: 12px;
user-select: none;
}
.skins-carousel-wrapper {
min-height: 21.1rem;
max-height: 60%;
padding: 0 16px 1px !important;
background: #26211C;
border-radius: 8px;
position: relative;
box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
color: #fff;
backdrop-filter: blur(2px);
transition: all .3s ease;
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
flex: 1;
display: flex;
flex-direction: row;
gap: 10px;
justify-content: center;
align-items: center;
overflow: visible;
z-index: 99;
}
.skins-carousel-wrapper::before,
.skins-carousel-wrapper::after {
content: ;
position: absolute;
top: 0;
width: 60px;
height: 100%;
pointer-events: none;
opacity: 0;
transition: opacity .4s ease;
z-index: 3;
}
.skins-carousel-wrapper::before {
left: 0;
background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
}
.skins-carousel-wrapper::after {
right: 0;
background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
}
.skins-carousel-wrapper.has-left::before,
.skins-carousel-wrapper.has-right::after {
opacity: 1;
}
.has-left {
padding-left: 60px;
}
.has-left .skins-carousel {
mask-image: linear-gradient(to right, transparent 0px, black 40px, black 100%);
}
.has-right {
padding-right: 60px;
}
.has-right .skins-carousel {
mask-image: linear-gradient(to right, black 0px, black calc(100% - 40px), transparent 100%);
}
.card-skins-title {
display: block;
border-bottom: unset;
font-size: 40px;
font-weight: bold;
padding-bottom: unset;
margin-bottom: 10px;
width: 47%;
}
.skins-carousel {
display: flex;
gap: 1vw;
overflow-x: auto;
scroll-behavior: smooth;
padding: 10px 0;
flex-grow: 1;
}
.skins-carousel.both-mask {
mask-image: linear-gradient(to right, transparent 0px, black 40px, black calc(100% - 40px), transparent 100%);
}
.skins-carousel.left-mask {
mask-image: linear-gradient(to right, transparent 0px, black 40px, black 100%);
}
.skins-carousel.right-mask {
mask-image: linear-gradient(to right, black 0px, black calc(100% - 40px), transparent 100%);
}
.skins-carousel.no-mask {
mask-image: none;
}
.skins-carousel::-webkit-scrollbar {
display: none;
}
.skins-arrow {
background: none;
border: none;
color: #fff;
font-size: 36px;
cursor: pointer;
padding: 8px;
z-index: 5;
transition: opacity .3s ease, transform .3s ease;
}
.skins-arrow.left {
margin-right: 8px;
}
.skins-arrow.right {
margin-left: 8px;
}
.skins-arrow.hidden {
opacity: 0;
transform: scale(.8);
pointer-events: none;
visibility: hidden;
}
.skin-card {
position: relative;
width: 12vw;
height: 39vh;
flex: 0 0 auto;
border: 2px solid #697EC9 !important;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
background: #111;
}
.skin-card::before {
content: ;
position: absolute;
inset: 0;
pointer-events: none;
border-radius: inherit;
z-index: 2;
box-shadow: inset 0 0 8px rgba(180, 180, 180, .18);
}
.skins--imageBanner {
width: 100%;
height: 109%;
}
.skins--imageBanner img {
width: 100%;
height: 100%;
object-fit: cover;
filter: brightness(.5);
scale: 1.1;
}
.skins--imageSkin img {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
height: 140px;
width: auto;
z-index: 2;
transition: transform .2s;
}
@media (max-aspect-ratio: 3/4) {
.desc {
font-size: 26px;
line-height: 1.5;
overflow-y: auto !important;
max-height: inherit;
margin: 0;
width: 100%;
margin-top: 8px;
}
.desc * {
font-size: inherit !important;
line-height: inherit;
}
.habilidades-container {
display: flex;
gap: 20px;
flex-direction: column-reverse;
}
.habilidades-details {
flex: 1;
display: flex;
flex-direction: column;
width: 96%;
align-self: center;
}
.video-container {
width: 80%;
border-radius: 3%;
margin-top: 2%;
align-self: center;
}
.art-personaje {
display: none;
width: 370px;
height: 290px;
position: absolute;
right: .5rem;
top: 1.1rem;
z-index: 1;
pointer-events: none;
}
.topbar-description {
font-size: 22px;
}
.personaje-info .tier,
.personaje-info .classe {
font-size: 30px;
}
.cuadros-container {
width: 98%;
place-self: center;
padding: 10px 0 16px 1px;
}
.cuadros-container .cuadro {
width: 80px;
height: 80px;
}
.descripcion-container h3 {
font-size: 3.6em;
margin-top: -14px;
}
.descripcion-container p {
font-size: 2.3em;
margin-bottom: 5px;
}
.descripcion-container {
padding: 22px !important;
}
.tab-btn {
padding: 10px 20px;
font-size: 26px;
}
.tab-content {
position: relative;
z-index: 1;
padding: 0 8px 20px;
}
.classe {
padding: 0 5px;
font-size: 1.4em;
}
.attr-chips {
gap: 14px;
}
.attr-chip {
padding: 10px 14px;
border-radius: 12px;
}
.attr-label,
.attr-value {
font-size: 1.3rem;
}
.skins-carousel {
gap: 20px;
}
.skin-card {
width: 236px;
height: 400px;
}
.skins--imageSkin img {
height: 170px;
}
.tooltipster-content {
font-size: 26px;
}
.attribute-title,
.card-skins-title {
width: 100% !important;
}
.skins-arrow {
display: none !important;
}
.skins-carousel-wrapper::after,
.skins-carousel-wrapper::before {
background: unset;
}
video::-webkit-media-controls {
opacity: unset;
transition: unset;
}
video:hover::-webkit-media-controls {
opacity: unset;
}
}
@media (max-width: 1100px),
(max-aspect-ratio: 3/4) {
.personaje-header .art-personaje {
display: none !important;
}
.habilidades-container {
flex-direction: column-reverse;
gap: 20px;
}
.habilidades-details {
width: 100%;
max-width: 820px;
align-self: center;
}
.video-container {
width: 80%;
max-width: 820px;
border-radius: 3%;
margin-top: 2%;
align-self: center;
}
.cuadros-container {
width: 100%;
place-self: center;
padding: 10px 0 16px 1px;
}
.cuadros-container .cuadro {
width: 80px;
height: 80px;
}
.tab-btn {
padding: 10px 20px;
font-size: 26px;
}
.tab-content {
position: relative;
z-index: 1;
padding: 0 8px 20px;
}
}
</style>