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

Novidades de beleza

Flawless Skin é o segredo da pele de Rafa Brites, Tici Pinheiro e Pugliesi

Paula Roschel

Colaboração para o UOL

03/10/2017 04h00

A apresentadora Rafa Brites, 29, ou por intensas (e gostosas!) mudanças nos últimos tempos: se tornou mãe de Rocco e mudou do ritmo frenético de São Paulo para ares praianos do Rio de Janeiro. Mesmo na correria que é cuidar de uma criança de 7 meses, ela sempre está com a pele perfeita, graças ao protocolo Flawless Skin. O tratamento promete deixar o rosto hidratado, iluminado e livre de imperfeições.

“Estou mais cuidadosa e não saio de casa sem filtro solar. Quando estava em São Paulo era mais relapsa, pois conseguia ir na Edy Guimarães, minha esteticista, com mais frequência. Na gravidez senti a pele piorar com a acne gravídica, então ei a focar no tratamento para melhorar essa condição e sigo com ele até hoje”, conta a apresentadora.

A profissional que desenvolveu a técnica -- que na tradução livre significa “Pele Perfeita” -- atende outras famosas, como Ticiane Pinheiro e Gabriela Pugliesi. “É um tratamento multidisciplinar e customizado que conta com limpeza, hidratação, infravermelho longo e até luz pulsada para deixar a pele impecável. O que a Rafa me a como é que ela consegue sair do consultório já pronta para uma festa ou gravação, pois sente a hidratação imediata, o tom mais homogêneo e zero sensibilidade, algo recorrente em casos de limpeza de pele ou outras técnicas da estética,” explica Edy.

O que é

O protocolo Flawless Skin é uma limpeza de pele que está associada ao tratamento de fatores como envelhecimento, manchas e flacidez.

Como funciona

Primeiro, é usado vapor d'água para amolecer a pele. Em seguida, é feita a limpeza. Depois, vem o tratamento hidratante ou peeling e massagens. É usado infravermelho longo e até luz pulsada. Além disso, a esteticista ainda faz um mapeamento dos produtos que você já tem em casa, para otimizar o uso. Em todas as etapas, é usada água termal, que acalma a pele.

Resultados esperados

Pele homogênea, hidratada, iluminada, livre de acne e outras imperfeições já na primeira sessão.

Frequência do tratamento

Indicado mensalmente, pelo menos no começo. Depois, os atendimentos podem ser espaçados, de acordo com cada caso.

Duração da sessão

Cada sessão dura três horas.

Quanto custa

R$ 620 por sessão.

Novidades de beleza