Skip to content

Migrate cards from Material-UI to @backstage/ui Card system#1445

Merged
gusevda merged 4 commits intomainfrom
migrate-to-backstage-ui
Mar 27, 2026
Merged

Migrate cards from Material-UI to @backstage/ui Card system#1445
gusevda merged 4 commits intomainfrom
migrate-to-backstage-ui

Conversation

@gusevda
Copy link
Copy Markdown
Contributor

@gusevda gusevda commented Mar 27, 2026

What does this PR do?

Migrates all custom card components from Material-UI's InfoCard (@backstage/core-components) and raw Card/CardContent (@material-ui/core) to the new @backstage/ui Card system, aligning with upstream Backstage's direction.

  • Creates a new InfoCard component in ui-react based on upstream's EntityInfoCard, using @backstage/ui primitives (Card, CardHeader, CardBody, CardFooter, Text, Flex)
  • Migrates 18 card components across gs and flux-react plugins
  • Replaces Material-UI Grid, Switch, FormGroup with @backstage/ui equivalents in card internals
  • Simplifies AboutField by removing gridSizes prop

What is the effect of this change to users?

Cards will render with consistent styling matching upstream Backstage's modern card design, resolving the visual discrepancy between custom cards (e.g., "Deploy application") and upstream cards (e.g., "About").

  • A changeset describing the change and affected packages was added. (more info)

gusevda added 3 commits March 27, 2026 09:57
Create a new InfoCard component in ui-react using @backstage/ui primitives
(Card, CardHeader, CardBody, CardFooter, Text, Flex) to align with upstream
Backstage's migration away from Material-UI based InfoCard. Migrate all 14
usages across gs and flux-react plugins to the new component.
Replace direct Material-UI Card+CardContent usage with the new InfoCard
component in ClusterToolsCard, DeploymentToolsCard, ResourcesCard, and
GitOpsCard for consistent card styling across the application.
Replace Material-UI Grid, Switch, FormGroup with @backstage/ui Flex,
Grid.Root, and Switch components. Simplify AboutField by removing
gridSizes prop and using plain div instead of Grid item.
@gusevda gusevda requested a review from a team as a code owner March 27, 2026 06:58
@gusevda gusevda requested a review from marians March 27, 2026 07:10
@gusevda gusevda enabled auto-merge (squash) March 27, 2026 07:21
@gusevda gusevda merged commit 9d911b1 into main Mar 27, 2026
6 checks passed
@gusevda gusevda deleted the migrate-to-backstage-ui branch March 27, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants