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

Marca sem gênero revela corpos com peças justas e transparência no SPFW N51

Foto dos bastidores do fashin film da Another Place para o São Paulo Fashion Week N51 - Victor Takayama
Foto dos bastidores do fashin film da Another Place para o São Paulo Fashion Week N51
Imagem: Victor Takayama

Gustavo Frank

De Nossa

25/06/2021 15h11

Durante a pandemia, as festas se tornaram uma fantasia longa e distante para nós. Como um "sopro de otimismo" para o que está por vir, a Another Place apresentou a coleção "Unlock", em parceria com a Beck´s, no São Paulo Fashion Week N51 em um fashion film que matou um pouco das saudades das pistas.

A direção ficou por conta de Henrique Sauer, que mesmo em tempos controversos e instáveis, celebra a individualidade, o hedonismo e transforma o desejo notívago em uma realidade quase que paralela, na qual sonho, fantasia, ado, presente e futuro, se misturam. No ano ado, a produção apresentada na edição de 25 anos do SPFW e dirigida também por Sauer representou o Brasil em um festival em Milão, na Itália.

Another Place | SPFW N51 - Victor Takayama - Victor Takayama
Another Place | SPFW N51
Imagem: Victor Takayama
Another Place | SPFW N51 - Victor Takayama - Victor Takayama
Another Place | SPFW N51
Imagem: Victor Takayama

Para a coleção, a marca apostou em suas já tradicionais roupas sem gênero com transparências, recortes profundos e peças bem justas, que revelam as formas do corpo. Tudo isso, em um ritmo pulsante, que mistura desfile, dança e performance ao som da trilha criada por Barbara Ohana, com samples de hits pop pontuados em uma produção dançante e eletrônica, que brinca com diferentes ritmos e estilos.

"Acredito que conseguimos traduzir e somar esses conceitos e valores de uma forma única e autoral! Sem contar, que o filme/desfile é um respiro no meio do cenário atual em que estamos inseridos", diz Rafael Nascimento, diretor criativo da ANP, para Nossa.

Então tem certo saudosismo, mas também um sopro de otimismo pelo que está por vir".

Another Place | SPFW N51 - Victor Takayama - Victor Takayama
Another Place | SPFW N51
Imagem: Victor Takayama

Entre os destaques da coleção, a estampa gráfica e sinuosa que aparece em segundas-pele, sejam tops ou meias-calças, assim como tricôs de jacquard e puffer jackets.

Enquanto as peças com aspecto resinado (casacos, jaquetas perfecto e calças) ganharam aviamentos, ilhoses e zíperes em destaque. A pegada sporty e os elementos do underwear também são protagonistas.

Another Place | SPFW N51 - Victor Takayama - Victor Takayama
Another Place | SPFW N51
Imagem: Victor Takayama

A apresentação revela a collab inédita criada em parceria com a Beck's, cerveja alemã com grande conexão com arte, música, moda e cultura urbana. Essa intersecção fica especialmente explícita nas peças que utilizam a linguagem visual da bebida aliada ao DNA e olhar da ANP.

"Muito além do tom verde vibrante que é predominante na coleção, esse projeto traduz um convite ao público. A ANP é uma marca que tem muito a ver com Beck´s, no quesito de liberdade e provocação do status e é essa a mensagem que Beck's faz ao estrear no universo da moda, um brinde ao espírito livre!", diz Mariana Ortenblad, gerente de marketing da cerveja Beck´s.