;(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; // 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(); })();

Topo

Isa Scherer estreia programa com eios por SP e receitas; assista

De Nossa

09/06/2022 11h00

Após traçar carreira como atriz, Isa Scherer se descobriu na cozinha e viu a sua vida mudar ao vencer o reality MasterChef Brasil, no ano ado. Na esteira dessa nova fase, estreia como apresentadora no 'À moda da Isa', coprodução de Nossa e MOV, a produtora audiovisual do UOL.

"É o momento mais feliz da minha vida", diz a cozinheira, que gravou o programa logo depois de descobrir a gravidez de gêmeos.

À moda da Isa: centro + pastel - Mariana Pekin/UOL - Mariana Pekin/UOL
Programa de estreia tem dois tipos de pastel
Imagem: Mariana Pekin/UOL

Como entrega o nome, a série de oito episódios foi pensada do jeitinho de Isa. A cada programa, ela visita um canto diferente de São Paulo, cidade que adotou como sua a partir dos 10 anos de idade, e se inspira para criar pratos lindos e fáceis de reproduzir.

"Gosto da diversidade de São Paulo. Dá para encontrar qualquer coisa pela qual sinta curiosidade. A cultura é muito forte".

À moda da Isa: centro + pastel - Mariana Pekin/UOL - Mariana Pekin/UOL
Isa na Casa de Francisca
Imagem: Mariana Pekin/UOL
À moda da Isa: centro + pastel - Mariana Pekin/UOL - Mariana Pekin/UOL
Lugar recebe shows no almoço e jantar
Imagem: Mariana Pekin/UOL

Um dos lugares que mais gostou de conhecer foi a Casa de Francisca, no Centro. Instalado no patrimônio histórico Palacete Tereza, que abrigou a primeira loja de instrumentos musicais da metrópole e foi sede da rádio Record nas décadas de 1940 e 1950, o estabelecimento serve comidinhas brasileiras e promove shows de ritmos variados, como samba.

No episódio, Isa também se deslumbra com a vista de São Paulo do alto no Copan. Construído em 1966, o maior conjunto residencial da América Latina abriga 1160 apartamentos espalhados por 115 metros de altura.

À moda da Isa: centro + pastel - Mariana Pekin/UOL - Mariana Pekin/UOL
eio casado no Centro de SP
Imagem: Mariana Pekin/UOL

No térreo, a atração é a fachada viva, onde a boemia rola solta em botecos, bares premiados, restaurantes, padarias e livrarias.

Vai lá também >>

Casa de Francisca. Rua Quintino Bocaiúva>, 22, Sé
Copan. Avenida Ipiranga, 200, Centro

Receita inspirada no Centro

À moda da Isa: centro + pastel - Mariana Pekin/UOL - Mariana Pekin/UOL
Aprenda massa de pastel do zero
Imagem: Mariana Pekin/UOL

Para celebrar o clima de festa e nostalgia, a campeã do MasterChef ensina receitas de dois pastéis que usam uma mesma massa caseira.

O salgado é recheado de copa-lombo suína moída com temperos orientais e o doce leva doce de leite e ricota no interior.

A galera vai gostar muito. O programa junta universos que eu gosto: eios que fogem do comum e receitas fáceis que impressionam os convidados".

Clique nas imagens abaixo para conferir as receitas completas de cada um dos recheios.

Pastel caseiro de carne suína

Dificuldade Fácil
Ver receita completa

Pastel caseiro doce

Dificuldade Fácil
Ver receita completa

À moda da Isa Scherer

À moda da Isa: centro + pastel - Mariana Pekin/UOL - Mariana Pekin/UOL
Imagem: Mariana Pekin/UOL

Não perca os próximos episódios de 'À moda da Isa'. O programa que reúne rolês atrativos e receitas criativas vai ao ar toda quinta-feira, às 11 horas, no UOL Play.

Perdeu o horário? Não tem problema. Confira a playlist completa sempre que quiser no YouTube de Nossa!