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

Rabanada recheada de doce de leite é simples de fazer e difícil de resistir

De Nossa

13/03/2022 04h00

Por que fazer rabanada só no Natal e ficar o ano todo com vontade? Pedro de Bem, apresentador do Cozinha por aí, teve uma ideia e tanto para o episódio em que ele ensinou a fazer pizza da churrasqueira: aproveitar a brasa para tostar uma rabanada recheada de doce de leite.

Quem não tem churrasqueira em casa pode dourar o pão na frigideira sem problemas. O primeiro o é misturar os ingredientes onde as fatias irão se banhar.

Junte ovos, gemas, leite, creme de leite fresco e tempere com açúcar mascavo, canela e sal. Quem gostar de noz-mocada vale a pena apostar na especiaria ralada na hora.

Na sequência, o doce de leite entra num saco de confeitar para rechear os pães através de um corte feito com delicadeza (assista ao vídeo no topo da matéria).

O resto do preparo você já sabe: mergulhar cada fatia na mistura de leite e dourar onde preferir. Para acompanhar a rabanada, Pedro sugere selar pêssegos em calda.

Rabanada | Cozinha Por Aí - UOL/Nossa - UOL/Nossa
Fatias de dois centímetros para conseguir rechear
Imagem: UOL/Nossa

Apelidos para o pão de ontem

Tem pão sobrando em casa? Então aproveite-os para as rabanadas. Na França, o costume é tão comum que está até no nome do prato: pain perdu (pão perdido).

Rabanada | Cozinha Por Aí - Nossa/UOL - Nossa/UOL
Pedro sugere pêssegos de acompanhamento
Imagem: Nossa/UOL

Nos Estados Unidos, a mesma receita pode ser encontrada como french toast. Em Portugal, são as fatias de ovos. A explicação é que, para ganhar vida nova, a ideia é lambuzar as fatias numa mistura feita de ovos.

A pedida tem ainda outros dois apelidos lusitanos: fatias douradas, porque quando são mergulhadas em óleo quente ficam crocantes e com cor de ouro, e fatias paridas, cuja explicação faz referência a uma mãe que pariu e, para alimentar o filho, coletava doações dos vizinhos. Com pão velho, leite, açúcar e ovos se fazia o delicioso doce.

Mais receitas

Se não é tão fã de doce de leite, aqui vai uma outra rabanada de dar água na boca. Com 30 minutos no total, o processo consiste em aproveitar o pão amanhecido para montar espécies de sanduíches com Nutella e leite Ninho e levá-los para fritar em óleo quente ou dourar no forno.

Rabanada com chocolate

Dificuldade Fácil
20 porções
30 min
Ver receita completa

Também aprenda a fazer a sobremesa ao estilo português, combinada a doce de ovos. O creme típico faz parte da pastelaria (como chamam a confeitaria por lá) conventual, historicamente ligada aos conventos.

Rabanada com doce de ovos

Dificuldade Fácil
10 porções
60 min
Ver receita completa

Cozinha por aí

Pedro de Bem na parilla em Pinto Bandeira (RS) - Cozinha por aí/UOL - Cozinha por aí/UOL
Pedro de Bem na parilla em Pinto Bandeira (RS)
Imagem: Cozinha por aí/UOL

Verão é sinônimo de viagem, praia, cachoeiras e natureza. E também pede receitas práticas e saborosas para dividir com a família e amigos. A série Cozinha por aí reúne todos esses atributos. Assista toda semana um novo episódio aqui no Canal UOL e no YouTube de Nossa (e se inscreva já no canal para receber os lembretes dos novos vídeos).