
A CBF definiu a programação para o período de treinos da Seleção Brasileira na Granja Comary, na primeira etapa de preparação para a Copa do Mundo de 2026.
A apresentação dos jogadores ao técnico Carlo Ancelotti vai acontecer na próxima quarta-feira (27), em Teresópolis (RJ), local das atividades da Seleção Brasileira.
De 27 a 30 de maio, a equipe treinará visando à partida contra o Panamá, dia 31, no Maracanã, às 18h30. Será o último amistoso no Brasil antes da viagem para os Estados Unidos.
Preparação começa com desfalques
A chegada dos jogadores convocados será na manhã de quarta-feira, quando iniciarão as avaliações médicas. À tarde, haverá o primeiro treinamento.
A Seleção terá desfaques na fase de preparação na Granja Comary, em Teresópolis. Isso porqye os zagueiros Marquinhos, do PSG, e Gabriel Magalhães, do Arsenal, e o atacante Gabriel Martinelli, também do Arsenal, vão disputar a final da Liga dos Campeões no dia 30 de maio na Puskas Arena, em Budapeste (Hungria).
Os três jogadores se juntarão à Seleção Brasileira já nos Estados Unidos.
Escale a sua Seleção Brasileira ideal
E você, quem escalaria no ataque da Seleção Brasileira na Copa do Mundo de 2026?
O Folha Vitória lançou um simulador em que o torcedor pode montar sua própria seleção ideal para a Copa.
#efc-wrapper {
position: relative;
max-width: 820px;
margin: 0 auto;
font-family: Arial, Helvetica, sans-serif;
}
#campo {
position: relative;
width: 100%;
display: block;
}
#campo-img {
display: block;
width: 100%;
height: auto;
pointer-events: none;
user-select: none;
}
#campo-overlay {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
}
.jogador {
position: absolute;
width: 8.5%;
aspect-ratio: 1 / 1;
background-color: rgba(0, 50, 210, 0.88);
background-size: cover;
background-position: center;
background-repeat: no-repeat;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, 0.9);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: bold;
user-select: none;
touch-action: none;
transform: translate(-50%, -50%);
z-index: 10;
}
.jogador:hover {
box-shadow: 0 0 0 3px rgba(255,255,255,0.5);
}
.jogador .efc-plus {
font-size: 2em;
font-weight: 300;
pointer-events: none;
line-height: 1;
}
.jogador select {
display: none;
color: white;
font-size: clamp(8px, 1vw, 11px);
max-width: 100%;
background: transparent;
}
/* Opcoes do dropdown */
.jogador select option {
color: black;
background: white;
font-size: 14px;
}
/* Rotulo dos grupos de posicao */
.jogador select optgroup {
color: #222;
font-weight: bold;
background: #f0f0f0;
}
.nome-jogador {
position: absolute;
top: 108%;
left: 50%;
transform: translateX(-50%);
white-space: nowrap;
font-size: clamp(7px, 1.1vw, 12px);
font-weight: bold;
color: #fff;
text-shadow: 0 1px 3px #000, 0 0 8px rgba(0,0,100,.8);
pointer-events: none;
text-align: center;
}
#efc-btns {
text-align: center;
margin: 14px 0 20px;
}
#efc-btns button {
margin: 0 6px;
padding: 10px 22px;
font-size: 14px;
font-weight: bold;
border-radius: 5px;
border: 1px solid transparent;
cursor: pointer;
touch-action: manipulation;
}
#btn-nova { background: #e0e0e0; color: #333; border-color: #bbb; }
#btn-baixar{ background: #cc0000; color: #fff; border-color: #a00; }
@media (max-width: 480px) {
.jogador { width: 11%; }
.nome-jogador { font-size: clamp(6px, 2.8vw, 10px); }
}

