Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Aula 5 (px → rem) — resolvi com uma "refinaria industrial" em Python

Olá, pessoal!

Terminei o desafio da aula 5 — converter as medidas do CSS de px para rem — mas confesso que pelo
caminho mais longo possível: em vez de dividir por 16 na calculadora, escrevi um script em Python que
faz isso por mim. Nasceu a Refinaria de Pixels S.A.™

A ideia da brincadeira: o CSS original em px virou "minério bruto" (style.px.css), e o script "refina"
cada medida gerando o style.css final em rem. Uma divisão por 16 cercada de exageros deliberados:

  • Decimal com 28 casas de precisão ("precisão bancária para o seu padding");
  • Cache para não calcular 24 ÷ 16 seis vezes;
  • Auditoria de reversibilidade: toda conversão é conferida com resultado × 16 == original;
  • Modo --dramatico, que narra cada divisão como lançamento de foguete;
  • 13 testes unitários cobrindo a nobre arte de dividir por dezesseis (todos passando).

A parte séria: o exercício foi cumprido de verdade — todas as 16 medidas do projeto convertidas com
exatidão, zero px sobrando no arquivo final. E entendi na prática o porquê da aula: com rem, quem
aumenta o tamanho da fonte no navegador vê o layout inteiro escalar junto. A piada é o caminho; a
acessibilidade é o destino.

De quebra, a revisão final ainda pegou uns detalhes bons de compartilhar:

  • imagem.png vs Imagem.png — em servidor Linux/GitHub Pages a diferença de maiúscula quebra a imagem
    (no Windows passa despercebido);
  • Um espaço faltando antes do fazia o título renderizar "nívelcom um Front-end";
  • alt nos ícones das redes sociais.

Repositório completo (com o README "corporativo" da refinaria, que é metade da graça):
https://github.com/LucasCerattoRS/lol

Quem quiser rodar: python3 refinaria_de_pixels.py --dramatico

Críticas e sugestões são bem-vindas!

1 resposta

Olá Lucas.
Tudo bem?
Antes de tudo, parabéns pela criatividade e pelo entusiasmo com o desafio!
Seu post mostra algo muito valioso para quem está aprendendo programação: você não apenas executou a tarefa proposta, mas aproveitou a oportunidade para explorar automação, testes, validação e organização de código.
A "Refinaria de Pixels S.A.™" certamente foi um caminho mais elaborado do que o necessário para converter px em rem, mas também foi um excelente exercício de programação.
Gostei especialmente de alguns pontos:

  • A implementação de testes unitários demonstra preocupação com qualidade e confiabilidade do código.
  • A auditoria de reversibilidade mostra uma mentalidade de validação muito importante em projetos reais.
  • O cache, embora não seja necessário para um problema tão pequeno, revela que você já está pensando em otimização e reaproveitamento de resultados.
  • O modo --dramatico merece um destaque à parte pela criatividade.

E você destacou algo fundamental: o objetivo da aula não era apenas fazer contas, mas compreender o benefício do uso de rem para acessibilidade e responsividade.
Pelo seu relato, esse conceito foi assimilado com sucesso, que é o mais importante.
Também foi muito interessante você compartilhar os problemas encontrados na revisão final. Questões como:

  • Diferenças entre maiúsculas e minúsculas em servidores Linux;
  • Pequenos erros de espaçamento no HTML;
  • Uso adequado de atributos alt;

são exatamente os tipos de detalhes que desenvolvedores encontram diariamente em projetos reais.
Muitas vezes aprendemos tanto corrigindo esses pequenos problemas quanto implementando funcionalidades novas.
Como sugestão para continuar evoluindo, você poderia expandir a ideia da refinaria para processar arquivos CSS inteiros automaticamente, preservando comentários e gerando relatórios das conversões realizadas.
Seria um ótimo exercício de manipulação de arquivos e expressões regulares em Python.
Mais importante que a conversão em si foi a curiosidade e a iniciativa demonstradas no processo.
Esse perfil investigativo costuma acelerar bastante o aprendizado ao longo da jornada de desenvolvimento.
Obrigado por compartilhar a experiência e também pelas dicas para os colegas da turma.
Avise qualquer dúvida.
Bons estudos!