Rainbow logo
RainbowKit
2.2.0

主题

主题

使用和自定义主题

您可以调整 RainbowKit UI 以匹配您的品牌。 您可以从几个预定义的重点色彩和边界半径配置中选择。

有3个内置主题函数:

  • lightTheme   (默认)
  • darkTheme
  • midnightTheme

主题函数返回一个主题对象。 主题函数返回一个主题对象。 可以将该对象传递给 RainbowKitProvidertheme 属性。

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
export const App = () => (
<RainbowKitProvider theme={darkTheme()} {...etc}>
{/* Your App */}
</RainbowKitProvider>
);

如果您愿意,您可以传入 accentColoraccentColorForegroundborderRadiusfontStackoverlayBlur 进行自定义。

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
export const App = () => (
<RainbowKitProvider theme={darkTheme({ accentColor: '#7b3fe4', accentColorForeground: 'white', borderRadius: 'small', fontStack: 'system', overlayBlur: 'small', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);

内置主题功能还接受一个选项对象,允许您从几种不同的视觉样式中选择。

PropTypeDefault
accentColorstring "#0E76FD"
accentColorForegroundstring "white"
borderRadiusenum large
fontStackenum rounded
overlayBlurenum none

例如,要使用紫罗兰色的重音颜色和中等边界半径尺寸自定义深色主题:

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ accentColor: '#7b3fe4', accentColorForeground: 'white', borderRadius: 'medium', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

每个主题也提供了几种色彩预设(bluegreenorangepinkpurplered),可以扩展到选项对象中。 例如,使用 pink 强调色预设:

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ ...darkTheme.accentColors.pink, })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

这里有一些不同的方式可以使用 theme 属性。

使用 darkTheme 主题。

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
export const App = () => (
<RainbowKitProvider theme={darkTheme()} {...etc}>
{/* Your App */}
</RainbowKitProvider>
);

使用 midnightTheme 主题。

import { RainbowKitProvider, midnightTheme, } from '@rainbow-me/rainbowkit';
export const App = () => (
<RainbowKitProvider theme={midnightTheme()} {...etc}>
{/* Your App */}
</RainbowKitProvider>
);

以下是一些可以使用 accentColor 配置的不同方式。

将强调色设为自定义紫色值。

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ accentColor: '#7b3fe4', accentColorForeground: 'white', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

将强调色设为内置的 green 预设。

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ ...darkTheme.accentColors.green, })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

以下是一些可以使用 borderRadius 配置的不同方式。

将边框半径设置为 medium

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ borderRadius: 'medium', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

将边框半径设置为 none

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ borderRadius: 'none', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

提醒:可用的边框半径值有:large(默认),mediumsmallnone

默认情况下,fontStack 设置为 rounded。 但是这是你如何使用 fontStack 配置的方法。

将字体堆栈设置为 system

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ fontStack: 'system', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

默认情况下,overlayBlur 设置为 none。 但这是你可以如何使用 overlayBlur 配置的方法。

将覆盖模糊设置为 small

import { RainbowKitProvider, darkTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={darkTheme({ overlayBlur: 'small', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

这是你可以使用不同主题的几种不同方式,将 accentColorborderRadiusfontStack 属性一起使用。

  • 使用 lightTheme 主题
  • 将突出色设置为自定义的紫色值
  • 将边框半径设置为 medium
  • 将字体堆栈设置为 system
import { RainbowKitProvider, lightTheme } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={lightTheme({ accentColor: '#7b3fe4', accentColorForeground: 'white', borderRadius: 'medium', fontStack: 'system', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};
  • 使用 midnightTheme 主题
  • 将突出色设置为内置的 pink 预设。
  • 将边框半径设置为 small
  • 将字体堆栈设置为 system
import { RainbowKitProvider, midnightTheme, } from '@rainbow-me/rainbowkit';
const App = () => {
return (
<RainbowKitProvider theme={midnightTheme({ ...midnightTheme.accentColors.pink, borderRadius: 'small', fontStack: 'system', })} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);
};

如果您的应用使用标准的 prefers-color-scheme: dark 媒体查询来在轻量和暗黑模式之间切换,您可以选择性地提供一个包含 lightModedarkMode 值的动态主题对象。

import { RainbowKitProvider, lightTheme, darkTheme, } from '@rainbow-me/rainbowkit';
const App = () => (
<RainbowKitProvider theme={{ lightMode: lightTheme(), darkMode: darkTheme(), }} {...etc} >
{/* Your App */}
</RainbowKitProvider>
);