SlideShare a Scribd company logo
1 of 130
なんでCSS 
すぐ死んでしまうん 
Frontrend in Kanazawa 
https://www.flickr.com/photos/tveskov/3387394098
@pocotan001 
Hayato Mizuno
@大阪 
http://peatix.com/event/55901
BIG CSS 
https://www.youtube.com/watch?v=R-BX4N8egEc 
https://www.flickr.com/photos/nickpiggott/5212359135
“CSSはその単純さゆえに、 
大規模な実装では管理が難しい。 
BIG CSS 
“CSS, for all its simplicity, is a difficult language to manage in 
large-scale implementations. ” 
- MVCSS / Overview 
https://www.youtube.com/http://watch?mvcss.v=github.R-BX4N8egEc 
io/ 
https://www.flickr.com/photos/nickpiggott/5212359135
簡単なシンタックス ≠ 簡単な言語 
! 異なるバージョンとブラウザベンダーへの依存 
! ネームスペースの問題 
! 紳士協定だけでルBIG ールをCSS 
制限する難しさ 
! … 
https://www.youtube.com/watch?v=R-BX4N8egEc 
https://www.flickr.com/photos/nickpiggott/5212359135
http://p.twipple.jp/qk9sw
http://p.twipple.jp/qk9sw 
div { 
background: pink; 
}
望ましい設計のゴール 
https://www.flickr.com/photos/nickpiggott/5212959770/in/photostream/
メンテナンス 
60% 
開発 
40% 
http://d.hatena.ne.jp/asakichy/20120420/1334872770
メンテナンス 
60% 
開発 
40% 
要件変更 
60% 
移行 
23% 
バグ修正 
17% 
http://d.hatena.ne.jp/asakichy/20120420/1334872770
メンテナンス 
60% 
開発 
40% 
コードを 
理解する時間 
30% 
http://d.hatena.ne.jp/asakichy/20120420/1334872770
良いCSS設計のゴール 
メンテナンス 
60% 
開発 
40% 
コードを 
理解する時間 
30% 
http://article.enja.io/articles/css-architecture.html 
http://d.hatena.ne.jp/asakichy/20120420/1334872770 
! 予測しやすい 
! 再利用しやすい 
! 保守しやすい 
! 拡張しやすい
http://goo.gl/OnnMm
http://goo.gl/OnnMm 
設計はルーズなプロセスである 
! 問題を解決することで新たな問題を生む 
! うまくいくかどうかは試してみないとわからない 
! 要件が変われば設計も変わる(かもしれない)
メソドロジーとルール 
https://www.flickr.com/photos/bdesham/2432400623
“我々はページをデザインしているの 
ではない、コンポーネントのシステ 
ムをデザインしているのだ。 
“We're not designing pages, we're designing systems of components. ” 
- Stephen Hay 
http://bradfrostweb.com/blog/mobile/bdconf-stephen-hay-presents-responsive-design-workflow/
http://styletil.es/
http://sparkbox.github.io/style-prototype/
http://medialoot.com/item/free-flat-ui-design-kit/
http://getbootstrap.com/
https://www.polymer-project.org/
https://www.flihctktpr.c:/o/cmo/dpehpoetons.io/la/peoncuolfetaann0/50914/f3u1ll/3E2tq2r9c6/
<paper-button label="button"> 
</paper-button> 
! 
<paper-button label="button" 
raisedButton> 
</paper-button> 
https://www.polymer-project.org/docs/elements/paper-elements.html#paper-button
<paper-button label="button"> 
</paper-button> 
! 
<paper-button label="button" 
raisedButton> 
</paper-button> 
Visual Non-visual 
! <core-icon> 
! <core-list> 
! <core-overlay> 
! … 
! <core-ajax> 
! <core-media-query> 
! <core-localstorage> 
! … 
https://www.polymer-project.org/docs/elements/paper-elements.html#paper-button
https:/h/wttwpsw:/./flwicwkrw.c.opmol/ypmheort-opsr/olajeecnt.uolfrega/nto/o5l9s4/d3e1s3ig2n2e9r6/
https://www.flickr.com/photohst/tlape:/n/cuulfesatonm/5e9le4m31e3n2ts2.9io6/
http://www.bestpsdfreebies.com/freebie/appz-psd-theme/
再利用可能な 
チャンクに分離する 
- OOCSS - 
https://github.com/stubbornella/oocss/wiki
.button { ... } 
! 
.panel { ... }
付加要素は 
Modifierで拡張する
HTML 
<a class="button">Download</a> 
CSS 
.button { ... } 
!
HTML 
<a class="button">Download</a> 
CSS 
.button { ... } 
.button-raised { 
box-shadow: 0 1px 1px rgba(0, 0, 0, .5); 
} 
.button-large { 
font-size: 24px; 
}
HTML 
<a class="button button-raised">Download</a> 
CSS 
.button { ... } 
.button-raised { 
box-shadow: 0 1px 1px rgba(0, 0, 0, .5); 
} 
.button-large { 
font-size: 24px; 
}
HTML 
<a class="button button-large">Download</a> 
CSS 
.button { ... } 
.button-raised { 
box-shadow: 0 1px 1px rgba(0, 0, 0, .5); 
} 
.button-large { 
font-size: 24px; 
}
.panel { ... }
.panel { ... } 
! 
.panel-colored { ... }
.panel { ... } 
! 
.panel-colored { ... } 
ステートルール 
- SMACSS - 
https://smacss.com/book/type-state
.panel { ... } 
! 
.panel-colored { ... }
.panel { ... } 
! 
/* States */ 
.is-panel-active { ... }
.panel { ... } 
! 
/* States */ 
.panel.is-active { ... }
.panel { ... } 
! 
/* States */ 
.panel:hover, 
.panel.is-active { ... }
再利用しない 
ユニークな部分は?
プロジェクトレイヤー 
- MCSS - 
http://operatino.github.io/MCSS/ja/
.tagline { ... }
.tagline { ... } 
! 
.tagline .button { ... }
プロジェクトレイヤー 
- FLOCSS - 
https://github.com/hiloki/flocss
.p-tagline { ... } 
! 
.p-tagline .c-button { ... }
関心を分離せよ 
https://www.flickr.com/photos/clement127/9761836954
シナリオを立て 
汎用さに対応する
<a class="button">Download</a>
<a class="button">Download</a> 
! 
<button class="button">Download</button>
<a class="button">Download</a> 
! 
<button class="button">Download</button> 
! 
<span class="button">Download</span>
.button { 
position: relative; 
display: inline-block; 
box-sizing: border-box; 
padding: 12px 26px; 
border: none; 
background: #f12078; 
color: #fff; 
vertical-align: middle; 
text-align: center; 
text-decoration: none; 
font-size: 18px; 
cursor: pointer; 
user-select: none; 
}
.button { 
position: relative; 
display: inline-block; 
box-sizing: border-box; 
padding: 12px 26px; 
border: none; 
background: #f12078; 
color: #fff; 
vertical-align: middle; 
text-align: center; 
text-decoration: none; 
font-size: 18px; 
cursor: pointer; 
user-select: none; 
} 
ベースは後から 
変更するのが難しい
.button { 
position: relative; 
display: inline-block; 
box-sizing: border-box; 
padding: 12px 26px; 
border: none; 
background: #f12078; 
color: #fff; 
vertical-align: middle; 
text-align: center; 
text-decoration: none; 
font-size: 18px; 
cursor: pointer; 
user-select: none; 
} 
Modifierで 
拡張すべき要素か 
どうかをよく検討する
.button { 
position: relative; 
display: inline-block; 
box-sizing: border-box; 
padding: 12px 26px; 
border: none; 
background: #f12078; 
color: #fff; 
vertical-align: middle; 
text-align: center; 
text-decoration: none; 
font-size: 18px; 
cursor: pointer; 
user-select: none; 
}
スタイルとJSの 
フックを分離する
HTML 
<div class="panel"></div> 
JS 
$('.panel').on('click' ...);
HTML 
<div class="panel js-ui-featured"></div> 
JS 
$('.js-ui-featured').on('click' ...);
AngularJS 
https://angularjs.org/
<div class="panel" ng-click="..."> 
</div>
コンポーネント同士の 
関係を疎にする
.panel { ... } 
! 
.panel .heading { ... }
.panel { ... } 
! 
.heading { ... }
.panel { ... } 
! 
.heading 関{ 連...す }る 要素として 
捉えるなら 
サブコンポーネント 
として定義する
.panel { ... } 
! 
.panel-heading { ... }
.panel { ... } 
! 
.panel-heading { ... } 
もしくは命名で 
どのようなルールが 
適用されるかを伝える
http://getbootstrap.com/
http://getbootstrap.com/ 
Button groups
<Bduivtt oclna sgsr=o"butpn-sg:roup"> 
<button class="btn">Left</button> 
<button class="btn">Middle</button> 
<button class="btn">Right</button> 
</div> 
http://getbootstrap.com/
レイアウトを 
分離する 
- SMACSS - 
https://smacss.com/book/type-state
.panel { 
float: left; 
box-sizing: border-box; 
margin-right: 20px; 
padding: 20px; 
width: 220px; 
background: #fff; 
}
.panel { 
float: left; 
box-sizing: border-box; 
margin-right: 20px; 
padding: 20px; 
width: 220px; 
background: #fff; 
}
.l-featured .panel { 
float: left; 
margin-right: 20px; 
width: 220px; 
}
.l-featured .panel { 
float: left; 
margin-right: 20px; 
width: 220px; 
} ユーティリティで 
対応する 
- SUIT CSS - 
https://github.com/suitcss
.u-float-left { 
float: left; 
} 
! 
.u-margin-r-m { 
margin-right: 20px; 
} 
! 
...
.u-float-left { 
float: left; 
} 
! 
.u-margin-r-m { 
margin-right: 20px; 
} 
! 
... 
グリッドシステム 
を活用する 
- Kite - 
http://hiloki.github.io/kitecss/
<div class="kite kite--grid has-gutter"> 
<div class="panel kite__item is-3of12"> 
... 
</div> 
<div class="panel kite__item is-3of12"> 
... 
</div> 
<div class="panel kite__item is-3of12"> 
... 
</div> 
<div class="panel kite__item is-3of12"> 
... 
</div> 
</div>
http://hiloki.github.io/kitecss/
命名のルール 
https://www.flickr.com/photos/bfishadow/3634061465
https://bem.info/
https://bem.info/ 
block 
block_modifier 
block__element 
block__element_modifier
http://article.enja.io/articles/about-html-semantics-and-front-end-architecture.html
component 
component--modifier 
component__subcomponent 
component__subcomponent--modifier 
http://article.enja.io/articles/about-html-semantics-and-front-end-architecture.html
https://github.com/hiloki/flocss
c-component 
c-component—modifier 
c-component__subcomponent 
c-component__subcomponent—modifier 
https://github.com/hiloki/flocss
.button { ... } 
! 
.button-raised { ... } 
! 
.button-large { ... }
.button { ... } 
! 
.button—-raised { ... } 
! 
.button—-large { ... }
.panel { ... } 
! 
.panel-heading { ... }
.panel { ... } 
! 
.panel__heading { ... }
https://github.com/bjankord/CSS-Components-Modifiers-And-Subcomponents-Collection
スタイルガイドドリブン開発 
http://webuild.envato.com/blog/styleguide-driven-development/ 
https://www.flickr.com/photos/tveskov/5550625027
http://kaleistyleguide.com/
http://kaleistyleguide.com/ 
シナリオを 
可視化する
生きたスタイルガイド 
を持ち込む
https://www.flickr.com/photos/dex1138/7002850433 
Code Smells 
http://article.enja.io/articles/code-smells-in-css.html
スタイルの取り消し
.button { 
box-sizing: border-box; 
padding: 12px 26px; 
text-align: center; 
} 
! 
.button—-no-padding { 
スタイルの取り消し 
padding: 0; 
}
.button { 
box-sizing: border-box; 
padding: 12px 26px; 
text-align: center; 
} 
! 
.button—-no-padding { 
スタイルの取り消し 
padding: 0; 
}
.button { 
box-sizing: border-box; 
text-align: center; 
} 
! 
.button—-large { 
スタイルの取り消し 
padding: 12px 26px; 
}
マジックナンバー
マジックナンバー 
.bubble { 
position: absolute; 
top: -57px; 
left: 0; 
... 
}
マジックナンバー 
.bubble { 
position: absolute; 
top: -57px; 
left: 0; 
... 
}
マジックナンバー 
.bubble { 
position: absolute; 
bottom: 100%; 
left: 0; 
... 
}
受動的な詳細度
#main .button { 
margin: 20px !important; 
width: 100% !important; 
受動的な詳細度 
}
#main .button { 
margin: 20px !important; 
width: 100% !important; 
受動的な詳細度 
}
.u-margin-m { 
margin: 20px !important; 
} 
! 
.button--full { 
受動的な詳細度 
width: 100%; 
}
競合する要素に優先順位を 
! ピクセルパーフェクト or フレキシブル 
! すぐに稼働するコード or 美しいコード 
競合する要素に優先順位を 
! DRY or 保守性 
! 正しさ or 一貫性 
! 汎用性 or シンプルさ
https://github.com/pocotan001/ptan-no-css
https://github.com/pocotan001/ptan-no-css 
! ベースはFLOCSSを採用 
! 例外としてコンポーネントはプリフィックスなし 
! ユーティリティのみ略語を許容 
! CSSプリプロセッサーはなし 
! Concat, Myth, Autoprefixer, Minify
Designer ♥ Developer 
http://www.flickr.com/photos/fallentomato/11768159726
“壊れない完璧な設計を求めるのでは 
なく、壊れたときに勇気を持って修 
復できる設計を。 
- cssradar
THANK YOU 
https://www.flickr.com/photos/tveskov/3387394098

More Related Content

What's hot

オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
 

What's hot (20)

lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
ファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックスファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックス
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
 
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
20220314 Amazon Linux2022 をさわってみた
20220314 Amazon Linux2022 をさわってみた20220314 Amazon Linux2022 をさわってみた
20220314 Amazon Linux2022 をさわってみた
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 
Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Git을 조금 더 알아보자!
Git을 조금 더 알아보자!
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
AWSのNoSQL入門
AWSのNoSQL入門AWSのNoSQL入門
AWSのNoSQL入門
 

Viewers also liked

ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
だいすけ ふるかわ
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
 

Viewers also liked (19)

大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
 
メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
 
CSS の歩き方
CSS の歩き方CSS の歩き方
CSS の歩き方
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
 
Thinking about CSS Architecture
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
 
Web design
Web designWeb design
Web design
 
プログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみたプログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみた
 
ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座
 
Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法
 
デザインのためのデザイン
デザインのためのデザインデザインのためのデザイン
デザインのためのデザイン
 
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
 
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえようノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
 

Similar to なんでCSSすぐ死んでしまうん

CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようJavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
 
html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた
html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた
html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた
Shumpei Shiraishi
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
Kite Koga
 
アプリコンテスト
アプリコンテストアプリコンテスト
アプリコンテスト
Tomonori Yamada
 

Similar to なんでCSSすぐ死んでしまうん (20)

CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考える
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
Backbone.jsとSASSでモジュールをつくった話
Backbone.jsとSASSでモジュールをつくった話Backbone.jsとSASSでモジュールをつくった話
Backbone.jsとSASSでモジュールをつくった話
 
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようJavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
 
Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」
 
html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた
html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた
html5j.orgがHTML5+JavaScriptで Metro Style アプリを作ってみた
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 
MTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-partMTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-part
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
 
アプリコンテスト
アプリコンテストアプリコンテスト
アプリコンテスト
 
CSS3 Design Recipe
CSS3 Design RecipeCSS3 Design Recipe
CSS3 Design Recipe
 
HTML5 in Firefox4
HTML5 in Firefox4HTML5 in Firefox4
HTML5 in Firefox4
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
WordPress と Bootstrap
WordPress と BootstrapWordPress と Bootstrap
WordPress と Bootstrap
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
LDD'12/Summer in KITAMI Opening Slide
LDD'12/Summer in KITAMI Opening SlideLDD'12/Summer in KITAMI Opening Slide
LDD'12/Summer in KITAMI Opening Slide
 

More from Hayato Mizuno

More from Hayato Mizuno (10)

レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
 
"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド
 
メンテナブルPSD
メンテナブルPSDメンテナブルPSD
メンテナブルPSD
 
赤い秘密
赤い秘密赤い秘密
赤い秘密
 
フロントエンドの求めるデザイン
フロントエンドの求めるデザインフロントエンドの求めるデザイン
フロントエンドの求めるデザイン
 
Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント -
Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント -Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント -
Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント -
 
レンダリングを意識したパフォーマンスチューニング
レンダリングを意識したパフォーマンスチューニングレンダリングを意識したパフォーマンスチューニング
レンダリングを意識したパフォーマンスチューニング
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
CoffeeScriptってなんぞ?
CoffeeScriptってなんぞ?CoffeeScriptってなんぞ?
CoffeeScriptってなんぞ?
 
ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門
 

なんでCSSすぐ死んでしまうん