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
Web制作者のためのSassの参考書.pdf
Search
IMANISHI TOSHIFUMI
September 18, 2019
Technology
2.9k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Web制作者のためのSassの参考書.pdf
IMANISHI TOSHIFUMI
September 18, 2019
More Decks by IMANISHI TOSHIFUMI
See All by IMANISHI TOSHIFUMI
Vue 3 超入門 ー ゆく Vue くる Vue
toshifumiimanishi
0
200
Form_design_from_Netflix.pdf
toshifumiimanishi
0
160
New_Sass_Module_System.pdf
toshifumiimanishi
2
900
JAMstack_kotohajime.pdf
toshifumiimanishi
0
120
mercurial_nyuumon.pdf
toshifumiimanishi
0
97
ゆく技術_くる技術.pdf
toshifumiimanishi
0
300
裏CSS.pdf
toshifumiimanishi
0
140
Other Decks in Technology
See All in Technology
Kiro5兄弟のいまどきのセキュリティ基礎知識
kentapapa
0
400
パスキーでドライブする アカウント統合(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
380
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
410
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
54k
『自分で判断できるか』を基準に、プロダクトのハンズオン研修でAI利用の線を引いてみた / Where We Drew the Line on AI in Hands-on Training
honyanya
1
460
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3.2k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.3k
Point Cloud as a Foreign Language for Multi-modal Large Language Model
takmin
0
310
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
190
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
86k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
510
Six Lessons from altMBA
skipperchong
29
4.5k
Documentation Writing (for coders)
carmenintech
77
5.5k
Why Our Code Smells
bkeepers
PRO
340
58k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
220
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Claude Code のすすめ
schroneko
67
230k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
560
Optimising Largest Contentful Paint
csswizardry
37
3.9k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
480
My Coaching Mixtape
mlcsv
0
300
Transcript
8FC੍࡞ऀͷͨΊͷ4BTTͷࢀߟॻ Sep 18, 2019 / Toshifumi Imanishi
ຊɺ͢༰ w 4BTTͱ w 4BTTͷྺ࢙ w ଞͷ$44ϝλݴޠ w ͏গ͠4BTTΛ۷ΓԼ͛ͨ w
৽ϞδϡʔϧγεςϜ ඇΤϯδχΞ͚ ΤϯδχΞ͚
4BTTͱʁ 4BTTʢ4ZOUBDUJDBMMZ"XTPNF4UZMFTIFFUTʣͱɺ$44Λ֦ுͨ͠ݴޠͰ͢ɻ$44͘ී ٴͤ͞Δత͋ͬͯॻࣜࣗମγϯϓϧͳͷͰ͕͢ɺϓϩάϥϜͰͨΓલͷΑ͏ʹඋ͑ͯ ͍Δػೳ͕͋Γ·ͤΜɻͦͷΑ͏ͳ$44ͷऑΛิ͏తͰੜͨ͠ͷ͕4BTTʹͳΓ·͢ɻ 4BTTͷެࣜαΠτʢ݄ݱࡏʣIUUQTTBTTMBOHDPN
4BTTͳͥੜͨ͠ͷ͔ʁ ࡢࠓͷ8FCαΠτ੍࡞ʹɺϚϧνσόΠεͷରԠɺ3FUJOBσΟεϓϨΠͳͲͷߴղ૾ σΟεϓϨΠͷରԠɺϨεϙϯγϒ8FCσβΠϯͳͲɺ$44ʹٻΊΒΕΔཁ͕݅ଟ༷Խ͠ ͍ͯ·͢ɻ͔͠͠ɺ։ൃऀʹٻΊΒΕΔػೳ͕$44ͷ༷ʹՃ͞ΕΔʹ૬ͳ݄͕͔͔ Γ·͢ɻ ˠͦ͜ͰɺϝλݴޠʹͲΜͲΜػೳΛՃ͠ɺϩʔΧϧڥͰಈ࡞͢ΔϓϩάϥϜʹΑΓɺ $44ͷ༷ʹม͢ΕΑ͍ͱ͍͏ߟ͕͑ੜ·Ε·ͨ͠ɻͦΕ͕4BTTͷੜʹͳΓ·͢ɻ
4BTTɺTDTTͱ͍͏֦ுࢠͷϑΝΠϧͰهड़͢Δͷ͕σϑΝΫτελϯμʔυʹͳΓ·͢ɻ ͪΖΜɺTBTTͱ͍͏֦ுࢠͷϑΝΠϧ͋Γ·͢ɻʢެ։ॳɺ4"44ه๏ͷΈʣ྆ऀʹ ه๏ͷҧ͍͕͋Γɺ4$44ه๏͕$44ͱಉ͡ه๏Λ࠾༻ɺΏ͑ʹ$44ʹޓੑ͕͋Γ·͢ɻ 4$44ه๏ͷੜ͕ɺ4BTTʹΛूΊ·ͨ͠ɻ 4BTT͚ͩͲ4$44ϑΝΠϧ body { font-size: 1.6rem; word-wrap:
break-word; } SCSS ه๏ body font-size: 1.6rem word-wrap: break-word SASS ه๏ 2006 ʹ Sass ެ։ Sass 3.0
͞·͟·ͳ$44ϝλݴޠ w -&44ɿ+BWB4DSJQUɺաڈʹ#PPUTUSBQͰ࠾༻͞Ε͍ͯͨ w 4UZMVTɿ4BTT-&44ΑΓޙൃͷϝλݴޠɺ4"44ه๏ʹ͍ۙ ͱ͍͑ɺ4BTT͕$44ϝλݴޠͷσϑΝΫτελϯμʔυʹͳΓ·͢ɻݱࡏͰ #PPUTUSBQͰ࠾༻͞Ε͍ͯ·͢ɻ
͔͜͜Βɺ͏গ͠۷ΓԼ͛ͨ ʢΤϯδχΞ͚ʣ!
͞·͟·ͳ4BTT w 3VCZ4BTTɿ࠷ॳͷ4BTTɺ݄ʹαϙʔτऴྃ w -JC4BTTɿ͞·͟·ͳݴޠͰ4BTTΛѻ͏ͨΊͷϥΠϒϥϦ w %BSU4BTTɿ%BSUݴޠͰॻ͔Εͨ4BTTɺઌߦͯ͠ػೳ͕࣮͞ΕΔ ※1 Dart ͱ
Google ʹΑͬͯ։ൃ͞Εͨϓϩάϥϛϯάݴޠ ※1
͑ɺͳΜͰ%BSUʁ
%BSUͷٕज़બఆͷཧ༝ ͞·͟·ͳݴޠ͔Β%BSU͕બΕͨཧ༝ΛҎԼʹࣔ͠·͢ɻ w ಈ࡞͕͍ʢ3VCZ4BTTΑΓߴʣ w +BWB4DSJQUʹޓੑ͕͋ΔʢίϯύΠϧͰ͖Δʣ ಛʹ/PEF4BTT"1*ͱͷޓੑʹযΛҠͨ͜͠ͱ͕ཧ༝ʹͳΓ·͢ɻ ͦͯ͠ɺ%BSU4BTTͷొʹΑΓ3VCZ4BTTͷαϙʔτऴྃʹഥं͕͔͔Γ·ͨ͠ɻ
ઌɺ৽ϞδϡʔϧγεςϜͷϓϨϏϡʔ൛͕ެ։
৽ϞδϡʔϧγεςϜͱ w !VTFͱ!GPSXBSEͷՃ w !JNQPSUͷഇࢭʢ໘૬ޓӡ༻͢ΔͨΊɺαϙʔτ͢Δʣ ࠶ར༻ͷ࠷؆୯ͳΞϓϩʔνɺ@import ʹͳΓ·͢ɻ͔͠͠ɺ@import ʹଟ͘ͷ͕જ ΜͰ͍·ͨ͠ɻಉҰϑΝΠϧʹෳͷ @import
ΛಡΈࠐΉ͜ͱͰίϯύΠϧ͕Լ͢Δɺϥ ΠϒϥϦͷ։ൃऀ໊લۭؒΛඞཁͱ͢ΔɺΧϓηϧԽ͕ͳ͍ɺಛఆͷม mixin ͷࢀরݩ͕ ࠔͳͲ͕͋Γ·͢ɻ → ৽͍͠ϞδϡʔϧγεςϜ͜ΕΒͷΛରॲ͠ɺݱࡏͷϓϩάϥϛϯάݴޠͰ࣮ূ͞Εͯ ͍ΔϕετϓϥΫςΟεʹ߹ΘͤΔ͜ͱΛඪͱ͍ͯ͠·͢ɻ
HVMQͰ৽ϞδϡʔϧγεςϜΛࢼ͢ const gulp = require('gulp'); const sass = require('gulp-sass'); sass.compiler
= require('sass'); ͜ͷ 1 ߦΛՃ͢Δ $ npm install -g
[email protected]
ԼهίϚϯυϥΠϯΛ࣮ߦ͢Δ ʢ%BSU4BTTͷϚΠφʔόʔδϣϯʹͳΓ·͢ʣ %BSU4BTTܦ༝ͰίϯύΠϧ͢ΔΑ͏ʹHVMQpMFKTΛઃఆ͢Δ ʢσϑΥϧτͰ/PEF4BTTܦ༝ͰίϯύΠϧ͞Ε·͢ʣ
!JNQPSU͔Β!VTFͷॻ͖͑ มNJYJOάϩʔόϧͰͳ͘ͳΓɺݱࡏͷελΠϧγʔτͰͷΈʢϓϥΠϕʔτͱͯ͠ʣ ద༻͞Ε·͢ɻ // main.scss @import “variables"; @import "foundation/base"; //
_foundation/base.scss html { font-size: $font-size-sm; } // _variables.scss $font-size-sm: 1rem !default; // main.scss @use "foundation/base"; // _foundation/base.scss @use "variables"; html { font-size: variables.$font-size-sm; } // _variables.scss $font-size-sm: 1rem !default;
ҙͷ໊લۭؒΛͨͤΔ !VTFͷσϑΥϧτͷ໊લۭؒɺΠϯϙʔτͨ͠ϑΝΠϧ໊ʹΑܾͬͯ·Γ·͢ɻͪΖΜɺ ໊લۭؒΛ໌ࣔతʹઃఆ͢Δ͜ͱՄೳͰ͢ɻ ʢϫΠϧυΧʔυʣΛ༻͍ΕɺτοϓϨϕϧͷ ໊લۭؒʢ໊લۭؒͳ͠ʣʹͳΓ·͢ɻ // main.scss @import "foundation/base"; //
_foundation/base.scss @use “variables"; html { font-size: variables.$font-size-sm; } // _variables.scss $font-size-sm: 1rem !default; // main.scss @use "foundation/base"; // _foundation/base.scss @use "variables" as var; html { font-size: var.$font-size-sm; } // _variables.scss $font-size-sm: 1rem !default;
!GPSXBSEɺଞͷϞδϡʔϧͷมɺNJYJOͳͲΛؚΜͩϞδϡʔϧͱͯ͠ΤΫεϙʔτ͠· ͢ɻύʔγϟϧΛར༻ͯ͠4BTTϑΝΠϧΛׂ͢Δཧʹཱͪ·͢ɻ!GPSXBSEͰΠϯϙʔ τ͞ΕͨϞδϡʔϧʹɺ໊લۭؒΛؚΈ·ͤΜɻ !GPSXBSEͰ·ͱΊΔ // _base.scss @use "setting" as *;
html { font-size: $font-size-sm; @include breakpoint-up(md) { font-size: $font-size-md; } } // _setting.scss @forward “variables”; @forward “mixins/breakpoints"; // _base.scss @use “variables"; @use “mixins/breakpoints"; html { font-size: variables.$font-size-sm; @include breakpoints.breakpoint-up(md) { font-size: variables.$font-size-md; } }
ࢼͯ͠ΈͯΘ͔ͬͨ͜ͱɺॴײ ৽ͨͳϞδϡʔϧγεςϜɺมNJYJOͳͲΛάϩʔόϧʹࢀর͢Δ͜ͱͰ͖·ͤΜɻ͜ Εɺඪʢ)JHI-FWFMʣʹ͋Δہॴੑʹ֘͠·͢ɻ৽ͨͳϞδϡʔϧγεςϜɺͦͷ 4BTTϑΝΠϧͷΈͰཧղͰ͖ΔΑ͏ʹ͖͢Ͱ͢ɻ·ͨɺ։ൃऀଞͷϑΝΠϧͷ໊લͷিಥ Λؾʹ͢Δ͜ͱͳ͘։ൃͰ͖ΔΑ͏ʹͳΓ·͢ɻ !JNQPSU͕ഇࢭ͞ΕΔʢ໘αϙʔτʣ͜ͱɺݱࡏͷ4BTTͷΤίγεςϜʹେ͖͘Өڹ Λٴ΅͢Ͱ͠ΐ͏ɻ͔͠͠ɺ৽ͨͳϞδϡʔϧγεςϜɺ͜Ε͔Βͷ։ൃʹେ͖͘د༩͢ΔͰ ͠ΐ͏ɻ ※1 ※1ϞδϡʔϧγεςϜͷඪʹɺHigh-Level
ͱLow-Level ͕͋Γ·͢ɻ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·͢