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

De leopardo de Cardi B a cata ovo do BTS, videoclipes viram motor de venda

Cardi B no videoclipe para a música "WAP" com peças de leopardo, que disparou a busca pelas estampas na internet após o lançamento - Divulgação
Cardi B no videoclipe para a música "WAP" com peças de leopardo, que disparou a busca pelas estampas na internet após o lançamento
Imagem: Divulgação

Gustavo Frank

De Nossa

18/11/2020 04h00

A pandemia transformou muitas coisas, dentre elas a forma como consumimos moda e nos influenciamos sobre o que vestir. Enquanto muitos desfiles foram cancelados ou adaptados para as plataformas digitais, os videoclipes de músicas da indústria pop se transformaram em vitrines de moda.

Um exemplo é como "WAP", parceria entre as rappers Cardi B e Megan Thee Stallion, causou um aumento repentino na procura por peças com estampas de leopardo, cobra e tigre. Segundo o The Lyst, plataforma de pesquisa de mercado na moda, a busca por roupas desses segmentos apresentaram um aumento de 201% após o lançamento do videoclipe.

Com os chapéus no modelo bucket hat não foi diferente. Depois que o grupo de k-pop BTS mostrou ao mundo o vídeo para a música "Dynamite", no qual um dos integrantes aparece com o ório da marca Kangol na cor rosa, o número de buscas aumentou 128%.

O grupo de k-pop BTS no clipe de "Dynamite" - Reprodução - Reprodução
O grupo de k-pop BTS no clipe de "Dynamite"
Imagem: Reprodução

"Muitos fãs estão procurando produtos que realmente reflitam o estilo pessoal de seu artista favorito", diz a editora do The Lyst Morgane Le Caer, "Seja um selo independente, uma colaboração com uma marca conhecida ou um simples endosso de produto".

Harry Styles também desempenhou seu papel como uma referência na moda para os millennials e a geração Z. A busca por camisas floridas apresentou um aumento de 31% depois que o cantor britânico surgiu com a peça no videoclipe de "Watermelon Sugar".

Harry Styles no clipe de "Watermelon Sugar" - Reprodução/Instagram - Reprodução/Instagram
Harry Styles no clipe de "Watermelon Sugar"
Imagem: Reprodução/Instagram

Nomes de estilistas também se destacaram nessa onda, como Marine Serre, que levou ao mundo a estampa de meia-lua, usada por Beyoncé, Adele e Dua Lipa.

O sucesso perdura até hoje. Na época do lançamento de "Black is King", as peças aumentaram suas buscas em 51%. No último trimestre de 2020, a segunda pele da artista é o segundo item mais cobiçado pelo público feminino, de acordo com a The Lyst Index.

"Marine Serre faz sua primeira aparição no top 20 no terceiro trimestre desse ano no universo da moda", explica o relatório. "Foi a marca que mais cresceu neste trimestre, subindo dez posições".

Beyoncé e os dançarinos com estampa de Marine Serre em "Black is King" - Reprodução - Reprodução
Beyoncé e os dançarinos com estampa de Marine Serre em "Black is King"
Imagem: Reprodução

O que explica esse fenômeno?

O maior tempo que estamos ficando em casa na quarentena e o forte apelo que essas produções têm no dia a dia, além do forte engajamento, são os principais motores para que essa "nova" proposta tenha ganhado tanta força;

A professora de moda Paola Ferdon conta para Nossa que a expectativa das pessoas em buscar por novidades provavelmente é uma das explicações.

"Por mais que se fale bastante sobre roupas que trazem o conforto, muita gente ainda está procurando por o que está em alta entre as celebridades e artistas", opina.

Assim como os fashion films apresentados no São Paulo Fashion Week há pouco, um dos diferenciais são as histórias narradas por trás das roupas.

"É o que muitos grandes nomes da moda falam: hoje em dia, a roupa por si só já não tem mais o mesmo apelo", completa. "É preciso pensar nela como um conjunto do tempo em que vivemos e como ela representa o estilo de quem a veste".