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

"Robe que usei na maternidade representa meu sonho de ser mãe"

Solange Alvarez com o robe que marcou a gravidez - Arquivo Pessoal
Solange Alvarez com o robe que marcou a gravidez Imagem: Arquivo Pessoal

Solange Alvarez em depoimento a Marilia Marasciulo

Colaboração para Nossa

04/10/2021 04h00

Um dos sonhos da minha vida era ser mãe. Para se ter uma ideia, a primeira coisa que pensei quando menstruei aos 14 anos foi "agora posso ser mãe". Mas demorei mais 21 anos para conseguir engravidar.

Casei aos 30 e engravidei cinco anos depois. E descobri que não seria só um, mas dois bebês! Quando vi o ultrassom, meus olhos se encheram de lágrimas.

Solange durante a gravidez - Arquivo Pessoal - Arquivo Pessoal
Solange durante a gravidez
Imagem: Arquivo Pessoal

Embora eu acreditasse que fosse um casal, não tinha certeza, pois naquela época o ultrassom não era tão definido. Sabia que o primeiro era menina, mas o segundo, não. Então comprei uma roupinha rosa e outra verde para vesti-los depois do nascimento.

E eu sabia que precisaria de uma camisola para usar na maternidade. Então lá fui eu ao Shopping Center Norte, em São Paulo, em busca de uma camisola. Mas quem disse que a barriga cabia? A essa altura, minha barriga já estava imensa. A única peça que me serviu foi esse robe.

No fim, acabou sendo a melhor opção. Como o parto seria em setembro, ainda estava frio. O robe é de plush, muito aconchegante e quentinho, por isso achei perfeito. Quando chegou a hora dos meus filhos nascerem, eu estava superconfortável para recebê-los.

A peça, é claro, se tornou muito importante para mim. Tanto que uso até hoje! Ele está novinho, naquela época as peças de vestuário duravam muito, não era tudo descartável como hoje. Mas ele é imenso, então amarro bem na cintura com uma fita que veio junto com ele.

Tenho certeza que vou continuar usando até o fim da minha vida. Como não tirei muitas fotos na maternidade e durante a gravidez, pois minha maior preocupação era mantê-la até o fim, não tenho muitas lembranças materiais daquele período".

Roupinha do filho de Solange - Arquivo Pessoal - Arquivo Pessoal
Roupinha do filho de Solange
Imagem: Arquivo Pessoal
Peças fazem parte da história junto ao robe - Arquivo Pessoal - Arquivo Pessoal
Peças fazem parte da história junto ao robe
Imagem: Arquivo Pessoal

Por isso, junto com as roupinhas que meus filhos usaram na maternidade e as nossas pulseiras de identificação, o robe é uma memória concreta da realização do meu sonho de ser mãe.

Como usar

Estilo RiRi

Que Rihanna pode tudo, inclusive sair por aí vestida só com um robe, ninguém tem dúvidas. Mas por que você também não poderia? Inspire-se na cantora e escolha um robe ou roupão bem charmoso para dar uma voltinha por aí.

Pijaminha

Volta e meia, conjuntos de pijama viram hit do streetstyle. Depois de um longo período de quarentena, nada mais óbvio do que exibir os companheiros de isolamento na primeira