今必要なCSSアーキテクチャ

Mayu Kimura
Mayu KimuraSoftware Engineer at 株式会社オープンストリーム
今必要なCSSアーキテクチャ	
株式会社オープンストリーム	
木村茉由	
1	
photo:	
  h(p://www.flickr.com/photos/22439010@N04/7864852790
アジェンダ	
•  自己紹介	
•  なぜ今CSSアーキテクチャなのか	
•  OOCSSの紹介	
•  SMACSSの紹介	
•  OOCSS、SMACSSへの素朴な疑問	
•  まとめ	
2
自己紹介	
はじめましての方が多いかと思いますので…。	
3
自己紹介	
•  株式会社オープンストリーム所属	
•  フロントエンドアーキテクト	
•  好きなものはJavaScriptとおうどんです	
•  最近翻訳にハマってます(InfoQ)	
•  主催者側の人間なのに、一番勉強会のテー
マからズレててすみません…。	
•  Twitter:@kimura_m_29 	
4
なぜ今CSSアーキテクチャなのか	
そんな大げさな…と思われた方へ	
5
6	
CSSにアーキテクチャとかあるの?
7	
CSSなんてコピペでどうにかなるよね
8	
…
9	
本当にそれで大丈夫?
なぜ今CSSアーキテクチャなのか	
→そもそも、CSSはカオスになりやすい	
10
なぜ今CSSアーキテクチャなのか	
1.  すべての定義がグローバル	
→影響範囲が甚大	
※<style>タグのscoped属性	
親要素およびその子孫要素に対してのみ、スタイルを適
用する	
2.  HTMLの構造に依存しがち=壊れやすい	
#main	
  .news	
  .topics	
  ul	
  li	
  ul	
  li	
  {	
  
	
  	
  	
  	
  color:	
  black;	
  	
  
	
  	
  	
  	
  font-­‐size:	
  0.8em;	
  
}	
  
11	
HTMLの構造が変わったら	
  
適用されなくなる><	
Firefox 21.0〜のみ対応
なぜ今CSSアーキテクチャなのか	
3.  スタイル定義の表現が自由すぎる	
1.  用途不明のスタイル定義がある	
2.  セレクタがえらく長い	
4.  スタイルの優先度の決定方法	
1.  セレクタの優先度を上げる	
1.  詳細にする→HTMLの構造への依存度UP!	
2.  最後の切り札『!important』	
.blue	
  {	
  color:	
  blue;	
  }	
  
.main,	
  .menu	
  ul	
  li,	
  .comments,	
  .infos,	
  .sidebar	
  .component	
  .?tle	
  {	
  …	
  }	
  
12	
どこにも使ってないもの
が混ざっていたり…。	
※CSSの優先度について↓	
!important だらけの CSS に
お別れを | WWW WATCH
なぜ今CSSアーキテクチャなのか	
そんなCSSですが…。	
•  リッチUIな大規模Webアプリケーション	
•  モバイル向けのHTML/CSS/JavaScript	
– モバイル向けサイト、アプリ(PhoneGap等)	
	
→CSSの運用・保守性、パフォーマンス大事!	
(モバイルの場合、よりシビア)	
	
13	
CSSのファイルサイズ
をなるべく小さく!
14	
でも、どうすれば良いのか…!	
photo:	
  h(p://www.flickr.com/photos/59489479@N08/9269503551
OOCSSの紹介	
  
オーオーシーエスエスと読みます	
15
OOCSSの紹介	
•  2009年にNicole Sullivanが提唱したCSSの設計
方法	
–  Object Oriented CSS	
•  目的	
より良いCSSを書くことで以下を実現する	
1.  再利用しやすく	
2.  拡張しやすく	
3.  メンテナンスしやすく	
4.  ファイルサイズ小さく	
5.  パフォーマンス向上 etc...	
16	
“WE	
  WANT	
  A	
  LOT!”	
  
by	
  Nicole	
  Sullivan	
  
17	
“Components are like legos”	
Object Oriented CSS	
http://www.slideshare.net/stubbornella/object-oriented-css	
photo:	
  h(p://www.flickr.com/photos/48763139@N00/2432400623
OOCSSの2つの原則	
1.  Separate Structure and Skin	
(構造と見た目の分離)	
	
コンポーネントに対するスタイルの種類ごとに、別々の
セレクタにスタイルを定義する	
1.  レイアウトを定義するスタイル	
1.  ポジション、サイズ等	
2.  見た目を定義するスタイル	
1.  ボーダーやフォントカラー等	
1.  バリエーションが増えやすい	
18
OOCSSの2つの原則:具体例1	
	
  
	
  
	
  
	
  
	
  
19	
.widget-­‐basic	
  {	
  
	
  	
  	
  	
  width:	
  15em;	
  
	
  	
  	
  	
  height:	
  15em;	
  
	
  	
  	
  	
  background-­‐color:	
  white;	
  
	
  	
  	
  	
  color:	
  black;	
  
}	
  
.widget-­‐primary	
  {	
  
	
  	
  	
  	
  width:	
  15em;	
  
	
  	
  	
  	
  height:	
  15em;	
  
	
  	
  	
  	
  background-­‐color:	
  blue;	
  
	
  	
  	
  	
  color:	
  white;	
  
}	
  
CSS	
  
.widget	
  {	
  
	
  	
  	
  	
  width:	
  15em;	
  
	
  	
  	
  	
  height:	
  15em;	
  
}	
  
.basic	
  {	
  
	
  	
  	
  	
  background-­‐color:	
  white;	
  
	
  	
  	
  	
  color:	
  black;	
  
}	
  
.primary	
  {	
  
	
  	
  	
  	
  background-­‐color:	
  blue;	
  
	
  	
  	
  	
  color:	
  white;	
  
}	
  
CSS	
  
<div	
  class=“widget-­‐basic”></div>	
  
<div	
  class=“widget-­‐primary”></div>	
  
HTML	
  
<div	
  class=“widget	
  basic”></div>	
  
<div	
  class=“widget	
  primary”></div>	
  
HTML	
  
レイアウト	
見た目	
パターンが増えたら…?
OOCSSの2つの原則	
2.  Separate Container and Content	
(コンテナとコンテンツの分離)	
	
ページを構成する主要なコンテナと、その子要素で
あるコンテンツとの間に依存関係を持たせない	
20
OOCSSの2つの原則:具体例2	
	
  
	
  
	
  
	
  
	
  
21	
.menu	
  {	
  
	
  	
  	
  	
  (共通スタイル)	
  
}	
  
.sub-­‐menu	
  {	
  
	
  	
  	
  	
  (拡張スタイル)	
  
}	
  
CSS	
  
.main	
  ul,	
  .sub	
  ul	
  {	
  
	
  	
  	
  	
  (共通スタイル)	
  
}	
  
.sub	
  ul	
  {	
  
	
  	
  	
  	
  (拡張スタイル)	
  
}	
  
CSS	
  
<div	
  class=“main”>	
  
	
  	
  	
  	
  <ul>...</ul>	
  
</div>	
  
<div	
  class=“sub”>	
  
	
  	
  	
  	
  <ul>...</ul>	
  
</div>	
  
HTML	
  
<div	
  class=“main”>	
  
	
  	
  	
  	
  <ul	
  class=“menu”>...</ul>	
  
</div>	
  
<div	
  class=“sub”>	
  
	
  	
  	
  	
  <ul	
  class=“menu	
  sub-­‐menu”>	
  
	
  	
  	
  	
  	
  	
  	
  	
  ...	
  
	
  	
  	
  	
  </ul>	
  
</div>	
  
HTML	
  
適用したい要素が
増えたら…?	
マルチクラスパターン
OOCSSのその他のプラクティス	
•  Avoid singletons(IDセレクタの利用を避ける)	
	
	
– id属性値は同一ページ内でユニークでなくてはな
らないため、再利用できない	
– セレクタの優先順位が高いため、もしもの時のス
タイル上書きは『!important』を使うしかない	
22	
#widget	
  {	
  …	
  }	
  
#footer	
  a	
  {	
  …	
  }	
  
SMACSSの紹介	
  
スマックスと読みます	
23
SMACSSの紹介	
•  2012年にWebデザイナーのJonathan	
  Snook
が提唱したCSSの設計方法	
– Scalable	
  and	
  Modular	
  Architecture	
  for	
  CSS	
  
– Ebook(日本語版)	
  
•  OOCSSの流れをくんでいる	
  
24
SMACSSの5つのカテゴリ	
SMACSSでは、CSSのスタイル定義を下記のカテゴリに分
類して行うことを推奨している	
  
	
  
1.  ベース	
  
2.  レイアウト	
  
3.  モジュール	
  
4.  状態(ステート)	
  
5.  テーマ	
  
	
  
それぞれを別ファイルに分けて管理する	
  
→スタイル定義の複雑さをなくす	
	
25
1. ベース	
26
1. ベース	
•  その名の通り、ベースとなるスタイルを定義	
  
•  基本的に要素セレクタを用い、クラスやIDセ
レクタは使わない	
  
•  ブラウザのデフォルトスタイルをクリアするリ
セットCSSはここで定義する	
27	
html,	
  body	
  {	
  
	
  	
  	
  	
  margin:	
  0;	
  
	
  	
  	
  	
  padding:	
  0;	
  
}	
  
a:hover	
  {	
  
	
  	
  	
  	
  color:	
  #039;	
  
}	
  
2. レイアウト	
28
2. レイアウト	
•  主要なコンポーネント(ページヘッダやサイド
メニュー、メイン記事等)のスタイルを定義	
  
•  伝統的にIDセレクタが使われることが多い	
  
•  主要コンポーネント間で共通化できるスタイ
ルはクラスセレクタを用いる	
  
29	
#header,	
  #ar?cle,	
  #footer	
  {	
  
	
  	
  	
  	
  width:	
  960px;	
  
	
  	
  	
  	
  margin:	
  auto;	
  
}	
  
3. モジュール	
30
3. モジュール	
•  主要なコンポーネントに含まれる、小さなコ
ンポーネント(入力フォームやモーダル等)
のスタイルを定義	
  
•  モジュールはそれ単体でスタイルが独立し
ていて、配置場所が変わってもスタイルが崩
れないようにする	
  
•  クラスセレクタを使用する(再利用が前提)	
  
31	
.module	
  >	
  h2	
  {	
  
	
  	
  	
  	
  padding:	
  5px;	
  
}	
  
3. モジュールカテゴリのプラクティス	
•  要素セレクタを避ける	
  
32	
/*	
  フォルダーモジュール	
  */	
  
.fld	
  li	
  {	
  
	
  	
  	
  	
  padding-­‐le_:	
  20px;	
  
	
  	
  	
  	
  background:	
  url(folder.png);	
  
}	
  
CSS	
  
<div	
  class=“fld”>	
  
	
  	
  	
  	
  <ul>	
  
	
  	
  	
  	
  	
  	
  	
  	
  <li>Aフォルダ</li>	
  
	
  	
  	
  	
  	
  	
  	
  	
  <li>bbb.txt</li>	
   ←	
  NEW!	
  
	
  	
  	
  	
  </ul>	
  
</div>	
  
HTML	
  
<div	
  class=“fld”>	
  
	
  	
  	
  	
  <ul>	
  
	
  	
  	
  	
  	
  	
  	
  	
  <li	
  class=“fld-­‐name”>Aフォルダ</li>	
  
	
  	
  	
  	
  	
  	
  	
  	
  <li	
  class=“fld-­‐item”>bbb.txt</li>	
  
	
  	
  	
  	
  </ul>	
  
</div>	
  
HTML	
  
ファイル名の横にも	
  
フォルダアイコンが…!	
/*	
  フォルダーモジュール	
  */	
  
.fld-­‐name	
  {	
  
	
  	
  	
  	
  background:	
  url(folder.png);	
  
}	
  
CSS	
  
4. 状態(ステート)	
33
4. 状態(ステート)	
•  活性・非活性、表示・非表示、成功・失敗など
の状態をあらわすスタイルを定義	
  
	
  
•  主にJavaScriptのコードから主要コンポーネン
トやモジュールに付与する	
  
34	
.is-­‐ac?ve	
  {	
  
	
  	
  	
  font-­‐weight:	
  bold	
  !important;	
  
}	
  
$(‘.tab’).on(‘click’,	
  func?on	
  ()	
  {	
  
	
  	
  	
  	
  //	
  クリックされたタブに活性化スタイルを付与	
  
	
  	
  	
  	
  $(this).addClass(‘is-­‐ac?ve’);	
  
});	
  
※他のタブの活性化スタイル除
去は割愛	
既存スタイルを上書きすることが多い
ので、『!important』解禁!	
  
(※ご利用は計画的に)
5. テーマ	
35
5. テーマ	
•  テーマ切り替え用のスタイルを定義	
  
•  あまり活躍する場面はないかも…。	
  
36	
/*	
  theme-­‐purple.cssで定義	
  */	
  
.theme-­‐border	
  {	
  
	
  	
  	
  	
  border-­‐color:	
  purple;	
  
}	
  
OOCSS、SMACSSへの素朴な疑問	
私はこういうところに引っかかりました	
37
class属性値の数が多くなりそう><	
•  はい、多くなります!	
  
– HTMLをシンプルに保つ=CSSが頑張る	
  
•  CSSの頑張りは、HTMLの構造への依存を高めてしまう	
  
•  HTMLの構造変更に影響を受けやすくなる	
  
38	
<div	
  id=“snsArea”>	
  
	
  	
  	
  	
  <bufon>	
  
	
  	
  	
  	
  	
  	
  	
  	
  Twiferでつぶやく	
  
	
  	
  	
  	
  </bufon>	
  
</div>	
  
HTML	
  
<div	
  id=“snsArea”>	
  
	
  	
  	
  	
  <bufon	
  class=“btn	
  btn-­‐sns”>	
  
	
  	
  	
  	
  	
  	
  	
  	
  Twiferでつぶやく	
  
	
  	
  	
  	
  </bufon>	
  
</div>	
  
HTML	
  
classが全然セマンティックじゃない気が…?	
•  はい、その通りです!	
  
– そもそも、セマンティックである必要があるのか	
  
•  たしかに、HTML5の仕様に書いてあるけど…。	
  
–  CSSの運用・保守性を犠牲にしてまで、守るべきものかどうか	
  
•  Microformats(class属性)→Microdata(独自属性)	
39	
<bufon	
  class=“twiferBufon”>	
  
	
  	
  	
  	
  Twiferでつぶやく	
  
</bufon>	
  
HTML	
  
<bufon	
  class=“btn	
  btn-­‐sns”>	
  
	
  	
  	
  	
  Twiferでつぶやく	
  
</bufon>	
  
HTML	
  
DOM操作のパフォーマンス向上を考えると、
やっぱりid属性使いたいよ…!	
•  はい、仰るとおりです!	
  
– id属性はJavaScriptが参照するものとして使う	
  
– JavaScript用のid、classはプリフィックスに「js-­‐」を
付ける	
  
•  用途が明確になる	
  
•  HTMLから未使用のclass属性値を消しやすくなるかも	
  
40	
<bufon	
  class=“btn	
  btn-­‐sns”	
  id=“js-­‐twiferBufon”	
  >	
  
	
  	
  	
  	
  Twiferでつぶやく	
  
</bufon>	
  
HTML	
  
まとめ	
  
長々お付き合いありがとうございました!	
41
まとめ	
•  やっぱり、銀の弾丸はありません><	
  
– 引き出しを多く持っておき、状況に応じて適用す
るというアプローチになる	
  
– バランス感覚も重要	
  
•  CSSもコードレビューが必要ですね…。	
  
– CSSLintの採用も良さそう	
  
•  OOCSSのNicole Sullivanが関わっています	
  
•  今【だけじゃなく、むしろ未来にとって】必要な
CSSアーキテクチャ	
42
ご清聴ありがとうございました!	
43
1 of 43

Recommended

SMACSS入門 by
SMACSS入門SMACSS入門
SMACSS入門iPride Co., Ltd.
818 views14 slides
大規模サイトにおける本当は怖いCSSの話 by
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話井上 誠
116.6K views28 slides
DynamoDB設計のちょっとした技 by
DynamoDB設計のちょっとした技DynamoDB設計のちょっとした技
DynamoDB設計のちょっとした技Yoichi Toyota
1.4K views10 slides
AWS初心者向けWebinar AWS上でのDDoS対策 by
AWS初心者向けWebinar AWS上でのDDoS対策AWS初心者向けWebinar AWS上でのDDoS対策
AWS初心者向けWebinar AWS上でのDDoS対策Amazon Web Services Japan
50.6K views78 slides
AWSのセキュリティについて by
AWSのセキュリティについてAWSのセキュリティについて
AWSのセキュリティについてYasuhiro Horiuchi
38.5K views54 slides
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018 by
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018cyberagent
12.3K views67 slides

More Related Content

What's hot

クエリビルダとEloquent ORM の違い by
クエリビルダとEloquent ORM の違いクエリビルダとEloquent ORM の違い
クエリビルダとEloquent ORM の違いtomo
222 views15 slides
実践 Amazon KMS #cmdevio2015 by
実践 Amazon KMS #cmdevio2015実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015y torazuka
6.7K views81 slides
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン by
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
5.5K views64 slides
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert by
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvertAmazon Web Services Japan
4.7K views72 slides
SPAセキュリティ入門~PHP Conference Japan 2021 by
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
99.4K views107 slides
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料) by
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
3.8K views68 slides

What's hot(20)

クエリビルダとEloquent ORM の違い by tomo
クエリビルダとEloquent ORM の違いクエリビルダとEloquent ORM の違い
クエリビルダとEloquent ORM の違い
tomo 222 views
実践 Amazon KMS #cmdevio2015 by y torazuka
実践 Amazon KMS #cmdevio2015実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015
y torazuka6.7K views
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン by Kazuyuki Miyake
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake5.5K views
SPAセキュリティ入門~PHP Conference Japan 2021 by Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru99.4K views
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料) by NTT DATA Technology & Innovation
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料 by Y Watanabe
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe25.8K views
PHPからgoへの移行で分かったこと by gree_tech
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech6.4K views
CloudFrontのリアルタイムログをKibanaで可視化しよう by Eiji KOMINAMI
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI2.2K views
徳丸本に載っていないWebアプリケーションセキュリティ by Hiroshi Tokumaru
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru51.1K views
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」 by Junichiro Kazama
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
Junichiro Kazama12.6K views
Akkaとは。アクターモデル とは。 by Kenjiro Kubota
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota7.8K views
Azure Kubernetes Service Overview by Takeshi Fukuhara
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service Overview
Takeshi Fukuhara1.7K views
はじめての datadog by Naoya Nakazawa
はじめての datadogはじめての datadog
はじめての datadog
Naoya Nakazawa26.6K views
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話 by Kahori Takeda
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
Kahori Takeda511 views

Viewers also liked

Thinking about CSS Architecture by
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture拓樹 谷
21.1K views136 slides
モダンなCSS設計パターンを考える by
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える拓樹 谷
42.9K views128 slides
今からハジメるHTML5マークアップ by
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップSwapSkills
46.7K views64 slides
HTML5, きちんと。 by
HTML5, きちんと。HTML5, きちんと。
HTML5, きちんと。Masataka Yakura
488.7K views174 slides
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応) by
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)Horiguchi Seito
61K views92 slides
なんでCSSすぐ死んでしまうん by
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんHayato Mizuno
79.8K views130 slides

