;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Grife de biquínis faz parceria com rendeiras de Alagoas

Izabela Ferreira Alves

Do UOL, em São Paulo

26/04/2012 07h00

Cultura e os pequenos negócios podem andar juntos e encurtar caminho rumo aos lucros. A grife de biquínis Acquaclub, de Limeira, a 151 km de São Paulo, foi buscar em Alagoas uma forma de se diferenciar da concorrência. De lá, trouxe material artesanal típico para inserir em suas peças.

Depois de muita pesquisa, o casal de sócios Márcia Martensen e Cláudio Zanetti foi parar em Pontal da Barra, uma comunidade afastada do centro de Maceió (AL), onde é produzido o autêntico filé de Alagoas, uma técnica centenária de bordado.

“A inspiração veio da memória romântica do uso de órios rústicos e naturais. A coleção fez muito sucesso na Europa, Oriente Médio e o retorno no mercado local também foi muito bom. Vale a pena agregar a beleza da cultura brasileira”, afirma a dona da empresa.

A execução da ideia se tornou possível por meio de uma parceria firmada entre a fabricante de biquínis com a Associação de Mulheres de Pontal da Barra, em Maceió (AL). O grupo é formado por 22 bordadeiras da região que produzem os reconhecidos bordados de filé típicos de Alagoas.

Bordadeiras buscam certificado para produto

Além de buscar formas de divulgar o produto, a associação de Portal da Barra luta para conseguir um certificado que dá apenas a elas o direito de nomear o bordado como filé de Alagoas. Elas participam ativamente do levantamento histórico coordenado pelo Sebrae na região, para início do processo de Indicação Geográfica junto ao INPI (Instituto Nacional da Propriedade Industrial).

"Se conquistarmos a certificação, só os nossos bordados irão poder levar o nome de filé de Alagoas. É mais uma forma de valorizar o nosso produto", afirma a vice-presidente da associação, Petrúcia Lopes.

A técnica surgiu há mais de 200 anos e é feita em cima de redes de pescar confeccionadas pelas próprias costureiras, em algodão. Depois de pronta, a rede é fixada em um tear, riscam-se os desenhos e sobre eles são feitos os pontos do filé.

"Conta da nossa história, porque aprendemos a fazer vendo os homens costurando suas redes. Eles iam pescar e as mulheres criaram o bordado."

Desde então, elas enfrentaram muitas turbulências. Agora as ondas levam para um porto seguro. "Estamos mais próximas do Sebrae e motivadas na produção de algo diferente. Conseguimos parceria com uma fábrica de linhas com brilho, aprendemos sobre moda, a desenhar peças novas e usar cores mais ligadas à cada estação."

O próximo o será o lançamento do catálogo de presentes corporativos, com opções de brindes, caixas e capas para laptops bordadas, informou a vice-presidente da associação.