以下の内容はhttps://www.weblio.jp/content/Sassより取得しました。


日外アソシエーツ株式会社日外アソシエーツ株式会社

Sass


Saß

名前 ザース

ウィキペディアウィキペディア

Sass

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/11/24 02:05 UTC 版)

Sass
Sassのロゴ
登場時期 2006
設計者 ハンプトン・キャトリン
開発者 ネイサン・バイゼンバウム、クリス・エプシュタイン
最新リリース 3.5.5/ 2021年5月12日 (4年前) (2021-05-12)[1]
型付け 動的
主な処理系 RubyC++Dart
影響を受けた言語 CSSYAMLHamlLESS
影響を与えた言語 LESSStylusTritium
プラットフォーム クロスプラットフォーム
ライセンス MITライセンス
ウェブサイト http://sass-lang.com/
拡張子 sassscss
テンプレートを表示

Sass(サース[2][3]: Syntactically Awesome Style Sheets)は、ハンプトン・キャトリン[4]が設計しネイサン・バイゼンバウム[5]が開発したスタイルシート言語である。[6][7] 後にSassファイルに用いられる単純なスクリプト言語である SassScript 用の拡張が加えられた。

Sass はプリプロセッサとして実装されるスクリプト言語であり、 Cascading Style Sheets (CSS)に変換され、解釈される。SassScript はスクリプト言語自体を示す。

SassScriptには2種類の構文がある。はじめにできた「インデント構文」は、Haml英語版と同様にコードブロック改行コードを分離する際に字下げを使用する。単にSassと言ったらインデント構文のことを指す場合も多い。[8]新しい構文である「SCSS」(Sassy CSS)は、CSS同様にブロックを用いた書式を使用する。セミコロン波括弧を用いて、一つのブロック内に複数のブロックを記述することができる。

CSS3はグループルールを適用するセレクタ及び擬似セレクターの一群で構成されている。 SASSは伝統的なプログラミング言語、特にオブジェクト指向言語で利用可能ないくつかの仕組みで、CSS3にはないものを提供することでCSSを拡張している。 SassScript の解釈時には、Sass ファイルで定義された様々なセレクタとして、CSSルールのブロックが作成される。 Sass インタプリタが SassScript をCSSに変換する。sassscss の保存時に Sass がこれらを監視し、CSS出力変換を行っている。[9] CSS用の単純な糖衣構文でもある。

公式に Ruby で実装されているオープンソースソフトウェアであるが、 PHPを含めた多言語の実装も存在しており、中には libSass と呼ばれるC++による高性能の実装や、[10][11]JSass と呼ばれる Java による実装がある。[12]また、RubyによるSassが低速で、C++によるSassが新しい機能が追加しにくくなってきたことから、Dartによるdart-sassという実装が生まれた。[13][14]

インデント構文はメタ言語であり、SCSS はネストされたメタ言語であるように、プログラム意味論上では妥当なCSSは、妥当なSCSSである。Mozilla Firefox ウェブブラウザの拡張機能である Firebug との統合に対応している。[15]

変数

定義する変数は「$」(半角ドル記号)で始まり、代入に半角のコロン「:」が用いられる。[15]

(単位を含む)、(引用符の有無にかかわらず)文字列、色(色名か指定記号)、ブーリアン型のデータ型に対応している。[15]

SCSSとSassの比較と生成されるCSS
Sass 構文 SCSS 構文 コンパイル結果
$blue: #3bbfce
$margin: 16px

.content-navigation
  border-color: $blue
  color: darken($blue, 10%)

.border
  padding: $margin/2
  margin:  $margin/2
  border-color: $blue
$blue: #3bbfce;
$margin: 16px;

.content-navigation {
  border-color: $blue;
  color: darken($blue, 10%);
}

.border {
  padding: $margin / 2;
  margin: $margin / 2;
  border-color: $blue;
}
.content-navigation {
  border-color: #3bbfce;
  color: #2b9eab;
}

.border {
  padding: 8px;
  margin: 8px;
  border-color: #3bbfce;
}

ネスティング

CSSは論理的なネストに対応しているが、コードブロック自体はネストされていない。 Sass により、ネストされたコードは互いに挿入できる。[8]

ネストしたSCSSと生成されるCSS
SCSS 構文 コンパイル結果
table.hl {
  margin: 2em 0;
  td.ln {
    text-align: right;
  }
}

li {
  font: {
    family: serif;
    weight: bold;
    size: 1.3em;
  }
}
table.hl {
  margin: 2em 0;
}
table.hl td.ln {
  text-align: right;
}

li {
  font-family: serif;
  font-weight: bold;
  font-size: 1.3em;
}

名前空間のネストや親の参照を含むより複雑な種類は、公式文書で説明されている。[15]

ミックスイン

CSSはミックスインに対応していないため、同じコードを別の位置に繰り返し記載する必要がある。 ミックスインは、任意の妥当な Sass コードを含むコード節を示し、実行されるたびに翻訳結果が呼び出し元の位置に挿入される。 これにより効率的なコーディングや記述の簡略化だけでなく、内容変更を容易にする。[8]

ミックスインの例
SCSS 構文 コンパイル結果
@mixin table-base {
  th {
    text-align: center;
    font-weight: bold;
  }
  td, th {padding: 2px}
}

#data {
  @include table-base;
}
#data th {
  text-align: center;
  font-weight: bold;
}
#data td, #data th {
  padding: 2px;
}

反復処理

@for@each@whileを用いてIDやClassに変数を適用できる。

反復処理の例
Sass 構文 コンパイル結果
$squareCount: 3
@for $i from 1 through $squareCount 
  #square-#{$i} 
   background-color: red
   width: 50px * $i
   height: 120px / $i
#square-1 {
  background-color: red;
  width: 50px;
  height: 120px;
}

#square-2 {
  background-color: red;
  width: 100px;
  height: 60px;
}

#square-3 {
  background-color: red;
  width: 150px;
  height: 40px;
}

引数

引数の例
Sass 構文 コンパイル結果
@mixin left($dist) {
  float: left;
  margin-left: $dist;
}

#data {
  @include left(10px);
}
#data {
  float: left;
  margin-left: 10px;
}

組み合わせ例

組み合わせ例
SCSS 構文 コンパイル結果
@mixin table-base {
  th {
    text-align: center;
    font-weight: bold;
  }
  td, th {padding: 2px}
}

@mixin left($dist) {
  float: left;
  margin-left: $dist;
}

#data {
  @include left(10px);
  @include table-base;
}
#data {
  float: left;
  margin-left: 10px;
}
#data th {
  text-align: center;
  font-weight: bold;
}
#data td, #data th {
  padding: 2px;
}

セレクタの継承

セレクタの継承の例
SCSS 構文 コンパイル結果
.error {
  border: 1px #f00;
  background: #fdd;
}
.error.intrusion {
  font-size: 1.3em;
  font-weight: bold;
}

.badError {
  @extend .error;
  border-width: 3px;
}
.error, .badError {
  border: 1px #f00;
  background: #fdd;
}

.error.intrusion,
.badError.intrusion {
  font-size: 1.3em;
  font-weight: bold;
}

.badError {
  border-width: 3px;
}

脚注

関連項目

外部リンク


ウィキペディアウィキペディア

Sass

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/25 06:38 UTC 版)

「LESS」の記事における「Sass」の解説

共にCSSプリプロセッサとして、規格化したプログラミング記法で整ったCSS記述できる。 LESSのVer1.4以降ネスティングや、&:extendsと@extends擬似セレクタ経由した継承対応したそれ以前のSassなど他のプリプロセッサとの主な違いは、CSSコード重複回避に役立つ、クラス全体のルール継承サポートするための指向的@extends要素有無であった。 SassはCSS簡素化中括弧などの冗長な要素構文中から削除するなど)し拡張するため設計された。一方のLESSは可能な限りCSS記法に従い設計されたので、構文既存CSSコードと同じであったその結果既存CSS有効なLESSコードとして使用できる。 Sassの新Verでは、SCSS(Sassy CSS)と呼ばれるCSS似た構文導入した。 より多く構文比較については、https://gist.github.com/674726 を参照

※この「Sass」の解説は、「LESS」の解説の一部です。
「Sass」を含む「LESS」の記事については、「LESS」の概要を参照ください。

ウィキペディア小見出し辞書の「Sass」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ




以上の内容はhttps://www.weblio.jp/content/Sassより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14