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

Estilista Kim Jones faz coleção espetacular para a Fendi

Reprodução/YouTube
Imagem: Reprodução/YouTube

28/01/2021 09h32

A primeira coleção do britânico Kim Jones para a grife italiana Fendi, apresentada nesta quarta-feira (27) em Paris, sem público e exclusivamente online, foi uma mistura espetacular de romantismo e elegância.

Entre as colunas douradas do parisiense Palácio Brongniart, a célebre marca Fendi apresentou com grande pompa a primeira coleção de alta costura para a primavera-verão 2021, sob a direção artística de Kim Jones.

Foi um desfile ao vivo, sem público por causa do coronavírus e aguardado impacientemente pelo mundo da moda, curioso para descobrir as propostas do prodígio inglês, que em setembro tomou o lugar do falecido Karl Lagerfeld para trabalhar, como ele fez, com Silvia Venturini Fendi.

Depois de sete anos como diretor artístico das coleções masculinas de Louis Vuitton e de dois anos com a Dior Homme, onde ainda é encarregado das coleções, o estilista inglês agora se dedica às mulheres.

Famoso por ter introduzido com êxito os códigos do 'streetwear' ao mundo do luxo, o desafio agora é ainda maior, já que ele se mede com o ponto de referência da sofisticação na arte da moda.

Kim Jones, de 47 anos, criado no condado de Sussex, no sul da Inglaterra, ou boa parte da infância perto da mítica residência de campo da escritora Virginia Woolf e seu marido, onde costumavam receber grandes personalidades no começo do século XX.

Esta inspiração autobiográfica se mistura com a história da marca romana, uma das mais exclusivas e mais caras do setor de luxo.

Uma história de mulheres

Demi Moore | Fendi - Reprodução - Reprodução
Demi Moore | Fendi
Imagem: Reprodução

No palácio parisiense, especialmente preparado para a ocasião, modelos renomadas, entre elas Demi Moore, Naomi Campbell, Kate Moss, Christie Turlington, Cara Delevingne, e também Leonetta e Delfina Fendi, filhas de Silvia Fendi, desfilaram peças deslumbrantes.

Em seguida, as modelos se posicionaram em meio a barreiras de acrílico, fazendo poses esculturais ou folheando belíssimos livros antigos do grupo Bloomsbury, uma coleção de textos raros postos em exibição para o desfile.

Bella Hadid | Fendi - Reprodução - Reprodução
Bella Hadid | Fendi
Imagem: Reprodução

Trajes longos bordados, sedas e cores remetem aos afrescos de Vanessa Bell e Duncan Grant, encontrados no sítio de Sussex do círculo de Bloomsbury, onde grandes poetas e dramaturgos se reuniam para criticar as diferenças sociais e a hipocrisia da sociedade.

Jones também retoma as cores dos mármores de Roma em calças e blazers, enquanto as criações em cetim remetem ao seu antecessor, Lagerfeld, à frente da Fendi por 54 anos, falecido há um ano e meio.

O estilista também homenageou a família Fendi e, sobretudo, suas mulheres, e chegou a trabalhar com a quarta geração, Delfina Delettrez Fendi, filha de Silvia, a quem confiou a direção criativa das joias.

Fundada em 1925 por Adèle e Edoardo Fendi, foram suas cinco filhas, Anna, Alda, Carla, Franca e Paola, que gerenciaram por décadas o destino da renomada marca, até a fusão em 2001 com o grupo francês LVMH, deixando apenas o departamento criativo a cargo de Maria Silva Venturini Fendi, que trabalhou ao lado de Lagerfeld como encarregada de órios, das linhas masculina e infantil.