コンテンツにスキップ

Sass

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Sass
Sass
Sassのロゴ
登場時期 2006
設計者 ハンプトン・キャトリン
開発者 ネイサン・バイゼンバウム、クリス・エプシュタイン
最新リリース 3.5.5/ 2021年5月12日 (3年前) (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)2SassScript  HamlSass[8]SCSSSassy CSSCSS使

CSS3 SASSCSS3CSS SassScript Sass CSS Sass  SassScript CSSsass  scss  Sass CSS[9]  CSS

 Ruby  PHP libSass C++[10][11]JSass  Java [12]RubySassC++SassDartdart-sass[13][14]

SCSS CSSSCSSMozilla 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;
}

脚注

[編集]


(一)^ Latest releases

(二)^ The Future of Sass by Hampton Catlin. 2016218

(三)^ #01 Sass. 2016218

(四)^ : Hampton Catlin

(五)^ : Nathan Weizenbaum

(六)^ Sass - Syntactically Awesome Style Sheets

(七)^ Nathan Weizenbaum's blog. 2014117

(八)^ abcSass - Syntactically Awesome Stylesheets

(九)^ Sass  Syntactically Awesome Stylesheets 

(十)^ https://drupal.org/project/sass

(11)^  (20121015). Hampton's 6 Rules of Mobile Design.  HTML5 Developer Conference. 2013711

(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)

関連項目

[編集]

外部リンク

[編集]