[PITCH] Cascadium - fiz o meu próprio pré-processador CSS
Boa noite à todos!
Gostaria de apresentar (mais um) projeto que estive trabalhando recentemente, chamado Cascadium (anteriormente SimpleCSSCompiler). Ele surgiu a partir de uma vontade de compilar arquivos CSS com nesting diretamente do .NET, sem ter que instalar o LESS ou SCSS na máquina.
Então eu comecei a escrever o meu próprio parser e transpilador que compilava CSS com nesting para CSS "plano".
Com o tempo fui aperfeiçoando ele, incluindo mais recursos, como escape de variáveis, combinadores, conversores, rewriters, etc.
Um breve exemplo do Cascadium, você consegue transpilar:
:root {
--my-color: red;
}
div {
color: --my-color; // não precisa usar var() aqui
font-family: Arial;
> .card {
background-color: gainsboro;
}
@media mobile {
border: none;
}
}
div {
position: relative;
}
div > .card {
color: black;
}
@media mobile {
div {
outline-offset: 2px;
}
}
É compilado para:
:root {
--my-color: red;
}
div {
color: var(--my-color);
font-family: Arial;
position: relative;
}
div > .card {
background-color: gainsboro;
color: black;
}
@media (max-width: 712px) {
div {
border: none;
outline-offset: 2px;
}
}
Além de minificar e comprimir o CSS, ele "combina" seletores e regras @ que sejam idênticas. Por exemplo, se você tiver vários arquivos com button {...}
, a saída irá gerar apenas um button {}
contendo todo o conteúdo dos arquivos anteriores.
É possível usar ele com .NET nativamente ou baixar os binários e testar em sua máquina em qualquer projeto. Você consegue iniciar ele como um watcher que monitora edições nos seus arquivos .xcss
.
Atualmente o Cascadium está em fase alfa, então pode ser que bastantes bugs apareçam. Estou cuidando dele sozinho, então é difícil testar todas as possíveis situações.
E aí? O que achou do Cascadium? Daria uma chance para ele? Conte o que acha relevante do projeto.