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

Moda oversized: roupas mais largas celebram liberdade do corpo com conforto

Bruna Marquezine com blusa e calça oversized na Semana de Moda de Paris 2019 - Reprodução/Instagram
Bruna Marquezine com blusa e calça oversized na Semana de Moda de Paris 2019 Imagem: Reprodução/Instagram

Gustavo Frank

De Nossa

14/03/2020 04h00

A moda é uma das formas como as pessoas se expressam para o mundo e a tendência oversized, que adota peças mais soltas, é a que tem dado voz - e looks, claro - àqueles que buscam conforto e liberdade com o próprio corpo.

A cantora Billie Eilish é uma das principais propagadoras desta moda sob os holofotes. Para ela, além de apresentar uma novidade na hora de se vestir, as roupas ajudam a dar mais ênfase aos seus talentos artísticos ao invés de ressaltar seus atributos físicos.

Billie Eilish - Reprodução - Reprodução
A cantora norte-americana Billie Eilish, uma das principais referências na moda oversized
Imagem: Reprodução

Para Naetê Andreo não é diferente e a influenciadora pontua ainda mais um ponto do oversized, que pode de ser incorporado tanto no guarda-roupa feminino, como masculino:

"Para mim, a tendência ganhou força porque não está ligado ao gênero, como as roupas mais fit, que normalmente acompanham as curvas, ressaltam algumas partes do corpo. O oversized é moda pela moda. O look pelo look. Não está lá para marcar o corpo, esconder, ressaltar."

Sobretudo - Reprodução/Instagram - Reprodução/Instagram
Jovem com sobretudo oversized na cor verde
Imagem: Reprodução/Instagram

Moletom - Reprodução/Menhance - Reprodução/Menhance
Modelo com moletom oversized na cor bege
Imagem: Reprodução/Menhance

Pode ser (muito) chique

Blazer oversized cruzado - Reprodução/Zara - Reprodução/Zara
Blazer de gola e lapela com manga comprida. Ombro marcado. Bolsos de aba à frente. Parte inferior com abertura nas costas. Fecho de botões cruzados à frente
Imagem: Reprodução/Zara

Após criar identidade para o streetwear, as peças largas ocuparam espaço também na alfaiataria. Traje fino? Temos.

"É totalmente possível tornar elegante. O que eu mais tenho visto é alfaiataria oversized. Blazer grande, calças largas, que exploram a boca de sino", destaca Naetê. "Fica incrível e elegante. O monocromático, por exemplo, a muito a ideia de sofisticação".

Como eu posso usar?

Naetê opta pelo contraste das peças na hora de investir nos looks. O resultado é um visual de mais impacto, efeito e presença.

"Se eu estou com uma calça oversized, uso uma blusa mais justa. Agora, se eu to usando uma blusa mais larga e grandona, uso shorts mais justo, como um biker, que acompanha as minhas curvas. Da maneira com que eu me sinta mais confortável", pontua. "Ou se joga direto no oversized, né? Tudo gigante, que também funciona".

E vamos de oversized com Naetê Andreo

Por cima

Peças como jaquetas, blazers e outros casacos, no geral, podem ser uma boa solução para quem está começando a participar da moda. O volume oferecido por peças como essas contribuem e não foge da zona de conforto.

Por baixo

As calças oversized fazem um bom contraste com a parte de cima mais justa. A proposta de deixar as pernas mais soltinhas e colocar uma blusa básica por cima, a fim de criar contraste, é um bom primeiro o.