Search code examples
reactjsmaterial-uijss

How to override styles for material-ui TextField component without using the MUIThemeProvider?


How would I hide / remove the underline in a TextField component without using the following code:

const theme = createMuiTheme({
  overrides: {
    MuiInput: {
      underline: {
        '&:hover:not($disabled):before': {
          backgroundColor: 'rgba(0, 188, 212, 0.7)',
        },
      },
    },
  },
});

I would like to do it with props and according to the docs: https://material-ui.com/api/input/

I should be able to change the underline prop, but it does not work.


Solution

  • This is how you do it:

    <TextField
        id="name"
        label="Name"
        value={this.state.name}
        margin="normal"
        InputProps={{disableUnderline: true}}
    />
    

    How did I figure it out?

    You have linked to the Input documentation, which does indeed have a disableUnderline prop.

    However, you are using a TextField component:

    It's important to understand that the text field is a simple abstraction on top of the following components:

    • FormControl
    • InputLabel
    • Input
    • FormHelperText

    If you look at the list of available props for TextField:

    InputProps - object - Properties applied to the Input element.