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

Bolo simples leva apenas seis ingredientes e é perfeito para o cafezinho

Preparo leva seis ingredientes: açúcar, manteiga, farinha, fermento, ovos e leite de coco - Só Vim Pela Sobremesa
Preparo leva seis ingredientes: açúcar, manteiga, farinha, fermento, ovos e leite de coco Imagem: Só Vim Pela Sobremesa

Gabrielli Menezes

De Nossa

18/11/2020 04h00

Lílian Brasileiro

Lílian Brasileiro

QUEM É

Formada em comunicação, a baiana se considera 'foodie' desde que se reconhece como gente. Na página Só Vim Pela Sobremesa, dá dicas de onde encontrar bons doces e testa receitinhas com um toque pessoal.

"É bolo do quê?", costumava perguntar Lílian Brasileiro, ainda pequena, ao ver sua mãe batendo uma massa. A criança, que já demonstrava interesse pelo fogão, recebia sempre a mesma resposta: "É bolo de bolo".

A expressão pode parecer redundante, mas quer dizer que se trata de um doce básico, sem sabores extras, como chocolate e frutas.

Composta por seis ingredientes, a receita começa com uma base de manteiga e açúcar, conhecida no mundo profissional como crémage.

Na sequência, são introduzidos à tigela os itens líquidos e, depois, os secos. O pulo do gato está no primeiro grupo: a tradição familiar manda usar leite de coco em vez de leite de vaca.

Acho que nasci comendo esse bolo. Ele me remete à origem da minha família, das tardes na Chapada Diamantina, no interior da Bahia".

Bolo de bolo

Dificuldade Fácil
1 porções
70 min
Ver receita completa

Para ir além

Quem quiser incrementar o o a o com outros preparos também pode. Pelo gosto neutro, sem tantas nuances, a sobremesa é capaz de combinar com caldas e coberturas variadas.

Bolo de bolo - Só Vim Pela Sobremesa - Só Vim Pela Sobremesa
Receita neutra pode ser incrementada de acordo com o gosto
Imagem: Só Vim Pela Sobremesa

"A base serve para fazer bolo formigueiro, com chocolate, e de laranja, trocando o leite pelo suco, mas adicionando o líquido só ao fim do processo para não talhar com os ovos".

Para Lílian, o bolo de bolo é bem-vindo em qualquer ocasião, no café da manhã, da tarde e até mesmo após o jantar. Há um acompanhamento, porém, que a foodie não abre mão: café e, de preferência, forte.

O doce é para qualquer hora que a gente queira se sentir confortável".

Encontro da Bahia e do Chile

Soteropolitana de pais nascidos e crescidos na Chapada Diamantina, Lílian não esconde o forte apego pelos sabores nordestinos e regionais.

Ela se formou em Comunicação Social e coloca sua paixão pela cozinha para jogo no Instagram e blog Só Vim Pela Sobremesa.

A página foi criada por incentivo da mãe e de uma amiga que tinha um site para indicar restaurantes em Salvador.

Café: não pode faltar como acompanhamento para a sobremesa - Reprodução Instagram - Reprodução Instagram
Café: não pode faltar como acompanhamento para a sobremesa
Imagem: Reprodução Instagram

"Sempre tirava foto com o celular para guardar como recordação o que gostei no lugar. Por isso, quando alguém me perguntava o que provar, eu sabia o que e onde indicar. Resolvi reunir esse material".

Entre as dicas de sobremesas surgem testes de receitinhas que geralmente ganham um toque autoral antes de chegarem aos seus seguidores.

Há três anos, Lílian se mudou para o Chile para acompanhar o marido que foi transferido pela empresa. Mesmo longe ela presta consultoria de marketing e ajuda empreendedores a montarem seus negócios no Brasil.