Skip to content

boost: revert @mui/icons-material back to @remixicon/react to align with BUI and upstream Backstage #3928

Description

@rohitkrai03

Problem

PR #3743 (implementing #3736) migrated the boost frontend plugin from @remixicon/react to @mui/icons-material. This decision was made without design discussion and goes against the direction Backstage is heading with BUI.

Why this should be reverted

  1. BUI depends on @remixicon/react internally — it's a direct dependency in @backstage/ui (package.json), not MUI icons.

  2. The official MUI-to-BUI migration skill has a dedicated section "Icons: MUI Icons to Remix Icons" with a full mapping table. Migration checklist item Add dynamic-home-page workspace with backstage app and plugin scaffold #28: "Replace MUI icons with Remix icons." Both the upstream skill and the community-plugins skill say this.

  3. Backstage's official icons documentation uses @remixicon/react in its example for adding custom icons to NFS apps (docs).

  4. The community-plugins repo is actively migrating TO Remix icons — there's a dedicated migration tracker, a repo-wide migration issue, and PRs like the quay migration among many others — all replacing MUI icons with Remix.

  5. Boost is a BUI-first, NFS-only plugin — it should set the standard for the repo, not follow legacy patterns. Moving to MUI icons adds an unnecessary dependency when we already get Remix transitively through BUI.

Expected behavior

Revert the changes from PR #3743:

  1. Replace all @mui/icons-material icon imports with the original @remixicon/react icons.
  2. Change SvgIconComponent types back to RemixiconComponentType.
  3. Remove @mui/icons-material from plugins/boost/package.json dependencies.
  4. Re-add @remixicon/react to plugins/boost/package.json dependencies.
  5. Update boost-frontend-architecture.md Technology Stack table to confirm @remixicon/react (already done).

Scope

  • Workspace: workspaces/boost
  • Package: @red-hat-developer-hub/backstage-plugin-boost (plugins/boost)

Icon mapping (MUI to Remix, reverting #3743)

MUI icon Remix icon Used in
AutoFixHighOutlined RiMagicLine categoryMeta.ts (skill)
VerifiedUserOutlined RiShieldCheckLine categoryMeta.ts (rule)
DnsOutlined RiServerLine categoryMeta.ts (mcp-server)
SmartToyOutlined RiRobotLine categoryMeta.ts (ai-agent)
PsychologyOutlined RiBrainLine categoryMeta.ts (ai-model + fallback)
BuildOutlined RiToolsLine categoryMeta.ts (ai-tool)
StorageOutlined RiDatabase2Line categoryMeta.ts (vector-store)
PersonOutlined RiUserLine AiAssetCard.tsx
GridViewOutlined RiGridLine AiCatalogPage.tsx
ViewListOutlined RiListUnordered AiCatalogPage.tsx
CheckOutlined RiCheckLine AdoptionCard.tsx
ContentCopyOutlined RiFileCopyLine AdoptionCard.tsx

API differences to account for

  • Sizing: MUI uses fontSize="small". Remix uses size={16} (pixels).
  • Type: MUI's SvgIconComponent to Remix's RemixiconComponentType (import from @remixicon/react).
  • Rendering: Both are React components rendered inline — <CheckOutlined /> becomes <RiCheckLine />.

Tests

No new test file needed. Existing tests do not assert on specific icon components. Verify that existing tests still pass after the swap.

Run yarn workspace @red-hat-developer-hub/backstage-plugin-boost test and yarn workspace @red-hat-developer-hub/backstage-plugin-boost tsc to confirm.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions