#内置图标 eject-only
Rspress 内置使用图标时,会使用一个 SvgWrapper 组件来渲染图标。支持 icon 为 url 或者 svgr 的 React 组件:
type Icon = React.FC<React.SVGProps<SVGSVGElement>> | string;下面的代码是一个 Rspress 如何使用 IconGithub 的示例:
import { SvgWrapper, IconGithub } from '@rspress/core/theme-original';
<SvgWrapper icon={IconGithub} width={24} height={24} />#用法
当你想更换 Rspress 内置图标时,使用 自定义主题 - 重导出 进行替换。
theme/index.tsx
export { IconGithub } from './my-icons';
export * from '@rspress/core/theme-original';所有 Rspress 使用到的图标如下:
import {
SvgWrapper,
IconArrowDown,
IconArrowRight,
IconClose,
IconCopy,
IconDeprecated,
IconDown,
IconEmpty,
IconExperimental,
IconExternalLink,
IconFile,
IconGithub,
IconGitlab,
IconHeader,
IconJump,
IconLoading,
IconMenu,
IconMoon,
IconSearch,
IconSmallMenu,
IconSuccess,
IconSun,
IconTitle,
IconWrap,
IconWrapped,
IconLink,
} from '@rspress/core/theme';
export default () => {
return (
<div style={{ display: 'flex', gap: 8, flexWrap: 'wrap', fontSize: 12 }}>
{[
IconArrowDown,
IconArrowRight,
IconClose,
IconCopy,
IconDeprecated,
IconDown,
IconEmpty,
IconExperimental,
IconExternalLink,
IconFile,
IconGithub,
IconGitlab,
IconHeader,
IconJump,
IconLoading,
IconMenu,
IconMoon,
IconSearch,
IconSmallMenu,
IconSuccess,
IconSun,
IconTitle,
IconWrap,
IconWrapped,
IconLink,
].map((Icon, idx) => (
<SvgWrapper icon={Icon} key={idx} width={24} height={24} />
))}
</div>
);
};