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

Icônico tutu original de Carrie em 'Sex and the City' irá a leilão em NY

O lendário tutu de Carrie Bradshaw na abertura de "Sex and the City" - Reprodução
O lendário tutu de Carrie Bradshaw na abertura de 'Sex and the City' Imagem: Reprodução

De Nossa

04/11/2021 13h43

O tutu usado por Carrie Bradshaw (Sarah Jessica Parker) na abertura de "Sex and the City", um símbolo da série e de fashionistas como a personagem ao longo dos anos, será leiloado no evento Fashion for Action 2021 em Nova York, que acontece no próximo dia 10 de novembro.

Não foi divulgado o lance mínimo para a peça, mas todo o lucro da venda, assim como de outras criações de luxo de estilistas famosos, será revertido para a organização Housing Works', que apoia pessoas portadoras do vírus HIV em situação de rua.

A saia de tule histórica foi doada pela figurinista da produção, Patricia Field, que a comprou em um brechó nos anos 90 por apenas US$ 5, cerca de R$ 28 hoje, sem levar em consideração a correção monetária.

Sua ideia de vestir Carrie com o tutu foi bem recebida por Sarah Jessica, relembrou à Page Six, mas o produtor Darren Star, assim como outros executivos, não teriam gostado da proposta.

"Acho que parecia pouco convencional demais, especialmente para os créditos de abertura. Eles queriam algo mais seguro, mas eu e a Sarah Jessica realmente achamos que ela devia usar algo original na abertura, porque se a série fizesse sucesso, então aquele look de abertura precisaria resistir ao teste do tempo. Não podia ser um vestido tendência da temporada de outono 1990, ou algo assim".

Para acalmar os ânimos dos mandachuvas, diversas versões da abertura foram rodadas — no entanto, ela e a atriz continuaram a "campanha" pelo tutu nos bastidores e acabaram levando a melhor.

Depois do sucesso do look de Carrie, Patricia acabou lançando uma versão da peça com cintura de cetim, que custa US$ 140 (R$ 782) no e-commerce de sua marca.

Apesar de ter sido uma pechincha nos anos 90, a saia original pode alçar voos bem mais altos no leilão por ser um item de colecionador. Uma réplica dele também estará disponível para provar e posar para fotos no apartamento da personagem que será alugado através do Airbnb este mês.

Enquanto Carrie ainda gera lucros e deve voltar às telas em dezembro na nova temporada "And Just Like That..." no HBO Max, a figurinista finalmente ou o bastão do guarda-roupa da personagem, após 6 anos de trabalho na tevê e dois filmes da franquia, para uma colega de trabalho na produção, Molly Rogers.

Patricia Field continua, no entanto, sua parceria com Darren Star e assina o figurino de "Emily em Paris", da Netflix, de que ele é produtor.