Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
PostCSS'5.0 for$Custom$CSS$Preprocessing in#Back#to#Basics
Slide 2
Slide 2 text
About&me • Masaaki'Morishita • Twi.er:'@morishi.er_ • GitHub:'morishi.er • ΠΧ:'CSS0830 • αΠόʔΤʔδΣϯτʢ৽ଔ1ʣ • PostCSSΤόϯδΣϦετʢࣗশʣ
Slide 3
Slide 3 text
Blog
Slide 4
Slide 4 text
PostCSSͰ࡞ͬͨͷ • CSSfmt:((S)CSSίʔυܗπʔϧ • AtCSS:(΅͕͔͘Μ͕͍͖͑ͨ͞ΐ͏ͷCSSϓϦϓϩηοαʔ • postcss0style0guide:(ελΠϧΨΠυδΣωϨʔλʔ • ଞϓϥάΠϯ7ͭ
Slide 5
Slide 5 text
PostCSSͱ
Slide 6
Slide 6 text
PostCSS • Node.jsͷCSS෩ݴޠύʔαʔ • ASTΛૢ࡞͢ΔศརAPIΛఏڙ • ASTͷૢ࡞શͯϓϥάΠϯ͕୲ • PostCSSࣗମCSSϓϦϓϩηοαʔͰͳ͍ • ϓϥάΠϯͷΤίγεςϜؚΊͯPostCSSͱݺΕΔ
Slide 7
Slide 7 text
PostCSS'ͱԿ͔ h"ps:/ /speakerdeck.com/jmblog/postcss5tohahe5ka
Slide 8
Slide 8 text
ࠓ͢͜ͱ
Slide 9
Slide 9 text
PostCSS'5.0 for$Custom$CSS$Preprocessing
Slide 10
Slide 10 text
The$Beginning$is$...
Slide 11
Slide 11 text
rework Plugin'framework'for'CSS'preprocessing
Slide 12
Slide 12 text
Modular(CSS(preprocessing( with(rework h"p:/ /tjholowaychuk.tumblr.com/post/ 44267035203/modular=css=preprocessing=with= rework
Slide 13
Slide 13 text
Custom'CSS'preprocessing h"p:/ /nicolasgallagher.com/custom4css4 preprocessing/
Slide 14
Slide 14 text
rework&(in&2012) • AutoprefixerͱͱreworkͰ࡞ΒΕ͍ͯͨ • ʢAutoprefixerͱPostCSSͷ࡞ऀಉ͡ʣ • ͔࣌͠͠reworkϒϥβϋοΫΛύʔεͰ͖ͳ͔ͬͨ • ʢ͋ͱTJʹAutoprefixerΛdisΒΕͨΓ…ʣ • ʮΑ͠ɺࣗͰ࡞Ζ͏ʂʯ
Slide 15
Slide 15 text
PostCSS'ੜ
Slide 16
Slide 16 text
The$History$of$PostCSS
Slide 17
Slide 17 text
PostCSSʢʙ'v1ʣ • "PostCSS)is)a)framework)for)CSS)postprocessors" • AutoprefixerͷͨΊʹ࡞ΒΕͨ • ͜ͷࠒCoffeeScriptͰॻ͔Εͯͨ • ࡞ऀRuby͖ͰSass͖
Slide 18
Slide 18 text
PostCSS'(v2'ʙ'v4) • ϓϥάΠϯ͕େྔʹ࡞ΒΕ͍ͯ͘ • ݴޠ֦ுͷͨΊͷϓϥάΠϯ࡞ΒΕ͍ͯ͘ • cssnext,)AtCSS,)PreCSS • ʮϙετϓϩηεͱ͍͍ͬͨ…ʯ
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
PostCSS'5.0 released'on'August'20,'2015
Slide 21
Slide 21 text
PostCSS'5.0 • ࠓ·ͰͰҰ൪େ͖͍มߋ • API໊͕มߋ • Node.js,v0.10ͷαϙʔτ͕ͳ͘ͳΔ • Custom'Syntaxes
Slide 22
Slide 22 text
Custom'Syntaxes • SyntaxΛࣗͰఆٛ͠ɺPostCSSͷASTʹύʔεͰ͖Δ • ΦϓγϣϯͷՃ • parser:/ύʔαʔΛબ • stringifier:/ΞτϓοτͷॲཧΛબ • syntax:/parser/+/stringifier postcss().process(source, { syntax: scss })
Slide 23
Slide 23 text
Custom'Syntaxes • postcss'scss • SCSS༻ͷPostCSS+Syntax • PostCSSͰSCSSϑΝΠϧΛCSSʹίϯύΠϧͰ͖ΔΑ͏ʹ ͳͬͨΘ͚Ͱͳ͍ • SCSS+to+CSSͷίϯύΠϥʢϓϥάΠϯύοΫʣΛ࡞ͬͯΔਓ ͕͍ΔΒ͍͠
Slide 24
Slide 24 text
Custom'Syntaxes • for%CSS(in(JS • JSΦϒδΣΫτΛPostCSS%ASTʹม • React%Style%Autoprefixer • Styling
Slide 25
Slide 25 text
PostCSS'is'Awesome!!
Slide 26
Slide 26 text
※͔͜͜ΒݸਓͷײͰ͢
Slide 27
Slide 27 text
CSSͷಠࣗه๏Λ࡞ͬͯํͳ͍ ݁ہͲΕͨͩͷγϯλοΫεγϡΨʔ
Slide 28
Slide 28 text
@function halfSize($value) { @return $value / 2; } $val: 100px; :root { // Main theme color --color: red; } .foo { width: halfSize($val); } .bar { color: var(--color); padding: $val / 10; }
Slide 29
Slide 29 text
(")
Slide 30
Slide 30 text
CSS๊͕͑ΔԿ͔
Slide 31
Slide 31 text
நԽͱ࠶ར༻ʁ ΧεέʔσΟϯάͱηϨΫλʔৄࡉʁ
Slide 32
Slide 32 text
ϓϦϓϩηοαʔͲ͏͋Δ͖͔
Slide 33
Slide 33 text
ಓ۩ʹৼΓճ͞Εͣɺຊ࣭ΛݟΔ
Slide 34
Slide 34 text
Back%to%Basics
Slide 35
Slide 35 text
Thanks':D @morishi(er_