Tengo una aplicación en la que estoy usando Material UI y su proveedor de temas (usando JSS).
Ahora estoy incorporando fullcalendar-react , que en realidad no es una biblioteca React completa, es solo un delgado contenedor de componentes React alrededor del código original de fullcalendar.
Es decir, que no tengo acceso a cosas como los accesorios de renderizado para controlar cómo da estilo a sus elementos.
Sin embargo, le da acceso a los elementos DOM directamente, a través de una devolución de llamada que se llama cuando los procesa (por ejemplo, el método eventRender ).
Aquí hay un sandbox de demostración básico.
Ahora, lo que quiero hacer es hacer que los componentes del calendario completo (por ejemplo, los botones) compartan el mismo aspecto que el resto de mi aplicación.
Una forma de hacer esto es que podría anular manualmente todos los estilos mirando los nombres de clase que está usando e implementando el estilo en consecuencia.
O bien, podría implementar un tema Bootstrap, como se sugiere en su documentación.
Pero el problema con cualquiera de estas soluciones es que:
- Seria mucho trabajo
- Tendría problemas de sincronización, si realizara cambios en mi tema MUI y olvidara actualizar el tema del calendario, se verían diferentes.
Lo que me gustaría hacer es:
- Convierta mágicamente el tema MUI en un tema Bootstrap.
- O cree una asignación entre los nombres de clase MUI y los nombres de clase de calendario, algo como:
.fc-button = .MuiButtonBase-root.MuiButton-root.MuiButton-contained
.fc-button-primary= .MuiButton-containedPrimary
No me importaría tener que masajear los selectores, etc. para que funcione (es decir, por ejemplo, los botones MUI tienen dos tramos internos, mientras que el calendario completo tiene solo uno). Se trata principalmente de cuando cambio el tema, no quiero tener que cambiarlo en dos lugares.
Usar algo como Sass con su @extend
sintaxis sería lo que tengo en mente. Podría crear el CSS de calendario completo con Sass con bastante facilidad, pero ¿cómo podría Sass acceder a MuiTheme?
Tal vez podría tomar el enfoque opuesto: decirle a MUI 'Hola, estos nombres de clase aquí deberían tener el mismo estilo que estas clases de MUI'.
¿Alguna sugerencia concreta sobre cómo resolvería esto?
text-decoration
propiedad al casco.