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

Cartaz da Copa do Qatar foi criado por uma mulher: 'Estou muito orgulhosa'

Bouthayna Al Muftah é a artista responsável pelo pôster da Copa do Qatar  - Jan Klos/Reprodução FIFA
Bouthayna Al Muftah é a artista responsável pelo pôster da Copa do Qatar Imagem: Jan Klos/Reprodução FIFA

De Universa, em São Paulo

23/11/2022 10h52

Em um país tão conservador e com conceitos machistas como o Qatar fica difícil imaginar que uma mulher poderia ocupar um espaço de protagonismo durante a Copa do Mundo, mas a artista Bouthayna Al Muftah quebrou essa barreira. Ela assina o pôster oficial da competição.

Em preto e branco, o cartaz representa a maneira como o povo qatari comemora conquistas no esporte, com uma mão levantando o ghoutra em direção a uma bola de futebol. Apenas a bola tem gomos em tom de vinho, para relembrar as cores da bandeira do Qatar. Além dessa, a artista produziu mais seis imagens que estão no aeroporto internacional de Hamad.

"Minha principal inspiração foi o conceito de memória coletiva. Boa parte do meu trabalho se concentra em experiências adas, memórias, fazendo ligações com o presente e arquivando-as de maneira contemporânea. Eu queria que os pôsteres seguissem esse tema e contassem a história da cultura futebolística do Qatar", disse ela em entrevista ao site oficial da Fifa sobre a Copa do Mundo.

Segundo a artista, seu principal objetivo era mostrar a celebração dos apaixonados por futebol no país, já que os torcedores costumam comemorar os gols acenando a ghoutra para o ar.

O trabalho de Bouthayana se tornou destaque na Copa após autoridades locais procurarem artistas nativos com oportunidade para aparecerem de alguma forma no evento. "Fiquei muito empolgada para participar e deixar minha marca na primeira Copa do Mundo da nossa região. Na verdade, descobri o projeto durante a pandemia —então usei o tempo livre que tinha para planejar e criar um conceito único. Estou muito orgulhosa de ter desempenhado um pequeno papel no torneio", contou, na mesma entrevista da Fifa.

Ter sido escolhida, para ela, foi algo que trouxe uma sensação indescritível. "Sinto que represento cada catariano e cada árabe. Estou muito orgulhosa de deixar minha marca na história do meu país. Ser capaz de trabalhar em um projeto de Copa do Mundo ainda parece surreal", disse.

Quem é Bouthayna

Nascida no Qatar, ela tem 35 anos e é formada em arte pela Universidade Virginia Commonwealth do Qatar. Ela é especializada em gravura, tipografia e desenho e tem suas obras expostas no Mathaf, Museu Árabe de Arte Moderna, em seu país. Em 2017, ela exibiu suas obras em Berlim.

"Desde criança, sempre me interessei por arte. Começou como um hobby e se tornou minha paixão. Após o colegial, me matriculei na Universidade Virginia Commonwealth, que havia sido recentemente criada na Fundação Qatar. Não poderia perder a oportunidade de receber uma educação artística de nível internacional em meu país e me especializar em design gráfico", afirmou.