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

Maquiadora de "Euphoria" conta quais são seus looks favoritos na série

"Meu Deus, estou muito eufórica" virou brincadeira na internet por causa dos visuais marcantes da série da HBO - Reprodução/Instagram
"Meu Deus, estou muito eufórica" virou brincadeira na internet por causa dos visuais marcantes da série da HBO Imagem: Reprodução/Instagram

Natália Eiras

De Universa

20/08/2019 04h00

"Meu Deus, estou muito eufórica!" Você já deve ter visto essa frase na legenda de algum look conceitual e cheio de glitter em seu Instagram. A expressão é uma brincadeira com o estilo das maquiagens de "Euphoria", série da HBO estrelada por Zendaya que conquistou muita gente. A produção mostra os dilemas de um grupo de adolescentes de uma cidade do interior dos EUA, incluindo as amigas Rue (Zendaya), uma garota de 16 anos viciada em drogas, e Jules (Hunter Schafer), uma menina transgênero estilosa e sexualmente livre.

Fora a trilha sonora, que inclui de hip-hop a indie pop, e os figurinos, o seriado conquistou famosos como Bruna Marquezine e Sabrina Sato por causa das maquiagens, assinadas por Doniella Davy. A makeup artist é conhecida por trabalhar em filmes com atmosfera etérea, que beira a fantasia, como o ganhador do Oscar "Moonlight". A bagagem anterior foi usada também para criar os looks das personagens de "Euphoria". "As maquiagens foram pensadas para serem um tanto fantásticas, para inspirar pessoas a usar o visual como uma maneira de se expressar no cotidiano", fala Doniella para Universa, em entrevista por e-mail. "Queria criar uma versão eufórica da realidade através da maquiagem e Sam [Levinson, diretor da série] me encorajou a usar texturas e cores que não só se sobressairiam na câmera, mas que seriam marcantes o bastante para inspirar as pessoas a recriarem suas próprias versões dos looks." Doniella, por meio da maquiagem, deixou sua marca na série. "Queria contar um pouco da jornada de cada uma das personagens pelo visual."

Publicações especializadas em design e maquiagem como i-D e Vogue apontaram as maquiagens de "Euphoria" como uma boa representação do que é ser da Geração Z, jovens que nasceram em meados da década de 1990, até 2010. O visual não-binário e mais conceitual foge do que esperamos ver em uma série de TV. "Uma vez que isso já está acontecendo no mundo, minha missão foi absorver essa ideia e criar a minha versão disso em maquiagem."

Assim, para entender como os adolescentes "brincam" com o look, Doniella procurou inspiração onde eles estão: no Instagram. "Esses jovens estão redefinindo o que maquiagem pode fazer e como ela deve ser usada. Eles são irônicos, rebeldes, brincalhões, divertidos, destemidos, surrealistas. Para esses adolescentes, maquiagem tem que ser emocionante", afirma. Além das redes sociais, a maquiadora também se inspirou em alguns looks históricos, como o delineador da modelo Twiggy, que bombou nos anos 1960, as sobrancelhas cheias de strass de Nina Simone e em visuais do glam rock da década de 1970.

Universa perguntou a Doniella Davy quais looks da série ela mais gostou de fazer e de ver. Veja:

Jules "desconstruidona"

A "nova garota da cidade" veio de uma grande metrópole e transmite essa mensagem em suas roupas e maquiagens modernas e gráficas, com cores impactantes, inclusive na hora de ir à escola. "Em geral, me diverti muito fazendo todos os looks de Jules, por causa do grau de experimentação e a sensação de liberdade que ela a por seu visual", comenta Doniella.

Maddy e os olhos de gatinho

A personagem interpretada por Alexa Demie tem um visual latino e sensual, digna de Jennifer Lopez. Assim, ela usa versões atualizadas dos olhos de gatinho, às vezes incluindo pedrinhas e cílios postiços poderosos. "Fiquei apaixonada pela maneira como minha assistente, Kirsten Coleman, adicionava seu toque pessoal aos visuais da Maddy, levando-os um pouco além do que eu esperava."

Cassie patinadora

O papel de Sydney Sweeney era o de uma garota aparentemente perfeita, mas que tinha suas próprias questões. "O visual que criamos para a cena em que ela patina no gelo foi muito bacana de ver em ação", afirma Doniella. A maquiadora falou, em seu Instagram, que não tinha ideia do que fazer até poucos minutos antes das gravações. "Queria algo especial, então fui experimentando até conseguir acertar o visual certo."

Kat no Halloween

Barbie Ferreira interpreta uma adolescente gorda que descobre o quão bonita pode ser, caso se permita. Para uma festa de Halloween, Kat, sua personagem, usa um look provocador de freira. "Adorei as cruzes invertidas que colocamos nos olhos dela", diz a makeup artist.