2013年5月18日に開催された WCAF Vol.10 でのスライドです
4BTTͱྑ͓͖͘߹͍2013.05.18ɹWCAF Vol.10 Toshiaki Sasaki (Web Designer at ALLCONNECT,Inc.)
View Slide
Toshiaki SasakiWeb Designer at ALLCONNECT.Inc.@shirokuro331
What’s Sass?
“Sass makes CSS fun again.
1. Sass2. Compass3. Case of Sass4. ConclusionAGENDA
Sass is CSS Preprocessor..scss .css
http://sass-lang.com/
http://jsdo.it/
http://codepen.io/
Future?
4BTT $441SFQSPDFTTPSɺ͍ͭ͏ͷʁ
ϋΠϋΠᵇ ʅшʆᵃ
Demo
$ gem install sass$ sass --watch scss:css
http://mhs.github.io/scout-app/
http://incident57.com/codekit/
Sublime Text 2 + Emmet
.scss .cssNesting ೖΕࢠͰ$44Λॻ͚Δ#header {width: 960px;margin: 0 auto;padding: 0;.contact {float: right;p {margin-bottom: 20px;}}}#header {width: 960px;margin: 0 auto;padding: 0;}#header .contact {float: right;}#header .contact p {margin-bottom: 20px;}
.scss .cssValiables มΛ͏͜ͱ͕Ͱ͖Δ$secbottom: 30px;$basecolor: #cc0000;.block-a {background: $basecolor;margin-bottom: $secbottom;}.block-a {background: #cc0000;margin-bottom: 30px}
.scss .cssmixin $44ͷ·ͱ·ΓΛมΈ͍ͨʹ͢Δ@mixin sprite {display: block;text-indent: -9999px;}@mixin sectionWidth($dist) {width: $dist;margin: 0 auto;}.btn {@include sprite;}.btn {@include sectionWidth(960px);}.btn {display: block;text-indent: -9999px;}.btn {width: 960px;margin: 0 auto;}
.scss .cssextend ηϨΫλΛ࠶ར༻Ͱ͖Δ%clearfix {overflow: hidden;*zoom: 1;}#header {@extend: %clearfix;width: 980px;}#footer {@extend: %clearfix;width: 700px;}#header, #footer {overflow: hidden;*zoom: 1;}#header {width: 980px;}#footer {width: 700px;}
.scss .cssdarken ৭Λ҉͘͢Δ$basecolor: #eee;.block-a {width: 100px;height: 100px;background: $basecolor;}.block-b {width: 100px;height: 100px;background: darken($basecolor, 30%);}.block-a {width: 100px;height: 100px;background: #eeeeee;}.block-b {width: 100px;height: 100px;background: #a2a2a2;}
.scss .csslighten ৭Λ໌Δ͘͢Δ$basecolor: #990000;.block-a {width: 100px;height: 100px;background: $basecolor;}.block-b {width: 100px;height: 100px;background: lighten($basecolor, 30%);}.block-a {width: 100px;height: 100px;background: #990000;}.block-b {width: 100px;height: 100px;background: #ff3333;}
.scss@import ෳͷTBTTϑΝΠϧΛDTTϑΝΠϧʹ݁߹͢Δ@import “common”;@import “reset”;@import “module”;style.scss_common.scss _reset.scss _module.scss style.cssstyle.scss
Speed up?
ܶతʹ࡞ۀεϐʔυ͕͔͋ͬͨͱ͍͏ͱͦ͏Ͱͳ͍࡞ۀεϐʔυͱ͍͏ΑΓɺޮԽΛҙࣝ͢ΔΑ͏ʹ%3:ͳઃܭΛߟ͑ΔΑ͏ʹͳͬͨ%3:ɾɾɾ%PO`U3FQFBU:PVSTFMG
݁4BTT͑ΔΑ͏ʹͳͬͯ࡞ۀޮ্͕ͬͨ
http://compass-style.org/
$ gem install compass
$ compass create folder_name
$ cd folder_name$ compass watch
.scss .cssmixin ͋Β͔͡ΊNJYJO͕ͨ͘͞Μ༻ҙ͞Ε͍ͯΔ@import “compass/utilities/general/clearfix”;.block {@include clearfix;}.block {overflow: hidden;*zoom: 1;}
.scss .cssmixin ͋Β͔͡ΊNJYJO͕ͨ͘͞Μ༻ҙ͞Ε͍ͯΔ@import “compass/css3”;.block-a {@include border-radius(10px);}.block-b {@include box-shadow(#c00 3px3px 10px);}.block-a {-webkit-border-radius: 10px;-moz-border-radius: 10px;-ms-border-radius: 10px;-o-border-radius: 10px;border-radius: 10px;}.block-b {-webkit-box-shadow: #cc0000 3px 3px 10px;-moz-box-shadow: #cc0000 3px 3px 10px;box-shadow: #cc0000 3px 3px 10px;
Sublime Text 2 + EmmetͰOK?
.scss .cssCSS Sprite DTTͱը૾ΛࣗಈͰ࡞ͬͯ͘ΕΔ@import “icons/.png”;@include all-icons-sprite;// img/icons ʹΞΠίϯը૾// config.rb ͷը૾ύεઃఆɹɹimages_dir = "img".icons-sprite,.icons-download,.icons-cloud {background: url(‘../img/icons-scb48544681.png’) no-repeat;}.icons-sprite {background-position: 0 32px;}.icons-download {background-position: 0 64px;}.icons-cloud {background-position: 0 96px;}
CSS Sprite DTTͱը૾ΛࣗಈͰ࡞ͬͯ͘ΕΔ
.scss .cssimage-width ը૾ͷύε͔Β෯αΠζΛऔಘ͢Δ.icon {width: image-width(“path”);}.icon {width: 32px;}
.scss .cssimage-height ը૾ͷύε͔Βߴ͞αΠζΛऔಘ͢Δ.icon {height: image-height(“path”);}.icon {height: 32px;}
.scssCSS sprite + image-width,height$icon: sprite-map(“path”, $spacing: 5px);@mixin sprite {display: block;text-indent: -9999px;}.icon-cloud {@include sprite;width: image-width(sprite-file($icon, imagename));height: image-height(sprite-file($icon, imagename));background-image: $icon;background-position: sprite-position($icon, imagename);}
Attention!
ෳਓͰͭͷϓϩδΣΫτͷ੍࡞Λߦ͏߹ɺͦͷਓ$PNQBTTʹ͍ͭͯͷཧղ͕ඞཁࢲҰ࠳ંͯ͠·͢ձࣾͱ͔Ͱ͏߹ɺগͮͭ͠ಋೖ͕٢͔ͳͱࢥ͏
݁ͳΜʹͤΑ$PNQBTTศརʂ
ͱ͋ΔձࣾͰͷ4BTTͱͷ͓͖߹͍ํ
ϑΥϧμϑΝΠϧͷߏʁ
DBTFQWQcss_scss _common.scss_valiables.scss_module.scssstyle.css_spriteimage.scssstyle.scssɾɾɾαΠτͷΈมύʔπ$44εϓϥΠτ֤ίϯςϯπ༻
css_scsscompass_start.batconfig.rbμϒϧΫϦοΫͰ@TDTTࢹ։࢝ઃఆϑΝΠϧ
css_scsscompass_start.batconfig.rbμϒϧΫϦοΫͰ@TDTTࢹ։࢝ઃఆϑΝΠϧ͜ͷͭͷϑΝΠϧ͕͋ΕίϚϯυೖྗ͠ͳͯ͘TBTTͷࢹฤू͕Մೳ
compass_start.bat(.command)compass watch#!/bin/bashhtdocs=$(dirname $0)cd $htdocscompass watchWindowsMac
config.rbhttp_path = "/"css_dir = "css"sass_dir = "_scss"images_dir = "img"javascripts_dir = "js"output_style = :nestedrelative_assets = trueline_comments = falseDTTͷϑΥϧμ໊TBTTͷϑΥϧμ໊ը૾ͷϑΥϧμ໊+BWB4DSJQUͷϑΥϧμ໊DTTͷग़ྗܗࣜ૬ରύεʢTQSJUFͷͨΊʹඞཁʣTDTTͷԿߦ͔Λίϝϯτ͚ͭΔ
͍͠ͷͰ୭͔खͬͯཉ͍͠ ʀЧʆ
DBTFQWQcss_scss _common.scss_company.scssstyle.css_price.scssstyle.scssɾɾɾ_item.scssҰͭͷDTTϑΝΠϧʹίϯύΠϧ͢ΔͷͰҧ͏TDTTϑΝΠϧΛෳਓͰ࡞ۀͯ͠େৎstyle.css
css style.css4BTT͑ͳ͍ਓී௨ʹDTTϑΝΠϧʹॻ͍ͯΒ͏
ձࣾʢνʔϜʣͰͷಋೖ
উखʹͬͨࣗͰઌͯ͠Δ୭͔Λר͖ࠐΉษڧձ͢Δ֤ࣗͷϚγϯʹڧ੍తʹ4BTT$PNQBTTೖΕΔDPOpHSCͱόονϑΝΠϧ༻ҙ͢Δ
Conclusion.
4BTTʢ$44ϓϦϓϩηοαʣͰޮతͳ։ൃ$PNQBTTศརʂ্खʹ͓͖߹͍͠·͠ΐ͏࠷ॳ͘͠ࢥ͏͔͚ͩͲ׳ΕΔͱϠϛπΩʹࠇ͍ը໘΄ͱΜͲΘͳͯ͘4BTT͑ΔͰࠇ͍ը໘ʹ׳ΕΑ͏
Enjoy Coding!
Thank youWCAF Vol.10 ʮWeb Designing for the Futureʯ@shirokuro331
[email protected]ʲ4BTTΛ֮͑Α͏ʂʳ͘͡తͳͷͱࢀߟϦϯΫc$44)BQQZ-JGF$PNQBTTΛͬͯ4BTTͷ$44ग़ྗΛखܰʹ͠Α͏c4LZXBSE%FTJHOResourcesIUUQXXXTLZXBSEEFTJHOOFUCMPHBSDIJWFTIUNMPhoto Credit-VD7JBUPVSIUUQXXXMVDOJYCFNBJOQIQ