Big-Theta: Sistema de cores com laravel e react, e meu limite entre customização e produtividade.
🚀 Bom dia, pessoal!
Seguindo o approach que mostrei aqui, Consegui portar aquele sistema de cores e componentes adaptativo em react native que descrevi aqui pra web, numa stack Laravel com Inertia e React. 🛠️A modularidade facilitou bastante o processo. você pode vê-lo em ação nesse post aqui:
https://www.linkedin.com/feed/update/urn:li:activity:7314669648703045632/
Para torná-lo uma ferramenta bastante util, fiz uma integração com o Laravel e Tailwind CSS. ✨ O resultado é uma base de cores e componentes com um sistema de precedência idêntico ao nativo:
-
Um botão inserido na tela já vem estilizado com suporte a todos os temas!
-
O Tailwind entra em cena mas sem bagunçar a hierarquia! 🤯 fiz um resolver que identifica as classes do Tailwind e remove as CSSProperties correspondentes uma por uma, evitando conflitos de precedência (CSS > Tailwind). 🛡️
-
E para quando precisa-se de controle total e não faz sentido criar um componente novo, o style={} passado na chamada do componente continua com precedência máxima! 💪 Se você quiser dar um toque único ao botão, seus estilos vão sobrescrever tanto os estilos nativos quanto os do Tailwind. 🎨
🎯 Meus objetivos com essa implementação foram:
-
Produtividade: Criar uma base de código sólida, inspirada em frameworks populares e com vasta documentação (Laravel + React ), sem alterar o funcionamento padrão. A ideia é turbinar a produtividade! 🚀
-
DX (Developer Experience): Eu gosto da minha saúde mental😄 Queria interfaces mobile-first facilitadas com Tailwind, mas com flexibilidade quase ilimitada para expansão. Para provar, já integrei a toast do ShadCnUI! 🍞
Temos aqui um combo incrível: Laravel + React + Tailwind, temas claros e escuros com variações, tudo typesafe e muito mais!
🧠 Alguns conceitos foram cruciais para essa implementação:
- Arquitetura e algoritmos: Entender as diferentes camadas de precedência e saber onde aplicar os ajustes foi essencial. 🤔 Exigiu um bom modelo mental do projeto! 🤓
- Type safety: Garantir um fluxo de tipagem consistente entre todas as camadas, oferecendo um suporte conciso sem cair no "any" para tudo, foi uma preocupação constante. ✅
Agora, chega de papo e bora pro código! 💻 Vou usar essa base para colocar minhas novas ideias em prática rápido, experimentar sem medo e lançar coisas novas em tempo recorde! ⚡️