<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mayara Nascimento</title>
    <description>The latest articles on DEV Community by Mayara Nascimento (@maycristina).</description>
    <link>https://dev.to/maycristina</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4158107%2Fa9bf5727-32b4-47da-ada0-70de802d58e7.jpg</url>
      <title>DEV Community: Mayara Nascimento</title>
      <link>https://dev.to/maycristina</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maycristina"/>
    <language>en</language>
    <item>
      <title>Jim — Accessible Converter, an open-source WordPress plugin for converting documents quickly</title>
      <dc:creator>Mayara Nascimento</dc:creator>
      <pubDate>Sat, 10 Oct 2026 00:32:49 +0000</pubDate>
      <link>https://dev.to/maycristina/jim-accessible-converter-an-open-source-wordpress-plugin-for-converting-documents-quickly-5h7i</link>
      <guid>https://dev.to/maycristina/jim-accessible-converter-an-open-source-wordpress-plugin-for-converting-documents-quickly-5h7i</guid>
      <description>&lt;p&gt;Já faz algum tempo que venho trabalhando em um projeto que surgiu porque eu estava cansada de publicar e ler PDFs estáticos na web. Eles costumam ser rígidos, difíceis de navegar e desconfortáveis ​​para ler; por isso, desenvolvi um plugin para WordPress que resolve esse problema. &lt;/p&gt;

&lt;p&gt;Em vez de obrigar os usuários a baixar arquivos, ele torna o conteúdo nativo da web. &lt;/p&gt;

&lt;p&gt;Principais recursos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leitura em voz alta nativa: Conversão de texto em fala utilizando a API do navegador.&lt;/li&gt;
&lt;li&gt;Leitura personalizável: Tamanho de texto ajustável, temas e alto contraste.&lt;/li&gt;
&lt;li&gt;Sumário automático (TOC): Gerado diretamente a partir dos títulos do documento e dos marcadores (bookmarks) do PDF. &lt;/li&gt;
&lt;li&gt;SEO automático, Marcador visual, Lightbox. &lt;/li&gt;
&lt;li&gt;Suporte a 7 idiomas&lt;/li&gt;
&lt;li&gt;Conversão local: Executada diretamente no seu site WordPress, em segundo plano. Não requer APIs externas nem custos recorrentes de serviço.&lt;/li&gt;
&lt;li&gt;Tutor de IA opcional: Permite que os leitores façam perguntas sobre o documento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O objetivo é tornar a publicação de conteúdos extensos uma tarefa rápida e garantir uma leitura online confortável aos usuários, eliminando a necessidade de baixar arquivos ou utilizar conversores externos.&lt;/p&gt;

&lt;p&gt;O plugin está atualmente na versão v2.0.1, e eu adoraria receber feedback das comunidades de desenvolvimento, acessibilidade e autores de blogs de conteúdo. Qual costuma ser a parte mais irritante de tornar sites com muitos documentos realmente acessíveis?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Site:&lt;/strong&gt; &lt;a href="https://jim.mabo.cc" rel="noopener noreferrer"&gt;jim.mabo.cc&lt;/a&gt;  •   &lt;strong&gt;Github:&lt;/strong&gt; &lt;a href="https://github.com/maycristina/jim-conversor-acessivel" rel="noopener noreferrer"&gt;maycristina/jim-conversor-acessivel&lt;/a&gt;•  &lt;strong&gt;Wordpress:&lt;/strong&gt; &lt;a href="https://wordpress.org/plugins/jim-conversor-acessivel" rel="noopener noreferrer"&gt;https://wordpress.org/plugins/jim-conversor-acessivel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>wcag</category>
      <category>braziliandevs</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Como o Pixar in a Box me levou a criar uma moeda 3D usando CSS</title>
      <dc:creator>Mayara Nascimento</dc:creator>
      <pubDate>Thu, 08 Oct 2026 02:34:52 +0000</pubDate>
      <link>https://dev.to/maycristina/como-o-pixar-in-a-box-me-levou-a-criar-uma-moeda-3d-usando-css-1ga6</link>
      <guid>https://dev.to/maycristina/como-o-pixar-in-a-box-me-levou-a-criar-uma-moeda-3d-usando-css-1ga6</guid>
      <description>&lt;p&gt;Eu queria entender uma coisa que já vinha me deixando curiosa: até onde dá para levar uma experiência “3D” no navegador sem usar uma engine 3D completa.&lt;/p&gt;

&lt;p&gt;Enquanto trabalhava no meu projeto de cara ou coroa, assisti a algumas aulas do Pixar in a Box, da Pixar com a Khan Academy. O que mais me chamou atenção não foi a animação em si, mas a matemática por trás dela.&lt;/p&gt;

&lt;p&gt;Então resolvi usar a moeda como um pequeno experimento.&lt;/p&gt;

&lt;p&gt;A moeda é construída com elementos comuns do DOM e transformações 3D em CSS. Sem WebGL, sem Three.js.&lt;/p&gt;

&lt;p&gt;A parte interessante foi fazer o movimento parecer consistente, em vez de simplesmente girar uma imagem e chamar isso de física.&lt;/p&gt;

&lt;p&gt;A física&lt;/p&gt;

&lt;p&gt;A animação precisava se comportar de forma independente da taxa de quadros do dispositivo.&lt;/p&gt;

&lt;p&gt;Uso Vue para o estado da interface, mas não queria que cada atualização da física passasse pelo sistema reativo. Então o estado da aplicação continua no Vue, enquanto a animação roda diretamente com "requestAnimationFrame", atualizando os nós do DOM envolvidos.&lt;/p&gt;

&lt;p&gt;Essa separação fez diferença principalmente quando a animação ficou mais complexa.&lt;/p&gt;

&lt;p&gt;A matemática por trás da moeda&lt;/p&gt;

&lt;p&gt;A orientação da moeda é calculada a partir da rotação ao longo do tempo, enquanto a perspectiva e os movimentos semelhantes aos de uma câmera são controlados pelas transformações CSS.&lt;/p&gt;

&lt;p&gt;Em vez de usar uma engine 3D para resolver essas transformações, calculo os valores necessários e aplico diretamente no elemento.&lt;/p&gt;

&lt;p&gt;Foi provavelmente a parte que mais gostei: pegar algo que normalmente parece “renderização 3D” e reduzir a transformações, coordenadas e bastante matemática.&lt;/p&gt;

&lt;p&gt;Sensores e interação&lt;/p&gt;

&lt;p&gt;Também queria que a moeda respondesse ao dispositivo, em vez de funcionar apenas como uma animação isolada.&lt;/p&gt;

&lt;p&gt;No desktop, a moeda pode reagir ao movimento do mouse.&lt;/p&gt;

&lt;p&gt;No celular, uso a Device Orientation API para movimentos mais sutis, e os dados do acelerômetro podem ser usados para detectar gestos que iniciam o lançamento.&lt;/p&gt;

&lt;p&gt;Assim, a mesma simulação recebe entradas diferentes dependendo do dispositivo.&lt;/p&gt;

&lt;p&gt;Som&lt;/p&gt;

&lt;p&gt;Outro pequeno problema foi o tempo de resposta.&lt;/p&gt;

&lt;p&gt;Para o impacto da moeda, usei a Web Audio API para gerar o som em vez de depender apenas de um arquivo de áudio comum. Isso me dá mais controle sobre o momento em que o som é disparado e sobre a forma como ele é gerado.&lt;/p&gt;

&lt;p&gt;Também há tratamento para "prefers-reduced-motion" e suporte à fala nativa em algumas partes da experiência.&lt;/p&gt;

&lt;p&gt;A página "/sobre"&lt;/p&gt;

&lt;p&gt;Existe outra parte do projeto em que escolhi uma abordagem diferente.&lt;/p&gt;

&lt;p&gt;O jogo principal usa CSS 3D, mas a página "/sobre" usa Three.js, carregado por CDN, para renderizar as moedas estilizadas usadas na apresentação.&lt;/p&gt;

