Slide 1

Slide 1 text

Sassをはじめよう! 沖 良矢(世路庵) 2014.2.14 (Fri) DIST.1 「Sass」

Slide 2

Slide 2 text

自己紹介 沖 良矢 / OKI Yoshiya @448jp インタラクションデザイナー UNIQLO HAPPY GIFT (2013) Web Designing (2009~) McCANN WG JAPAN (2012)

Slide 3

Slide 3 text

お品書き Sassとは何か 制作環境のセットアップ 実用テクニック

Slide 4

Slide 4 text

Sassについて、 一番知りたいことって なんですか? What do you want to know most about Sass?

Slide 5

Slide 5 text

Sassとは何か Chapter.1 | What’s Sass ?

Slide 6

Slide 6 text

Sass is the most mature, stable, and powerful professional grade CSS extension language in the world. http://sass-lang.com/

Slide 7

Slide 7 text

Sassは、世界で最も成熟し安定 した、かつパワフルなプロ級の CSSの拡張言語である。 http://sass-lang.com/

Slide 8

Slide 8 text

とりあえずどんなもんか #content { background-color: #ff0000; } #content h1 { margin-bottom: 1em; } #content p { line-height: 2em; }

Slide 9

Slide 9 text

とりあえずどんなもんか #content { background-color: #ff0000; } #content h1 { margin-bottom: 1em; } #content p { line-height: 2em; } #content { background-color: #ff0000; h1 { margin-bottom: 1em; } p { line-height: 2em; } }

Slide 10

Slide 10 text

サス【Sass】 ≪Syntactically Awesome Style Sheets≫ 構文的に イケてる スタイルシート CSSを効率よく記述するための拡張言語 CSSプリプロセッサ、CSSメタ言語とも

Slide 11

Slide 11 text

他のCSSプリプロセッサ LESS Bootstrapで採用 機能はSassより少ない クライアントサイドで動的 にCSSを生成 Stylus Node.jsのモジュールとし て誕生 簡素化した記述

Slide 12

Slide 12 text

Sassの ここがイイ!  すべてのバージョンのCSSとの互換性  機能が豊富  7年以上に渡る開発、サポート  採用企業が多い (LINE, COOKPAD, CyberAgent, NHN Japan…)  ユーザー数が多い  フレームワークの充実

Slide 13

Slide 13 text

SASS記法とSCSS記法 #content background-color: #ff0000 h1 margin-bottom: 1em p line-height: 2em #content { background-color: #ff0000; h1 { margin-bottom: 1em; } p { line-height: 2em; } } SASS記法 SCSS記法

Slide 14

Slide 14 text

Sassの利用手順 1. Sassファイルを記述する なお、拡張子は「.scss」(SASS記法では「.sass」) 2. 直接Webブラウザに読み込めないので、コンパイルし てCSSに変換 3. CSSとしてWebブラウザに読み込む

Slide 15

Slide 15 text

ルールのネスト #content { background-color: #ff0000; h1 { margin-bottom: 1em; } p { line-height: 2em; } } #content { background-color: red; } #content h1 { margin-bottom: 1em; } #content p { line-height: 2em; } Sass CSS

Slide 16

Slide 16 text

親セレクタの参照 #content a { background-color: #ff0000; &:hover { background-color: #ffff00; } } #content a { background-color: #ff0000; } #content a:hover { background-color: #ffff00; } Sass CSS

Slide 17

Slide 17 text

プロパティのネスト #content .book { border: { left: 5px solid #ff0000; bottom: { width: 5px; style: solid; color: #ff0000; } } } #content .book { border-left: 5px solid #FF0000; border-bottom-width: 5px; border-bottom-style: solid; border-bottom-color: #FF0000; } Sass CSS

Slide 18

Slide 18 text

1行コメント // イケてるスタイル #content { background-color: #ff0000; } #content { background-color: #ff0000; } Sass CSS

Slide 19

Slide 19 text

通常のコメント /* イケてるスタイル */ #content { background-color: #ff0000; } /* イケてるスタイル */ #content { background-color: #ff0000; } Sass CSS

Slide 20

Slide 20 text

通常のコメント(compressedフォーマットの場合) /* イケてるスタイル */ #content { background-color: #ff0000; } #content{background-color:#ff0000;} Sass CSS

Slide 21

Slide 21 text

絶対に残るコメント(compressedフォーマットの場合も) /*! 絶対にイケてるスタイル */ #content { background-color: #ff0000; } /*! 絶対にイケてるスタイル */#content{background-color:#ff0000;} Sass CSS

Slide 22

Slide 22 text

変数 $niceColor: #ff0000; #content { background-color: $niceColor; h1 { border-bottom: 1px solid $niceColor; } } #content { background-color: red; } #content h1 { border-bottom: 1px solid red; } Sass CSS

Slide 23

Slide 23 text

変数のスコープ #content { $niceColor: #ff0000; background-color: $niceColor; } h1 { border-bottom: 1px solid $niceColor; } error screen.scss (Line 6: Undefined variable: "$niceColor".) Sass CSS

Slide 24

Slide 24 text

四則演算 #content { background-color: #ff0000; width: 980px – 40px; } #content { background-color: #ff0000; width: 940px; } Sass CSS

Slide 25

Slide 25 text

関数 #content { background-color: lighten(#ff0000, 20%); } #content { background-color: #ff6666; } Sass CSS

Slide 26

Slide 26 text

独自の関数 @function getDouble($value) { @return $value * 2; } #content { background-color: #ff0000; width: getDouble(200px); } #content { background-color: #ff0000; width: 400px; } Sass CSS

Slide 27

Slide 27 text

インターポレーション(補間) $imageBasePath: "images/"; #content { background-image: url(#{$imageBasePath}hoge.png); } #content { background-image: url(images/hoge.png); } Sass CSS

Slide 28

Slide 28 text

スタイルの継承 .content { background-color: #ff0000; border: 1px solid #000000; } .sub { @extend .content; } .content, .sub { background-color: #ff0000; border: 1px solid #000000; } Sass CSS

Slide 29

Slide 29 text

ミックスイン @mixin clearfix { &:after { content: ""; clear: both; display: block; } } .content { @include clearfix; background-color: #ff0000; } .content { background-color: #ff0000; } .content:after { content: ""; clear: both; display: block; } Sass CSS

Slide 30

Slide 30 text

ミックスイン(引数) @mixin myBorder($width) { border: $width solid #00ff00; } .content { @include myBorder(5px); background-color: #ff0000; } .content { border: 5px solid lime; background-color: #ff0000; } Sass CSS

Slide 31

Slide 31 text

その他の機能 @import パーシャル プレースホルダーセレクタ 変数のデフォルト値 可変長引数 コンテンツブロック コントロールディレクティブ コマンドオプション 他、多数

Slide 32

Slide 32 text

制作環境のセットアップ Chapter.2 | Setup the production environment

Slide 33

Slide 33 text

Sassの利用環境 Webサービス GUI CUI IDE

Slide 34

Slide 34 text

デモ

Slide 35

Slide 35 text

実用テクニック Chapter.3 | Practical technique

Slide 36

Slide 36 text

時間の都合で省略… 別の機会で。

Slide 37

Slide 37 text

まとめ At the end

Slide 38

Slide 38 text

まとめ Sassは、CSSを効率的に書くための拡張言語 制作環境は自分にあったものを

Slide 39

Slide 39 text

Thank you ! Photo Credit:  mak1e  Nathan O'Nions  *christopher*  Brett Jordan