;(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 com história: "Vestido folk é lembrança sempre presente da minha mãe"

Camila Carreira com o vestido da mãe no estilo "hippie chique" - Henrique Thoms
Camila Carreira com o vestido da mãe no estilo "hippie chique"
Imagem: Henrique Thoms

Marilia Marasciulo

Colaboração para Nossa

14/09/2020 04h00

Camila Carreira

Camila Carreira

Profissão

Atriz

Minha roupa com história

Vestido floral que foi da minha mãe

Minha mãe completou 50 anos no dia 31 de dezembro de 2004, quando eu tinha 13 anos. De presente, meu pai comprou para ela um vestido da Gaia, uma marca relativamente conhecida em Florianópolis, que tem umas roupas meio hippie-chic. Ela gostava muito daquela loja.

Demos o presente de manhã e ela usou na comemoração da noite. Ele tem comprimento mídi e é feito de um tecido super leve, com estampa florida, botões na saia e uma cordinha para amarrar nas costas, caso queira dar uma acinturada.

Lembro que ela usou ela amarrado nas costas, com um colar fininho de ouro e uma sandália no estilo papete, que no começo dos anos 2000 também estava na moda.

Dois meses depois, minha mãe faleceu, vítima de um câncer de colo de útero. Escolhi algumas roupas que ela tinha para guardar e o vestido foi uma delas.

Ele faz eu me sentir leve, e ao mesmo tempo tem um certo ar de inocência por trás do astral de "livre, leve, solto".

Camila Carreira com o vestido - Arquivo Pessoal - Arquivo Pessoal
Camila Carreira com o vestido
Imagem: Arquivo Pessoal
Camila carreira - Arquivo Pessoal - Arquivo Pessoal
Peça foi reintroduzida no guarda-roupa
Imagem: Arquivo Pessoal

Hoje ele já está bem surrado, tem até um buraco nas costas, caíram uns botões da saia. Mas isso não me incomoda, até gosto do fato de ele estar todo meio errado, embora já não use mais para sair.

Costumo vestir para ir à praia ou quando quero me sentir confortável. Às vezes, coloco um short por baixo e encaro uma ida ao mercado.

Taylor Swift em "folklore" - Divulgação - Divulgação
Taylor Swift em "folklore"
Imagem: Divulgação
Não tenho nenhuma lembrança muito específica em relação a algo incrível que eu tenha feito usando ele, além de que, é claro, toda vez que uso, lembro da minha mãe.

Quando a Taylor Swift lançou o novo álbum dela, com esse visual meio boho-folk, eu até brinquei que fui folk muito antes. Mas, no meu caso, a "lenda" por trás do look é real e bem mais emocionante.

Como usar

Primavera chic

Nada representa mais a primavera do que um vestido floral delicado e soltinho. Combine com um chapéu de palha para um eio no campo com elegância.

Folklore urbano

Como usar um vestido floral na cidade? Simples, combine com uma jaqueta de couro para um look urbano e atemporal, mas sem perder a ternura.