Material UIとそのテーマプロバイダー(JSSを使用)を使用しているアプリケーションがあります。
私は今、完全に本格的なReactライブラリーではないfullcalendar-reactを組み込んでいます。これは、元のフルカレンダーコードの薄いReactコンポーネントラッパーにすぎません。
つまり、要素のスタイルを制御するレンダープロップなどにアクセスすることはできません。
ただし、レンダリング時に呼び出されるコールバック(例:eventRenderメソッド)を介して、DOM要素に直接アクセスできます。
次に、フルカレンダーコンポーネント(ボタンなど)を他のアプリケーションと同じルックアンドフィールにしたいと思います。
これを行う1つの方法は、使用しているクラス名を確認し、それに応じてスタイルを実装することにより、すべてのスタイルを手動でオーバーライドできることです。
または、ドキュメントで提案されているように、Bootstrapテーマを実装することもできます。
しかし、これらのソリューションのいずれかの問題は、次のとおりです。
- 大変な作業になるでしょう
- MUIテーマに変更を加えて、カレンダーのテーマを更新するのを忘れた場合、それらが異なるように見えるため、同期の問題が発生します。
私がしたいのは次のいずれかです:
- MUIテーマを魔法のようにBootstrapテーマに変換します。
- または、次のようなMUIクラス名とカレンダークラス名の間のマッピングを作成します。
.fc-button = .MuiButtonBase-root.MuiButton-root.MuiButton-contained
.fc-button-primary= .MuiButton-containedPrimary
セレクターなどをマッサージして機能させる必要はありません(たとえば、MUIボタンには2つの内部スパンがありますが、フルカレンダーには1つしかない)。ほとんどの場合、テーマを変更します。2か所で変更する必要はありません。
@extend
構文でSassのようなものを使用することは、私が考えていることです。Sassを使用してフルカレンダーCSSを簡単に作成できましたが、SassはどのようにしてMuiThemeにアクセスできますか?
おそらく私は反対のアプローチを取ることができます-MUIに「ここのこれらのクラス名はこれらのMUIクラスのようにスタイル設定する必要があります」と伝えます。
これをどのように解決するかについて具体的な提案はありますか?
text-decoration
プロパティをヘルメットに追加することを忘れないでください。