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

Desfile da Dior em Paris celebra a moda de perto após interrupção pela pandemia

Atriz Yara Shahidi: nova embaixadora global de moda feminino e maquiagem - Reprodução Instagram
Atriz Yara Shahidi: nova embaixadora global de moda feminino e maquiagem Imagem: Reprodução Instagram

Laetitia Volga

05/07/2021 16h48

A grife sa Christian Dior deu início nesta segunda-feira à semana de moda de Paris, com um desfile presencial que atraiu celebridades para a primeira fila em uma tentativa de reavivar o toque de glamour pré-pandemia.

As atrizes Jessica Chastain, Cara Delevingne, Monica Bellucci e Florence Pugh estavam entre o público limitado que acompanhou a coleção de alta costura outono/inverno 2021-2022 da Dior na arela.

Após participar do que teria sido seu primeiro evento público desde o início da pandemia, Chastain disse:

Estou muito feliz por estar em uma sala com pessoas e olhar para peças incríveis".

Angelababy: modelo chinesa e embaixadora da Dior - Reprodução Instagram - Reprodução Instagram
Angelababy: modelo chinesa e embaixadora da Dior
Imagem: Reprodução Instagram

A estilista Maria Grazia Chiuri disse à Reuters que queria que os tecidos estivessem na frente e no centro. Assim, o público na sala poderia apreciar os detalhes e a natureza tátil do tecido de uma forma que não aparece online ou em filmagens de vídeo.

Nos últimos meses, as marcas de moda exibiram suas coleções apenas em formatos online, como curtas-metragens.

Com a vacinação progredindo e as restrições diminuindo, a moda está voltando aos poucos aos tradicionais desfiles de arela, por ora misturando público presencial e apresentações online. "Estamos todos muito emocionados", disse Chiuri.

"Há tantas pessoas que trabalham na coleção. Ficamos felizes em realizar belos filmes, mas foi um pouco impessoal. [Todos] estão realmente orgulhosos de ver o show, estar nos bastidores, viver o momento com nossos clientes, a imprensa, nossos amigos. Em um ano e meio, perdemos muito desse contato humano", disse ela. A Semana da Moda de Paris vai até 8 de julho.