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

Casa contra a gordofobia: 'Não queremos corpo perfeito para curtir o verão'

Casa Corpo Livre, que foi inaugurada em São Paulo - Divulgação
Casa Corpo Livre, que foi inaugurada em São Paulo Imagem: Divulgação

Baárbara Martinez

Colaboração para Universa, em São Paulo

13/11/2022 16h20

Um espaço com atmosfera de casa de verão que promete promover a auto-aceitação, a luta contra a gordofobia e o ativismo pela diversidade de corpos. Assim é a Casa Corpo Livre, localizada no bairro do Morumbi, em São Paulo.

"Não queremos esperar o corpo perfeito para poder curtir o verão. A gente bota biquíni para se divertir, não para se exibir", diz Alexandra Gurgel, uma das idealizadoras do projeto, inaugurado no sábado (12) e que promete virar um point em dias quentes no primeiro verão pós-pandemia.

A casa foi idealizada pelo Movimento Corpo Livre, que realça a liberdade corporal e consegue impactar mais de 1,5 milhão de pessoas por meio das redes sociais. Além de Alexandra, tem Caio Cal e Beta Boechat como fundadores, e eles acreditam que nem sempre a internet é a melhor saída para a troca de histórias e vivências.

A fim de acolher todos os tipos de corpos, criaram o evento "Movimenta", que marcou a inauguração do espaço assinado pelo arquiteto Maurício Arruda. O encontro teve atividades como talks, exposição e exercício físico.

"É um espaço de acolhimento e de pertencimento, onde as pessoas podem ser livres. Algumas que estão aqui hoje me falaram que nunca participaram de outros tipos de vivências. Às vezes, ela não tem uma rede de apoio, só tem uma rede na internet, o que é muito bom, mas acaba não vivendo isso na pele", comenta Alexandra.

Segundo ela, a proposta de ter um espaço físico é para que mais pessoas se sintam encorajadas em suas vivências, mas também para que novos influenciadores tenham e para criar projetos e que, assim, o Brasil mude sua ideia de padrão de beleza.

"A gente quer proporcionar às pessoas possibilidades para que elas entendam que tudo é possível, que elas podem. É sobre o nosso corpo ser capaz, sobre a gente poder e ir além", comenta a jornalista.

Beta ressalta que essa ajuda para os criadores de conteúdo é necessária para ampliar o mercado e fazer com que a diversidade seja ampliada -inclusive junto das marcas. "A gente quer abrir espaço para criadores de conteúdo que hoje não têm estrutura, mas que têm algo relevante para falar e fazer. É difícil se sustentar criando conteúdo. Se a gente consegue fazer isso hoje, é porque teve ajuda e e."

Da esq. p a dir.: Caio Cal, Beta Boechat e Alexandra Gurgel - Divulgação - Divulgação
Da esq. p/ a dir.: Caio Cal, Beta Boechat e Alexandra Gurgel
Imagem: Divulgação

No evento de inauguração da casa, outras influencers, como Dani Rudz, Lelê Martins e Magô Tonhon trocaram experiências e vivências com os participantes. "Se a gente fizer com que essas 35 pessoas sintam o que nós sentimos na nossa rede de apoio, já ganhamos. Esse movimento de acolhimento vai se espalhar. Não é sobre número de seguidores, mas, sim, sobre a qualidade do afeto, da emoção", diz Alexandra, que planeja levar o evento para fora do eixo Rio de Janeiro - São Paulo.

O ambiente familiar e acolhedor que o evento criou fez com que os participantes e convidados se emocionassem. "Ver essa comunidade nascendo, essa troca com as pessoas, é tudo muito emocionante. Eu chorei várias vezes hoje. As pessoas que acompanham a gente na internet, que se inscreveram e vieram aqui hoje também são muito importantes para o nosso crescimento e aprendizado. Ver essa casa maravilhosa cheia é uma realização", comenta Caio Cal.

O trio conta que já tem muitas outras ideias em andamento. O Movimento Corpo Livre trabalha em uma série documental, que começou a ser roteirizada e vai viajar o Brasil inteiro pesquisando sobre padrão de beleza, e trabalha a estreia do videocast "Corpo Livre Pod".

"Queremos também fazer um videocast focado em exercícios físicos, porque estamos muito concentrados em ressignificar o exercício como questão de saúde e qualidade de vida para todos", diz o influencer.