Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Sass Life
Search
saeka
December 07, 2020
Programming
1
72
Sass Life
Sassをもっと知りたい人のためのスライド
saeka
December 07, 2020
Tweet
Share
More Decks by saeka
See All by saeka
All About CSS
saeka
0
230
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
150
CSC307 Lecture 06
javiergs
PRO
0
680
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
560
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
20
7k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
160
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.8k
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.3k
AI時代の認知負荷との向き合い方
optfit
0
150
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Statistics for Hackers
jakevdp
799
230k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
55
WENDY [Excerpt]
tessaabrams
9
36k
RailsConf 2023
tenderlove
30
1.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
170
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
WCS-LA-2024
lcolladotor
0
450
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
How to make the Groovebox
asonas
2
1.9k
Transcript
Sass のある⽣活 - - Saeka Hirai
What is ?
Syntactically Awesome Style Sheets 構⽂的に 素敵な スタイル シート
1.Variables 2.Nesting 3.Partials 4.Modules 5.Mixins/functions 6.Extend/Inheritance 7.Operators Syntactically Awesome Features
[ のイケてるところ ]
SCSS CSS Sass Variables [ 変数 ] OR OR
変数って でも 標準装備なのでは? CSS
Map [ 連想配列 ] CSS → → COMPILE COMPILE Sass
SCSS
は配列や連想配列も 扱うことができる !
Nesting [ ⼊れ⼦ ] CSS SCSS Sass = =
これだけでも ⼗分便利だけど…
& [ 親参照(クラス) ] → → COMPILE COMPILE SCSS Sass
CSS
& [ 親参照(名前) ] → → COMPILE COMPILE Sass SCSS
CSS
⼊れ⼦ + &の合わせ技で コーディングスピード 爆上げ⤴⤴
Partials [ ファイル分割 ] Sass SCSS OR OR CSS
ファイル分割って でも 標準装備なのでは? CSS
Partials [ ファイル分割(CSS ) ] → → IMPORT IMPORT style.css
variables.css header.css footer.css
Partials [ ファイル分割(Sass ) ] _variables.sass _header.sass _footer.sass style.sass →
→ COMPILE COMPILE → → IMPORT IMPORT style.css ※パーシャルファイル(_[ファイル名].sass )はCSS にコンパイルされません
この違いが 意味するものとは?
Chrome DevTools Network [ 読み込み速度の⽐較 ] CSS import Sass import
& compile 全部読み込み終わるまで34ms 全部読み込み終わるまで28ms の⽅がソースの読み込みが早い!
ファイル分割で可読性UP⤴⤴ 変数との組み合わせで メンテナンス性UP⤴⤴
パーシャルファイルで ページ表⺬速度UP⤴⤴
Modules [ 部品 ] 2019/10 - Dart Sass Ver 1.23.0
- header.scss header.sass _variables.sass _variables.scss header.css → USE → → COMPILE COMPILE
@import に 似てる?
2022年10⽉にサポートが終了する予定 Roles [ それぞれの役割 ] @import ・同じファイルを読み込んだ分展開される ・読み込む変数が全てグローバルになる @use ・同じファイルを何回呼ばれても処理は⼀回 ・名前空間を持たせることができる
・プライベートメンバーが使える (関数等を使⽤するファイルを限定できる) NEW @forward ・他のモジュールを呼びつつ 新しいAPIをエクスポートできる (ライブラリ製作者は嬉しいらしい) NEW
モジュールシステムで 堅牢性UP⤴⤴
Mixins [ 使いまわせるCSS ] → → COMPILE COMPILE → →
IMPORT IMPORT header.css _mixin.sass header.sass @mixin は=に省略可 @import は+に省略可
Functions [ 関数 ] → → COMPILE COMPILE → →
IMPORT IMPORT header.sass header.css _function.sass
何回も使い回すCSSや 何回も⾏う単位の計算は でまとめてしまおう
Extend/Inheritance [ 展開/継承 ] → → COMPILE COMPILE Sass SCSS
CSS
@mixin の @include に似てる?
Roles [ それぞれの役割 ] @include ・使いまわすCSS にいろいろなパターン(引数)を持たせることができる ・@media 内で@include の使⽤ができる
@extend ・ピュアなCSS だけを継承させたいときに使う(パターン化はできない) ・@media 内では@extend は使⽤できない 個⼈的には@include の⽅が使い勝⼿がいいです
設計ルールに合わせて 使い回せるものは纏めて 柔軟性UP⤴⤴
Operators [ 演算⼦ ] Sass SCSS
違う単位同⼠の 計算もしたい?
Calc [ 計算式⽤関数 ] CSS ※勿論 ファイルの中でも使えますよ
演算⼦を駆使して 複雑なレイアウトの幅も∞
1.Variables 2.Nesting 3.Partials 4.Modules 5.Mixins/functions 6.Extend/Inheritance 7.Operators Syntactically Awesome Features
[ のイケてるところ ]
コラム
をコンパイル できる⾔語は 3種類 1.JavaScript → Dart Sass 2.C/C++ → Lib
Sass 3.Ruby → Ruby Sass ⚰
dart-sass → Dart Sass node-sass → Lib Sass npm [
N ode Package Manager ]
Sass とSCSS どっちがいいの?
Comparison [ ⽐較 ] SCSS ・CSS と同じ書き⽅({})なので学習コストは安く済む ・CSS と同じ書き⽅({})なのでネストの際にわかりやすい(かもしれない) ・ネストしすぎると{}の数が膨⼤になるので⾒た⽬がカオス
・{}さえあればインデントガタガタでも動いてしまうので (整形ツール無しだと)ソースが汚くなりやすい ・{}と;は毎回書かないといけないのでコーディングスピードは落ちる ・使⽤案件数は圧倒的Sass よりは多い、記事も多い
Comparison [ ⽐較 ] Sass ・rubyの記法に似ている({}の代わりにインデントを使⽤する)ので 学習コストはSCSS よりかかる ・慣れてしまえば爆速コーダーの⼀員です。ようこそ ・ネストしてもインデントなので⾒た⽬がすっきり(詳細度関係ない条件式のお話)
・結構厳しめのルール設定なので治安が保たれる (インデントおかしいとエラー, セミコロンの後に半⾓スペース必要) ・インデントでHTML を書けるPug との相性は抜群 ✨
どちらにも対応できるのが⼀番 あなたが 環境構築担当なら 学習コストのリスクを取ってでも ⻑い⽬で⾒たときに 治安が守られる⽅を選ぶのが賢明な判断
CSS から にしたい
css2sass で検索
最後に
のメイン製作者は Google の⼈です