import React from 'react'; import { createStyles, fade, Theme, ThemeProvider, withStyles, makeStyles, createMuiTheme, } from '@material-ui/core/styles'; import InputBase from '@material-ui/core/InputBase'; import InputLabel from '@material-ui/core/InputLabel'; import TextField, { TextFieldProps } from '@material-ui/core/TextField'; import FormControl from '@material-ui/core/FormControl'; import { green } from '@material-ui/core/colors'; import { OutlinedInputProps } from '@material-ui/core/OutlinedInput'; const CssTextField = withStyles({ root: { '& label.Mui-focused': { color: 'green', }, '& .MuiInput-underline:after': { borderBottomColor: 'green', }, '& .MuiOutlinedInput-root': { '& fieldset': { borderColor: 'red', }, '&:hover fieldset': { borderColor: 'yellow', }, '&.Mui-focused fieldset': { borderColor: 'green', }, }, }, })(TextField); const BootstrapInput = withStyles((theme: Theme) => createStyles({ root: { 'label + &': { marginTop: theme.spacing(3), }, }, input: { borderRadius: 4, position: 'relative', backgroundColor: theme.palette.common.white, border: '1px solid #ced4da', fontSize: 16, width: 'auto', padding: '10px 12px', transition: theme.transitions.create(['border-color', 'box-shadow']), // Use the system font instead of the default Roboto font. fontFamily: [ '-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', 'Roboto', '"Helvetica Neue"', 'Arial', 'sans-serif', '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"', ].join(','), '&:focus': { boxShadow: `${fade(theme.palette.primary.main, 0.25)} 0 0 0 0.2rem`, borderColor: theme.palette.primary.main, }, }, }), )(InputBase); const useStylesReddit = makeStyles((theme: Theme) => createStyles({ root: { border: '1px solid #e2e2e1', overflow: 'hidden', borderRadius: 4, backgroundColor: '#fcfcfb', transition: theme.transitions.create(['border-color', 'box-shadow']), '&:hover': { backgroundColor: '#fff', }, '&$focused': { backgroundColor: '#fff', boxShadow: `${fade(theme.palette.primary.main, 0.25)} 0 0 0 2px`, borderColor: theme.palette.primary.main, }, }, focused: {}, }), ); function RedditTextField(props: TextFieldProps) { const classes = useStylesReddit(); return ( } {...props} /> ); } const useStyles = makeStyles((theme: Theme) => createStyles({ root: { display: 'flex', flexWrap: 'wrap', }, margin: { margin: theme.spacing(1), }, }), ); const ValidationTextField = withStyles({ root: { '& input:valid + fieldset': { borderColor: 'green', borderWidth: 2, }, '& input:invalid + fieldset': { borderColor: 'red', borderWidth: 2, }, '& input:valid:focus + fieldset': { borderLeftWidth: 6, padding: '4px !important', // override inline-style }, }, })(TextField); const theme = createMuiTheme({ palette: { primary: green, }, }); export default function CustomizedInputs() { const classes = useStyles(); return (
Bootstrap ); }