;(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; // 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(); })();
Topo
Entretenimento

Prêmio São Paulo de Literatura 2025 abre inscrições; vale R$ 200 mil para cada vencedor

27/05/2025 13h51

As inscrições para o Prêmio São Paulo de Literatura 2025 ficarão abertas entre 28 de maio e 15 de julho. A gratificação é de R$ 200 mil para cada categoria, segundo a Secretaria da Cultura, Economia e Indústria Criativas.

Serão premiadas duas obras literárias físicas, escritas em língua portuguesa, editadas, publicadas e comercializadas no Brasil em 2024 e que também estejam disponíveis no formato digital. As categorias são Melhor Romance de 2024 e Melhor Romance de Estreia de 2024.

Após a primeira etapa, serão selecionadas duas listas com 10 finalistas. Os critérios de avaliação incluem qualidade do texto, enredo e tema, construção de personagens e originalidade.

Como se inscrever para o Prêmio São Paulo de Literatura 2025?

As inscrições são gratuitas e devem ser realizadas pelo autor ou pela editora da obra por meio da plataforma de inscrição.

Os requisitos da inscrição são: anexo do livro na íntegra no formato PDF; cópia de um documento oficial de identidade com foto e do Cadastro de Pessoas Físicas (F) do autor da obra. Caso a inscrição seja realizada pela editora, é necessário também a apresentação dos documentos do representante legal da editora ou do CNPJ desta.

Para a categoria de Melhor Romance de Estreia, o edital também pede uma declaração assinada de próprio punho ou eletronicamente em que o autor informa tratar-se do primeiro romance de sua autoria.

Após a conclusão, os inscritos receberão um e-mail que confirma a conclusão da primeira etapa de inscrições.

Entretanto, a efetivação da inscrição só é computada no momento do recebimento da obra física na sede da Secretaria da Cultura, Economia e Indústria Criativas do Estado de São Paulo.

Confira os requisitos necessários para a inscrição

As inscrições são válidas para obras escritas originalmente em português, no gênero literário romance, escritas por autor vivo, com a primeira edição publicada em 2024 e as primeiras identificações numéricas da obra com atribuição da Câmara Brasileira do Livro (CBL).

Também é obrigatório realizar a inscrição em apenas uma das categorias do prêmio e possuir autoria ou coautoria do livro (não serão validadas compilações ou compêndios).

O edital também explicita que, caso a obra se encaixe em mais de uma categoria, "na hipótese de algum coautor não ser estreante no gênero romance, a inscrição deverá ser feita na categoria ‘Prêmio São Paulo de Literatura de Melhor Romance do Ano de 2024'."

Autores estreantes devem registrar suas obras na categoria de Melhor Romance de Estreia. Não serão aceitas obras escritas, ainda que parcialmente, com recursos de Inteligência Artificial Generativa. Confira o edital completo aqui.

Entretenimento