/* — DADOS DOS JOGADORES — */
var jogadoresGoleiro = [
{ value: ‘Alisson’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/alisson-goleiro.png’ },
{ value: ‘Ederson’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/ederson-goleiro.png’ },
{ value: ‘Weverton’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/weverton-goleiro.png’ }
];
var jogadoresComuns = [
{
grupo: ‘– Defensores –‘,
jogadores: [
{ value: ‘Alex Sandro’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/alex-sandro-lateral.png’ },
{ value: ‘Bremer’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/bremer-defensor.png’ },
{ value: ‘Danilo’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/danilo-defensor.png’ },
{ value: ‘Douglas Santos’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/douglas-santos-defensor.png’ },
{ value: ‘Gabriel Magalhaes’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/gabriel-magalhaes-defensor.png’ },
{ value: ‘Ibañez’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/ibanez-zagueiro.png’ },
{ value: ‘Léo Pereira’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/leo-pereira-zagueiro.png’ },
{ value: ‘Marquinhos’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/marquinhos-defensor.png’ },
{ value: ‘Wesley’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/wesley-lateral.png’ }
]
},
{
grupo: ‘– Meias –‘,
jogadores: [
{ value: ‘Bruno Guimaraes’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/bruno-guimaraes-meia.png’ },
{ value: ‘Casemiro’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/casemiro-meia.png’ },
{ value: ‘Danilo Santos’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/danilo-santos-botafogo.png’ },
{ value: ‘Fabinho’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/fabinho-meia.png’ },
{ value: ‘Lucas Paquetá’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/lucas-paqueta-meia.png’ }
]
},
{
grupo: ‘– Atacantes –‘,
jogadores: [
{ value: ‘Endrick’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/endrick-atacante.png’ },
{ value: ‘Gabriel Martinelli’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/gabriel-martinelli-atacante.png’ },
{ value: ‘Igor Thiago’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/igor-thiago-atacante.png’ },
{ value: ‘Luiz Henrique’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/luiz-henrique-atacante.png’ },
{ value: ‘Matheus Cunha’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/matheus-cunha-meia.png’ },
{ value: ‘Neymar’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/neymar-atacante.png’ },
{ value: ‘Raphinha’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/raphinha-atacante.png’ },
{ value: ‘Vini Jr’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/vini-jr-atacante.png’ },
{ value: ‘Rayan’, img: ‘https://uploads.folhavitoria.com.br/imagens/2026/05/rayan-atacante.png’ }
]
}
];
/* Mapa de dados por slot */
var jogadoresData = {
1: jogadoresGoleiro,
2: jogadoresComuns, 3: jogadoresComuns,
4: jogadoresComuns, 5: jogadoresComuns,
6: jogadoresComuns, 7: jogadoresComuns,
8: jogadoresComuns, 9: jogadoresComuns,
10: jogadoresComuns, 11: jogadoresComuns
};
/* — EVITAR DUPLICATAS — */
function updateAvailableOptions() {
var allSelects = document.querySelectorAll(‘select[data-jogador]’);
var selectedValues = new Set();
allSelects.forEach(function(sel) {
if (sel.value) selectedValues.add(sel.value);
});
allSelects.forEach(function(sel) {
Array.from(sel.options).forEach(function(opt) {
opt.disabled = selectedValues.has(opt.value) && opt.value !== sel.value;
});
});
}
document.querySelectorAll(‘select[data-jogador]’).forEach(function(sel) {
sel.addEventListener(‘change’, updateAvailableOptions);
});
updateAvailableOptions();
/* — UTILITARIO — */
function htmlDecode(str) {
var el = document.createElement(‘div’);
el.innerHTML = str;
return el.textContent || el.innerText || str;
}
/* — Monta opcoes: lista simples (goleiros) ou grupos (comuns) — */
function buildOptions(select, dados) {
var defaultOption = document.createElement(‘option’);
defaultOption.value = ”;
defaultOption.textContent = ‘Selecione um jogador’;
defaultOption.selected = true;
select.appendChild(defaultOption);
/* Array simples -> goleiros, sem optgroup */
if (dados.length && dados[0].value !== undefined) {
dados.forEach(function(data) {
var nome = htmlDecode(data.value);
var option = document.createElement(‘option’);
option.value = nome;
option.textContent = nome;
option.dataset.img = data.img;
select.appendChild(option);
});
return;
}
/* Array de grupos -> usa optgroup */
dados.forEach(function(grupo) {
var optgroup = document.createElement(‘optgroup’);
optgroup.label = grupo.grupo;
grupo.jogadores.forEach(function(data) {
var nome = htmlDecode(data.value);
var option = document.createElement(‘option’);
option.value = nome;
option.textContent = nome;
option.dataset.img = data.img;
optgroup.appendChild(option);
});
select.appendChild(optgroup);
});
}
/* — SETUP DOS SLOTS — */
var overlay = document.getElementById(‘campo-overlay’);
var jogadores = overlay.querySelectorAll(‘.jogador’);
jogadores.forEach(function(jogador) {
var id = parseInt(jogador.dataset.jid, 10);
var select = jogador.querySelector(‘select’);
var span = jogador.querySelector(‘.efc-plus’);
jogador.dataset.initialTop = jogador.style.top;
jogador.dataset.initialLeft = jogador.style.left;
buildOptions(select, jogadoresData[id]);
var acabouDeSelecionar = false;
select.addEventListener(‘change’, function() {
if (!select.value) return;
var selectedOption = select.options[select.selectedIndex];
var img = selectedOption.dataset.img;
var value = selectedOption.value;
jogador.style.backgroundImage = ‘url(‘ + img + ‘)’;
jogador.style.backgroundSize = ‘cover’;
jogador.style.backgroundPosition = ‘center’;
span.style.display = ‘none’;
select.blur();
select.style.display = ‘none’;
var nameTag = jogador.querySelector(‘.nome-jogador’);
if (!nameTag) {
nameTag = document.createElement(‘div’);
nameTag.className = ‘nome-jogador’;
jogador.appendChild(nameTag);
}
nameTag.textContent = value;
acabouDeSelecionar = true;
setTimeout(function() { acabouDeSelecionar = false; }, 600);
});
jogador.addEventListener(‘click’, function() {
if (acabouDeSelecionar) return;
span.style.display = ‘none’;
select.style.display = ‘block’;
select.focus();
});
/* Drag desktop */
jogador.setAttribute(‘draggable’, true);
jogador.addEventListener(‘dragstart’, function(e) {
e.dataTransfer.setData(‘text/plain’, jogador.id);
});
/* Touch drag */
jogador.addEventListener(‘touchstart’, function(e) {
var touch = e.touches[0];
jogador.dataset.touchStartX = touch.clientX;
jogador.dataset.touchStartY = touch.clientY;
jogador.dataset.slotStartLeft = parseFloat(jogador.style.left) || 0;
jogador.dataset.slotStartTop = parseFloat(jogador.style.top) || 0;
}, { passive: true });
jogador.addEventListener(‘touchmove’, function(e) {
e.preventDefault();
var touch = e.touches[0];
var rect = overlay.getBoundingClientRect();
var dx = touch.clientX – parseFloat(jogador.dataset.touchStartX);
var dy = touch.clientY – parseFloat(jogador.dataset.touchStartY);
var newLeft = parseFloat(jogador.dataset.slotStartLeft) + (dx / rect.width * 100);
var newTop = parseFloat(jogador.dataset.slotStartTop) + (dy / rect.height * 100);
jogador.style.left = Math.max(0, Math.min(100, newLeft)) + ‘%’;
jogador.style.top = Math.max(0, Math.min(100, newTop)) + ‘%’;
}, { passive: false });
});
/* — Drop zone desktop — */
overlay.addEventListener(‘dragover’, function(e) { e.preventDefault(); });
overlay.addEventListener(‘drop’, function(e) {
e.preventDefault();
var id = e.dataTransfer.getData(‘text/plain’);
var jogador = document.getElementById(id);
if (!jogador) return;
var rect = overlay.getBoundingClientRect();
jogador.style.left = ((e.clientX – rect.left) / overlay.offsetWidth * 100) + ‘%’;
jogador.style.top = ((e.clientY – rect.top) / overlay.offsetHeight * 100) + ‘%’;
});
/* — NOVA ESCALACAO — */
document.getElementById(‘btn-nova’).addEventListener(‘click’, function() {
if (!confirm(‘Tem certeza que deseja limpar a escalacao?’)) return;
jogadores.forEach(function(jogador) {
var select = jogador.querySelector(‘select’);
var span = jogador.querySelector(‘.efc-plus’);
var nameTag = jogador.querySelector(‘.nome-jogador’);
select.value = ”;
select.style.display = ‘none’;
jogador.style.backgroundImage = jogador.style.backgroundSize = jogador.style.backgroundPosition = ”;
span.style.display = ”;
if (nameTag) nameTag.textContent = ”;
jogador.style.top = jogador.dataset.initialTop;
jogador.style.left = jogador.dataset.initialLeft;
});
updateAvailableOptions();
});
/* — BAIXAR ESCALACAO — */
document.getElementById(‘btn-baixar’).addEventListener(‘click’, function() {
if (typeof html2canvas !== ‘function’) {
alert(‘Biblioteca de imagem nao carregou. Verifique sua conexao.’);
return;
}
var btn = this;
btn.textContent = ‘Gerando…’;
btn.disabled = true;
html2canvas(document.getElementById(‘campo’), {
useCORS: true, allowTaint: true,
backgroundColor: null, logging: false, scale: 2
}).then(function(canvas) {
var a = document.createElement(‘a’);
a.download = ‘escalacao.png’;
a.href = canvas.toDataURL(‘image/png’);
a.click();
}).catch(function(err) {
alert(‘Erro ao gerar imagem: ‘ + (err.message || err));
}).finally(function() {
btn.textContent = ‘Baixar Escalacao’;
btn.disabled = false;
});
});