@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)