관리 메뉴

공부기록용

@mixin 변수의 기본값 오류?! 본문

💡깨달음💡/SASS(SCSS)

@mixin 변수의 기본값 오류?!

과부하가즈아 2024. 6. 23. 22:42

🧐mixin을 사용할 때도 함수처럼 인자를 전달해서 include시 사용할 수 있는데 인자에 기본값을 설정하면 사용시 따로 값을 전달하지 않으면 mixin생성시 작성한 인자의 순서에 관계없이 기본값이 적용된다고 한다. 근데 실제로 작성해보는데 계속 순서에 맞게 값이 들어가서 알맞는 값으로 들어가지 못해 제대로 된 적용이 되지 않았다.

 

난 우ㅐ,,,왜 안되지,,,,,,,,

// Variables
$color-white: #fff;
$color-black: #000;
$color-primary: #00BC70;
$font-size: 14px;

// 텍스트 스타일 믹스
@mixin text-style($font-size, $font-weight: 400, $color: $color-black) {
  font-size: $font-size;
  font-weight: $font-weight;
  color: $color;
}
p{
  @include text-style(12px, $color: $color-primary);
}

이렇게 됬을때 컴파일 결과가

p{
  font-size: 12px;
  font-weight: 400;
  color: #00BC70;
}

이렇게 되어야 하는데 

두번째 인자에 세번째 인자값으로 넣은 값이 들어가서 계속 오류가 났다. 구글링해도 다들 된다는데 나는 왜 안되지,,


🫡해결방안으로 정확한 값을 전달해줄 수 있도록 순서가 맞지 않거나 기본값을 사용해서 추가로 작성할 필요가 없다고 하면 인자에 값을 넣어주었다. 

p{
  @include text-style(12px, $color: $color-primary);
}

 

이유는,, 아직 알 수 없으나 명확하게 작성해서 좋기도 한거 같기도,,?

 

➕추가로 include로 만든 mixin을 사용할 때 기본값이 부여된 상태여야 이 역시도 오류가 안난다.  값이야 원하는 값으로 사용시에 넣어주면 되니까 이 역시도 당연한걸지두,,,,?

// Button Element Style Mixin
@mixin btn-style(
  $width: auto,
  $height: auto,
  $back-img: none,
  $back-color: none,
  $cursor: pointer
) {
  border: none;
  outline: none;
  width: $width;
  height: $height;
  background: $back-img no-repeat center center;
  background-color: $back-color;
  cursor: $cursor;
}

기본값이 있는 속성들이라면 그냥 그 기본값을 넣어놓으면 될 듯?

button{
  @include btn-style($height: 30px, $back-color: $color-white);
}

 

'💡깨달음💡 > SASS(SCSS)' 카테고리의 다른 글

Sass(SCSS) At-Rules(@extend)  (3) 2024.05.29
Sass(SCSS) At-Rules(@mixin, @include)  (0) 2024.05.27
Sass(SCSS) At-Rules(@import)  (0) 2024.05.24
Sass(SCSS)의 주석과 중첩  (0) 2024.05.22
Sass(SCSS) 시작하기  (0) 2024.05.22
Comments