Sassとは? わかりやすく解説

Sass


Saß

名前 ザース

Sass

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/21 15:14 UTC 版)

ナビゲーションに移動 検索に移動
Sass
Sassのロゴ
登場時期 2006
設計者 ハンプトン・キャトリン
開発者 ネイサン・バイゼンバウム、クリス・エプシュタイン
最新リリース 3.5.5/ 2021年5月12日 (7か月前) (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 用の拡張が加えられた。

SassCascading Style Sheets (CSS)で解釈される2種類の構文で構成されたスクリプト言語であり、SassScript はスクリプト言語自体を示す。 はじめにできた「インデント構文」では、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」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Sass」の関連用語

Sassのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Sassのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのSass (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのLESS (改訂履歴)、OpenCL (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS