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

BB Cream: um básico indispensável no dia a dia

BB cream e os benefícios para a pele - Getty Images
BB cream e os benefícios para a pele Imagem: Getty Images

Karina Hollo

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

04/05/2022 04h00

O BB Cream nasceu na Coreia e chegou por aqui nos anos 2000. De lá para cá, o produto foi evoluindo e ganhou lugar cativo no coração da brasileira. Pudera: ele é um bálsamo que reúne benefícios de hidratação, uniformização da pele e proteção solar. E ainda disfarça imperfeições, pode controlar a oleosidade ou turbinar o glow, ter função de primer em uma make casual, substituir a base?

"O BB Cream contém pigmentos que uniformizam o tom. O resultado é mais leve e duradouro do que uma base de alta cobertura. Seus ingredientes emolientes penetram na pele, tratando-a e oferecendo benefícios a longo prazo", observa Laís Leonor, dermatologista da clínica Dr. André Braz, do Rio de Janeiro. Isso enquanto o filtro solar a defende de agressões externas e as partículas de cor melhoram a aparência da superfície com uma cobertura uniforme e sequinha. Ele é perfeito para usar no dia a dia, por qualquer tipo de pele e pode ser aplicado com a mão, com pincel, com esponja. Mais prático, impossível! "O BB Cream é um produto multifuncional indicado para quem quer hidratação, proteção e uniformização do tom da pele de maneira leve e natural", resume Fernanda Porphirio, dermatologista da Clínica Vanité, em São Paulo.

Rotina enxuta

O produto é indicado para quem quer uma rotina enxuta e costuma ser ideal para pele mais jovens que precisam de cobertura leve e pouca correção. "O BB Cream pode ser considerado um cuidado mínimo pois une dois itens indispensáveis em nossa rotina: proteção solar, que evita o envelhecimento, a degradação das células e o dano de DNA celular, evitando possíveis cânceres de pele e também promove a hidratação, indispensável para todos os tipos de pele, para manter a qualidade, a saúde e o viço", diz Fernanda.

Proteção e cobertura leves

Ele pode ser, sim, utilizado ou na hora da proteção solar para dentro de casa ou para sair sem exposição solar. "Em sua maioria, tem um fator de proteção entre 20 a 30, que não é suficiente para exposição solar direta, mas é eficaz para ser usado no dia a dia se você não sofre com manchas ou melasma, por exemplo", fala Fernanda. Por ter mais ativos nutritivos na composição, o BB Cream sai mais fácil da pele. Mais um motivo para, quando for caminhar ou fazer atividades externas, dar prioridade ao filtro solar com cor, que traz uma segurança maior contra os raios ultravioleta, além da proteção contra a luz visível emitida por tevês, celulares , ipads.

BB Cream versão 20.22

"A meu ver, o BB Cream versão 20.22 é o protetor solar com cor + antioxidantes na fórmula: ou seja, ele apresenta as mesmas funcionalidades do BB e do CC Cream, mas a diferença é que ele contém agentes com a função de antienvelhecimento, como ação antioxidante", analisa Lais.

Fernanda concorda: "Cada vez mais prezamos por produtos multifuncionais que ajudem tanto no cuidado, quanto na proteção, de uma maneira rápida e eficiente". É comum encontrar na fórmula vitamina C, que é antioxidante, vitamina A e vitamina E também. "Sem falar que os BB Creams são mais direcionados: para peles mais oleosas, para peles mais secas?", enumera Fernanda. É escolher o seu e facilitar a vida.