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

Rainha das festas, Ju Françozo superou crise da pandemia pintando flores

Ju Françoso e um de seus murais - Arquivo pessoal
Ju Françoso e um de seus murais Imagem: Arquivo pessoal

Carol Scolforo

Colaboração para Nossa

31/05/2022 04h00

Ju Françozo

Ju Françozo

QUEM É

Ju Françozo é pintora à mão livre autodidata, que atribui à curiosidade sua guinada para as Artes Plásticas. Antes, atuou por décadas à frente de sua empresa homônima no mercado de festas de São Paulo.

Festeira das famosas. Rainha das festas infantis. Era com esse sobrenome que as pessoas apresentavam Ju Françozo durante décadas. Mas, como você deve imaginar, a pandemia que arrasou o mercado de eventos corroeu as reservas da maioria dos profissionais da área. Com ela não foi diferente. Foram dias de luta e de ver os boletos trazerem desespero.

Antes de novembro de 2020, Juliana nunca tinha pegado numa lata de tinta — nem na escola, menos ainda fora dela. Mas uma habilidade essencial ajudou a sobreviver aos estragos do isolamento: a coragem de se reinventar. "Eu já estava pensando em trabalhar em outras frentes. Mas nunca imaginei a pintura", ri.

Graças a uma amiga que queria fazer uma mudança no salão de cabeleireira e pediu ajuda, ela sugeriu tinta. "Era o jeito mais barato e estávamos todos contendo gastos", explica. Naquela mesma semana, uma assistente braço-direito saiu da empresa. Pronto, o caos estava instalado.

Isso se somou a um mercado de festas minguado, com pouca verba e muito choro. "Não concordava com o que estava acontecendo. A logística de fazer uma festa pequena ou grande é a mesma. Há criação, frete, horas de trabalho e equipe envolvida. Para mim, não era um negócio interessante mais", conta.

Em vez de desanimar, Ju foi para o salão da amiga pintar. "Pegamos um pincel de maquiagem redondinho e comecei sem pretensão de ir longe. Achei um caminho interessante", diz ela. Por seis meses, treinou seu traço à mão livre na casa de amigos. Seus professores? A experiência e a pressão das contas.

Vasos com pinturas - Arquivo pessoal - Arquivo pessoal
Vasos com pinturas
Imagem: Arquivo pessoal
Chapéus pintados - Arquivo pessoal - Arquivo pessoal
Chapéus pintados
Imagem: Arquivo pessoal

Recentemente, as coisas começaram a mudar. Inclusive o endereço: está em uma casa no Alto da Lapa que em breve será uma galeria-estúdio aberta a visitas, reuniões profissionais e ensaios fotográficos. "As pessoas esperavam um ano inteiro para ir aos eventos que eu fazia, para entrar nos cenários. Agora estarei aberta a elas. A casa vai mudar de cor e se transformar para receber gente criativa", diz, ansiosa por esse movimento.

Lavabos se tornam atração

Atualmente, mais de um ano depois do começo dessa nova carreira, os lavabos se tornaram uma vedete em seu portfólio. Há também objetos, telas, roupas, coleções desenvolvidas para marcas. Dá pra ver tudo no Instagram @fina.parada.

Faço malabarismos, entro com a cabeça quase dentro do vaso sanitário para pintar. Os lavabos viram uma atração depois. As pessoas mostram a casa começando por eles"

Ju no hall da escada pintada por ela - Arquivo pessoal - Arquivo pessoal
Ju no hall da escada pintada por ela
Imagem: Arquivo pessoal

Ex-festeira? Nada

As festas ainda rondam sua vida, embora em menor quantidade. "Agora escolho para quem vou criar", conta. Mas Ju se realiza mesmo é nos grandes murais e instalações — um deles levou 30 horas e exaustão física.

"As cores vão se mostrando para mim, performando com liberdade. Elas se misturam, já que não limpo meu pincel. Algumas pinturas têm mais respiro e outras são maximalistas. Acredito que a curiosidade leva a gente muito mais longe e nos faz mais flexíveis a aprender e a criar. É o que aprendi com a vida", diz. Uma bela lição.

@s que me inspiram

@seletti

"Essa marca italiana de design tem estética e campanhas incríveis. Suas cores e elementos de venda me inspiram sempre."

@gucci

"Absolutamente tudo da Gucci me inspira. Cores, grafismos, lifestyle e a expressão da casa de moda italiana são inspiradores."