코드의 재활용성을 올리고, 가독성을 올리는 등 CSS의 단점을 보완하고 개발의 효율을 올리기 위한 것
장점
- CSS보다 심플한 표기법, CSS를 구조화하여 표현
- Nesting, Mixin, selector등의 기능을 활용하여 CSS유지보수 편의성을 향상시킨다.
단점
- 전처리기를 위한 도구가 필요하다.
- 다시 컴파일 하는데 시간이 걸린다.
- class명을 일일히 정해주어야 된다.
$color: #ed5b8;
$borderRadius: 5px;
div {
background: $color;
border-radius: $borderRadius;
}
이런식으로 변수 선언 및 사용 가능합니다.
label {
padding: 3% 0px;
width: 100%;
cursor: pointer;
color: $colorPoint;
&:hover {
color: white;
background-color: $color;
}
셀렉터를 중첩하거나 속성을 중첩시켜 상위 요소를 참조하는 것이 가능.
HTML 태그 자체에서 속성 값을 줄일 수 있어 HTML 코드 가독성도 상승된다.
// common.scss
// colors
$color1: #ed5b46;
$color2: #f26671;
$color3: #f28585;
$color4: #feac97;
//style.scss
@import "common.scss";
.box {
background-color: $color3;
}
보통 스타일, 색상, 폰트등 className에 따라 작성해야 하는 경우에 쓴다.
컴포넌트 기반으로 CSS를 작성할 수 있게 도와주는 라이브러리
장점
단점 : 빠른 페이지 로드에 분리하다.
style component는 화면에 컴포넌트가 렌더링 되었는지 추적해 컴포넌트에 대한 스타일을 자동 삽입한다. 코드를 적절히 분배해 놓으면 최소한의 코드만으로 화면이 띄워질 수 있다.
styled-component는 스스로 className을 생성하기 때문에 className의 중복이나 오타로 인한 버그를 줄여준다.
Styled Component는 모든 스타일 속성이 특정 컴포넌트와 연결되어 있기 때문에 만약 컴포넌트를 더 이상 사용하지 않아 삭제할 경우 이에 대한 스타일 속성도 함께 삭제된다.
className을 일일이 수동으로 관리할 필요 없이 React의 props나 전역 속성을 기반으로 컴포넌트에 스타일 속성을 부여하기 때문에 간단하고 직관적이다.
컴포넌트에 스타일을 상속하는 속성을 찾아 다른 CSS 파일들을 검색하지 않아도 되기 때문에 코드의 크기가 커지더라도 유지보수가 어렵지 않다.
개별 컴포넌트마다 기존의 CSS를 이용하여 스타일 속성을 정의하면 될 뿐이다. 이외의 것들은 Styled Component가 알아서 처리해 준다.
SCSS와 Sass는 기능적으로는 유의미한 차이가 없으며, 문법적인 방식에 차이가 있다.
SCSS는 중괄호 {} 와 세미콜론 ;의 유무이다.