;(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 de chocolate com creme de leite Ninho é doce-hit de fenômeno das redes

Bolo úmido com recheio cremoso de leite em pó - Igor Rocha
Bolo úmido com recheio cremoso de leite em pó Imagem: Igor Rocha

Gabrielli Menezes

De Nossa

02/06/2021 04h00

Os incomodados com açúcar que se mudem. Nesse bolo cremoso e molhadinho o que não falta é doçura. "Choconinho", prazer.

O chocolate vai em pó na massa fofinha e em barra na ganache da cobertura. No recheio, leite em pó brilha numa mistura de leite condensado, chocolate branco e creme de leite.

Famosa na internet, a receita ganhou mais de 200 mil curtidas. O número impressiona, mas a longe da quantidade de seguidores do perfil no Instagram: 3,3 milhões.

Quem dá nome e cara à conta da rede social é Igor Rocha. Fenômeno digital da culinária, o pernambucano de 21 anos compartilhou mais de 1.300 doces (e alguns salgados).

Veja a receita completa do Choconinho clicando na imagem abaixo:

Bolo choconinho

Dificuldade Fácil
100 min
Ver receita completa

Confeitaria no "feeling"

Fazer invenções na cozinha é com Igor mesmo. De forma quase intuitiva, ele transformou o que lhe divertia na infância — fazer bagunça no fogão com os primos mais velhos — em ganha-pão. Mas não sem luta.

Igor Rocha - Reprodução Instagram - Reprodução Instagram
Igor Rocha: autodidata na confeitaria
Imagem: Reprodução Instagram

Durante a escola, morava em Mauá, na região metropolitana de São Paulo (ele saiu de Pernambuco com dois anos), e conseguiu uma vaga como jovem aprendiz do Pão de Açúcar, no Ipiranga, bairro da zona sul da capital.

"Trabalhava de manhã e estudava à noite. Pegava metrô, trem e ônibus para chegar de um lugar ao outro", lembra. Neste um ano de idas e vindas, ou por diversos setores do supermercado. Na padaria foi onde se deu melhor.

Sempre tive um "feeling". Era o lugar que gostava de estar. Ficava atrás do rapaz da confeitaria pedindo para montar bolo de pote".

À época, Igor tentava lutar contra os quilos extras que ganhou na nova função. Como uma forma de incentivo para a dieta, criou uma conta no Instagram em 2015.

O estágio acabou, mas o costume de postar as receitas saudáveis que testava entre o trabalho e a escola permaneceu.

Ele percebeu que, sem querer, havia formado uma comunidade digital: assim como ele, muita gente tentava comer coisas gostosas sem tantas calorias.

A divulgação de um leite condensado "saudável" — feito de leite em pó, açúcar demerara e água — fez o confeiteiro bombar. Até no site da Ana Maria Braga o nome do cozinheiro foi parar no título do o a o: "leite condensado fake do Igor Rocha".

Choconinho - Igor Rocha - Igor Rocha - Igor Rocha
Igor começou a fazer receitas mais gulosas, como o bolo choconinho
Imagem: Igor Rocha

"As pessoas atrelaram essa receita a mim. Milhares me marcavam. Foi quando comecei a ver que o que estava fazendo era um trabalho mesmo". Com o ar dos anos, Igor acordou com ele mesmo que seria bom abrir um espaço no feed para pedidas mais gulosas.

Lá vieram coxinha de brigadeiro com morango, musse de sonho de valsa de travessa, bolo choconinho e, com eles, ainda mais seguidores.

"Sempre fui muito criterioso comigo mesmo. Se não está do jeito que eu quero, não posto de jeito nenhum".

Igor Rocha - Reprodução Instagram - Reprodução Instagram
Imagem: Reprodução Instagram
Igor Rocha - Reprodução Instagram - Reprodução Instagram
Imagem: Reprodução Instagram

Embora seja responsável por algumas das receitas mais compartilhadas da internet, Igor não tem uma formação profissional na área. Cursar faculdade de gastronomia mais um intensivão de confeitaria é um sonho.

Mas não para ficar entre as quatro paredes da cozinha de algum restaurante:

"Quero muito continuar na internet e me formar por uma realização profissional. Não quero trabalhar em cozinha. Receitas profissionais levam ingredientes que as pessoas não têm em casa".

Meu Instagram é totalmente o contrário disso. É ível. Foi isso que me fez chegar onde estou hoje".