-
Notifications
You must be signed in to change notification settings - Fork 0
Code Convention
Kyeong Hoon Chu edited this page Jun 26, 2022
·
1 revision
HTML / CSS / JS 모두 들여쓰기는 4**칸(프리티어)**입니다.
[기능-용도]
ex)
서치용 헤더 > .header-search
sns 리스트 > .list-sns
랭귀지선택 버튼 > .btn-lang
- [W3C validator](https://validator.w3.org/)를 통과할 수 있도록 웹 표준에 맞게 작성
- 시맨틱 태그 사용 및 접근성을 고려하도록 노력하기
1. display
1.1 justify-content
1.2 align-items
1.3 기타 flex, grid 관련 속성들...
2. overflow
3. float
4. position
4.1 top / bottom / left / right
4.2 z-index
4.3 transform
5. width / height
6. padding / margin
7. border
8. background
9. color / font
10. animation
11. 기타
- 작은 따옴표 사용
.container {
color: 'red';
}
- url() 안에 경로는 따옴표 사용하지 않음
@import url(https://www.google.com/css/maia.css);
-
@charset "UTF-8"
과 같은 경우에만 큰따옴표 사용
@charset "UTF-8"
- ES6+ 문법 사용
- var 금지
- 세미콜론 필수
- 작은 따옴표 사용
- 일반적인 변수, 함수: camelCase
let myVar = 1;
const myArr = [1, 2, 3];
function myFunction() {
}
- 상수: UPPER_SNAKE_CASE
const MAX_NUM = 10;
- 생성자 함수, 클래스: PascalCase
function MyFunction(title) {
}
class MyClass {
}
-
styled-components 사용
[[회고] Styled-Components를 사용하며](https://velog.io/@sonic/%ED%9A%8C%EA%B3%A0-Styled-Components%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%A9%B0#03-%ED%98%BC%ED%95%A9-%EB%84%A4%EC%9D%B4%EB%B0%8D)
-
혼합 네이밍 방식 사용
위의 두 방식을 혼합한 방식으로 스타일만 가지고있는 태그들은 className을 이용해 네이밍하고, 상태를 가지고있는 태그들은 스타일 컴포넌트를 이용해 네이밍하는 방식이다.
// MainPage/index.jsx
const MainPage = () => {
return (
<MainPageLayout>
<header className="header">
<h2 className="header__title">메인 페이지</h2>
<nav className="nav">
<ul claName="nav__list">
// 상태값을 가지는 태그는 스타일 컴포넌트로 분리
<NavItem active>홈</NavItem>
<NavItem>메뉴1</NavItem>
<NavItem>메뉴2</NavItem>
</ul>
</nav>
</header>
<div className="content">
<SlideContent className="content__list">
<li className="content__item">1</li>
<li className="content__item">2</li>
<li className="content__item">3</li>
</SlideContent>
</div>
<footer className="footer">
하단 내용
</footer>
</MainPageLayout>
)
}
// MainPage/styles.js
export const NavItem = styled.li`
color: ${({active}) => active ? 'blue' : '#fff'};
`;
export const MainPageLayout = styled.div`
.header {
.header__title {}
.nav {
.nav__list {}
}
.content {}
.footer {}
}
`;
1) 최상위 부모
-
'컴포넌트명'Layout
이란 이름으로 생성
2) 최상위 부모의 자식 (최상위 부모의 바로 하위 요소) (flex 사용시)
-
'컴포넌트명'Row
or'컴포넌트명'Col
이란 이름으로 생성 (Box, Section 금지) -
Row
는 가로,Col
은 세로!- 둘 다 실제 태그는 div여도, css로 flex-direction등을 변경해서 가로 or 세로를 변경해주면?
- flex-direction이 row 라면
Row
, column 이라면Col
- 최상위 부모가 대분류의 느낌이라면, 이 요소는 소분류의 느낌
3) 나머지 요소들
- 네이밍 예시 (예시일뿐! 특정 태그의 의미와 부합된다면 됨!)
-
div 태그:
'컴포넌트명'Box
(Wrapper 대신 Box 라는 이름을 사용해주세요!) -
section 태그:
'컴포넌트명'Section
-
ul 태그:
'컴포넌트명'List
-
li 태그:
'컴포넌트명'Item
-
p 태그:
'컴포넌트명'Paragraph
-
span 태그:
'컴포넌트명'Span
-
div 태그:
-
Styled~~
이러한 형식으로 앞에 Styled가 들어가는 것은 NO!
4**)** 참고
- 예시 html
<div> <!-- 1. Layout -->
<div> <!-- 2. Row / Col (optional) -->
<div> <!-- 3. Box -->
<ul> <!-- 3. List -->
<li> <!-- 3. Item -->
<span>Text</span> <!-- 3. Text -->
</li>
</ul>
</div>
</div>
<div> <!-- 2. Row / Col (optional) -->
<div> <!-- 3. Box -->
<ul> <!-- 3. List -->
<li> <!-- 3. Item -->
<span>Text</span> <!-- 3. Text -->
</li>
</ul>
</div>
</div>
</div>
-
예시 이미지
- HTML: kebab-case
- CSS: kebab-case
- JS: camelCase
- React
- component: PascalCase
- style: camelCase
수정하기 전에 git pull
먼저 한 다음에 수정해주세요.
**git add .
하지말고 수정한 파일 add 해주세요!!**
풀리퀘 한 다음 코멘트 3명 달리는 거 확인하신 후, 각자 머지 진행해주세요.
- Feat : 새로운 기능 추가
- Fix : 버그 수정
- Docs : 문서 수정
- Style : 스타일 추가 및 수정
- Edit : 주석, 공백, 세미콜론 등 코드 미세 수정
- Refactor : 코드 리팩토링
- Perf : 성능 개선
- Test : 테스트 추가
- Chore : (코드의 수정 없이) 설정을 변경, 빌드 과정 또는 보조 기능(문서 생성기능 등) 수정