J'ai une application où j'utilise Material UI et son fournisseur de thème (en utilisant JSS).
J'incorpore maintenant fullcalendar-react , qui n'est pas vraiment une bibliothèque React à part entière - c'est juste une fine enveloppe de composant React autour du code original fullcalendar.
C'est-à-dire que je n'ai pas accès à des choses comme les accessoires de rendu pour contrôler la façon dont il stylise ses éléments.
Cependant, il vous donne directement accès aux éléments DOM, via un rappel qui est appelé lors de leur rendu (par exemple, la méthode eventRender ).
Voici un sandbox de démonstration de base.
Maintenant, ce que je veux faire, c'est que les composants du calendrier complet (par exemple, les boutons) partagent le même aspect et la même sensation que le reste de mon application.
Une façon de le faire est que je pouvais remplacer manuellement tous les styles en regardant les noms de classe qu'il utilise et en implémentant le style en conséquence.
Ou - je pourrais implémenter un thème Bootstrap - comme suggéré dans leur documentation.
Mais le problème avec l'une ou l'autre de ces solutions est que:
- Ce serait beaucoup de travail
- J'aurais des problèmes de synchronisation, si j'apportais des modifications à mon thème MUI et que j'oubliais de mettre à jour le thème du calendrier, ils auraient l'air différents.
Ce que je voudrais faire, c'est:
- Convertissez comme par magie le thème MUI en thème Bootstrap.
- Ou créez un mappage entre les noms de classe MUI et les noms de classe de calendrier, quelque chose comme:
.fc-button = .MuiButtonBase-root.MuiButton-root.MuiButton-contained
.fc-button-primary= .MuiButton-containedPrimary
Cela ne me dérangerait pas d'avoir à masser les sélecteurs, etc. pour le faire fonctionner (par exemple. Par exemple - les boutons MUI ont deux portées internes, tandis que le calendrier complet n'en a qu'une). C'est surtout quand je change de thème - je ne veux pas avoir à le changer à deux endroits.
Utiliser quelque chose comme Sass avec sa @extend
syntaxe serait ce que j'ai en tête. Je pourrais créer le CSS complet du calendrier avec Sass assez facilement - mais comment Sass aurait-il accès au MuiTheme?
Je pourrais peut-être adopter l'approche inverse - dire à MUI 'Hé, ces noms de classe ici devraient être stylisés comme ces classes MUI'.
Avez-vous des suggestions concrètes sur la façon de résoudre ce problème?
text-decoration
propriété au casque.