sass 조각모음집

SWP·2022년 5월 4일
0

확장자 module.scss??

  • SASS는 들여 쓰기+줄 바꿈 형식, SCSS는 중괄호+세미콜론 형식
    SCSS가 CSS와의 호환성이 더 좋고 사용자도 많음
  • 코드의 재활용성을 올리고, 가독성을 올리는 등 CSS에서 보이던 단점을 보완하고, 개발의 효율을 올리기 위해 등장한 개념이 SASS/SCSS라고 합니다.
    +코드 중복(Nesting)을 줄일 수 있다.
    +변수를 사용 할 수 있기 때문에 자주 쓰는 색상이나 포지션을 설정하면 된다.
    +조건문과 반복문
    +Import (모듈)
    +Mixin
    +Extend/Inheritance 상속 및 확장도 할 수 있다.
  • 리액트 프로젝트에서 컴포넌트를 스타일링 할 때 CSS Module 이라는 기술을 사용하면, CSS 클래스가 중첩되는 것을 완벽히 방지할 수 있습니다.
    https://gareen.tistory.com/39

문법 scss

// styles/mixins/_position.scss
@use 'sass:list';

@mixin position($position, $box-edge-values) {
  position: $position;
  $box-edge-values: _unpack-shorthand($box-edge-values);
  $offsets: (
    top: list.nth($box-edge-values, 1),
    right: list.nth($box-edge-values, 2),
    bottom: list.nth($box-edge-values, 3),
    left: list.nth($box-edge-values, 4),
  );

  @each $offset, $value in $offsets {
    @if _is-length($value) {
      #{$offset}: $value;
    }
  }
}
// styles/mixins/_flexbox.scss
$FLEX_MAP: (
  'around': space-around,
  'between': space-between,
  'center': center,
  'end': flex-end,
  'start': flex-start,
  'stretch': stretch,
);

@function _getFlexValue($key) {
  @return map-get($FLEX_MAP, $key);
}

@mixin flexbox($jc: center, $ai: center) {
  display: flex;
  align-items: _getFlexValue($ai);
  justify-content: _getFlexValue($jc);
}

@mixin inlineFlexbox($jc: center, $ai: center) {
  display: inline-flex;
  align-items: _getFlexValue($ai);
  justify-content: _getFlexValue($jc);
}

키워드

#{}

선택자나 속성은 일반 변수로는 처리가 불가능하다.
이를 처리하기 위해서 문자보간을 사용하는데, #{}를 사용하면 코드의 어디든지 변수값을 넣을 수 있다.

https://abcdqbbq.tistory.com/82

@mixin

자주 만드는 ui컴포넌트를 코드의 css꾸러미를 재사용가능하게 패키징

@mixin 이름 () {css코드복붙}
호출할 땐 파일 import하고 코드가 있어야할 위치에 @include 이름()
()안엔 바꾸고 싶은 값

@each

for은 숫자밖에 반복이 안됨 _ 더 범용적

@use 'sass:list';

cx

classNames 모듈?

https://gareen.tistory.com/39

사용법
![](https://velog.velcdn.com/images/wkqkel/post/508a953f-71d4-4534-b473-3deed9d8a708/image.png

profile
잘하고싶다...

0개의 댓글