自訂主題
建立自訂主題
雖然內建主題提供了一定程度的自訂性,但 Theme
類型可幫助您定義自己的自訂主題,並提供較低層級的主題變量存取。
您可以延伸內建主題,而無需重新定義整個主題。 這在您只想覆蓋特定主題標記時非常有用。
要這樣做,安裝 lodash.merge
(或等效模組):
導入它,以及您想延伸的主題(例如:darkTheme
)和 TypeScript Theme
類型:
然後,將內建主題與您想要覆蓋的主題標記合併。 在此範例中,我正在覆蓋 accentColor
標記以匹配我品牌的重點顏色。
最後,您可以將自訂主題傳遞給 RainbowKitProvider
的 theme
屬性。
如果您的應用程式是伺服器或靜態渲染,並允許用戶手動在主題之間切換,RainbowKit 的主題系統可以與任何 CSS-in-JS 系統搭配以下函數連接自訂 CSS 選擇器:
cssStringFromTheme
cssObjectFromTheme
這些函數返回設置所有必需主題變量的 CSS。 由於支援字串和對象,可以整合到任何 CSS-in-JS 系統中。
作為基本範例,您可以為每個主題渲染自訂的 style
元素。 因為我們掌控了渲染主題 CSS,所以將 null
傳遞給 theme
屬性,讓 RainbowKitProvider 不為我們渲染任何樣式。 還請注意在 cssStringFromTheme 函數上使用 extends 選項,忽略與基礎主題相同的任何主題變量。