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

Meu estilo: "É sempre verão em algum lugar do mundo", diz Ricardo Moreno

Arquivo Pessoal
Imagem: Arquivo Pessoal

Maria Carolina Gimenez

Colaboração para Nossa

22/06/2020 04h00

Ricardo Moreno

Ricardo Moreno

QUEM É

Jornalista, curitibano, com 20 anos de carreira formado, desde 2015 toca o The Summer Hunter, onde conta histórias de pessoas e destinos. Tendência é inspiração e “é sempre verão em algum lugar do mundo” é o principal discurso.

Defina seu estilo em algumas palavras.
Desencanado-preguiçoso-preocupado-com-o-cabelo-mais-do-que-deveria.

O que é indispensável para você e não pode faltar no seu armário?
Calça preta. Camiseta branca (com bolso). Cashmere preto. Tênis branco. E duas camisas de linho: uma branca, outra preta. E uma mala de mão, ainda que não seja possível viajar no momento.

Um ório que não abre mão?
Anéis, apesar de tê-los deixado de lado durante essa quarentena. E óculos de sol.

Sportswear x casual chic?
O que é isso?

Com qual marca nacional mais se identifica e por quê?
Com nenhuma. Mas gosto bastante de algumas peças da Handred, da Hering e da Oriba. Das estrangeiras também conheço pouco, mas faz anos que consumo três delas, e não pretendo mudar: Edwin e Acne para denim, Uniqlo para todo o resto.

Um tênis?
Converse cano baixo e Adidas Originals.

Curte seguir tendências? Tem alguma que achou que jamais usaria, mas acabou incluindo no seu estilo?
Não me vejo um seguidor de tendências, mas sou obcecado por tote bags e, de uns anos pra cá, me peguei amarrando calça jeans com barbante.

Poucas e boas roupas ou prefere ter várias opções?
Pouquíssimas, ainda que nem todas sejam boas.

Uma peça que jamais usaria?
Pochete, exceto no Carnaval.

Um ícone de estilo?
Louis Garrel. Tyler Brûlé. E meu pai nos anos 1970, não necessariamente nessa ordem.