;(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

Capa de Anitta rende memes e até suspeita de pegadinha de 1º de abril

De Splash, em São Paulo

31/03/2022 17h31Atualizada em 01/04/2022 13h44

Anitta divulgou na tarde de hoje a capa do seu novo álbum que vai ser lançado em 12 de abril. Inicialmente chamado de "Girl From Rio", o projeto foi renomeado para "Versions Of Me", com justificativa de mostrar as diversas facetas da artista. A troca gerou controvérsias e até memes.

Há inclusive quem desconfie do anúncio e acredite ser uma pegadinha de 1º de abril, já que ela construiu ao longo dos últimos dois anos todo um conceito em torno do até então "Girl From Rio".

Uma pegadinha?

Neste momento, a cantora encontra-se em viagem internacional para comemorar seu aniversário de 29 anos. Ela foi para a Tailândia, país que está em um fuso 10 horas à frente do horário de Brasília.

1 - Reprodução/ Facebook/ Twitter @anitta - Reprodução/ Facebook/ Twitter @anitta
Horário das publicações no Brasil; na Tailândia já ava de 0h de 1º de abril
Imagem: Reprodução/ Facebook/ Twitter @anitta

Quando Anitta fez a publicação simultaneamente no Facebook e Instagram às 14h15 horário de Brasília desta quinta-feira (31), o relógio já marcava 0h15 de sexta-feira (1) na Tailândia. No Twitter a publicação foi feita 4 minutos depois.

Após o anúncio ela comentou a reação dos fãs: "Tô quase desmaiando de sono aqui. Depois volto pra explicar a genialidade e estratégia por trás da capa do meu álbum pra quem não conseguiu acompanhar rss. Mas já amei que tá dando controvérsia. Objetivo 1 alcançado", falou no Twitter.

"Lembra quando Anitta postou que no lugar onde ela estava já era seu aniversário, mesmo ainda sendo a véspera no Brasil? Logo, como hoje já é 1° de abril lá, ela fez uma capa falsa do 'Versions Of Me' pra criar buzz pra capa real do 'Girl From Rio'", especulou o influenciador digital e apresentador da MTV Brasil, Spartakus Santiago.

Memes e lamentações

No Twitter, a renomeação do álbum da cantora, que vai ser lançado quatro dias antes da sua primeira apresentação no Coachella, gerou controvérsias e uma chuva de memes.

"A capa de 'Versions Of Me' é trol e o álbum ainda se chama 'Girl From Rio' com a capa do busão tenho certeza". "Descanse em paz, 'Girl From Rio', você nunca esteve sozinho e sempre estará em nossos corações". "Justiça por 'Girl From Rio'", foram algumas das reações confira.

Críticas até para a gravadora

Muitos fãs aproveitaram o anúncio para criticar a troca de nome. Eles justificaram que o conceito já estava pronto.

"Pensar que a Warner [gravadora de Anitta] tinha o pão e a manteiga na mão, 'Girl From Rio' muito superior a 'Versions Of Me'". "Warner você me paga, eu nunca vou te perdoar", escreveram alguns perfis no Twitter.

"Imagina você ter entregue essa capa que marcou o ano ado. Gerou memes foi um impacto cultural. E abandonar o conceito 'Girl From Rio' pra uma coisa péssima", opinou o usuário do perfil @leocomgrife.

"Coloquei na minha cabeça que a Anitta jamais aprovaria essa capa e foi a Warner que obrigou a diva a aceitar essa capa e esse nome? ela já tinha a faca e o queijo na mão com a capa perfeita e o nome perfeito do 'Girl From Rio", publicou o perfil @whomath.

Também teve defesa

Anitta já tinha afirmado que seu álbum precisou ser refeito do zero após adiamento de lançamentos devido à pandemia.

Alguns fãs se lembraram disso ao falarem sobre a mudança de nome.

E aí? Será que o álbum foi renomeado mesmo ou é apenas uma brincadeira "antecipada" de 1º de abril?