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

Ana Paula Xongani

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Até sobre Angela Davis: as histórias em quadrinhos têm muito o que ensinar

Cena da HQ "Miss Davis"  - Divulgação
Cena da HQ "Miss Davis" Imagem: Divulgação

Colunista de Universa

28/05/2021 04h00

Às vezes, quando a gente chega na vida adulta, maturidade e tal, tem a impressão que já se apaixonou por quase todas as coisas apaixonáveis. Mas vou contar para vocês hoje que eu tenho uma paixão bem recente: as histórias em quadrinhos. Isso mesmo, HQs, os comic books! Deixa eu te contar um pouco dessa relação para, caso você também não goste ou nunca nem tenha pensado em dar uma chance para essa coisa que muita gente gosta de colocar na caixinha "nerd", quem sabe também não se surpreenda.

Eu gosto muito das HQs, porque é uma leitura dinâmica e que tem o apoio de imagens, o que deixa tudo ainda mais lúdico. Como a história é dividida em "quadros", o avanço na história é aparentemente mais rápido. Adoro ter a ideia de que o que eu estou lendo está ando, sabe? Que estou caminhando em uma velocidade legal? Pois sim… Acho muito bonito o fato de que a história é contada a partir de palavras e também com o desenho. Um é complementar ao outro.

Confesso que, em um primeiro momento, fui afastada das HQs. Basicamente, porque não encontrava histórias com as quais eu me identificasse nos personagens. Não conhecia personagens negros nas histórias em quadrinhos. E, mesmo no mundo dos super-heróis, era tudo muito distante de mim, além de que não tive a oportunidade de conhecê-los até ser impactada por Pantera Negra, obviamente.

Hoje, tenho uma pequena coleção e vou indicar quatro das minhas preferidas para vocês. São livros com histórias interessantes e diversas, porque a gente gosta de diversidade por aqui. Vamos lá?

HABIBI

Este romance gráfico do Craig Thompson é demais. É todo preto e branco, com ilustrações belíssimas e ambientada em um país fictício que, de certa forma, presta uma homenagem à riqueza da cultura árabe — sem esquecer de críticas importantes também. Tem arte, tem religião, tem política, tem economia e tem uma história de transição de gênero espetacular. Genial e imperdível.

AYA

Esta HQ é para você ressignificar tudo o que sempre ouviu sobre África. O enredo feminsita se a na Costa do Marfim e pensa o lugar da mulher neste território. Tem cores e texturas muito bonitas na ilustração! É bem legal acompanhar as escolhas da autora, Marguerite Abouet, para representar as pessoas e o país. Eu amei (e ainda parece o nome da minha filha, Ayo!).

CAROLINA

A minha terceira indicação é uma HQ brasileira, que resgata a memória de uma das mulheres mais importantes da nossa literatura, a escritora Maria Carolina de Jesus. Gostei, porque é uma nova forma de conhecer e se reconhecer na história dela. Os responsáveis são Sirlene Barbosa e João Pinheiro.

MISS DAVIS

Li em uma tarde! Não deu para parar! Uma HQ sobre Angela Davis, não é, pessoal? Não preciso dizer mais nada! Rememora vários detalhes da vida dela e de outros militantes da época. Desenha o caminho de Angela desde a infância até a saída da prisão. Algo que me chamou a atenção é que tem vários tipos de desenho e eles mudam conforme a história avança: tem colorido, tem p&b, tem traço que parece desenhado à lápis; às vezes divertido, outras, tenso.

Para fechar este texto, vou deixar uma dica final: o autor Marcelo D'Salete, que quero muito conhecer mais o trabalho, pois o que já vi eu amo.

E vocês? Costumam ler HQs ou começaram tarde como eu? Me contem aqui nos comentários?