У меня есть приложение, в котором я использую Material UI и его поставщика тем (используя JSS).
Сейчас я включаю fullcalendar-response , который на самом деле не является полноценной библиотекой React - это всего лишь тонкая оболочка компонента React вокруг исходного кода fullcalendar.
То есть, у меня нет доступа к таким вещам, как реквизит рендера, чтобы контролировать, как он стилирует свои элементы.
Тем не менее, он дает вам доступ к элементам DOM напрямую через обратный вызов, который вызывается при их рендеринге (например, метод eventRender ).
Вот базовая демонстрационная песочница.
Теперь я хочу, чтобы компоненты Full Calendar (например, кнопки) имели такой же внешний вид, как и остальные части моего приложения.
Одним из способов сделать это является то, что я мог бы вручную переопределить все стили, посмотрев на имена классов, которые он использует, и соответственно реализовав стиль.
Или - я мог бы реализовать тему Bootstrap - как предложено в их документации.
Но проблема с любым из этих решений заключается в том, что:
- Было бы много работы
- У меня были бы проблемы с синхронизацией, если бы я внес изменения в свою тему MUI и забыл обновить тему календаря, они бы выглядели иначе.
То, что я хотел бы сделать, это либо:
- Магически преобразуйте тему MUI в тему Bootstrap.
- Или создайте отображение между именами классов MUI и именами классов календаря, например:
.fc-button = .MuiButtonBase-root.MuiButton-root.MuiButton-contained
.fc-button-primary= .MuiButton-containedPrimary
Я не возражаю против того, чтобы массировать селекторы и т. Д., Чтобы они работали (например, например, кнопки MUI имеют два внутренних пролета, тогда как в полном календаре только один). В основном это касается того, когда я меняю тему - не хочу менять ее в двух местах.
Использование чего-то вроде Sass с его @extend
синтаксисом - вот что я имею в виду. Я мог бы легко создать полноценный календарь CSS с помощью Sass - но как Sass получит доступ к MuiTheme?
Возможно, я мог бы использовать противоположный подход - сказать MUI: «Эй, здесь имена этих классов должны быть стилизованы под эти классы MUI».
Какие-нибудь конкретные предложения о том, как бы я решил это?
text-decoration
свойство в шлем.