;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Rock, novela, política, nudez: Gal Costa inspirou mulheres a serem livres

A cantora Gal Costa em Itapuã (BA) - Antônio Bastos/Divulgação
A cantora Gal Costa em Itapuã (BA) Imagem: Antônio Bastos/Divulgação
Lígia Nogueira

Colaboração para Universa

10/11/2022 04h00

De todas as cantoras brasileiras com mais de 50 anos de carreira, Gal Costa talvez tenha sido a que mais se reinventou ao longo dos anos. Essa capacidade de redescobrir-se foi uma das características mais marcantes da baiana Maria da Graça Costa Pena Burgos, nascida em Salvador em 1945 e morta em São Paulo na última quarta-feira (9).

Ela aprendeu cedo a usar a voz como instrumento e levou esse talento às últimas consequências. Versátil, transitou por diversos gêneros musicais e rompeu com os próprios padrões —e o que esperavam dela. Para além da música, botou as cordas vocais e os quadris pra jogo, deixando claro que o corpo é também uma ferramenta de expressão da maior importância, gritando para o mundo as suas verdades mais profundas. Sim, uma mulher pode ser várias ao longo de uma vida, apesar de a sociedade estar sempre tentando nos dizer o contrário.

Vejamos alguns exemplos. Se no primeiro disco, "Domingo" (1967), que dividiu com Caetano Veloso, a artista de voz doce e tímida se revelou uma discípula fiel de João Gilberto, os álbuns gravados na sequência, principalmente entre 1969 e 1971, deixaram claro o seu potencial para a estridência do rock. Nessa fase, ao tomar certa distância da bossa nova, Gal gravou Roberto e Erasmo Carlos, aproximou a jovem guarda da tropicália e alcançou o equilíbrio perfeito entre berros e sussurros.

Em 1971, a cantora de 26 anos vestiu uma saia bem abaixo do umbigo e apresentou o show "Fa-tal - Gal a todo vapor", em que explorava os agudos cantando "Eu não tenho nada, antes de você ser eu sou amor da cabeça aos pés", enquanto a guitarra de Lanny Gordin pontuava os versos de Moraes Moreira e Luiz Galvão ao fundo em "Dê um rolê". A apresentação dirigida pelo poeta Waly Salomão, que deu origem a um disco ao vivo, cultuado até hoje pelas gerações mais jovens, representa também o engajamento político da artista, ao se colocar como uma das porta-vozes da resistência à ditadura militar enquanto Caetano e Gilberto Gil seguiam exilados.

gal - Reprodução - Reprodução
Capa do disco 'Índia', de Gal Costa, que foi censurada pelos militares em 1973
Imagem: Reprodução

Anos mais tarde, em 1973, ela teve a capa do disco "Índia" censurada pela mesma ditadura. Quem, naquela época, teria coragem de publicar um close da virilha? Gal Costa, claro. Recentemente, a cantora voltou a se posicionar politicamente, criticando Bolsonaro e lamentando as consequências da pandemia.

No fim da década de 1970, a figura de Gal já estava consagrada e sua imagem de sensualidade espontânea já estava gravada no imaginário popular brasileiro. Em uma cena hoje antológica da novela "Dancin' Days" (1978), de Gilberto Braga, a artista canta em uma festa na casa de Júlia, personagem de Sônia Braga na trama, com a cabeleira imensa solta no ar, os lábios vermelhos. Foi nessa época que surgiu "Gal tropical" (1979), em que ela usava o timbre claro e definido em faixas como a marchinha pop "Balancê", e seguiu frequentando as trilhas de novelas globais, nem aí para a opinião dos puristas.

Gal - Reprodução - Reprodução
Gal Costa
Imagem: Reprodução

Em um de seus mais controversos espetáculos, em 1994, a cantora exibiu os seios no palco do Imperator, no Rio de Janeiro, ao cantar "Brasil", de Cazuza, no show de lançamento de "O sorriso do gato de Alice", dirigido por Gerald Thomas. Parte do público carioca recebeu mal a proposta e vaiou a artista, enquanto alguns veículos que publicaram fotos da cena foram criticados. Além do figurino inesperado, uma camisa larga que podia ser desabotoada com facilidade, o show começava com Gal engatinhando ao som de guitarras distorcidas, contrariando as expectativas de quem esperava a postura padronizada de uma diva da MPB.

De peito aberto, Gal avançou pelos anos sem medo de mostrar a voz que ganhou intensidade, e seguiu explorando gêneros como a música eletrônica e o funk carioca. Ao mesmo tempo doce e bárbara, ela segue nos inspirando e lembrando que, em 2022, ano que começou com a partida de Elza Soares e termina sem Gal Costa, apesar de tudo, é preciso estar atenta e forte.

Para ler ouvindo: