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
Speed up your web development
Search
Spin
January 10, 2012
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Speed up your web development
Spin
January 10, 2012
More Decks by Spin
See All by Spin
Django Class-based Views for Beginners
spin
2
250
Two scoops of Django - Security Best Practices
spin
0
140
The django book - Chap10 : Advanced Models
spin
1
160
Other Decks in Programming
See All in Programming
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
490
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
240
Java 27新機能 / Java 27 new features
kishida
2
160
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
900
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.4k
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
170
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
160
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
200
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
0
120
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
260
Heart of Swift Concurrency
koher
0
950
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Faster Mobile Websites
deanohume
310
32k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
The agentic SEO stack - context over prompts
schlessera
0
940
How GitHub (no longer) Works
holman
316
150k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Visualization
eitanlees
152
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
Paper Plane
katiecoart
PRO
4
53k
Transcript
Speed up your Web Development Ushering in 2012 Speaker :
Spin Lai Date : 2012/1/10 ϋ˜˚ಂɚ
Time breakdown of modern web development ϋ˜˚ಂɚ
40% Trying to get the bastard to work in Internet
fu*king Explorer ϋ˜˚ಂɚ
15% Swearing ϋ˜˚ಂɚ
20% Trying to get the layout to work using only
CSS before giving up and using table ϋ˜˚ಂɚ
10% Making the site W3C comliant ϋ˜˚ಂɚ
10% Wishing a slow, painful death on Bill Gat*s ϋ˜˚ಂɚ
5% Actually coding/design ϋ˜˚ಂɚ
Can somebody help us, Please ? ϋ˜˚ಂɚ
Can somebody help us, Of course! ϋ˜˚ಂɚ
ZenCoding SASS/Compass Dojo ϋ˜˚ಂɚ
ZenCoding ϋ˜˚ಂɚ
ZenCoding ϋ˜˚ಂɚ
What is ZenCoding ? ϋ˜˚ಂɚ
What is ZenCoding ? Get HTML done faster ! ϋ˜˚ಂɚ
But I have code snippet plugins for my IDE. ϋ˜˚ಂɚ
Cross-platform Cross-editor CSS-like syntax ZenCoding is ... ϋ˜˚ಂɚ
It works with ... ϋ˜˚ಂɚ
<textarea> ϋ˜˚ಂɚ
And how ? ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="content"> </div>
ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="content"> </div>
div#content ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="content"> </div>
div#content ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <ul id="navigation"> <li></li>
<li></li> <li></li> </ul> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <ul id="navigation"> <li></li>
<li></li> <li></li> </ul> ul#navigation>li*3 ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <ul id="navigation"> <li></li>
<li></li> <li></li> </ul> ul#navigation>li*3 ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <select id="jazz" name=""
class="album"> <option value=""></option> <option value=""></option> </select> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code select#jazz.album>option*2 <select id="jazz"
name="" class="album"> <option value=""></option> <option value=""></option> </select> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code select#jazz.album>option*2 <select id="jazz"
name="" class="album"> <option value=""></option> <option value=""></option> </select> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="thediv"> <p
class="first"></p> <p class="second"></p> </div> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="thediv"> <p
class="first"></p> <p class="second"></p> </div> div#thediv>p.first+p.second ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="thediv"> <p
class="first"></p> <p class="second"></p> </div> div#thediv>p.first+p.second ϋ˜˚ಂɚ
DEMO ϋ˜˚ಂɚ
SASS/Compass ϋ˜˚ಂɚ
CSS/SASS/Compass ϋ˜˚ಂɚ
尛 ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
CSS / SASS / Compass ϋ˜˚ಂɚ
CSS / SASS / Compass ϋ˜˚ಂɚ
Everything is much easier ϋ˜˚ಂɚ
Everything is much easier in the beginning... ϋ˜˚ಂɚ
body { margin: 0; padding: 0; background-color: #D1E7FF; font-family: Verdana,
Arial, Helvetica, sans-serif; } div#main { margin: 0 2em 0 2em; padding: 0; background: #FFF; } div#footer { margin: 0 3em; padding: 0.5em 0; background: #FFF; height: 64px; background-image: url('images/inex_06.jpg'); } ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
When the project grows up... ϋ˜˚ಂɚ
table#tb_product_grid {width: 100%;} table#tb_product_grid td {margin: 0;padding: 0; text-align: center;}
table#tb_product_grid img{width: 350px;} table#tb_LT_realtime th.y_desc {border-right: 1px solid #999; border-bottom: 1px solid #999; background: #5A042C; color: #FFF; width: 22%;} table#tb_LT_realtime th.x_var {background: #E7E5E5; width: 13%;} table#tb_LT_realtime th.y_var {border: 1px solid #DDD; padding: 0.25em 1.5em 0.25em 0; text-align: right;} .formbutton04{ cursor:pointer; border:outset 1px #ccc; background:#999; color:#000; font-family:Verdana,sans-serif; font-weight:bold; padding: 1px 2px; background:url(images/formbg04.gif) repeat-x left top; } .btn3_mouseout { BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid } .btn3_mouseover { BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr=#ffffff, EndColorStr=#D7E7FA); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid } iv#display_img{ text-align: center; margin: 0 0 0 2.5em; width: 1000px; } div#img_name{ width: 1000px; height:20px; font-size: large; text-align: center; } div#img_list_name{ padding:2px; font-size: large; height: 20px; text-align: center; width: 1000px; } div#down_gif{ margin: 0.5em 0 0 2.5em; width:1000px; /* height:20px; */ text-align:right; cursor: pointer; } .ui-tabs { padding: .2em; zoom: 1; } .ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; } .ui-tabs .ui-tabs-nav li a { float: left; text- decoration: none; padding: .5em 1em; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui- tabs .ui-tabs-nav li.ui-state-disabled a, .ui- tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs- collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ .ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; } .ui-tabs .ui-tabs-hide { display: none ! important; } div.sitemap_layer_1{ border: 1px solid #B5D9EA; margin: 0.5em 0 0 28px; background: #D9F1FC; padding: 0.25em 1em 0.25em 1em; display: inline-block; *display: inline; / * This is for IE6 */ zoom: 1; / * This is for inline-block in IE */ *display: inline !important; / * This is for IE7 */ } ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
CSS / SASS / Compass ϋ˜˚ಂɚ
SASS is ... ϋ˜˚ಂɚ
NOT SuperASS SASS is ... ϋ˜˚ಂɚ
NOT SuperASS Syntatically Awsome StyleSheet SASS is ... ϋ˜˚ಂɚ
NOT SuperASS Syntatically Awsome StyleSheet SASS v3 is known as
SCSS SASS is ... ϋ˜˚ಂɚ
Okay, but what can she do? ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } ϋ˜˚ಂɚ
[ CSS ] #header { margin-bottom: 50px; } #header h1
{ font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } [ SCSS ] ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #navbar li { border-top-radius:
10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } #footer { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] @mixin rounded-top { $RADIUS:
10px; border-top-radius: $RADIUS; -moz-border-radius-top: $RADIUS; -webkit-border-top-radius: $RADIUS; } #navbar li { @include rounded- top; } #footer { @include rounded-top; } #navbar li { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } #footer { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] @mixin rounded-top { $RADIUS:
10px; border-top-radius: $RADIUS; -moz-border-radius-top: $RADIUS; -webkit-border-top-radius: $RADIUS; } #navbar li { @include rounded- top; } #footer { @include rounded-top; } #navbar li { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } #footer { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] .warn { background: yellow;
} .bad_warn { background: yellow; font-weight: bold; color: red; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] .warn { background: yellow;
} .bad_warn { @extend .warn; font-weight: bold; color: red; } .warn { background: yellow; } .bad_warn { background: yellow; font-weight: bold; color: red; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] .warn { background: yellow;
} .bad_warn { @extend .warn; font-weight: bold; color: red; } .warn { background: yellow; } .bad_warn { background: yellow; font-weight: bold; color: red; } ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
CSS / Sass / Compass ϋ˜˚ಂɚ
Powered by SASS Meta framework Code snippets Best practices Compass
is ... ϋ˜˚ಂɚ
Tell me more ! ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
@import "compass" .linear { @include background(linear- gradient( top left, #333,
#0C0)); } ϋ˜˚ಂɚ
@import "compass" .box { @include border-radius(8px); @include box-shadow( rgba(#CCC, 0.5)
3px 3px 5px ); } ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
DEMO ϋ˜˚ಂɚ
Dojo ϋ˜˚ಂɚ
Dojo ϋ˜˚ಂɚ
One day ... ϋ˜˚ಂɚ
Doraemon ϋ˜˚ಂɚ
It’s easy! see... ϋ˜˚ಂɚ
It’s easy! see... ϋ˜˚ಂɚ
But I use IE9, and... ϋ˜˚ಂɚ
But I use IE9, and... ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
I use IE6, WTF... ϋ˜˚ಂɚ
I use IE6, WTF... ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
God ! Help us !! ϋ˜˚ಂɚ
Dojo ? What’s that? ϋ˜˚ಂɚ
Powerful Javascript toolkit Open source BSD licensed Dojo is ...
ϋ˜˚ಂɚ
Powerful ? Show me ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
DEMO ϋ˜˚ಂɚ
Last , but not least... ϋ˜˚ಂɚ
IE6 must die! ϋ˜˚ಂɚ
Reference ϋ˜˚ಂɚ
ZenCoding http://code.google.com/p/zen-coding/ SASS http://sass-lang.com Compass http://compass-style.org Dojo http://dojotoolkit.org ϋ˜˚ಂɚ