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

Banoffee: aprenda a preparar a torta-desejo em 13 diferentes versões

Banoffee virou o docinho queridinho da temporada. Conheça versões - Lucas Sabbino
Banoffee virou o docinho queridinho da temporada. Conheça versões
Imagem: Lucas Sabbino

Claudia Dias

Colaboração para Nossa

05/11/2020 04h00

Doce de leite, banana e chantilly sobre uma base feita com bolacha. Com essa combinação de sabores e texturas, a banoffee caiu no gosto da turma quarentenada e alcançou o posto de sobremesa-queridinha.

Novidade, não é: trata-se de um doce criado há quase meio século e, como todo bom clássico gastronômico, ganhou releituras variadas, seja na substituição de ingredientes ou mesmo nos formatos e preparos inusitados.

Nascida em Sussex - o condado inglês que deu nome aos títulos de duque e duquesa de Harry e Meghan Markle -, a criação da banoffe é da década e 70 e atribuída ao chef Ian Dowding, do restaurante The Hungry Monk, que fechou em 2015, após a morte do fundador Nigel Mackenzie.

Banoffee clássica - Lucas Sabino - Lucas Sabino
Banoffee clássica tem seus segredos para sair perfeita
Imagem: Lucas Sabino

"Ian inspirou-se em uma sobremesa americana chamada Blum's Coffee Toffee Pie e, com sua adaptação, surgiu a Banoffi, mais conhecida hoje pela grafia Banoffee", pontua Patrícia Bertolucci, professora do curso de Gastronomia da Universidade Anhembi Morumbi.

Para Patrícia, por se tratar de uma torta relativamente simples, com poucos elementos, o segredo da banoffee perfeita está na qualidade dos ingredientes.

Precisa ser composta por excelente matéria-prima, a fim de se destacar", opina.

Prefira bananas nanica e prata

Torta Banoffee requer ingredientes de alta qualidade - Getty Images/iStockphoto - Getty Images/iStockphoto
Torta Banoffee requer ingredientes de alta qualidade
Imagem: Getty Images/iStockphoto

Adotar os melhores ingredientes inclui fazer escolhas acertadas. Entre as bananas, por exemplo, as mais indicadas são: nanica e prata. "Para quem prefere doces mais intensos, pode-se usar a nanica, que é mais doce. A banana prata é menos adocicada, portanto, traz mais equilíbrio quando combinada aos outros ingredientes, que já são bastante doces", orienta Patrícia.

Entretanto, qualquer que seja o tipo escolhido, é melhor que a fruta esteja madura, mas não ando do ponto - como as indicadas para uma bananada, por exemplo. Caso contrário, pode desmanchar na hora de ser fatiada.

Aliás, eis uma dica: adote algumas gotas de limão na banana, ao fatiar a banana. "Isso evita que ela escureça, aumenta a durabilidade da torta e traz uma nota ácida interessante que complementa bem os outros sabores", sugere Patrícia.

Base pode ser assada ou gelada

Já a base da banoffee pode ser feita de duas maneiras distintas: com biscoitos triturados e misturados a manteiga derretida e, posteriormente, prensados na forma ou com massa de torta tradicional.

No caso dos biscoitos, não precisa ser assada; basta gelar. Já quando a opção é a massa de torta tradicional, é necessário que seja assada por completo e resfriada antes da montagem da torta. "Um segredo que deixa qualquer das opções mais interessante é adicionar uma bela pitada de sal na massa", recomenda a especialista.

Torta Banoffee pode ser provada em várias versões - Getty Images/iStockphoto - Getty Images/iStockphoto
Torta Banoffee pode ser provada em várias versões
Imagem: Getty Images/iStockphoto

Para completar o combo, o doce de leite utilizado deve ter textura firme, impedindo que a banana afunde na montagem e que a fatia se mantenha inteira quando cortada, ao invés de escorrer.

Dentre os cremes que finalizam a sobremesa, a tradição recomenda o creme de leite fresco, batido sem açúcar - isso equilibra o dulçor que os outros ingredientes trazem, de acordo com Patrícia.

Algumas receitas, porém, sugerem alternativas como misturar um pouco de café solúvel ou um pouco de chocolate ao creme, trazendo novos sabores.

Deleite na cozinha

A seguir, reunimos 13 receitas de banoffee, da versão mais clássica às releituras, com ingredientes e formatos variados.