리액트 material ui 적용하기
creact-react-app
creact-react-app 를 통해 프로젝트 생성
npm create-react-app my-app
cd my-app
npm start
scss 사용
node-sass
설치
npm i node-sass
scss 파일 import
App.js
//App.css -> App.scss
//scss 파일로 변경후 불러와서 적용
import './App.scss';
다른 scss 파일 import
App.scss
//songs.scss
$themeColor : blue;
p{
color: $themeColor;
}
@import 'songs';
material ui 적용
@material-ui/core
설치
npm install @material-ui/core
yarn add @material-ui/core
컴포넌트 import
//개별 import
import Button from '@material-ui/core/Button';
import Checkbox from '@material-ui/core/Checkbox';
//한 곳에서 import
import {Button, Checkbox, Radio} from '@material-ui/core';
컴포넌트 사용
contained primary Primary contained Secondary Secondary
//color 미설정시 기본은 secondary 컬러로 적용됨
테마 적용
App.js
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
import indigo from '@material-ui/core/colors/indigo';
import pink from '@material-ui/core/colors/pink';
import red from '@material-ui/core/colors/red';
const theme = createMuiTheme({
palette: {
primary: indigo,
secondary: pink,
error: red,
contrastThreshold: 3,
tonalOffset: 0.2,
},
});
ReactDOM.render(<MuiThemeProvider theme={theme}><App /></MuiThemeProvider>, document.getElementById('root'));
package.json
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^3.9.2",
"node-sass": "^4.11.0",
"react": "^16.8.3",
"react-dom": "^16.8.3",
"react-scripts": "2.1.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}