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

Roupa de trabalho: como acertar no look na meia-estação? Veja dicas

Mainá Belli

Colaboração para a Universa

09/04/2019 04h00

Climas amenos pedem roupas de trabalho versáteis, que possam se transformar ao longo do dia -- para continuar estilosa quando o sol aparecer ou para encarar sem sufoco o ar-condicionado do escritório.

Na hora de escolher a roupa, tenha em mente que tecidos de alfaiataria -- planos, lisos e estruturados -- são sempre ótimas opções para esse tipo de look. Já os tecidos mais quentes, como lãs, veludos e tweeds devem ser usados com outros mais finos e frescos, para equilibrar e não pesar o visual. As fibras naturais, como o algodão e o linho, também caem bem no escritório, em qualquer estação.

É claro que cada ambiente de trabalho tem seu código de vestimenta específico -- por isso, é importante ficar de olho nas normas da sua empresa. Em todo caso, para sair do óbvio e se inspirar, siga as dicas abaixo:

1. Faça sobreposições com criatividade

Um dos grandes truques dos looks de trabalho de meia-estação são as sobreposições. Construir o visual em camadas ajuda a deixá-lo multifuncional -- e você, prontíssima para qualquer mudança de temperatura.

Vale sobrepor um suéter mais quentinho por cima de uma camisa combinada com uma bermuda mais fashionista; ou usar uma blusa de meia malha por baixo de um vestido mídi de alfaiataria.

2. Aposte no truque da terceira peça

As terceiras peças trazem mais versatilidade ao visual de trabalho. "Quando tenho alguma reunião ou preciso ir ao escritório, gosto de usar saia estruturada com blazer alongado. O item deixa o look mais interessante como terceira peça e ainda protege do ar-condicionado", conta Kammy Almeida, blogueira de moda e beleza.

Além do blazer, uma jaqueta mais clássica, um cardigã sofisticado ou um casaqueto também são ótimas opções de terceiras peças para dar estilo ou deixar o look mais profissional.

3. Aproveite o mix de meia-estação

Outra dica é misturar as peças de verão com peças de inverno e fazer sobreposições que, além de interessantes, multiplicam as opções do guarda-roupa. "Gosto de combinar uma camisa clássica por baixo de um vestido mídi ou um macacão que uso em dias mais quentes. O mix fica funcional, equilibrado e perfeito para os mais diversos ambientes de trabalho", conta a estilista Fabi Pranaitis.

4. Varie os terninhos

Look de trabalho combina com terninhos. Varie o clássico conjuntinho de pantalona + blazer com blusa de gola alta e escarpins; ou vá para o estilo mais moderno e misture o combo de short de alfaiataria + casaqueto com camiseta despojada e um par de slingbacks nos pés.

5. Capriche na misturinha de comprimentos

Climas amenos são a oportunidade perfeita para "brincar" com os comprimentos das peças dos looks de trabalho. A saia de alfaiataria, por exemplo, pode ser combinada com camisa de manga comprida e colete estruturado; enquanto a calça pantacourt fica perfeita com regatinha acetinada e sapatilhas de bico fino.

Para deixar o look mais formal, atente-se às regras de vestimenta da sua empresa. Fique também com mais algumas inspirações superestilosas -- e fáceis! -- de roupas de trabalho para usar na meia-estação: