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

Roupas doadas viram fonte de renda para costureiras e comunidades carentes

Por meio do projeto Reif Act Non, artistas customizam peças de doações com dinheiro revertido para os mais afetados pelo coronavírus - Fotografia: Cassia Tabatini/Edição: Jemima Kos & Victor Wagner
Por meio do projeto Reif Act Non, artistas customizam peças de doações com dinheiro revertido para os mais afetados pelo coronavírus
Imagem: Fotografia: Cassia Tabatini/Edição: Jemima Kos & Victor Wagner

Gustavo Frank

De Nossa

28/08/2020 04h00

"Queria fazer algo que mostrasse como a moda também é capaz de tomar um bom caminho e focar na própria produção", diz o diretor de arte português Marcelo Alcaide em entrevista a Nossa, ao falar sobre o projeto Reif Act Non, em que roupas doadas aram pelas mãos de diversos artistas para a customização e posterior venda.

A renda obtida por essas peças, que trazem nomes internacionais e nacionais, como Telfar Clemens, Estileras, AVAF e Yves Tumor, será em grande parte revertida para comunidades carentes e as costureiras.

O conceito nasce a partir de uma proposta: o upcycling, que tem como intuito trazer uma solução ecológica e sócio-responsável para a moda.

"Quando a quarentena começou, muitas pessoas da área da produção com que trabalhei foram fortemente afetadas na pandemia pela falta de trabalho e apoio governamental", lembra Marcelo, que atua também como produtor de festas na cena noturna ao redor do mundo, como em Berlim, na Alemanha.

O nascimento do Reif Act Non

Foi durante a ação de uma ONG na região central de São Paulo, em que Marcelo regularmente é voluntário, preparando e distribuindo refeições para os moradores de rua, que nasceu o projeto Reif Act Non, após a chegada de uma grande remessa de doações com roupas.

"Pedi para pegar algumas das peças doadas e convidei vários artistas para trabalhar nessa ação", conta. "Queria ver como eles se relacionam com a situação no Brasil, além dos próprios projetos os quais eles desempenham em sua própria comunidade".

Papel social

As roupas customizadas terão 30% da renda obtida destinada às costureiras e lavadeira envolvidas no processo de confecção.

Já as ONGs receberão 40% do dinheiro para apoiar comunidades carentes nos estados de São Paulo e Amazonas, sendo elas a Nós Cuidamos Rio Negro, organização que apoia comunidades indígenas na região amazônica, Casa Branca de Luz, centro espiritual, Nós Existimos, organização de apoio à comunidade trans, e a Casa 1, centro cultural e abrigo LGBTQ+.

À venda nas lojas físicas e online da Cartel 011, Marcelo destaca que as peças foram disponibilizadas em "preços íveis", levando em conta todo o trabalho feito e a posterior distribuição entre as organizações.

"A ideia era criar algo que as pessoas pudessem comprar, não só para um determinado público com maior poder financeiro", acrescenta. "Ou seja, roupa que realmente pudessem circular".

Discussão criada

Lookbook da Reif Act Non - Reif Act Non - Reif Act Non
Fotografia: Cassia Tabatini/Edição: Jemima Kos & Victor Wagner
Imagem: Reif Act Non

Associada à FORT MAGAZINE, a Reif também realiza uma série de apresentações ao vivo e conversas com os participantes, mostrando como é o processo por trás das criações.

"É inspirador ver a forma como as pessoas lutam para se reinventar constantemente nesse período e poder participar disso, fazendo uma ligação entre culturas de todo o mundo através dessas peças", diz Marcelo.

"Considero essa manifestação artística importante para combater o isolamento, porque as pessoas estão contaminadas pelo que acontece politicamente e socialmente neste momento no Brasil", conclui.

A realização do projeto conta com fotografia de Cassia Tabatini, editadas por Jemima Kos & Victor Wagner e edição de vídeo e som por Andre Isolini e Laza, respectivamente.