Eu tenho um aplicativo em que estou usando a UI do material e seu provedor de temas (usando JSS).
Agora estou incorporando o fullcalendar-react , que não é realmente uma biblioteca React completa - é apenas um invólucro fino do componente React em torno do código original do fullcalendar.
Ou seja, não tenho acesso a coisas como render adereços para controlar como ele estiliza seus elementos.
No entanto, fornece acesso diretamente aos elementos DOM, através de um retorno de chamada que é chamado quando os renderiza (por exemplo, o método eventRender ).
Aqui está uma sandbox básica de demonstração.
Agora, o que eu quero fazer é fazer com que os componentes do Calendário Completo (por exemplo, os botões) compartilhem a mesma aparência que o restante do meu aplicativo.
Uma maneira de fazer isso é que eu poderia substituir manualmente todos os estilos, observando os nomes das classes que está usando e implementando o estilo adequadamente.
Ou - eu poderia implementar um tema de Bootstrap - como sugerido na documentação deles.
Mas o problema com qualquer uma dessas soluções é que:
- Seria muito trabalho
- Eu teria problemas de sincronização. Se eu fizesse alterações no meu tema MUI e esquecesse de atualizar o tema do calendário, elas pareceriam diferentes.
O que eu gostaria de fazer é:
- Converta magicamente o tema MUI para o tema Bootstrap.
- Ou crie um mapeamento entre os nomes de classe MUI e os nomes de classe de calendário, algo como:
.fc-button = .MuiButtonBase-root.MuiButton-root.MuiButton-contained
.fc-button-primary= .MuiButton-containedPrimary
Eu não me importaria de ter que massagear os seletores, etc., para fazê-lo funcionar (por exemplo: os botões MUI têm dois intervalos internos, enquanto o Calendário Completo possui apenas um). É principalmente quando eu mudo o tema - não quero alterá-lo em dois lugares.
Usar algo como Sass com sua @extend
sintaxe seria o que eu tenho em mente. Eu poderia criar o CSS de calendário completo com o Sass com bastante facilidade - mas como o Sass obteria acesso ao MuiTheme?
Talvez eu possa adotar a abordagem oposta - diga ao MUI 'Ei, esses nomes de classe aqui devem ter o estilo dessas classes MUI'.
Alguma sugestão concreta sobre como eu resolveria isso?
text-decoration
propriedade ao capacete.