Text Area in material-ui Text Area in material-ui javascript javascript

Text Area in material-ui


To make TextField work like a textarea you can use multiline prop. You can read more about TextFied and its props here.

Example

<TextField  placeholder="MultiLine with rows: 2 and rowsMax: 4"  multiline  rows={2}  rowsMax={4}/>

You can set rowsMax={Infinity} if you want to scale your multiline input box with your content (regardless of the content length).


We can use outlined multiline <TextField> for text area
and it could be implemented by creating a theme to apply globally anywhere inside <App/>

theme.js

import { createMuiTheme} from '@material-ui/core/styles';const theme = createMuiTheme({ overrides: {    MuiOutlinedInput: {        multiline: {            fontWeight: 'bold',            fontSize: '20px',            color: 'purple',            width: '50vw'        }    }}  });export default theme;

app.js

...import { ThemeProvider } from '@material-ui/core/styles';import Theme from './relevant-path-where-the-above-theme.js-file-is-saved/Theme';......render() {        return (      <ThemeProvider theme={Theme}>        <div className="App">             <Routes/>        </div>      </ThemeProvider>            );  }

SomeComponent.js

...<TextField  id="outlined-multiline-static"  label="Multiline"  multiline  rows={10}  variant="outlined"/>...

Now the style for outlined multiline <TextField> will be applied globallyenter image description here


You should use TextareaAutosize API available in material UI.

import TextareaAutosize from '@material-ui/core/TextareaAutosize';

or

import { TextareaAutosize } from '@material-ui/core';

The following example has all the attributes of TextareaAutosize:https://material-ui.com/components/textarea-autosize/

You can learn more about the difference between the two imports by reading this guide.