Less (스타일시트 언어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Less는 CSS를 확장하는 스타일시트 언어이다. 변수 정의, 믹스인, 중첩, 함수 및 연산 등의 기능을 제공하여 CSS 코드를 더욱 효율적으로 작성할 수 있도록 돕는다. Sass와 유사하게 CSS 전처리기로서, CSS를 프로그래밍 방식으로 작성할 수 있게 해준다. Less는 다양한 컴파일러, 편집기 및 플러그인을 통해 지원되며, 윈도우, macOS, 리눅스 등 다양한 플랫폼에서 사용 가능하다.
더 읽어볼만한 페이지
- 스타일시트 언어 - CSS
CSS는 마크업 언어로 작성된 문서의 스타일을 정의하는 스타일 시트 언어로서, 웹 페이지의 시각적 표현을 담당하며 디자인과 사용자 경험을 향상시키고, W3C에 의해 표준이 관리되며 다양한 프레임워크와 디자인 방법론을 가진다. - 스타일시트 언어 - XSL
XSL은 XML 문서의 스타일 정의 및 변환에 사용되는 언어로, XSLT, XPath, XSL-FO 등의 사양으로 구성되어 XML 문서 변환, 탐색, 서식 있는 출력 생성 기능을 제공한다. - 자바스크립트 라이브러리 - 구글 웹 툴킷
구글 웹 툴킷(GWT)은 자바 코드를 자바스크립트로 변환하여 웹 애플리케이션 개발을 지원하는 도구로, 개발자가 자바 언어로 Ajax 애플리케이션을 개발하고 GWT 컴파일러를 통해 최적화된 자바스크립트 파일로 변환할 수 있게 한다. - 자바스크립트 라이브러리 - AngularJS
AngularJS는 동적 웹 애플리케이션 개발을 용이하게 하기 위해 설계된 오픈 소스 자바스크립트 프레임워크로, MVC 패턴 적용, 의존성 주입, HTML 확장 디렉티브 제공, 양방향 데이터 바인딩 등의 특징을 가지며, 장기 지원은 종료되었지만 웹 개발에 중요한 영향을 미쳤다. - 자유 라이브러리 - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - 자유 라이브러리 - SQLite
SQLite는 D. 리처드 히프가 설계한 서버리스 구조의 임베디드 SQL 데이터베이스 엔진으로, 별도의 DBMS 없이 프로그램에 통합되어 작동하며 전체 데이터베이스를 단일 파일로 저장하는 특징이 있고, 다양한 운영체제와 환경에서 널리 사용된다.
| Less (스타일시트 언어) - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
![]() | |
| 출시일 | 2009년 |
| 설계자 | Alexis Sellier |
| 개발자 | Alexis Sellier, Dmitry Fadeyev |
| 프로그래밍 언어 | 자바스크립트 |
| 최신 버전 | 4.1.2 |
| 최신 버전 출시일 | 2021년 10월 4일 |
| 자료형 체계 | 동적 |
| 영향을 받은 언어 | CSS, Sass |
| 영향을 준 언어 | Sass, Less 프레임워크, 부트스트랩 (v3) |
| 운영 체제 | 크로스 플랫폼 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | LESS 공식 웹사이트 |
| 파일 확장자 | .less |
2. 기능
Less는 CSS 전처리기(preprocessor)로서, CSS의 기능을 확장하여 코드의 재사용성과 유지보수성을 높여준다. Less의 주요 기능은 다음과 같다.
- 변수: 골뱅이표(@)를 사용하여 변수를 정의하고, 콜론(:)을 사용하여 값을 할당한다. 변수는 코드 내에서 반복되는 값을 쉽게 관리하고 수정할 수 있게 해준다.[23]
- 믹스인 (Mixin): 믹스인은 클래스의 속성을 다른 클래스에 포함시켜 코드의 반복을 줄이고, 마치 함수처럼 인수를 받아 동적으로 스타일을 생성할 수 있게 한다. CSS는 믹스인을 지원하지 않기 때문에 Less의 유용한 기능 중 하나이다.[23]
- 중첩 (Nesting): Less는 CSS 선택자를 중첩하여 코드의 가독성을 높이고, 상속 관계를 명확하게 표현할 수 있다.[21]
- 함수 및 연산: Less는 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 지원하여 속성 간의 관계를 표현하고, 함수를 통해 값을 조작할 수 있다.[21]
2. 1. 변수
Less는 변수 정의를 허용한다. Less에서 변수는 골뱅이표(@)로 정의되며, 변수 할당은 콜론(:)을 통해 이루어진다.[23]변환 중에 변수의 값들은 출력 CSS 문서에 삽입된다.
```less
@pale-green-color: #4D926F;
#header {
color: @pale-green-color;
}
h2 {
color: @pale-green-color;
}
```
위의 Less 코드는 다음의 CSS 코드로 컴파일된다.
```css
#header {
color: #4D926F;
}
h2 {
color: #4D926F;
}
2. 2. 믹스인 (Mixin)
믹스인(mixin)은 클래스 이름을 속성 중 하나로 포함시킴으로써 클래스의 모든 속성을 다른 클래스 안으로 포함시키는 것을 허용하며, 이로써 일종의 상수나 변수처럼 동작한다. 이들은 마치 함수처럼 동작하며 인수를 취한다. CSS 자체는 믹스인을 지원하지 않으므로, 반복되는 코드는 각 위치에 반복되어야 한다. 믹스인은 더 효율적이고 깨끗한 코드 반복을 허용하며 쉬운 코드 변경 또한 가능케 한다.[23]```less
.rounded-corners (@radius: 5px 10px 8px 2px) {
- webkit-border-radius: @radius;
- moz-border-radius: @radius;
border-radius: @radius;
}
#header {
.rounded-corners;
}
#footer {
.rounded-corners(10px 25px 35px 0px);
}
```
위의 Less 코드는 다음의 CSS 코드로 컴파일된다:
```css
#header {
- webkit-border-radius: 5px 10px 8px 2px;
- moz-border-radius: 5px 10px 8px 2px;
border-radius: 5px 10px 8px 2px;
}
#footer {
- webkit-border-radius: 10px 25px 35px 0px;
- moz-border-radius: 10px 25px 35px 0px;
border-radius: 10px 25px 35px 0px;
}
```
Less는 파라메트릭 믹스인(parametric mixin)이라는 특별한 타입의 룰셋(ruleset)이 있어서 클래스처럼 믹스가 가능하지만 파라미터를 수락한다.
```less
#header {
h1 {
font-size: 26px;
font-weight: bold;
}
p {
font-size: 16px;
a {
text-decoration: none;
color: red;
&:hover {
border-width: 1px;
color: #fff;
}
}
}
}
```
위의 Less 코드는 다음의 CSS 코드로 컴파일된다:
```css
#header h1 {
font-size: 26px;
font-weight: bold;
}
#header p {
font-size: 16px;
}
#header p a {
text-decoration: none;
color: red;
}
#header p a:hover {
border-width: 1px;
color: #fff;
}
```[21]
2. 3. 중첩 (Nesting)
CSS는 논리적인 중첩을 지원하지만, 코드 블록 자체가 중첩되어 있지는 않다. LESS를 사용하면 다른 선택자 내부에 중첩이 가능하며, 명확한 상속과 간소화에 도움이 된다.[21]다음은 LESS 코드 예시이다.
```less
#header {
h1 {
font-size: 26px;
font-weight: bold;
}
p {
font-size: 12px;
a {
text-decoration: none;
&:hover {
border-width: 1px;
}
}
}
}
```
위 코드는 다음과 같이 CSS로 컴파일된다.
```css
#header h1 {
font-size: 26px;
font-weight: bold;
}
#header p {
font-size: 12px;
}
#header p a {
text-decoration: none;
}
#header p a:hover {
border-width: 1px;
}
2. 4. 함수 및 연산
Less는 속성 값과 색상에 대한 덧셈, 뺄셈, 나눗셈, 곱셈 등의 연산을 지원하여 속성 간의 복잡한 관계를 표현할 수 있다. 또한, 함수는 자바스크립트 코드와 일대일로 매핑되어 값을 조작할 수 있게 한다.[21]```less
@the-border: 1px;
@base-color: #111;
@red: #842210;
#header {
color: @base-color * 3;
border-left: @the-border;
border-right: @the-border * 2;
}
#footer {
color: @base-color + #003300;
border-color: desaturate(@red, 10%);
}
```
위 Less 코드는 다음과 같이 CSS로 컴파일된다.
```css
#header {
color: #333;
border-left: 1px;
border-right: 2px;
}
#footer {
color: #114411;
border-color: #7d2717;
}
3. Sass와의 비교
Sass는 Less와 함께 널리 사용되는 CSS 전처리기 중 하나로, 프로그래밍 구문을 통해 CSS를 효율적으로 작성하도록 돕는다.[4] Less는 Sass에서 영감을 받아 개발되었다.[5][2]
Sass는 초기에 CSS를 간소화하고 확장하는 데 중점을 두어 중괄호({})와 같은 요소를 제거했다. 반면 Less는 CSS와의 호환성을 최대한 유지하도록 설계되어, 기존 CSS 코드를 Less에서도 그대로 사용할 수 있었다.[6] 이후 Sass는 SCSS(Sassy CSS)라는 새로운 구문을 도입하여 CSS와 유사한 형태로 작성할 수 있게 되었다.[19] Less는 버전 1.4부터 네스팅(nesting)과 `&:extends`, `@extends` 의사(pseudo) 선택자를 통한 상속을 지원한다.
더 자세한 구문 비교는 여기에서 확인할 수 있다.
4. Less 소프트웨어
Less 코드를 CSS로 컴파일하는 다양한 도구들이 존재한다. 윈도우, 맥 OS X, 리눅스 등 다양한 플랫폼에서 사용할 수 있는 컴파일러, 편집기, 플러그인 등이 있다.
| 이름 | 설명 | 소프트웨어 라이선스 | 플랫폼 | 기능 |
|---|---|---|---|---|
| LessEngine | Less 컴파일러 | 무료 | OpenCart 플러그인 | 컴파일러 |
| SimpLESS | Less 컴파일러 | 무료 (명시적인 라이선스 없음)[10] | 윈도우, Mac OS X, 리눅스 | 컴파일러 |
| Chirpy | Less 컴파일러 | Ms-PL[11] | Visual Studio 플러그인 | 컴파일러 |
| Mindscape Web Workbench | Less 및 Sass용 구문 강조 및 IntelliSense | 독점 | Visual Studio 플러그인 | 컴파일러, 구문 강조 |
| Eclipse Plugin for Less | Eclipse 플러그인 | EPL 1.0[12] | Eclipse 플러그인 | 구문 강조, 콘텐츠 지원, 컴파일러 |
| mod_less | 즉석에서 Less를 컴파일하는 Apache2 모듈 | 오픈 소스 | 리눅스 | 컴파일러 |
| grunt-contrib-less | Less를 CSS로 변환하는 Node.js Grunt 작업 | MIT[13] | Node.js | 컴파일러 |
| clessc | 순수 C++ 컴파일러 | MIT[15] | 최소 윈도우, 리눅스, MacOS | 컴파일러 |
| Less WebCompiler | 웹 기반 컴파일러 | MIT[16] | 최소 윈도우, 리눅스, MacOS | 컴파일러, 구문 강조, 최소화 도구 |
4. 1. 주요 Less 소프트웨어 목록
| 이름 | 설명 | 소프트웨어 라이선스 | 플랫폼 | 기능 |
|---|---|---|---|---|
| WinLess | 윈도우용 GUI Less 컴파일러 | 아파치 2.0[7] | 윈도우 | 컴파일러 |
| Crunch | Less 편집기 및 컴파일러 (Adobe AIR 필요) | GPL[8] | 윈도우, Mac OS X | 컴파일러, 편집기 |
| less.js-windows | 윈도우용 명령줄 유틸리티 | MIT 라이선스[9] | 윈도우 | 컴파일러 |
| less.app | Mac OS X용 Less 컴파일러 | 독점 | Mac OS X | 컴파일러 |
| CodeKit | Mac OS X용 Less 컴파일러 | 독점 | Mac OS X | 컴파일러 |
| Web Essentials | Less 및 Sass를 지원하는 Visual Studio 확장 | 아파치 2.0 [14] | 윈도우 | 구문 강조, 콘텐츠 지원, 컴파일러 |
참조
[1]
웹사이트
Getting started {{!}} Less.js
http://lesscss.org/
2021-03-19
[2]
웹사이트
Sass and Less : Nex3
http://nex-3.com/pos[...]
2009-06-17
[3]
웹사이트
css - Is there a SASS.js? Something like LESS.js?
https://stackoverflo[...]
2010-12-14
[4]
웹사이트
What's Wrong With CSS
https://blog.codingh[...]
2022-12-03
[5]
웹사이트
About {{!}} Less.js
http://lesscss.org/a[...]
2021-03-19
[6]
웹사이트
sass_and_less_compared.markdown
https://gist.github.[...]
2021-03-19
[7]
웹사이트
License Information · Issue #55 · marklagendijk/WinLess
https://github.com/m[...]
2021-03-19
[8]
웹사이트
Crunch/LICENSE.txt at master · matthew-dean/Crunch
https://github.com/m[...]
2021-03-19
[9]
웹사이트
less.js-windows/LICENSE at master · duncansmart/less.js-windows
https://github.com/d[...]
2021-03-19
[10]
웹사이트
SimpLESS/LICENSE.txt at master · Paratron/SimpLESS
https://github.com/P[...]
2021-03-19
[11]
웹사이트
Chirpy - VS Add In For Handling Js, Css, DotLess, and T4 Files - CodePlex Archive
https://archive.code[...]
2021-03-19
[12]
웹사이트
Eclipse plugin for LESS
http://www.normalesu[...]
2021-03-19
[13]
웹사이트
grunt-contrib-less/LICENSE-MIT at master · gruntjs/grunt-contrib-less
https://github.com/g[...]
2021-03-19
[14]
웹사이트
WebEssentials2013/LICENSE.txt at master · madskristensen/WebEssentials2013
https://github.com/m[...]
2021-03-19
[15]
웹사이트
clessc/LICENSE at master · BramvdKroef/clessc
https://github.com/B[...]
2021-03-19
[16]
웹사이트
snout.less/LICENSE.md at master · pytesNET/snout.less
https://github.com/p[...]
2021-03-19
[17]
웹사이트
CHANGELOG
https://github.com/l[...]
2022-06-03
[18]
웹사이트
About LESS
http://lesscss.org/a[...]
[19]
웹사이트
Sass and Less
http://nex-3.com/pos[...]
[20]
웹사이트
http://stackoverflow[...]
[21]
웹사이트
Official LESS website
http://lesscss.org/
[22]
웹사이트
What's Wrong With CSS
http://www.codinghor[...]
[23]
웹사이트
Official Less website
http://lesscss.org/
[24]
웹사이트
Sass and Less
http://nex-3.com/pos[...]
[25]
웹인용
css - Is there a SASS.js? Something like LESS.js?
https://stackoverflo[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
