ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Sass란?
    카테고리 없음 2021. 4. 26. 18:46

    아래는 Sass 공식 홈페이지의 가이드(sass-lang.com/guide)를 발췌 번역하고 생활코딩(opentutorials.org/module/237/2489)의 설명을 일부 참고해 정리한 글입니다.


    - 프로젝트 규모가 커지면 HTML 요소를 꾸며주는 선택자(selector)가 중복되면서 유지 보수에 비효율이 발생하는데 이를 보완해주는 것이 바로 전처리기(preprocessor)다.

    - 대표적인 전처리기로는 Less, Sass(SCSS), Stylus가 있다.

    - Sass(Syntactically Awesome Style Sheets)는 2006년에 등장해 성숙도와 사용도가 높은 편이다. 

    - Sass엔 CSS엔 없는 변수(variables), 중첩(nesting), 재사용(mixins), 상속(inheritance) 등의 문법이 있다.

    - Sass를 설치하고 Sass 명령어를 이용해 브라우저가 읽을 수 있는 CSS로 컴파일해서 사용한다.

    - Sass 파일의 확장자는 .scss다. 

    - SCSS는 Sass 3버전부터 추가된 CSS 상위집합(Superset)으로 CSS와 거의 같은 문법으로 Sass 기능을 지원하며 Sass와 { } ; 유무에 차이가 있다.

    - Sass는 { } ;를 사용하지 않아 가독성이 좋고 간결하며 SCSS는 CSS 문법과 유사하여 코드 통합이 쉽다.

     


    --watch 명령어를 이용하면 .scss 파일을 수정, 저장할 때마다 해당 소스 파일을 확인하여 CSS로 재컴파일한다.

    app/sass 폴더에 있는 모든 수정 파일을 확인해 CSS로 컴파일한 뒤 public/stylesheets 폴더에 저장하는 예시


    변수(Variables)

    color나 font 등 CSS에서 재사용하려는 값을 저장하는 곳. 

    $ 표시를 이용해 변수로 만든다. 

    아래 예시처럼 Sass 처리기에서 $font-stack, $primary-color 변수에 값을 정의하면 CSS에서 컴파일되어 쓰인다.

     


    중첩(Nesting)

    CSS는 HTML과 달리 시각적 위계가 분명하지 않다.

    Sass를 거치면 CSS 선택자를 HTML처럼 부모(조상), 자식(자손) 관계가 드러나게 쓸 수 있다.

    중첩이 과하면 오히려 유지, 보수가 어려울 수 있다는 걸 명심하자.

    아래 예시를 보면 조상 Sass에선 CSS와 달리 nav를 한 번만 적어주고도 들여쓰기로 위계가 적용된다.

     

    사이트 내비게이션의 전형적인 CSS 코드 예


    파일 분할(Partials)

    CSS 코드 조각이 담긴 부분 Sass 파일을 만들어 다른 Sass 파일 안에 포함시킬 수 있다.

    CSS를 모듈화하고 유지 보수가 용이해지는 방법.

    가령 _partials.scss처럼 scss 파일명 앞에 _ 붙으면 Sass가 부분 파일이라고 판단해 CSS 파일로 바꾸지 않는다.

    Sass 부분 파일은 @use 문법과 쓰인다. 

     


    모듈(Modules)

    Dart Sass만 @use 문법을 지원 / Ruby Sass, LibSass는 @import 문법을 써야 함

    한 파일 안에 Sass를 전부 쓸 필요 없이 @use 키워드로 모듈처럼 필요한 변수, 함수, mixins만 불러와 쓸 수 있다.

     


    재활용(Mixins)

    mixin은 CSS 선언 그룹을 사이트에 고루 재사용하고 싶을 때 쓴다.

    mixin 사용의 좋은 예: 벤더 픽스

    SCSS는 @mixin , @include

    Sass는 =, +

     


    확장/상속(Extend/Inheritance)

    @extend 키워드를 쓰면 선택자(selector) 간에 CSS 속성(property)을 공유할 수 있다.

    SCSS
    /* .message .success .error .warning 선택자는 모두 %message-shared를 상속받아 적용됨
    (%equal-heights는 상속되지 않아 적용되지 않음) */
    
    %message-shared {
      border: 1px solid #ccc;
      padding: 10px;
      color: #333;
    }
    
    %equal-heights {
      display: flex;
      flex-wrap: wrap;
    }
    
    .message {
      @extend %message-shared;
    }
    
    .success {
      @extend %message-shared;
      border-color: green;
    }
    
    .error {
      @extend %message-shared;
      border-color: red;
    }
    
    .warning {
      @extend %message-shared;
      border-color: yellow;
    }
    CSS
    .message, .success, .error, .warning {
      border: 1px solid #ccc;
      padding: 10px;
      color: #333;
    }
    
    .success {
      border-color: green;
    }
    
    .error {
      border-color: red;
    }
    
    .warning {
      border-color: yellow;
    }

    연산자(Operators)

     +, -, *, /, % 연산자를 이용하여 px을 %로 나타낼 때 특히 유용하게 쓴다.


    Sass 설치

    rubyinstaller.org/downloads/

     

    Downloads

    Which version to download? If you don’t know what version to install and you’re getting started with Ruby, we recommend that you use the Ruby+Devkit 2.7.X (x64) installer. It provides the biggest number of compatible gems and installs the MSYS2 Devkit

    rubyinstaller.org

Designed by Tistory.