Viewers also liked(6)

Thinking about CSS Architecture by 拓樹 谷
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture
拓樹 谷21.1K views
モダンなCSS設計パターンを考える by 拓樹 谷
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
拓樹 谷42.9K views
今からハジメるHTML5マークアップ by SwapSkills
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
SwapSkills46.7K views
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応) by Horiguchi Seito
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
Horiguchi Seito61K views
なんでCSSすぐ死んでしまうん by Hayato Mizuno
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
Hayato Mizuno79.8K views

Similar to 今必要なCSSアーキテクチャ

「html5 boilerplate」から考える、これからのマークアップ by
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
6K views60 slides
Twitterbootstrapでモック開発 by
Twitterbootstrapでモック開発Twitterbootstrapでモック開発
Twitterbootstrapでモック開発Sosuke Kimura
634 views9 slides
ブラウザにやさしいHTML/CSS by
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSTakeharu Igari
71.3K views82 slides
⑳CSSでアニメーション!その1 by
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1Nishida Kansuke
1.7K views72 slides
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。 by
 まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。 まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。Hiroshi Urabe
810 views62 slides
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS) by
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)Shin Takeuchi
20.2K views40 slides

Similar to 今必要なCSSアーキテクチャ(20)

「html5 boilerplate」から考える、これからのマークアップ by Yasuhito Yabe
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe6K views
Twitterbootstrapでモック開発 by Sosuke Kimura
Twitterbootstrapでモック開発Twitterbootstrapでモック開発
Twitterbootstrapでモック開発
Sosuke Kimura634 views
ブラウザにやさしいHTML/CSS by Takeharu Igari
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari71.3K views
⑳CSSでアニメーション!その1 by Nishida Kansuke
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
Nishida Kansuke1.7K views
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。 by Hiroshi Urabe
 まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。 まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。