&lt;p&gt;Para mim, isso não é uma contradição. As duas partes têm objetivos diferentes.&lt;/p&gt;

&lt;p&gt;No jogo, existe uma interação contínua e um loop de animação, então fazia sentido manter o núcleo em CSS. Já a página "/sobre" é mais visual e estática, então usar WebGL por meio do Three.js fez sentido ali.&lt;/p&gt;

&lt;p&gt;Também construí um menu flutuante de acessibilidade com ajustes de tamanho de fonte, contraste, redução de movimento e suporte à fala usando a Web Speech API.&lt;/p&gt;

&lt;p&gt;A navegação foi adaptada para funcionar com rolagem e âncoras na URL, em vez de depender de um sistema separado de slides. Assim, uma seção específica pode ser acessada diretamente por um link.&lt;/p&gt;

&lt;p&gt;Também existe música ambiente, com a preferência do usuário armazenada localmente no navegador.&lt;/p&gt;

&lt;p&gt;Tudo começou com uma pergunta simples sobre CSS 3D.&lt;/p&gt;

&lt;p&gt;No fim, virou um exercício muito melhor para entender transformações, loops de animação, APIs do navegador e a relação entre efeitos visuais e matemática.&lt;/p&gt;

&lt;p&gt;O projeto continua simples na essência: jogar uma moeda.&lt;/p&gt;

&lt;p&gt;Fazer o navegador se comportar como uma pequena máquina de simulação foi a parte divertida.&lt;/p&gt;

&lt;p&gt;Jogo: &lt;a href="https://coininbox.cc/" rel="noopener noreferrer"&gt; https://coininbox.cc &lt;/a&gt;  • GitHub: &lt;a href="https://github.com/maycristina/coin-in-box" rel="noopener noreferrer"&gt; https://github.com/maycristina/coin-in-box &lt;/a&gt;&lt;/p&gt;

</description>
      <category>animation</category>
      <category>css</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I recreated a 2,200-year-old game for free. Its inventory has coins from 100+ countries and eras.</title>
      <dc:creator>Mayara Nascimento</dc:creator>
      <pubDate>Tue, 06 Oct 2026 11:31:03 +0000</pubDate>
      <link>https://dev.to/maycristina/i-recreated-a-2200-year-old-game-for-free-its-inventory-has-coins-from-100-countries-and-eras-35mj</link>
      <guid>https://dev.to/maycristina/i-recreated-a-2200-year-old-game-for-free-its-inventory-has-coins-from-100-countries-and-eras-35mj</guid>
      <description>&lt;p&gt;Heads or tails. Cara ou coroa in Brazil, águila o sol in Mexico. The name changes from country to country, but the game is the same. Before the 2000s, flipping a coin was an everyday way to settle things, and I played it all the time as a kid.&lt;/p&gt;

&lt;p&gt;Today, in a mostly digital world, it has become rare. I've met young people born after that time who had never heard of flipping a coin to decide something. So I built this project to bring that memory back and to teach a little something along the way.&lt;/p&gt;

&lt;p&gt;It's for anyone who's curious, likes to explore, or collects coins and the stories behind them. And it's still fun! Every round shows you something new about the world.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ccs1yldgxr6niqym52k.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ccs1yldgxr6niqym52k.webp" alt=" " width="768" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌍 Available in 3 languages, made for everyone&lt;/li&gt;
&lt;li&gt;💸 Completely free: no sign-up, no login, no forms, no ads&lt;/li&gt;
&lt;li&gt;🔒 No cookies, no tracking, no data collection. Your preferences stay in your browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Play: &lt;a href="https://coininbox.cc" rel="noopener noreferrer"&gt;&lt;/a&gt; • About the project: &lt;a href="https://coininbox.cc/sobre" rel="noopener noreferrer"&gt;&lt;/a&gt;  •  GitHub: &lt;a href="https://github.com/maycristina/coin-in-box" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>3d</category>
      <category>numismatics</category>
      <category>antigravity</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
