By default, Material-UI injects it styles at the end of the <head> element. This means that its styles will come after styles generated by styled-components and thus the Material-UI styles will win over the styled-components styles when CSS specificity is the same.
You can use the StylesProvider component with the injectFirst property to move the Material-UI styles to the beginning of the <head> and then the styled-components styles will come after it and win.
import React from "react"; import styled from "styled-components"; import Button from "@material-ui/core/Button"; import { StylesProvider } from "@material-ui/core/styles"; const StyledButton = styled(Button)` background-color: red; border-radius: 0; `; export default function App() { return ( <StylesProvider injectFirst> <div className="App"> <StyledButton>Hello</StyledButton> </div> </StylesProvider> ); }

Related answers: