마진(margin)의 개별 속성을 빠르게 설정할 때 사용하는 믹스인입니다.
.usage {
@include margin(l 20 r 24 y 10);
}
위 예시 코드는 아래의 CSS로 컴파일 되어 출력됩니다.
.usage {
margin-top: 10px;
margin-right: 24px;
margin-bottom: 10px;
margin-left: 20px;
}
믹스인에 설정 가능한 속성 키워드 및 값 유형
@mixin margin($args...) {
@if length($args) == 0 {
@error 'margin() 믹스인은 margin 속성의 설정 방향 top, right, bottom, left와 값을 연이어 전달 받을 수 있습니다. 뿐만 아니라 x, y 방향으로 속성을 일괄 설정 가능합니다.';
}
@each $value in $args {
$type: type-of($value);
@if $type == 'number' or $type == 'string' {
margin: get-number-or-string($value);
}
@if $type == 'list' {
@if is-include-items($value, top t) {
margin-top: get-number-or-string(
get-match-value-of-keys($value, top t)
);
}
@if is-include-items($value, right r) {
margin-right: get-number-or-string(
get-match-value-of-keys($value, right r)
);
}
@if is-include-items($value, bottom b) {
margin-bottom: get-number-or-string(
get-match-value-of-keys($value, bottom b)
);
}
@if is-include-items($value, left l) {
margin-left: get-number-or-string(
get-match-value-of-keys($value, left l)
);
}
@if is-include-items($value, x) {
$x-value: get-value-after-key($value, x);
margin-left: get-number-or-string($x-value);
margin-right: get-number-or-string($x-value);
}
@if is-include-items($value, y) {
$y-value: get-value-after-key($value, y);
margin-top: get-number-or-string($y-value);
margin-bottom: get-number-or-string($y-value);
}
}
}
}
믹스인에 사용된 Sass의 빌트인 모듈은 다음과 같습니다.
믹스인에 사용된 자체 제작 모듈은 다음과 같습니다.