2021. 12. 9. 00:54ใWEB Dev/ToyProject
๐ท CloneTodo โ - Todomate Clone Project | Team CloneMate
CloneTodo : ๋ง์ ์ฌ๋๋ค์ด ์ฌ๋ํ๋ ํฌ๋๋ฉ์ดํธ๋ฅผ ํด๋ก ํ์ฌ ์น ์๋น์ค๋ฅผ ๋ฐฐํฌํด๋ณด๋ ํ๋ก์ ํธ
์ด์ ๋ MUI๋ฅผ ์ด์ง ๋ง๋ดค๋ค! ์ค๋์ MUI๋ฅผ ์ด์ฉํด์ ๋ก๊ทธ์ธ ํ๋ฉด์ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค.
๋ก๊ทธ์ธ ์ปดํฌ๋ํธ๋ฑ์ ๋ฐ๋ก ์ ๊ณตํ๋๊ฒ ๊ฐ์ง๋ง, ํ๋ฉด ๋ง๋ค๊ธฐ๋ง ๋ง๋ณด๊ธฐ ์ํด inputbox ๋ ๊ฐ์ ๋ฒํผ์ผ๋ก ๋ก๊ทธ์ธ ํ๋ฉด ๋น์ค๋ฌด๋ฆฌํ๊ฒ ํ๋ด๋ด๋ณผ๊ณํ์ด๋ค.
์ค์ todomate ํ๋ฉด์ ์ด๋ ๊ฒ ์๊ฒผ๋ค.
ํ๋จ์ ์์ํ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด ์์์ ๊ณ์ ์ฒ๋ผ ๋ฐ๋ก ํฌ๋๋ฉ์ดํธ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๊ณ , ๋ก๊ทธ์ธ์ ๋๋ฅด๋ฉด ๊ฐ์ ํ๊ธฐ๋ฅผ ๋๋ฌ ์งํํ ์ ๋ณด๋ก ๋ก๊ทธ์ธ์ ํ ์ ์๋ ํ๋ฉด์ด ๋ฌ๋ค.
์ฐ์ ์ด ๋ฉ์ธ ํ๋ฉด์ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋ค.
App.js ์ปดํฌ๋ํธ ์์ ์ด๋ฏธ์ง๋ฅผ ์ค์ ๋ฐฐ์นํ๊ณ , ํ๋จ์ h1ํ๊ทธ์ h3 ํ๊ทธ๋ฅผ ์ด์ฉํด ์ ๋ชฉ๊ณผ ๋ถ์ ๋ชฉ์ ์์ฑํ ๋ค์
๋ฒํผ ๋ ๊ฐ๋ฅผ ๋ถ์ฌ ์์ํ๊ธฐ(์ฐ๋ฆฌ๋ ๊ฐ์ ํ๊ธฐ๋ก ๋ณ๊ฒฝํ ๊ณณ)์ ๋ก๊ทธ์ธ ๋ฒํผ์ ๊ตฌํํ๋ ค๊ณ ํ๋ค.
๊ฐ๊ฐ์ ๋ฒํผ์๋ Link๋ฅผ ์ด์ฉํด ๋ผ์ฐํ ์ ํด์ค์ผ ํ๋๋ฐ ์๊ฒ๋ ์๊ฐ์ด ํ๋ฝํ๋ค๋ฉด ํด๋ด์ผ๊ฒ ๋ค.
์ฐ์ ์ด๋ฏธ์ง๋ฅผ ๊ณ ํ์ง๋ก ๋ฐ์์ public์ images ํด๋์ ๋ฃ์ด์ฃผ๊ณ import๋ก ์ฒจ๋ถ๋ฅผ ํ๋ ค๊ณ ํ๋๋ฐ,
์ด๋ฌํ ์๋ฌ๊ฐ ๋ด๋ค. src ์ธ๋ถ์์๋ ํ์ผ์ ๊ฐ์ ธ์ฌ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋ก์ปฌ ๋ด์์ ์ด๋ฏธ์ง๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด ๋ญ๊ฐ ์์๊น ์ฐพ์๋ดค๋๋
../../์ผ๋ก ํด๋๋ฅผ ์ฐพ์๊ฐ๋๊ฒ ์๋๋ผ ๊ทธ๋ฅ public์ index๊ฐ HTML ํ์ผ์ ๋ ๋๋ง ํ๋ ๊ฒ์ด๋ฏ๋ก index.html ํ์ผ์ ๊ธฐ์ค์ผ๋ก ๊ฒฝ๋ก๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
๊ทธ๋ฆฌ๊ณ h1์ h3๋ก ํ๋จ์ ํ ์คํธ๋ฅผ ๋ฃ์ด์ค๋ค.
import '../stylesheets/App.css';
function App() {
return (
<div className="App">
<div className="header">
<img className="main_img" src="images/todomate.jpg" />
<h1>todo mate</h1>
<h3>ํ ์ผ์ ์์ฑ, ๊ณํ, ๊ด๋ฆฌํ์ธ์.</h3>
</div>
<div className="start_btn">
</div>
</div>
);
}
export default App;
์ด๋ ๊ฒ ํ๋ฉด ๊ทธ๋ด์ธํ ํ๋ฉด์ด ๋์จ๋ค.
ํฐํธ๋ ์ข ์์ ์ด ํ์ํ์ง๋ง ์ฐ์ ์ ์๋ ๋ฒํผ์ ์ฝ์ ํ๊ธฐ ์ํด MUI์ Button ์ปดํฌ๋ํธ ๋ฌธ์์ ๋ค์ด๊ฐ๋ค.
์ฐ์ button API๋ฅผ Import ํด์ค๋ค. ๋ ์ค์ ํ๋๋ง import ํ๋ฉด ๋๋ค.
import Button from '@mui/material/Button';
// or
import { Button } from '@mui/material';
๊ทธ๋ฆฌ๊ณ ์ปดํฌ๋ํธ๋ฅผ ๋ฃ์ด์ค๋ค. contained ๋ฒํผ์ ์ ํํ๋ค.
<Button variant="contained">Contained</Button>
๊ทธ๋ฆฌ๊ณ ์์์ ์ฌ์ฉํ๊ธฐ ์ํด createTheme ํจํค์ง์ Themeprovider ๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค.
๊ทธ๋ฆฌ๊ณ theme ์ด๋ผ๋ ๋ณ์์ createTheme๋ผ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ์์ ์์์ ์ ์ธํด์ฃผ๊ณ props๋ก ๋ฒํผ์ ์น์ด์ค๋ค.
import '../stylesheets/App.css';
import { Button } from '@mui/material';
import { ThemeProvider, createTheme } from '@mui/material/styles';
const theme = createTheme({
status: {
danger: '#e53e3e',
},
palette: {
primary: {
main: '#0971f1',
darker: '#053e85',
},
neutral: {
main: '#64748B',
contrastText: '#fff',
},
btn:{
main: '#f2f2f2',
contrastText: '#111',
},
},
});
function App() {
return (
<ThemeProvider theme={theme}>
<div className="App">
<div className="header">
<img className="main_img" src="images/todomate.jpg" />
<h1>todo mate</h1>
<h3>ํ ์ผ์ ์์ฑ, ๊ณํ, ๊ด๋ฆฌํ์ธ์.</h3>
</div>
<div className="start_btn">
<Button className="join_btn" variant="contained" color="btn" >๊ฐ์
ํ๊ธฐ</Button>
<Button className="signin_btn" color="btn" variant="contained" >๋ก๊ทธ์ธ</Button>
</div>
</div>
</ThemeProvider>
);
}
export default App;
๊ทธ๋ฆฌ๊ณ CSS๋ฅผ ์ด์ฉํด์ (๋์ค์๋ SCSS๋ก ๋ณ๊ฒฝํด๋ณผ๊น ํ๋๋ฐ..) ์์น๊ฐ๋ค์ ์กฐ๊ธ์ฉ ๋ง์ ธ์ฃผ๋ฉด..
์๋ฐ ๋์์ธ์ ํ๋ฉด์ ๋ง๋ ์ ์๋ค..! ์ค๋์ ๋๋ฌด ๋ฆ์ด์ ์ฌ๊ธฐ๊น์งใ ใ
๋ด์ผ์ ์ด ํ๋ฉด ๊ฐ์ง๊ณ pull request์ ๋์ ํด๋ณผ ๊ณํ์ด๋ค..!!!! ๋ฌด์ญ๋ค!!! ๋จ๋ฆฐ๋ค!!!
'WEB Dev > ToyProject' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 08 (0) | 2021.12.13 |
---|---|
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 07 (0) | 2021.12.10 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 05 (0) | 2021.12.08 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 04 (0) | 2021.12.06 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 03 (0) | 2021.12.06 |