close

Встроенные иконки eject-only

Когда Rspress использует иконки, он применяет компонент SvgWrapper для их рендеринга. Этот компонент поддерживает иконку в виде URL или в виде React-компонента, полученного через svgr:

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, используйте Кастомная тема - Повторный экспорт ESM для их замены.

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>
  );
};