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

Retorno dos anos 70 e máscaras combinando: as tendências do Grammy 2021

A cantora Dua Lipa no Grammy; look da Atelier Versace fez referência ao estilo de Cher em 1974 - Francis Specker/CBS via Getty Images
A cantora Dua Lipa no Grammy; look da Atelier Versace fez referência ao estilo de Cher em 1974 Imagem: Francis Specker/CBS via Getty Images

Gustavo Frank

De Nossa

15/03/2021 11h02

O Grammy ontem deu os primeiros os para o retorno dos eventos com red carpet. Sem público presente, a premiação contou apenas com os artistas indicados aos troféus no local, que não nos deixaram de mãos vazias ao desfilarem os looks pelos quais tanto aguardamos para ocasiões como essa.

Um dos destaques ficou com a britânica Dua Lipa. A cantora, que levou o prêmio de "Melhor Álbum Pop" com "Future Nostalgia", trouxe de volta os anos 70 para o Grammy. O vestido usado por ela foi um Atelier Versace, todo trabalhado com pequenas pedras de brilhante, decote e fenda. Tudo isso em uma peça só — sem contar as trocas de roupas feitas por ela durante sua performance.

Dua Lipa | Versace - Getty Images - Getty Images
Dua Lipa | Atelier Versace
Imagem: Getty Images

Foi impossível não notar uma referência a um dos ícones da música pop há algumas décadas: Cher.

Para marcar essa lembrança, basta voltarmos à premiação em 1974, quando a voz de "Believe" desfilou no tapete vermelho fazendo ode ao símbolo da borboleta em seu look. A extensão do cabelo e a maquiagem de Dua definitivamente não foram escolhidas à toa.

Cher | Grammy (1974) - Getty Images - Getty Images
Cher | Grammy (1974)
Imagem: Getty Images

Quem também apresentou a vibe disco da época em questão foi Harry Styles. Dos pés à cabeça vestindo Gucci, como já é de praxe, o cantor apareceu com dois looks: um blazer amarelo quadriculado, que acabou virando meme pela semelhança com o personagem Agostinho Carrara, e um terno todo de couro.

Ambos com um ório em especial: um cachecol de plumas verde e outro roxo — sendo essa última uma das cores do momento —, daqueles que a gente ganha na festa de casamento quando as músicas dos anos 70 começam a tocar na pista.

Harry Styles | Gucci - Reprodução/Instagram - Reprodução/Instagram
Harry Styles | Gucci
Imagem: Reprodução/Instagram
Harry Styles | Gucci - Francis Specker/CBS via Getty Images - Francis Specker/CBS via Getty Images
Harry Styles | Gucci
Imagem: Francis Specker/CBS via Getty Images

As plumas apareceram também no vestido usado por Doja Cat. A voz de "Say So" desfilou uma criação de Roberto Cavalli e apostou nos mullets — conhecido também como o penteado antigo mais atual da vez.

Doja Cat | Roberto Cavalli - Getty Images - Getty Images
Doja Cat | Roberto Cavalli
Imagem: Getty Images

Match: look e máscara

Billie Eilish ao lado do irmão, Finneas, no Grammy 2021 - Getty Images - Getty Images
Billie Eilish ao lado do irmão, Finneas, no Grammy 2021
Imagem: Getty Images

As máscaras não foram deixadas de lado, prova disso foi que, elas não só apareceram, mas também se destacaram ao serem escolhidas minuciosamente pelos stylists dos artistas.

Billie Eilish e o irmão, Finneas, que também vestiram looks da Gucci, usaram máscaras que davam continuidade ao visual, fossem elas abstratamente estampada ou completamente monocromática.

Billie Eilish | Gucci - Getty Images - Getty Images
Billie Eilish | Gucci
Imagem: Getty Images

A tendência se repetiu ao longo da noite com Harry Styles, que optou por uma versão xadrez, como no terno, e Taylor Swift durante a sua aparição com o vestido floral Oscar de La Renta.

Harry Styles | Gucci - Getty Images - Getty Images
Harry Styles | Gucci
Imagem: Getty Images
Taylor Swift | Oscar de la Renta - Cliff Lipson/CBS via Getty Images - Cliff Lipson/CBS via Getty Images
Taylor Swift | Oscar de la Renta
Imagem: Cliff Lipson/CBS via Getty Images

Efeito Bridgerton

Taylor Swift | Etro - Reprodução - Reprodução
Taylor Swift | Etro
Imagem: Reprodução

A grande vencedora da noite, que levou o prêmio de "Melhor Álbum do Ano", Taylor Swift mostrou que o visual criado por ela para o álbum "folklore" é prova viva de que a estética cottagecore e o efeito da série "Bridgerton" estão mais fortes do que nunca.

Além do floral Oscar de la Renta, a cantora usou durante a perfomance um vestido da Etro. A peça, que ia até o chão, apresentava uma fenda que corria acima dos joelhos e estampa floral de folha metálica dourada contra um tom marinho profundo, que continuava sobre as mangas longas e transparentes.

Com uma cintura apertada e com faixas e mangas esvoaçantes, a cantora estava simultaneamente transmitindo vibrações de cottagecore com Bridgerton.

Taylor Swift | Etro - Reprodução - Reprodução
Taylor Swift | Etro
Imagem: Reprodução