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

"Cocão" é sobremesa com jeitinho de avó que lembra o chocolate famoso

Cocão: creme de coco e de chocolate lembram chocolate famoso - Liliane Leopoldino
Cocão: creme de coco e de chocolate lembram chocolate famoso Imagem: Liliane Leopoldino

Gabrielli Menezes

De Nossa

07/04/2021 04h00

Liliane Leopoldino

Liliane Leopoldino

QUEM É

Natural de Uberlândia, ela leva jeito para os doces desde menina. Com 13 anos, vendia trufa na escola e, aos 19, começou a dar aulas. Hoje, os dotes da craque que mora na Alemanha são conferidos no Instagram e em workshops online.

Uma sobremesa simples que combina creme de coco e chocolate numa travessa. É esse o chamado cocão, o doce perfeito para almoços em família.

A confeiteira Liliane Leopoldino, que cedeu a receita de sua avó materna, Elisa Guimarães, a Nossa, explica que o doce fica mais gostoso geladinho. Então, esqueça a guloseima de um dia para o outro no refrigerador antes de garantir a sua colherada.

Comi o cocão a vida toda. Minha avó fazia no Natal, no Ano Novo e todas as outras vezes que a família se reunia para almoçar. Não tem segredo. É muito simples".

Confira o o a o completo clicando na imagem abaixo:

Cocão

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

Adaptações são bem-vindas

Quando preparava o doce para os filhos e netos, Elisa polvilhava granulado no momento de servir. Liliane explica que há outras opções de confeito que podem se adequar melhor ao gosto do cozinheiro ou dos convidados.

Cocão - Liliane Leopoldino - Liliane Leopoldino
Cocão em porções individuais
Imagem: Liliane Leopoldino

Coco ralado e chocolate em pó são exemplos que cumprem bem a função. Além disso, quem quiser evitar o excesso açúcar pode dar preferência para usar cacau (duas colheres de sopa) ou chocolate em pó (quatro colheres de sopa) em vez de achocolatado na segunda camada.

Quer saber como dar um toque pomposo na apresentação? Troque a travessa por seis copinhos ou taças e monte a sobremesa em porções individuais.

A busca pelo creme perfeito

Cocão - Liliane Leopoldino - Liliane Leopoldino
Creme leva gemas e esbanja cremosidade
Imagem: Liliane Leopoldino

Elisa faleceu em 2014. Desde então, uma das formas de matar a saudade da avó é preparar o cocão. Durante um tempo, porém, Liliane não conseguia achar a receita original.

"Ninguém se lembrava das proporções. Tentávamos fazer mesmo assim justamente por ser simples, mas não ficava igual".

Numa conversa com uma prima, a irmã da confeiteira encontrou um antigo caderno de receitas da avó e desvendou o mistério: a presença das gemas.

"Eu fazia sem e a cremosidade não era a mesma". Ainda bem que Elisa anotou tudo tim-tim por tim-tim e agora os leitores de Nossa podem provar a sobremesa afetiva que, pela combinação de coco e chocolate, lembra o docinho Prestígio.

Formiguinha de infância

Cocão - Liliane Leopoldino - Liliane Leopoldino
Granulado polvilhado finaliza a sobremesa geladinha
Imagem: Liliane Leopoldino

A habilidade de Liliane para a cozinha não demorou a aparecer. Com 13 anos, começou a vender escondido trufas, bombons e pirulitos caseiros na escola que frequentava em Uberlândia, sua cidade natal.

Tive muito problema com isso. Às vezes parava na diretoria por comercializar os doces".

Conforme foi ficando mais velha, os clientes foram de colegas a empresas. Naturalmente, a confeitaria se tornou uma atividade séria e paralela aos estudos.

Aos 18, tinha conhecimento o suficiente para compartilhar com outras mulheres da cidade em aulas especiais promovidas por uma marca de chocolate local.

"Comecei a dar aula porque estava na faculdade e queria ganhar um trocado. As mulheres eram bem mais velhas do que eu. No começo, sempre duvidavam de mim. Mas ao final das aulas concluíam que estava tudo certo".

Liliane se formou em Letras e em istração. Construiu uma carreira longe da cozinha e, sempre que possível, preparava encomendas para festas ou datas especiais, como Páscoa.

Em 2015, ela se mudou para a Alemanha para acompanhar o marido. Aproveitou a ocasião para dar "um pulinho" na Suíça e fazer um curso de chocolateria.

No país europeu, ela voltou seus esforços para a produção e venda de cursos online, assim como a divulgação de receitinhas no seu perfil no Instagram, Do Fuê ao Fuá.