Hiroshi Urabe810 views
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS) by Shin Takeuchi
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
Shin Takeuchi20.2K views
UAスタイルシートと リセットCSS by 知己 久保
UAスタイルシートと リセットCSSUAスタイルシートと リセットCSS
UAスタイルシートと リセットCSS
知己 久保9.1K views
Firefox OSアプリ 「ModeView」 by Hideki Akiba
Firefox OSアプリ 「ModeView」Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」
Hideki Akiba1K views
CMSMix Sapporo vol.3 (Drupal の回) by Kenji Shirane
CMSMix Sapporo vol.3 (Drupal の回)CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)
Kenji Shirane1.2K views
フロンエンドトレンドについて話そう by Atushi Sugiyama
フロンエンドトレンドについて話そうフロンエンドトレンドについて話そう
フロンエンドトレンドについて話そう
Atushi Sugiyama897 views
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~ by hokori matu
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
hokori matu74.7K views
4時間まったりWordPressテーマ作成講座 by Shinichi Nishikawa
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
Shinichi Nishikawa4.3K views
⑯jQueryをおぼえよう!その2 by Nishida Kansuke
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke21.5K views
MODXで“超”キレッキレのブログ作る秘訣公開します by Kei Mikage
MODXで“超”キレッキレのブログ作る秘訣公開しますMODXで“超”キレッキレのブログ作る秘訣公開します
MODXで“超”キレッキレのブログ作る秘訣公開します
Kei Mikage5.7K views
7/7 WordBench kobe dreamweaver seminar by Atushi Sugiyama
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
Atushi Sugiyama3.2K views
HTML5での制作、いつから始める? by Fuminori Mori
HTML5での制作、いつから始める?HTML5での制作、いつから始める?
HTML5での制作、いつから始める?
Fuminori Mori1.8K views
今更ながらCSS3を試してみた by Takao Sumitomo
今更ながらCSS3を試してみた今更ながらCSS3を試してみた
今更ながらCSS3を試してみた
Takao Sumitomo1.3K views
20141206 handson by Six Apart
20141206 handson20141206 handson
20141206 handson
Six Apart663 views
Backbone.jsとSASSでモジュールをつくった話 by Yosuke Doke
Backbone.jsとSASSでモジュールをつくった話Backbone.jsとSASSでモジュールをつくった話
Backbone.jsとSASSでモジュールをつくった話
Yosuke Doke704 views

今必要なCSSアーキテクチャ