레이아웃이 필요한 이유
- 프로젝트의 기본적인 화면 구조를 잡는다.
- 반복적으로 들어가야 하는 헤더, 푸터 등을 매 화면마다 제공한다.
- 상황과 필요에 따라 레이아웃이 변경될 수 있도록 대비한다.
global style
- global = 프로젝트 전체에 적용 = 프로젝트에 일관된 스타일링을 적용
- "user agent stylesheet"로 표시되는 브라우저의 기본 스타일이 차이를 만든다.
- 브라우저 간의 스타일 차이를 극복하기 위해 사용
에릭마이어 reset.css
https://meyerweb.com/eric/tools/css/reset/
모든 스타일을 0으로 reset
💢h1, h2...h6까지 모두 똑같아짐 |
normalize.css
https://github.com/necolas/normalize.css
각 element의 고유한 속성을 유지하며 기기간, 브라우저간의 차이를 줄이는 것이 목적
sanitize.css
https://csstools.github.io/sanitize.css/
normalize의 발전된 버전
개선된 브라우저의 디폴트 스타일을 살리는 쪽으로 사용
yarn add sanitize.css --save
sanitize.css는 where 셀렉트를 통해서 평준화 작업을 한다.
where 셀렉터는 중복작성을 위한 헬퍼 셀렉터라고 생각하면 된다.
css-in-js가 필요한 이유
- 전역 충돌
- 의존성 관리 어려움
- 불필요한 코드, 오버라이딩
- 압축
- 상태 공유 어려움
- 순서와 명시도
- 캡슐화
yarn add styled-components
theme 사용 이유
- UI, UX의 일관성 유지
- 유지보수가 용이
- 확장성
- 재사용성
- 사용자 정의
테마 스위처 Context API
- 사용자는 토글 UI를 통해 웹사이트의 색상 테마를 바꿀 수 있다.
- 색상 테마는 전역상태로 존재한다.
- 사용자가 선택한 테마는 로컬스토리지에 저장한다.
'공부 > 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)' 카테고리의 다른 글
프로젝트: React(TypeScript) 기반의 동적 UI 개발(4)-React Router<Link to='/'>, CORS (1) | 2024.11.14 |
---|---|
프로젝트: React(TypeScript) 기반의 동적 UI 개발(3) (0) | 2024.11.12 |
프로젝트: React(TypeScript) 기반의 동적 UI 개발(1)-cra.vite차이 (1) | 2024.11.09 |
프론트엔드 심화: 상태 관리와 비동기 처리(4)-@hello-pangea/dnd (0) | 2024.11.09 |
프론트엔드 심화: 상태 관리와 비동기 처리(3) (1) | 2024.11.06 |