Sass (스타일시트 언어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Sass(Syntactically Awesome Stylesheets)는 햄프턴 캐틀린이 설계하고 나탈리 와이젠바움이 개발한 스타일시트 언어이다. 변수, 네스팅, 믹스인, 반복문, 상속 등의 기능을 제공하여 CSS 코드를 더욱 효율적으로 작성하고 관리할 수 있게 해준다. 현재 공식적으로 지원되는 구현체는 Dart 언어로 작성된 Dart Sass이며, libSass는 2020년 10월에 지원이 중단되었다. Sass는 다양한 IDE에서 지원되어 개발 편의성을 높인다.
더 읽어볼만한 페이지
- 2006년 개발된 프로그래밍 언어 - 파워셸
파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다. - 스타일시트 언어 - CSS
CSS는 마크업 언어로 작성된 문서의 스타일을 정의하는 스타일 시트 언어로서, 웹 페이지의 시각적 표현을 담당하며 디자인과 사용자 경험을 향상시키고, W3C에 의해 표준이 관리되며 다양한 프레임워크와 디자인 방법론을 가진다. - 스타일시트 언어 - XSL
XSL은 XML 문서의 스타일 정의 및 변환에 사용되는 언어로, XSLT, XPath, XSL-FO 등의 사양으로 구성되어 XML 문서 변환, 탐색, 서식 있는 출력 생성 기능을 제공한다. - 루비 (프로그래밍 언어) - 마츠모토 유키히로
마츠모토 유키히로는 루비 프로그래밍 언어를 창시하고 주요 개발자로 활동하며 MRI, mruby, streem 등 다양한 프로그래밍 언어 및 관련 기술 개발에 기여한 인물로, 오픈소스 소프트웨어 커뮤니티에 대한 공헌과 루비 온 레일즈의 성공으로 세계적인 인정을 받았다. - 루비 (프로그래밍 언어) - 루비포지
루비포지는 루비 센트럴이 운영하며 오픈 소스 루비 언어 관련 홍보를 지원하는 웹사이트였으나, 2014년 5월 15일에 서비스가 종료되었다.
Sass (스타일시트 언어) - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
이름 | Sass (Syntactically Awesome Style Sheets) |
디자이너 | 햄튼 캐틀린 |
개발자 | Natalie Weizenbaum, Chris Eppstein |
최초 출시일 | 2006년 11월 28일 |
최신 안정화 버전 | 1.75.0 |
최신 안정화 버전 출시일 | 2024년 4월 11일 |
종류 | 스타일시트 언어 |
타이핑 | 동적 |
구현체 | 다트 |
영향 받은 언어 | CSS (both "indented" and SCSS) YAML 및 Haml (indented syntax) Less (SCSS) |
영향을 준 언어 | Less Stylus Tritium Bootstrap (v4+) (v4+) |
운영체제 | 크로스 플랫폼 |
라이선스 | MIT 라이선스 |
파일 확장자 | .sass, .scss |
웹사이트 | Sass 공식 웹사이트 |
상세 정보 | |
특징 | CSS pre-processor로, CSS의 기능을 확장하여 코드 재사용성, 가독성, 유지보수성을 향상시킨다. 변수, 중첩 규칙, mixin, 함수 등 프로그래밍 기능을 제공하여 CSS 작성을 효율적으로 만들어준다. 두 가지 주요 문법 스타일: 들여쓰기 기반의 Sass 문법 (.sass 확장자)과 CSS와 유사한 SCSS 문법 (.scss 확장자)을 지원한다. |
역사 | 2006년 햄튼 캐틀린에 의해 디자인되었고, 나탈리 바이젠바움이 개발에 참여했다. Ruby로 처음 구현되었으나, 이후 Dart로 재구현되어 성능이 향상되었다. |
사용 예시 | 웹 디자인 및 개발 프로젝트에서 CSS 스타일을 구조화하고 관리하는 데 사용된다. 대규모 프로젝트에서 CSS 코드의 복잡성을 줄이고, 효율적인 스타일 관리를 가능하게 한다. |
구현 | Ruby C++ Dart |
2. 역사
햄프턴 캐틀린이 처음 설계하고 나탈리 와이젠바움이 개발하였다.[6][7]
SassScript는 여러 언어로 구현되었으며, 주목할 만한 구현체는 다음과 같다.
3. 주요 구현체
구현체 설명 공식 Dart Sass Dart로 작성된 공식 오픈 소스 구현체이다.[10] npm의 공식 "sass" node 모듈 Dart Sass를 순수 JavaScript로 컴파일한 것이다.[8] 공식 "sass-embedded" node 모듈 네이티브 Dart 실행 파일을 감싸는 JavaScript 래퍼이다.[9] Ruby 구현체 2006년에 만들어진 최초의 오픈 소스 Ruby 구현체이지만,[10] 유지 관리 부족으로 2019년 3월에 지원이 중단되었다.[11][12] libSass C++(C++)로 작성된 공식 오픈 소스 구현체였으나, 2020년 10월에 지원이 중단되었다.[13] "node-sass" node 모듈 npm에서 지원이 중단된 libSass 기반 node 모듈이다.[14] JSass 지원이 중단된 libSass를 기반으로 하는 비공식 Java 구현체이다.[15][16] phamlp PHP로 구현된 비공식 Sass/SCSS 구현체이다.[10] Vaadin Sass의 Java 구현을 가지고 있다.[17] Firebug 웹 개발을 위한 Firefox XUL ("레거시") 확장 기능이다.[18] Firefox 자체에 통합된 개발자 도구를 선호하여 지원이 중단되었으며, Firefox 57에서 XUL 확장에 대한 지원이 중단되면서 작동이 중지되었다.
2012년 HTML5 개발자 콘퍼런스에서 Sass의 창시자인 햄프턴 캐틀린은 무브웹의 엔지니어링 팀, 캐틀린, 아론 렁이 개발한 Sass의 오픈 소스 C++ 구현체인 libSass 버전 1.0을 발표했다.[47][52] libSass의 설계 목적은 다음과 같았다.
4. 기능
Sass는 CSS 전처리기(preprocessor)로서, CSS의 기능을 확장하여 코드의 재사용성과 유지보수성을 높여준다. Sass는 다음과 같은 기능을 제공한다.[18][2]
- 변수: 반복되는 값을 변수에 저장하여 쉽게 관리할 수 있다.
- 중첩(Nesting): 코드 블록을 중첩하여 가독성을 높이고, 코드 중복을 줄일 수 있다.
- 믹스인(Mixin): 코드 블록을 재사용 가능한 형태로 정의하고, 필요할 때 호출하여 사용할 수 있다.
- 반복문: `@for`, `@each`, `@while`과 같은 반복문을 사용하여 유사한 스타일을 반복적으로 적용할 수 있다.
- 상속: `@extend` 키워드를 사용하여 다른 선택자의 스타일을 상속받을 수 있다.
4. 1. 변수 (Variables)
Sass에서는 변수를 사용하여 반복되는 값을 쉽게 관리할 수 있다. 변수는 `$` 기호로 시작하며, 콜론(`:`)을 사용하여 값을 할당한다. SassScript는 다음과 같은 데이터 타입을 지원한다.[50][18][39]변수는 사용 가능한 여러 함수들 가운데 하나에 대해 매개변수로 사용하거나 결과물이 될 수 있다.[51] 변환 과정 중에 변수의 값들은 출력 CSS 문서에 삽입된다.[43]
Sass 구문 | SCSS 구문 | 컴파일 결과 |
---|---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | | style="vertical-align: top;" | |
4. 2. 네스팅 (Nesting)
CSS는 논리적인 중첩을 지원하지만 코드 블록 자체는 중첩되지 않는다. Sass는 서로 간에 중첩된 코드를 삽입할 수 있게 한다.[43]SCSS | Sass | 컴파일된 CSS |
---|---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
네임스페이스 중첩 및 부모 참조를 포함한 더 복잡한 유형의 중첩은 Sass 문서에서 논하고 있다.[50]
SCSS | Sass | 컴파일된 CSS |
---|---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
4. 3. 믹스인 (Mixin)
믹스인(Mixin)은 CSS 코드의 재사용성을 높여주는 기능이다. `@mixin` 지시어를 사용하여 정의하고, `@include` 지시어를 사용하여 호출한다.[32] 믹스인은 인자를 받을 수 있어, 동적인 스타일 생성이 가능하다.[2]CSS는 믹스인 기능을 자체적으로 지원하지 않기 때문에, 같은 코드를 여러 위치에 반복해서 작성해야 하는 경우가 있다. 믹스인을 사용하면 코드 블록을 한 번 정의해두고 필요할 때마다 호출하여 재사용할 수 있다. 믹스인 내에는 임의의 Sass 코드를 포함할 수 있으며, 호출될 때마다 해당 코드가 호출 위치에 삽입된다.[32] 이를 통해 효율적인 코딩과 코드 간략화가 가능하며, 나중에 내용을 변경하기도 쉬워진다.[32]
SCSS 구문 | 컴파일 결과 |
---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
Sass 구문 | 컴파일 결과 |
---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
SCSS 구문 | 컴파일 결과 |
---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
4. 4. 반복문 (Loops)
Sass는 `@for`, `@each`, `@while`과 같은 반복문을 지원하여, 유사한 스타일을 반복적으로 적용해야 하는 경우 유용하다.Sass는 `@for`, `@each` 및 `@while`을 사용하여 변수를 반복할 수 있으며, 유사한 클래스 또는 ID를 가진 요소에 다른 스타일을 적용하는 데 사용할 수 있다.
Sass 구문 | 컴파일 결과 |
---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
4. 5. 상속 (Inheritance)
CSS3는 문서 객체 모델(DOM) 계층을 지원하지만 선택자 상속을 허용하지 않는다. Sass에서 상속은 `@extend` 키워드를 사용하고 다른 선택자를 참조하는 코드 블록 내 줄을 삽입함으로써 수행된다. 이 확장된 선택자의 속성은 호출을 하는 선택자에 적용된다.[43] Sass는 다중 상속을 지원한다.[50]SCSS 구문 | 컴파일 결과 |
---|---|
style="vertical-align: top;" | | style="vertical-align: top;" | |
5. IDE 통합
Sass는 다음과 같은 다양한 통합 개발 환경(IDE)에서 지원된다.
IDE | 소프트웨어 |
---|---|
어도비 드림위버 CC 2017 | |
이클립스 | |
이맥스 | SCSS Mode |
JetBrains IntelliJ IDEA (얼티밋 에디션) | |
JetBrains PhpStorm | |
JetBrains RubyMine | |
마이크로소프트 비주얼 스튜디오 | Mindscape, SassyStudio |
마이크로소프트 웹 매트릭스 | |
넷빈즈 | |
Vim | haml.zip |
아톰 | |
비주얼 스튜디오 코드 |
참조
[1]
웹사이트
Dart Sass - latest release
https://github.com/s[...]
[2]
웹사이트
Sass - Syntactically Awesome Stylesheets
http://sass-lang.com[...]
Sass-lang.com
2014-02-23
[3]
서적
Introducing Dart Sass: A Practical Introduction to the Replacement for Sass, Built on Dart
http://link.springer[...]
Apress
2019
[4]
웹사이트
Tutorial
http://sass-lang.com[...]
2013-10-09
[5]
서적
Programming the Mobile Web
https://books.google[...]
O'Reilly Media, Inc.
2013-03-15
[6]
웹사이트
Sass: Syntactically Awesome Style Sheets
http://sass-lang.com[...]
[7]
웹사이트
Natalie Weizenbaum's blog
http://nex-3.com/
[8]
웹사이트
sass
https://www.npmjs.co[...]
[9]
웹사이트
sass-embedded
https://www.npmjs.co[...]
[10]
웹사이트
Sass / Scss
http://drupal.org/pr[...]
Drupal.org
2014-02-23
[11]
웹사이트
Ruby Sass Has Reached End-Of-Life « Sass Blog
http://sass.logdown.[...]
2019-04-21
[12]
웹사이트
Sass: Ruby Sass
https://sass-lang.co[...]
2019-04-21
[13]
웹사이트
LibSass is Deprecated
https://sass-lang.co[...]
2020-10-26
[14]
웹사이트
node-sass
https://www.npmjs.co[...]
[15]
웹사이트
jsass - A Java implementation of the Sass compiler (and some other goodies). - Google Project Hosting
https://code.google.[...]
2014-02-23
[16]
웹사이트
JSass documentation
https://jsass.readth[...]
[17]
웹사이트
SassCompiler (Vaadin 7.0.7 API)
https://vaadin.com/a[...]
Vaadin.com
2014-02-23
[18]
문서
SASS_REFERENCE
http://sass-lang.com[...]
[19]
문서
Sass Functions
http://sass-lang.com[...]
[20]
웹사이트
Hampton's 6 Rules of Mobile Design
https://www.youtube.[...]
HTML5 Developer Conference
2013-07-11
[21]
웹사이트
libsass
http://blog.moovweb.[...]
Moovweb Blog
2013-07-11
[22]
웹사이트
Sass, libsass, Haml and more with Hampton Catlin
http://5by5.tv/chang[...]
2013-07-30
[23]
웹사이트
Sassc and Bourbon
http://www.damln.com[...]
2013-07-11
[24]
웹사이트
Sass Compatibility
http://sass-compatib[...]
2019-11-29
[25]
문서
Latest releases
https://github.com/s[...]
[26]
웹사이트
The Future of Sass by Hampton Catlin
https://www.youtube.[...]
2016-02-18
[27]
웹사이트
"#01 Sassとはなにか?"
http://dotinstall.co[...]
2016-02-18
[28]
문서
Hampton Catlin
[29]
문서
Nathan Weizenbaum
[30]
웹사이트
Sass - Syntactically Awesome Style Sheets
http://sass-lang.com[...]
[31]
웹사이트
Nathan Weizenbaum's blog
http://nex-3.com/
2014-01-17
[32]
문서
Sass - Syntactically Awesome Stylesheets
https://sass-lang.co[...]
[33]
문서
Sass — Syntactically Awesome Stylesheets 解説書
http://sass-lang.com[...]
[34]
URL
https://drupal.org/project/sass
https://drupal.org/p[...]
[35]
웹사이트
Hampton's 6 Rules of Mobile Design
https://www.youtube.[...]
HTML5 Developer Conference
2013-07-11
[36]
웹사이트
https://code.google.[...]
[37]
웹사이트
http://sass.logdown.[...]
[38]
웹사이트
https://github.com/s[...]
[39]
문서
Sass (Syntactically Awesome StyleSheets)
http://sass-lang.com[...]
[40]
웹인용
Dart Sass - latest release
https://github.com/s[...]
[41]
웹인용
Sass: Syntactically Awesome Style Sheets
https://web.archive.[...]
2013-08-30
[42]
웹인용
Natalie Weizenbaum's blog
https://web.archive.[...]
2014-01-17
[43]
웹인용
Sass - Syntactically Awesome Stylesheets
http://sass-lang.com[...]
Sass-lang.com
2014-02-23
[44]
웹인용
Getting started with sass development
http://wisdomgeek.co[...]
saranshkataria
[45]
웹사이트
Sass - Syntactically Awesome Stylesheets
http://sass-lang.com[...]
[46]
웹인용
Sass / Scss
http://drupal.org/pr[...]
Drupal.org
2014-02-23
[47]
웹인용
Hampton's 6 Rules of Mobile Design
https://www.youtube.[...]
HTML5 Developer Conference
2012-10-15
[48]
웹인용
jsass - A Java implementation of the Sass compiler (and some other goodies). - Google Project Hosting
https://code.google.[...]
Code.google.com
2014-02-23
[49]
웹인용
SassCompiler (Vaadin 7.0.7 API)
https://web.archive.[...]
Vaadin.com
2013-06-06
[50]
문서
Sass (Syntactically Awesome StyleSheets)
http://sass-lang.com[...]
[51]
문서
Module: Sass::Script::Functions
http://sass-lang.com[...]
[52]
웹인용
libsass
https://web.archive.[...]
Moovweb Blog
2012-04-30
[53]
웹인용
Tweet
https://twitter.com/[...]
2012-04-15
[54]
웹인용
Sass, libsass, Haml and more with Hampton Catlin
http://5by5.tv/chang[...]
2013-06-26
[55]
웹인용
Sassc and Bourbon
http://www.damln.com[...]
2013-06-07
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com