[RESENHA #589] Se a cidade fosse nossa, de Joice Berth

APRESENTAÇÃO Nos últimos anos, Joice Berth angariou posição importante na opinião pública com argumentos preciosos sobre os desafios que as ...

[RESENHA #588] A rainha, de Andrew Morton

APRESENTAÇÃO Em A rainha, o biógrafo Andrew Morton, autor best-seller referência em biografias sobre a monarquia britânica, apresenta ao lei...

[RESENHA #587] Esfarrapados: Como o elitismo histórico-cultural moldou as desigualdades no Brasil, de Cesar Calejon

 APRESENTAÇÃO Em Esfarrapados, Cesar Calejon destrincha em detalhes os mecanismos culturais e históricos que explicam como as elites se form...

[RESENHA #586] O próximo e o distante, ensaios sobre a cultura afro brasileira, de Roger Bastide

APRESENTAÇÃO Os contatos entre diferentes povos remontam aos tempos pré-históricos, com as grandes migrações, trocas comerciais, guerras de ...

[RESENHA #585] O primeiro indígena universitário do Brasil, de Luiz Guilherme Scaldaferri Moreira e Marcelo Sant'Ana Lemos

APRESENTAÇÃO José Peixoto Ypiranga dos Guaranys viveu entre os anos de 1824 e 1873 e foi o primeiro bacharel indígena formado na Faculdade d...

[#LeiaNacional] Entrevista com Cris Oliveira, autora de ❝Escova de dentes❞

Com uma escrita experimental, que traz influências da poesia concreta, da poesia narrativa e do haicai japonês, "Escova de dentes” (10...

[RESENHA #584] Cabistezas, causos do arraial, de Meri Damaceno

APRESENTAÇÃO "Cabistezas — causos do Arraial” é obra de referência quando se pensa em resgate da memória de Arraial do Cabo. Sua primei...

ULTIMAS RESENHAS PUBLICADAS

// { const speakBtn = document.getElementById('speak-button'); let isSpeaking = false; let synth = window.speechSynthesis; let utterance; if (speakBtn) { speakBtn.addEventListener('click', () => { if (!isSpeaking) { // Seleciona o texto do post const postContent = document.querySelector('.post-body').innerText; utterance = new SpeechSynthesisUtterance(postContent); utterance.lang = 'pt-BR'; utterance.rate = 1.0; // Velocidade da voz // Muda o ícone para "Parar" speakBtn.innerHTML = ""; speakBtn.classList.add('bg-hot-pink', 'text-white'); synth.speak(utterance); isSpeaking = true; // Quando a leitura terminar utterance.onend = () => { resetSpeakButton(); }; } else { synth.cancel(); resetSpeakButton(); } }); } function resetSpeakButton() { speakBtn.innerHTML = ""; speakBtn.classList.remove('bg-hot-pink', 'text-white'); isSpeaking = false; } }); //]]>