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

Camisa só em loja masculina? Marca 'estilo Agostinho Carrara' revê padrão

Modelo veste "Carrara": camisa com estampa chamativa faz parte do conceito da marca - Divulgação
Modelo veste "Carrara": camisa com estampa chamativa faz parte do conceito da marca Imagem: Divulgação

Nathália Geraldo

De Universa

25/01/2022 04h00

Se há um homem da ficção que une todas as tribos em volta de sua personalidade despachada e treteira, esse homem é Agostinho Carrara, personagem interpretado pelo ator Pedro Cardoso na segunda e marcante versão de "A Grande Família", da TV Globo. Inspirada no estilo do taxista, a designer de moda Fernanda Matos, de Feira de Santana (BA), criou uma marca de roupas em que as estampas florais e com listras têm, sim, seu valor: a Carrara.

Camisas de botão são o carro-chefe da produção que leva o sobrenome de Agostinho. Mulher lésbica, Fernanda faz as roupas para todos os corpos e todas as pessoas, mas entende que entre mulheres que gostam de mulheres os produtos têm apelo, já que muitas se sentem insatisfeitas com as modelagens de camisas feitas para homens. "Desde a faculdade brincava com algumas amigas que tínhamos de fazer uma marca que traduzisse o estilo dele, porque, aliás, a gente se vestia igual a ele".

agostinho - Divulgação/TV Globo / Blenda Gomes - Divulgação/TV Globo / Blenda Gomes
Agostinho Carrara: um personagem que assume seu estilo sem se importar com o que pensam
Imagem: Divulgação/TV Globo / Blenda Gomes

As peças feitas sob medida são do movimento slow fashion; isso significa que a confecção é feita de forma mais lenta. Fernanda mostra quais estampas estão disponíveis, pede as medidas da pessoa, e a roupa é costurada por ela, em seu próprio ateliê.

Estilo brega?

Para a designer de moda, a inspiração em um "ícone pop da cultura brasileira" reflete o que vê nas ruas: gente que não se preocupa em usar diferentes estampas no mesmo look e que gosta de explorar a moda para se expressar. Além de Agostinho, Fernanda conta que tem como referência a designer de interiores norte-americana Iris Apfel, conhecida por seu estilo maximalista e colorido.

"É o que se chama kitsch, que surge ali na Revolução Industrial, e que era visto como brega. E até marcas como a Gucci e a Dolce & Gabbana têm algumas peças floridas assim", diz a criadora da loja.

roupa - Divulgação - Divulgação
Criadora da marca diz que preza por fazer peças sob medida, e conquista público lésbico que precisa ir à seção masculina de lojas para comprar
Imagem: Divulgação

Com a tarefa de assegurar que Agostinho também pode ser ícone fashion, ela apresentou seu último projeto da faculdade de moda com peças Carrara. Em 2019, ou a costurar a pedido de clientes.

Público formado por lésbicas

fernanda - Arquivo pessoal - Arquivo pessoal
Fernanda Matos, empresária e costureira da "Carrara", se preocupa em ajustar a peça para o corpo de cada pessoa
Imagem: Arquivo pessoal

Parte da divulgação da Carrara também contempla mulheres que não se veem tanto nos símbolos de feminilidade e preferem usar roupas associadas ao closet masculino. "Mas o que se vende para homens nem sempre veste bem, porque temos seios maiores, quadris mais largos. Pode até rolar um constrangimento para quem vai em uma loja física e quer experimentar algo da seção masculina, porque atrai olhares", explica.

Cada camisa custa a partir de R$ 159, e a marca tem outros itens, como conjuntos, quimonos e shorts.