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

Festa junina em casa: 3 inspirações para fazer um arraiá bem estiloso

Mesa junina do Nosso Apê 710 - Divulgação
Mesa junina do Nosso Apê 710 Imagem: Divulgação

Carol Scolforo

Colaboração para Nossa

22/06/2021 04h00

Os amantes de um bom arraiá e das comidinhas deliciosas, em ritmo de música caipira, não desanimam. Mais um ano sem as festas lá fora, sim, mas dentro de casa, nem pensar em deixar São João de lado.

O santo é celebrado no Brasil na próxima quinta-feira, dia 24 — e até lá a dica é se inspirar nessas três festas estilosas no apê e preparar a sua, cheia de personalidade.

1. Em tons suaves

Dá para pensar em festa junina sem as cores vivas de sempre? O Matheus Fernandes, do Blog do Math (@blogdomath), resolveu que sim e seguiu tons leves para compor sua festa junina em casa, em Brasília, DF. Criativo quando o assunto é festa, o diretor de arte e designer trouxe memórias afetivas e elaborou um tema exclusivo.

Mesa junina do Blog do Math - Divulgação - Divulgação
Imagem: Divulgação
Mesa junina do Blog do Math - Divulgação - Divulgação
Imagem: Divulgação
Mesa junina do Blog do Math - Divulgação - Divulgação
Imagem: Divulgação
Mesa junina do Blog do Math - Divulgação - Divulgação
Imagem: Divulgação

"A primeira das memórias é a da flor de cosmos, que tem cores bem vibrantes que eu adorava catar no mato quando era criança", diz ele, que a colocou nas ilustrações que estampam a festa. Tons de rosa e de laranja se misturam, com um toque de amarelo e pronto: eis uma festa colorida saindo do comum.

2. Elegante e contemporânea

Ambiente junino criado por Karin Oliver - Divulgação - Divulgação
Ambiente junino criado por Karin Oliver
Imagem: Divulgação

Com bandeirinhas estampadas, Karin Oliver (@karinoliver.floral) criou sua festa junina no apê, divertida e contemporânea. Sobre um aparador, a brasileira que atualmente mora na Alemanha dispôs as comidinhas. Ao lado, a mesinha concentra flores — ela é designer floral e um belo arranjo injetou alto astral na festa. De quebra, ficou elegante.

Veja que em todos os pontos há um tom vinho arroxeado, o que dá harmonia à composição. Repare nos chapéus no chão, e nas boleiras, objetos que lembram São João. Nada grandioso demais, o que pode ser particularmente inspirador.

3. Caipira com o que se tem

Direto de Juiz de Fora, Minas Gerais, Pablo Pedrosa Teixeira De Oliveira e Alisson Messias, do perfil @nossoape.710, seguiram os ritos tradicionais adaptados ao apê. Com toalha xadrez azul, objetos de palha e comidinhas típicas, o arraial da dupla é inspirador por apostar no reaproveitamento.

Usamos basicamente itens que já tínhamos e foram ressignificados. Cores e estampas remetem às calças remendadas da ocasião, e fibras naturais, dos chapéus de palha, dão o toque junino para qualquer mesa ou ambiente", indicam.

Mesa junina do Nosso Apê 710 - Divulgação - Divulgação
Imagem: Divulgação
Mesa junina do Nosso Apê 710 - Divulgação - Divulgação
Imagem: Divulgação
Mesa junina do Nosso Apê 710 - Divulgação - Divulgação
Imagem: Divulgação
Mesa junina do Nosso Apê 710 - Divulgação - Divulgação
Imagem: Divulgação

Um toque especial vem do varal de bandeirinhas coloridas, feito com o papel adesivo daqueles de anotar lembretes — mas você pode reaproveitar revistas antigas ou embalagens de papel para um efeito parecido. Aqui, até as flores foram feitas de papel de seda colorido e dispostas em vidro de molho de tomate — ou seja, não é preciso comprar nada.

Entre as comidinhas, o ingrediente principal, o milho, ganhou receitas primorosas: brigadeiro de milho e pamonha salgada. "Pipoca e paçoca não podem faltar e servem para ajudar a decorar também", conta Pablo.