mui / mui/material-ui

Allow overriding props in styled

Open
#44,456 1 comment 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

scope: system type: new feature
Dominant language
JavaScript
Stars
99.1k
Forks
32.5k
Avg merge
2d 17h
Merged PRs (30d)
106

Description

Summary

When created reusable components, it is often very helpful to pass default props to the component.
Adding props to interface MuiStyledOptions will allow the users to set these props.

Examples

One use case:
Creating a reusable outlined button with extra css.
Instead of doing:

export const FullWidthOutlinedButton = styled(Button)(({ theme }) => ({
  width: '100%',
  marginTop: theme.spacing(5),
}))

and always remembering to add the variant when using the component, we can do this:

export const FullWidthOutlinedButton = styled(Button, {props: {varient: "outlined"}})(({ theme }) => ({
  width: '100%',
  marginTop: theme.spacing(5),
}))

I know the css here is generic but the possibilities are endless

Motivation

Improving DX when creating reusable components, and minimizing human error

Search keywords: props defaults custom

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.