@import호출(Import on Steroids)- 중첩
@import - 스타일 모듈 관리 (Manage Style Modules)
- 변수(Variables, $)
- !defult, !global, !optional
- sass 내장함수
- 데이터 유형 (Data Type)
@import 호출(Import on Steroids)
- CSS 뿐만 아니라
*.scss,*.sass파일을@import문을 사용하여 호출 - scss, sass 확장자의 경우는 생략 가능하며 css 확장자는 필히 명시
- 여러 개의 파일을 불러들일 때는 콤마(,)로 불러올 수 있으나, 명시적 표기를 위해 권장하지는 않는다
- import구문이 파일 중간에 있어도 에러가 나지 않는다
@import layout
@import variables
@import media-quries
// 명시적 표기를 위해 권장하지 않는다.
@import layout, variables, media-quries
중첩 @import
@import를 선언 구문 내부에 사용하면 별도로 분리된 파일에서 코드를 불러와 진다. (선택자 상속)
// _button.sass
$space: 50px !default
$pink: #FF0099 !default
.button
padding: $space
border: none
background: $pink
// style.sass
.buldack
$space: 40px
$pink: null
width: 200px
@import "button"
.buldack {
width: 200px;
}
.buldack .button {
padding: 40px;
border: none;
background: #FF0099;
}
스타일 모듈 관리(Manage Style Modules)
- Sass에서는 각각의 역할을 분리하여 필요에 따라 재사용할 수 있도록 모듈 관리하는 것이 가능.
- 관리가 무척이나 쉬워진다.
- 작은 단위로 쪼개면 조립하기 쉽다.
// 라이브러리: Libraries
@import compass
@import public/config
@import public/reset
@import shared/avantgarde
@import public/mixins
@import public/sprites
@import shared/payment_types
// 타이포그래피: Typography
@import public/type_styles
@import public/type_layout
@import public/links
@import public/pagination
변수(Variables, $)
- PHP변수처럼 $이름값을 설정한 후, 값을 참조하여 적용 가능.
- 호이스팅 개념이 없다. 변수는 맨위 상위에 선언해야 한다.
- Sass 변수는 변수 이름 앞에 ‘$’ 기호를 붙인다.
- 변수 이름 사이에 공백을 사용하지 않는다.
- 변수 이름의 음절 사이에
_,-등을 사용한다. - camelCase 방식의 이름을 사용할 수도 있다. 다만, camelCase 표기식은 일반적으로 함수 이름에 사용되기 때문에 권장하지는 않는다.
!defult, !global, !optional Flag
!default변수를 설정한 후, 초기값을 지정 할 수 있다.!global변수에 선언을 전역변수로 선언이 된다.!optional@extend 오류 발생시, 오류가 발생되지 않도록 설정하는 옵션이다.
sass 내장함수
floor()내림함수round()반올림 함수ceil()올림 함수unquote()따옴표 제거 함수abs()절대값 표시 함수percentage()퍼센트 변경 함수
데이터 유형(Data Type)
Sass는 6가지(Null, Number, String & Color, Boolean, list, map) 데이터 형을 지원.
- Numbers: 숫자형
1.2, 3, 14px - Nulls: 비어있음
null - Strings & Colors: 문자형
“../images/icon.jpg”|‘Times New Roman’|Verdana|lightblue|#fe4940 - Booleans: 논리형
(참, 거짓) true, false - Lists: 공백, 콤마(,)로 구분되는 목록 (Javascript 배열과 유사), 관련 함수
1.5em 1em 0 2em|2px solid gray|Helvetica, Sans-Serif - Maps: ‘키:값’’ 으로 구성된 그룹 (Javascript 객체와 유사), 관련 함수로 값을 얻을 수 있습니다.
$map: (key1: value1, key2: value2)