‘Dominguinho’ ganha especial na Globo após Grammy e turnê por 10 países
Início
Notícias
Bastidores
‘Dominguinho’ ganha especial na Globo após Grammy e turnê por 10 países
João Gomes, Jota.Pê e Mestrinho comandam especial musical na Globo, celebram um ano do projeto, revisitam repertório da turnê europeia
Foto: Reprodução/Redes Sociais
O reconhecimento no Grammy Latino 2025 consolidou a força de Dominguinho, projeto que reúne João Gomes, Jota.Pê e Mestrinho em torno de um repertório marcado por afeto, brasilidade e diálogo entre diferentes sonoridades. Agora, essa trajetória ganha espaço na programação da TV Globo em um especial musical dedicado ao encontro do trio.
A produção foi registrada em São Paulo, em abril, durante a comemoração de um ano do trabalho. O show funcionou como ponto de chegada de uma fase intensa na estrada, depois de uma agenda internacional que levou os artistas por 10 países e 14 cidades ao longo de 22 dias.
O especial também amplia o palco ao incluir cenas captadas durante a viagem pela Europa. Esses registros mostram momentos de convivência, preparação e bastidores, construindo uma narrativa que aproxima o público da relação entre os três músicos e da cumplicidade que aparece no espetáculo.
No repertório, o trio apresenta faixas como “Beija-Flor”, “Lembrei de Nós” e “Flor de Flamboyant”, além de versões que fizeram parte da turnê. Um dos pontos de atenção é a leitura em forró de “Pontes Indestrutíveis”, música de Chorão, do Charlie Brown Jr., também presente na trilha da novela Três Graças.
A exibição do Especial Dominguinho está marcada para este domingo, 24 de maio, na TV Globo. A atração entra na grade depois do Esporte Espetacular, levando ao público a mistura de show, estrada, amizade e celebração que acompanhou o projeto no Brasil e fora do país.
O Planeta TV corrige erros factuais. Conheça nossa Política de Correções.
20,6 pontos
Coração Acelerado segue entre as maiores audiências da Globo
12,9 pontos
Guerreiros do Sol perde audiência após estreia de Quem Ama Cuida
‘);
$tbl.wrap($wrap);
}
// Inline styles to guarantee scroll and compact spacing, regardless of external CSS precedence
$tbl.css({ display: ‘inline-block’, width: ‘auto’, maxWidth: ‘100%’, minWidth: ‘640px’, marginTop: ‘0’, marginBottom: ‘0’ });
$tbl.parent().attr(‘style’, ($tbl.parent().attr(‘style’) || ”) + ‘;overflow-x: auto !important;-webkit-overflow-scrolling: touch !important;width: 100% !important;margin:0 !important;’);
$tbl.find(‘th, td’).css({ whiteSpace: ‘nowrap’, minWidth: ‘120px’ });
var $wrapEl = $tbl.parent();
if ($wrapEl.find(‘.custom-scrollbar’).length === 0) {
var $bar = $(”);
$wrapEl.append($bar);
var $thumb = $bar.find(‘.custom-scrollbar-thumb’);
var updateThumb = function() {
var sw = $wrapEl[0].scrollWidth;
var cw = $wrapEl[0].clientWidth;
var sl = $wrapEl[0].scrollLeft;
var ratio = cw / sw;
var tw = Math.max(cw * ratio, 24);
var maxL = Math.max(sw – cw, 1);
var tl = (sl / maxL) * (cw – tw);
$thumb.css({ width: tw + ‘px’, transform: ‘translateX(‘ + tl + ‘px)’ });
$bar.css(‘display’, sw > cw ? ‘block’ : ‘none’);
};
$wrapEl.on(‘scroll’, updateThumb);
$(window).on(‘resize’, updateThumb);
updateThumb();
// Make thumb draggable to control horizontal scroll
var dragging = false;
var startX = 0, startSL = 0;
$thumb.on(‘pointerdown’, function(e) {
e.preventDefault();
dragging = true;
startX = e.clientX || (e.originalEvent && e.originalEvent.touches ? e.originalEvent.touches[0].clientX : 0);
startSL = $wrapEl[0].scrollLeft;
$(document).on(‘pointermove.tabledrag’, function(ev) {
if (!dragging) return;
var cx = ev.clientX || (ev.originalEvent && ev.originalEvent.touches ? ev.originalEvent.touches[0].clientX : 0);
var delta = cx – startX;
var cw = $wrapEl[0].clientWidth, sw = $wrapEl[0].scrollWidth;
var tw = parseFloat($thumb.css(‘width’)) || 40;
var ratio = (sw – cw) / Math.max(cw – tw, 1);
$wrapEl[0].scrollLeft = Math.min(sw – cw, Math.max(0, startSL + delta * ratio));
});
$(document).on(‘pointerup.tabledrag pointercancel.tabledrag’, function() {
dragging = false;
$(document).off(‘.tabledrag’);
});
});
// rely on native gestures; no custom touch handlers on wrapper
// Remove custom wrapper drag to allow native vertical scroll gestures
}
});
$(‘.article-body img’).each(function() {
var $img = $(this);
// Skip if already inside a figure
if ($img.parent().is(‘figure’)) return;
var caption = ”;
var $parent = $img.parent();
// STRATEGY 1: Check for caption in next sibling element
var $next = $img.next();
if ($next.length && ($next.hasClass(‘wp-caption-text’) || $next.hasClass(‘caption’) || $next.hasClass(‘image-credits’))) {
caption = $next.text();
$next.hide().remove(); // Ensure it’s hidden and removed
}
// STRATEGY 2: Check for text node immediately after image
else {
var nextNode = $img[0].nextSibling;
if (nextNode && nextNode.nodeType === 3 && nextNode.nodeValue.trim() !== ”) {
caption = nextNode.nodeValue.trim();
$(nextNode).remove();
}
}
// STRATEGY 3: Check for duplicate caption inside the image container (div/p wrapper)
if (!caption && ($parent.is(‘div’) || $parent.is(‘p’))) {
// Check for specific caption classes inside parent
var $parentNext = $parent.find(‘.wp-caption-text, .caption, .image-credits’);
if ($parentNext.length) {
caption = $parentNext.text();
$parentNext.hide().remove();
} else {
// Check for ANY text content in the parent that is NOT the image
// This is aggressive but necessary for loose text captions
var $clone = $parent.clone();
$clone.find(‘img’).remove(); // Remove image from clone
var potentialCaption = $clone.text().trim();
if (potentialCaption.length > 0 && potentialCaption.length ‘);
$img.wrap($container);
$fig = $img.parent();
} else {
// If nested containers exist, flatten them
var $outer = $fig.parent(‘.image-container’);
if ($outer.length) {
$fig.contents().appendTo($outer);
$fig.remove();
$fig = $outer;
}
}
var $p = $fig.parent();
// Fix for extra spacing: if figure is inside a P, and P has no other content, unwrap it.
if ($p.is(‘p’)) {
// Check if P contains only the figure (ignoring empty text nodes and BRs)
var hasRealContent = false;
$p.contents().each(function() {
if (this === $fig[0]) return; // Ignore the figure itself
// Check for text
if (this.nodeType === 3 && this.nodeValue.trim() !== ”) {
hasRealContent = true;
return false;
}
// Check for elements that are NOT BR
if (this.nodeType === 1 && this.tagName !== ‘BR’) {
hasRealContent = true;
return false;
}
});
if (!hasRealContent) {
// Remove BRs before unwrapping to avoid preserving extra space
$p.find(‘br’).remove();
$fig.unwrap();
}
}
if (caption && caption.trim() !== ”) {
if ($fig.find(‘.image-credits’).length === 0) {
$fig.append(‘
‘ + caption + ‘
‘);
}
}
});
// CLEANUP: Remove any orphaned captions that might have been missed
// This runs after all images are processed
$(‘.article-body .wp-caption-text, .article-body .caption, .article-body .image-credits’).not(‘figcaption’).each(function(){
var $el = $(this);
if ($el.closest(‘.image-container’).length === 0) { $el.remove(); }
});
// EXTRA CLEANUP: Remove BR tags and empty paragraphs immediately around figures to fix spacing
$(‘.article-figure’).each(function() {
var $fig = $(this);
// Helper to remove adjacent empty/br elements recursively
var removeAdjacent = function($el, method) {
var $adjacent = $el[method]();
if ($adjacent.length) {
// Check for
if ($adjacent.is(‘br’)) {
$adjacent.remove();
removeAdjacent($el, method); // Keep checking
return;
}
// Check for empty
if ($adjacent.is(‘p’)) {
var html = $adjacent.html().trim();
var text = $adjacent.text().trim();
// Matches
, ,
if (text === ” && (html === ” || html === ‘
‘ || html === ‘
‘ || html === ‘ ‘)) {
$adjacent.remove();
removeAdjacent($el, method); // Keep checking
return;
}
}
}
};
removeAdjacent($fig, ‘prev’);
removeAdjacent($fig, ‘next’);
});
});
});



