Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

Sass

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Sass
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]:SyntacticallyAwesomeStyleSheets)は、ハンプトン・キャトリン[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-navigationborder-color:$bluecolor:darken($blue,10%).borderpadding:$margin/2margin:$margin/2border-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:2em0;td.ln{text-align:right;}}li{font:{family:serif;weight:bold;size:1.3em;}}
table.hl{margin:2em0;}table.hltd.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;}
#datath{text-align:center;font-weight:bold;}#datatd,#datath{padding:2px;}

反復処理

[編集]

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

反復処理の例
Sass 構文コンパイル結果
$squareCount:3@for$ifrom1through$squareCount#square-#{$i}background-color:redwidth:50px*$iheight: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;}#datath{text-align:center;font-weight:bold;}#datatd,#datath{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;}

脚注

[編集]
[脚注の使い方]
  1. ^Latest releases
  2. ^The Future of Sass by Hampton Catlin”. 2016年2月18日閲覧。
  3. ^#01Sassとはなにか?”. 2016年2月18日閲覧。
  4. ^:Hampton Catlin
  5. ^:Nathan Weizenbaum
  6. ^Sass - Syntactically Awesome Style Sheets
  7. ^Nathan Weizenbaum's blog”. 2014年1月17日閲覧。
  8. ^abcSass - Syntactically Awesome Stylesheets
  9. ^SassSyntactically Awesome Stylesheets 解説書
  10. ^https://drupal.org/project/sass
  11. ^ハンプトン・キャトリン (2012年10月15日). “Hampton's 6 Rules of Mobile Design”. HTML5 Developer Conference. 2013年7月11日閲覧。
  12. ^https://code.google.com/archive/p/jsass/
  13. ^http://sass.logdown.com/posts/1022316-announcing-dart-sass
  14. ^https://github.com/sass/dart-sass
  15. ^abcdSass (Syntactically Awesome StyleSheets)

関連項目

[編集]

外部リンク

[編集]
スタブアイコン

この項目は、ソフトウェアに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。

https://ja.wikipedia.org/w/index.php?title=Sass&oldid=107347678」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2025 Movatter.jp