自訂主題
創建自訂主題
儘管內建主題提供了一些自訂功能,Theme
類型旨在幫助您定義自己的自訂主題,並能較低層次地訪問基本的主題變數。
您可以擴展內建主題,而無需重新定義整個主題。 這在您只想覆蓋特定主題標記時非常有用。
為此,請安裝 lodash.merge
(或等效的):
導入它,以及您想要擴展的主題(例如:darkTheme
)和 TypeScript 的 Theme
類型:
然後,將內建主題與您想要覆蓋的主題標記合併。 在此例中,我將 accentColor
標記覆蓋為符合我品牌的強調色。
最後,您現在可以將您的自訂主題傳遞給 RainbowKitProvider
的 theme
屬性。
如果您的應用伺服器呈現或靜態呈現並允許用戶手動切換主題,RainbowKit 的主題系統可以通過以下函數連接到自訂 CSS 選擇器,並且可以與任何 CSS-in-JS 系統一起使用:
cssStringFromTheme
cssObjectFromTheme
這些函數返回設置所有必需主題變數的 CSS。 由於同時支持字串和物件,它可以與任何 CSS-in-JS 系統集成。
作為基本例子,您可以為每個主題渲染自己的 style
元素和自訂選擇器。 由於我們控制主題 CSS 的渲染,因此我們將 theme
屬性設定為 null
,以便 RainbowKitProvider 不會為我們渲染任何樣式。 還請注意 cssStringFromTheme 函數上的 extends 選項,它會忽略與基礎主題相同的任何主題變數。