Ich habe eine Anwendung, in der ich die Material-Benutzeroberfläche und ihren Themenanbieter (mit JSS) verwende.
Ich verwende jetzt Fullcalendar- React, was eigentlich keine vollwertige React-Bibliothek ist - es ist nur ein dünner React-Komponenten-Wrapper um den ursprünglichen Fullcalendar-Code.
Das heißt, ich habe keinen Zugriff auf Dinge wie Render-Requisiten, um zu steuern, wie sie ihre Elemente formatieren.
Sie erhalten jedoch direkten Zugriff auf die DOM-Elemente über einen Rückruf, der beim Rendern aufgerufen wird (z. B. die eventRender-Methode ).
Hier ist eine grundlegende Demo-Sandbox.
Jetzt möchte ich dafür sorgen, dass die Komponenten des vollständigen Kalenders (z. B. die Schaltflächen) das gleiche Erscheinungsbild wie der Rest meiner Anwendung haben.
Eine Möglichkeit, dies zu tun, besteht darin, dass ich alle Stile manuell überschreiben kann, indem ich mir die verwendeten Klassennamen ansehe und den Stil entsprechend implementiere.
Oder - ich könnte ein Bootstrap-Thema implementieren - wie in der Dokumentation vorgeschlagen.
Das Problem bei jeder dieser Lösungen ist jedoch, dass:
- Es wäre viel Arbeit
- Ich hätte Synchronisationsprobleme, wenn ich Änderungen an meinem MUI-Thema vorgenommen und vergessen hätte, das Kalenderthema zu aktualisieren, würden sie anders aussehen.
Was ich tun möchte, ist entweder:
- Konvertieren Sie das MUI-Design auf magische Weise in ein Bootstrap-Design.
- Oder erstellen Sie eine Zuordnung zwischen MUI-Klassennamen und den Kalenderklassennamen.
.fc-button = .MuiButtonBase-root.MuiButton-root.MuiButton-contained
.fc-button-primary= .MuiButton-containedPrimary
Es würde mir nichts ausmachen, die Selektoren usw. massieren zu müssen, damit es funktioniert (z. B. - MUI-Schaltflächen haben zwei interne Bereiche, während der vollständige Kalender nur einen hat). Es geht hauptsächlich darum, wann ich das Thema ändere - ich möchte es nicht an zwei Stellen ändern müssen.
@extend
Ich habe vor, so etwas wie Sass mit seiner Syntax zu verwenden. Ich könnte das vollständige Kalender-CSS mit Sass leicht genug erstellen - aber wie würde Sass Zugriff auf das MuiTheme erhalten?
Vielleicht könnte ich den umgekehrten Ansatz wählen - sagen Sie MUI: "Hey, diese Klassennamen hier sollten wie diese MUI-Klassen gestaltet sein."
Irgendwelche konkreten Vorschläge, wie ich das lösen würde?
text-decoration
Eigenschaft dem Helm hinzuzufügen .