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

Mechas horizontais nos cabelos são tendência: Anitta e Sabrina já aderiram

Anitta no Rock in Rio Lisboa - Reprodução Instagram @rockinriolisboa
Anitta no Rock in Rio Lisboa Imagem: Reprodução Instagram @rockinriolisboa

Baárbara Martinez

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

01/07/2022 04h00

Os cabelos vem sendo usado como forma de expressão e estilo. Complementando o visual, os fios estão cada vez mais variados em formatos, cores e cortes diferentes. Conhecido lá fora como raccoon tail (rabo de guaxinim em tradução livre), a nova moda capilar envolve mechas horizontais de alto contraste que remetem aos apliques infantis, sucesso nos anos 2000. Além disso, o visual que também lembra o estilo punk e emo, muito usado pela cantora Avril Lavigne. Além da cantora, impossível não relembrar também da Roberta, do Rebelde, interpretada por Dulce Maria.

Nas arelas do outono-inverno 2022 de Londres, a grife 16ARLINGTON exibiu o visual "grunge moderno". O efeito em questão foi criado pelo cabeleireiro Sam McKnight. Ainda na capital inglesa, a Burberry estampou seu tradicional xadrez em campanha de sua coleção de beleza. Já em Milão, o efeito de mechas horizontais marcou o desfile de estreia da marca Cormio.

Saindo das arelas, artistas como Rihanna, Sabrina Sato e Anitta apostaram no estilo. No fim de semana ado, a cantora subiu ao palco do Rock In Rio Lisboa usando as mechas em tons lilás combinando com uma maquiagem gráfica.

De acordo com o hair stylist Natan Correia, embaixador da Schwarzkopf, o visual remete ao pixel hair, que exalta o contraste nos fios. "Para fazer o efeito, algumas pessoas usam o stencil, que é uma forma com o desenho em questão, onde ela é preenchida com tinta de coloração ou aquelas impermanentes em spray", comenta ele, destacando que o resultado requer um preparo especial, já que a coloração independe do produto escolhido.

Para um melhor resultado, é importante que o cabelo seja claro para a pigmentação da tinta ser maior. Já os cuidados devem ser feitos de igual ao se fossem uma coloração qualquer. "É importante hidratar apenas para não haver nenhum tipo de ressecamento", ressalta Natan.

Para experimentar:

Kit Shampoo e Condicionador Chroma Absolu Bain Respect Fondant Cica, Kérastase  - Reprodução - Reprodução
Kit Shampoo e Condicionador Chroma Absolu Bain Respect Fondant Cica, Kérastase
Imagem: Reprodução

Kit Shampoo e Condicionador Chroma Absolu Bain Respect Fondant Cica, Kérastase, R$ 454,80

Ideal para cabelos coloridos, sensibilizados ou danificados, é indicado para fios finos a médios, o Kérastase Chroma Absolu Bain Respect Fondant Cica nutre e fortalece os fios, é antiporosidade e preserva a fibra capilar do desbotamento da cor.

ID Bonding Mask Intensa Red Máscara Tonalizante, Schwarzkopf Professional Chroma - Divulgação - Divulgação
ID Bonding Mask Intensa Red Máscara Tonalizante, Schwarzkopf Professional Chroma
Imagem: Divulgação

ID Bonding Mask Intensa Red Máscara Tonalizante, Schwarzkopf Professional Chroma, R$ 252,90
Essa linha possui 6 opções de cores intensas e arrojadas para ninguém botar defeito. No entanto, o produto requer um cuidado especial já que é uma máscara tonalizante semipermanente. Há quem prefira realizar o procedimento em salão, outros, com mais habilidade, podem aplicar em casa.

Invigo Nutri-Enrich Máscara de Nutrição, Wella Professionals - Divulgação - Divulgação
Invigo Nutri-Enrich Máscara de Nutrição, Wella Professionals
Imagem: Divulgação

Invigo Nutri-Enrich Máscara de Nutrição - Wella Professionals, R$ 52,90

Máscara de tratamento para cabelos secos —ressecados ou quimicamente tratados. O produto hidrata e nutre profundamente para restaurar a saúde dos fios e ainda garantir um toque sedoso e único.

Spray Maquiagem Temporária Para Cabelos Azul, Neez  - Divulgação - Divulgação
Spray Maquiagem Temporária Para Cabelos Azul, Neez
Imagem: Divulgação

Spray Maquiagem Temporária Para Cabelos Azul, Neez, R$ 20,99

Ideal para quem procura um efeito mais temporário, o spray proporciona maior praticidade para você deixar seus cabelos nas cores e desenhos desejados.

Shampoo Tonalizante Professional Bold Color Wash Roxo, Schwarzkopf  - Divulgação - Divulgação
Shampoo Tonalizante Professional Bold Color Wash Roxo, Schwarzkopf
Imagem: Divulgação

Shampoo Tonalizante Professional Bold Color Wash Roxo, Schwarzkopf, R$ 154
O produto temporário pigmenta intensamente e dura até 25 lavagens. Fácil de aplicar, a sua fórmula conta com pigmentos em altíssima concentração e, por isso, consegue criar resultados visíveis e intensos em cabelos com base castanho claro até pré-iluminados.

Leave-In - MEU Q - Divulgação - Divulgação
Leave-In, MEU Q
Imagem: Divulgação

Leave-In, MEU Q, R$ 59,90
O produto, usado para ajudar a texturizar os cabelos, dando brilho e maciez aos fios com benefícios extras de tratamento, é feito de forma customizável no site da marca. Garantindo assim exatamente o que seus cabelos precisam.