MUI theme 적용
- 사용될 컬러를 일정하게 맞추고 싶어서 style/theme.ts 파일을 만들어서 createTheme안에 컬러를 미리 정해서 셋팅
- Typography 글꼴 크기를 반응형으로 만들기 위해 MUI에서 제공하는 responsiveFontSizes() helper를 사용
import { red } from "@mui/material/colors";
import { createTheme, responsiveFontSizes } from "@mui/material/styles";
const theme = responsiveFontSizes(
createTheme({
palette: {
...
},
}),
);
export default theme;
------------------------------------------------
...
root.render(
<React.StrictMode>
<ThemeProvider theme={theme}>
<BrowserRouter>
<CssBaseline />
<App />
</BrowserRouter>
</ThemeProvider>
</React.StrictMode>,
);
https://mui.com/material-ui/customization/typography/#responsive-font-sizes
공통 컴포넌트 만들기
- 특정 구간이 아닌 전반적으로 사용되는 요소들은 공통 컴포넌트로 분류
- 일반버튼, 큰버튼, 텍스트필드, 프로필이미지, 책이미지
- 최대한 중복되는 코드를 피하기 위해 되도록이면 같은 요소를 활용 하려고 했고 props로 요소의 value나 size를 받아서 재사용하기 쉽도록 하려 노력했음
- 요소를 여러개 만드는 것보다는 한개를 만들어 놓고 약간의 props를 줘서 변형해서 쓰는게 좋다고 생각해서 이렇게 작업하긴 했는데 너무 어거지로 맞추려고 했나 싶기도 함
- HeaderBar와 Footer가 들어가는 MainLayout과 단순 로그인, 회원가입 화면을 위한 SubLayout을 나누어서 router 설정에서 적용해주었음(<Outlet />사용)
- Layout은 폴더를 따로 뺄까 했는데 좀 애매한 것 같아서 그냥 common 폴더에 몰아둠
메인 UI 냅다 그리기
- 만들어둔 공통컴포넌트를 활용해서 메인 페이지의 UI를 일단 냅다(?) 그려봄
- 중복되는 것들은 이제 별개의 컴포넌트로 쪼개 주어야 하는데 어느 정도 단위로 쪼개야할지,,, 고민이 됨
- 아예 요소를 만들어 놓고 조립하는 식으로 할까 했는데 일단은 전체 구조가 파악되어야 할 것 같아서 MainPage내에서 쭉 작성해보았음
로그인 및 회원가입 UI
- SubLayout으로 감싸져 있는 LoginPage와 JoinPage는 들어가는 요소가 많지 않아서 공통 컴포넌트 가져다가 뚝딱뚝딱 만듬
- TextField의 색깔을 변경하는 과정에서 선택자(?)를 어떻게 써야할지 몰라서 어려웠음
- 이전에 공부할때 styled-component를 써왔어서 일단 익숙한 styled api를 가져다가 썼음
- 시간 여유가 되면 css함수를 적용해볼 예정
const StyledTextField = styled(TextField)`
margin-top: 25px;
& label {
color: ${theme.palette.text.primary};
}
& label.Mui-focused {
color: ${theme.palette.text.primary};
}
& .MuiOutlinedInput-root {
& .Mui-focused fieldset {
border-color: ${theme.palette.text.secondary};
}
}
`;
2023년 10월 12일 진행상황
- themeProvider 설정 완료
- 추후에 팀원들과 상의해서 컬러나 폰트스타일을 수정할 필요가 있음
- fe/common : 공통 컴포넌트 만들기 완료
- fe/login, fe/join : 로그인 및 회원가입 UI만 작업함
- form 관련 로직 작성 필요
- fe/main : 메인 UI 작업함
- 컴포넌트 쪼개기 필요(props 고려하기)
어려웠던 점
- MUI에서 요소를 가져다 쓰는 것 까지는 어렵지 않은데 내가 원하는 스타일로 커스터마이징 하는게 어려웠다.
- emotion의 사용법을 잘 모르는 상태에서 MUI와 함께 쓰려고 하니 더 어려웠다. 공부가 필요한 부분이다.
- git branch 다루는게 아직 어렵다😥 VScode에서 gui로 commit push를 했더니 브랜치가 분기되지 않고(git graph로 확인했을때) 자꾸 하나로 합쳐져서 뭐지 싶었는데 아마 자동으로 rebase가 되었던 것 같다.(정확하진않다)
- 종종 내가 있는 branch가 어디인지 헷갈린다. 처음 conflict가 났을 때는 너무 당황해서 그냥 내가 썼던 코드를 조금 날리고 다시 뒤로 돌아와서 작업했다.
- 영어공부,,, 절실,,,히,,, 필요,,, 😣
- 컴포넌트를 쪼갤 때는 데이터의 흐름이나 메소드도 생각해야해서 많이 어렵다.
할일
- fe/login, fe/join : form 관련 로직 작성
- fe/main : 컴포넌트 쪼개기 및 추가/수정 UI 작성
- HeaderBar Menu들 Link 설정
'소북소북(2023~2024)' 카테고리의 다른 글
2023-10-15 소북소북 | UI 마무리 단계, 혼란스러운 Type 정의 (0) | 2023.10.15 |
---|---|
2023-10-14 소북소북 | 공통 컴포넌트 정리 및 브랜치 정리, 이미지 업로드 (0) | 2023.10.14 |
2023-10-11 소북소북 | 프로젝트 구조 셋팅 및 이름 선정 (0) | 2023.10.11 |
2023-10-04 소북소북 | 프로젝트 셋팅 (0) | 2023.10.11 |
2023-10-03 소북소북 | 주제 선정 및 요구사항 정의서 작성, 화면 스케치 (0) | 2023.10.11 |