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
Yet Another CSS Preprocessor #frontrendCSS
Slide 2
Slide 2 text
Aout me 4 Լ խষ / Masaaki Morishita 4 twitter: @morishitter_ 4 github: morishitter 4 blog: http://morishitter.hatenablog.com 4 େֶӃ M2 4 4݄͔ΒαΠόʔΤʔδΣϯτʹೖࣾ
Slide 3
Slide 3 text
Concept of YACP CSSͷઃܭΛຊ࣭తʹྑ͘͢ΔͨΊͷϓϦϓϩη οα 4 طଘͷϓϦϓϩηοαߏจ͕ؒҧͬͯͳ͚Ε ԿͰίϯύΠϧ͢Δ 4 ίϯύΠϧΛݫͯ͘͠͠CSSͱطଘͷϓϦϓϩ ηοαͷόουϓϥΫςΟεͷ༻Λ͙
Slide 4
Slide 4 text
Features of YACP 4 ϧʔϧηοτͷଋറ 4 ҆શͳ @extend 4 ৄࡉͷ౷Ұ
Slide 5
Slide 5 text
ϧʔϧηοτͷଋറ ಉҰηϨΫλʹΑΔϧʔϧηοτͷ࠶ఆٛΛېࢭ (.foo) { font-size: 12px; } .foo { /* Error */ font-size: 14px; }
Slide 6
Slide 6 text
҆શͳ @extend "҆શͳ" 4 ѱ͍@extendͷํ๏Λ͙ 4 ϓϨʔεϗϧμ(%)ηϨΫλΛڧ੍ 4 ܧঝݩͷϧʔϧηοτଋറ 4 ܧঝݩͷϧʔϧηοτ͕ڞ௨ͷϓϩύςΟ ΛؚΉ߹Τϥʔ
Slide 7
Slide 7 text
҆શͳ @extend %base-1 { font-size: 12px; padding: 8px 12px; } %base-2 { font-size: 14px; } .foo { /* Error */ extend: %base-1; extend: %base-2; }
Slide 8
Slide 8 text
ৄࡉͷ౷Ұ (Φϓγϣϯ) ΫϥεηϨΫλͱͦΕʹਵ͢ΔٖࣅηϨΫλҎ ֎Λېࢭ .class {} /* OK */ .class:hover {} /* OK */ #id {} /* NG */ p {} /* NG */ .class .nested {} /* NG */ .class { color: red !important; /* NG */ }
Slide 9
Slide 9 text
Object Oriented Design with YACP
Slide 10
Slide 10 text
ϧʔϧηοτͷΧϓηϧԽ (.text) { font-size: 12px; color: red; } .text { /* Error */ font-size: 14px; } .foo .text { /* Error */ color: blue; } ΧεέʔσΟϯάΛېࢭ
Slide 11
Slide 11 text
privateͳϧʔϧηοτ %base { font-size: 12px; } .foo { extend: %base; } %base { /* Error */ font-size: 14px; } privateͳ(্ॻ͖ෆՄೳͰ͔ͭYACPϑΝΠϧ ͰͷΈࢀরՄೳ)ͳϧʔϧηοτΛఆٛͰ͖Δ
Slide 12
Slide 12 text
Single Class Design with YACP
Slide 13
Slide 13 text
ϚϧνΫϥεઃܭͷ 1. ڞ௨͢ΔϓϩύςΟ্͕ॻ͖͞ΕΔ 2. ϧʔϧηοτؒͷ҉ͷґଘؔ 4 ް͍ελΠϧΨΠυ͕ඞཁʹͳΔ 3. Ϋϥε໊ͷηϚϯςΟοΫ͞(?)
Slide 14
Slide 14 text
γϯάϧΫϥεઃܭ %btn {} %btn-blue {} %btn-large {} .btn-next { extend: %btn; extend: %btn-blue; extend: %btn-large; }
Slide 15
Slide 15 text
YACP https://github.com/morishitter/YACP YACP: ΑΓΦϒδΣΫτࢦͳ CSSઃܭͷͨΊͷϓϦϓϩηοα http://morishitter.hatenablog.com/entry/ 2014/12/02/000135
Slide 16
Slide 16 text
Thanks :) @morishitter_