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

Colete voltou! Veja como usar a terceira peça e turbinar o look de verão

Reprodução/Pinterest
Imagem: Reprodução/Pinterest

Jéssica Arruda

Colaboração para Universa

09/01/2020 04h00

Quem gosta de moda sabe que investir em uma terceira peça está entre os truques na manga para atualizar os looks e sair da mesmice. É ai que surge o colete: entra tendência, sai tendência e ele está lá sempre pronto para deixar as produções mais estilosas.

Nos meses mais quentes do ano, o colete chega repaginado, em versões oversized e coloridas, mas garantindo um frescor. São perfeitos para incrementar o visual com vestidos fresquinhos de verão e, também, dar um up naquele visual monocromático ou basiquinho demais. Versátil, ele vai bem com qualquer roupa e ainda pode ser usado sozinho, fechado e com um cinto poderoso para marcar a cintura.



"O colete curto confere um ar mais retrô: você pode usar aberto com uma blusa de alcinha e saia midi para um look mais casual. A versão comprida é cool, mais moderna. Gosto do maxicolete em alfaiataria com regata e pantacourt, trazendo um look bem urbano", diz a consultora de estilo Danielle Kono, do Brechó Agora é Meu.

Maxicoletes

Aquele colete comprido, abaixo da altura dos quadris ou mesmo até os tornozelos é o truque certeiro para alongar a silhueta, além de conferir um ar mais fashion às produções. Neste verão, coletes em tecidos frescos em tons alegres ou estampados ganham espaço no guarda-roupa -assim como os modelos utilitários cheios de bolsos.



"Para quem não está acostumada com a terceira peça, sugiro o colete de cor neutra em tons mais claros, que absorvem menos calor como branco, off white, bege, nude, cinza e camelo", recomenda Danielle.

Na hora de combinar, a estilista Rosy Cordeiro dá a dica: é possível usar o colete em produções que transitam do trabalho ao lazer sem esforço. "Use com vestido na altura dos joelhos para um ambiente mais corporativo ou com calças retas de alfaiataria para reuniões de negócios. Já uma produção com shorts jeans pode ser usada para ir ao shopping no final de semana", afirma.



Colete curtinho

É importante ter cuidado extra ao eleger um colete curto, afinal, a peça tende a achatar o corpo. Mas, para equilibrar o visual, nada como vestidinhos soltos ou saias longas.

Também é possível usar o colete para compor looks monocromáticos, especialmente naqueles dias em que falta inspiração para se vestir. E para não deixar o look exagerado com a terceira peça, invista em roupas minimalistas e sem muitos detalhes, como babados ou decote ombro a ombro.



Jeans clássico

Para não escorregar na produção com o clássico colete jeans, o truque é optar por lavagens discretas, sem muitas ranhuras. Desta forma, a peça se torna ainda mais curinga nas composições do dia a dia.

O colete jeans com vestidos de manga curta é sinônimo de lazer. Já com uma calça preta reta pode render combinações para o trabalho, especialmente em dias mais descontraídos, como a casual Friday.