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

Transforma

Mulheres protagonizam um mundo em evolução


Ativista usa sangue da menstruação para máscara facial e autoconhecimento

Reprodução/Instagram
Imagem: Reprodução/Instagram

Da Universa

13/03/2019 19h21

Demetra Nyx está usando suas redes sociais para falar sobre um assunto que ainda é visto como tabu para muita gente -- inclusive mulheres: a menstruação.

No Instagram, a ativista, de 26 anos, que também usa sua voz para aconselhar aos homens sobre o sexo, está compartilhando diversas fotos em que expõe seu sangue menstrual e o associa a alguns benefícios.

"Acho que é hora de começarmos a nos amar plenamente e a nos tornarmos mais autoconscientes. Eu compartilho essas imagens para as mulheres que se sentem muito 'nojentas' até para tocar em seu próprio sangue durante a menstruação, que é algo primitivo e precioso", afirma ela em uma de suas publicações.

Mas o que chamou a atenção dos internautas recentemente foi o uso do sangue como máscara facial, o que, segundo ela, traria benefícios para a pele.

"Eu farei isso até que garotinhas parem de ser ensinadas que as funções naturais de seus corpos são nojentas e sujas. Eu farei isso até que as mulheres parem de sentir que não podem fazer sexo quando estão menstruadas porque é nojento. Eu farei isso até que paremos de ficar envergonhados de que às vezes sangramos através de nossas roupas. Ou através dos seus lençóis. A ideia não é fazer com que todos coloquem sangue em seu rosto (embora - uau - isso faz sua pele brilhar!). Pelo contrário. Se eu fizer algo muito chocante e colocar em público, talvez alguém em algum lugar vai se sentir como: 'bem, se ela pode fazer isso, talvez eu não tenha que odiar meu período depois de tudo. Talvez meu corpo não seja tão grosso depois de tudo'", escreveu ela em um dos seus posts.

Sobre as críticas que recebe, Demetra afirma não importar que seja julgada pelos outros, mas preocupar-se com a forma com que o mundo lida com isso.

"Eu não me importo de ser julgada. Eu me preocupo -- com a forma como o mundo é -- com o que faz com que eu seja julgada. Isso não é divertido (...) Adoro os meus rituais que podem libertar outras mulheres. Adoro me sentir livre ao poder compartilhá-lo e não me importar com as reações", opinou.

Menstruação - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram

Para ela, a maior frustração é ler crítica de outras mulheres sobre a sua atitude por ser algo que ela julga fazer para que elas possam se sentir, de fato, livres.

"Tudo que ouço são mulheres que rejeitam seus próprios corpos de alguma forma. Eu cresci sendo simultaneamente fascinada e envergonhada pelo fato de menstruar. Eu escondia absorventes ao ir no banheiro da escola, me orgulhava de esconder minha menstruação."