[ToyProject-Todomate] ํˆฌ๋‘๋ฉ”์ดํŠธ ํด๋ก  ํ”„๋กœ์ ํŠธ 06

2021. 12. 9. 00:54ใ†WEB Dev/ToyProject

728x90


๐Ÿ”ท 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์— ๋„์ „ํ•ด๋ณผ ๊ณ„ํš์ด๋‹ค..!!!! ๋ฌด์„ญ๋‹ค!!! ๋–จ๋ฆฐ๋‹ค!!!

728x90