Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Sass Life
Search
saeka
December 07, 2020
Programming
77
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Sass Life
Sassをもっと知りたい人のためのスライド
saeka
December 07, 2020
More Decks by saeka
See All by saeka
All About CSS
saeka
0
230
Other Decks in Programming
See All in Programming
ChromeでローカルLLM
ryu1013
0
140
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
490
Railsバージョンを4倍にした話
optim
0
400
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
1
280
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
ActionController meets Protocol Buffers
sorah
0
530
JIS keyboard support in Omarchy
lef237
0
120
ジョジョの世界をXRで再現する
mofurune
0
170
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Making the Leap to Tech Lead
cromwellryan
135
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
How GitHub (no longer) Works
holman
316
150k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Mind Mapping
helmedeiros
1
400
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
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 の⼈です