Bleeding edge

scss animation mixin 본문

HTML & CSS

scss animation mixin

codevil 2023. 10. 30. 02:25

css처럼 애니메이션을 바로 사용하게 된다면 scss에서는 문제가 발생한다. 이유는 애니메이션의 name이 바뀐다! 만일 animation이름을 fadeOut이라는 이름을 SnackBar에서 사용하면 애니메이션이름은 다음과 같이 바뀐다

.Snackbar_wrapper{
  animation-name: Snackbar_fadeOut__uuidexample;

}

scss에서는 애니메이션을 제외하고는 이름의 중복을 피해주는 sass 덕분에 편리하지만, 애니메이션에서 mixin을 사용하지 않으면 상당히 불편하다. 그래서 다음과 같은 mixin을 작성하였다.

mixin

@mixin animate($animation, $duration, $method, $times) {
  animation-name: $animation;
  animation-duration: $duration;
  animation-timing-function: $method;
  animation-iteration-count: $times;
}

 

 

이 mixin은 다음과 같이 사용할 수있다.

사용 예시

.example {
  @include animate(animationname, 1s, linear, infinite);
}

@keyframes animationname {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}