SlideShare a Scribd company logo
なんでCSS 
すぐ死んでしまうん 
Frontrend in Kanazawa 
https://www.flickr.com/photos/tveskov/3387394098
@pocotan001 
Hayato Mizuno
なんでCSSすぐ死んでしまうん
@大阪 
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
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
.button { ... } 
! 
.panel { ... }
なんでCSSすぐ死んでしまうん
付加要素は 
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; 
}
なんでCSSすぐ死んでしまうん
.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 { ... }
なんでCSSすぐ死んでしまうん
再利用しない 
ユニークな部分は?
プロジェクトレイヤー 
- MCSS - 
http://operatino.github.io/MCSS/ja/
なんでCSSすぐ死んでしまうん
.tagline { ... }
.tagline { ... } 
! 
.tagline .button { ... }
プロジェクトレイヤー 
- FLOCSS - 
https://github.com/hiloki/flocss
.p-tagline { ... } 
! 
.p-tagline .c-button { ... }
関心を分離せよ 
https://www.flickr.com/photos/clement127/9761836954
なんでCSSすぐ死んでしまうん
シナリオを立て 
汎用さに対応する
<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; 
}
なんでCSSすぐ死んでしまうん
スタイルと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>
なんでCSSすぐ死んでしまうん
コンポーネント同士の 
関係を疎にする
.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/
なんでCSSすぐ死んでしまうん
レイアウトを 
分離する 
- 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
なんでCSSすぐ死んでしまうん
.button { ... } 
! 
.button-raised { ... } 
! 
.button-large { ... }
.button { ... } 
! 
.button—-raised { ... } 
! 
.button—-large { ... }
なんでCSSすぐ死んでしまうん
.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/ 
シナリオを 
可視化する
なんでCSSすぐ死んでしまうん
生きたスタイルガイド 
を持ち込む
なんでCSSすぐ死んでしまうん
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 (20)

AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ  AWS IAMAWS Black Belt Techシリーズ  AWS IAM
AWS Black Belt Techシリーズ AWS IAM
Amazon Web Services Japan
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
LINE Corporation
 
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
増田 亨
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as Code
Takuhiro Yoshida
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
 
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
Mydbops
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
Ayumi Goto
 
噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp
Yahoo!デベロッパーネットワーク
 
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Preferred Networks
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
信之 岩永
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Yoichi Kawasaki
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
心 谷本
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
LINE Corporation
 
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
増田 亨
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as Code
Takuhiro Yoshida
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
 
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
Mydbops
 
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Preferred Networks
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Yoichi Kawasaki
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
心 谷本
 

Viewers also liked (20)

悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
Horiguchi Seito
 
大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話
井上 誠
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット
Kenya Kodaira
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
Yoshiki Hayama
 
メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計
拓樹 谷
 
CSS の歩き方
CSS の歩き方CSS の歩き方
CSS の歩き方
Seiichiro Mishiba
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
拓樹 谷
 
Thinking about CSS Architecture
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture
拓樹 谷
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
Mayu Kimura
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
だいすけ ふるかわ
 
Web design
Web designWeb design
Web design
kazuko kaneuchi
 
プログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみたプログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみた
Eigoro Yamamura
 
ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座
光利 吉田
 
Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法
Katsumi Tazuke
 
デザインのためのデザイン
デザインのためのデザインデザインのためのデザイン
デザインのためのデザイン
Masayuki Uetani
 
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
Ayaka Sumida
 
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえようノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
Sasaki Kouhei
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
Toshiaki Sasaki
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
Mariko Yamaguchi
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
Horiguchi Seito
 
大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話
井上 誠
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット
Kenya Kodaira
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
Yoshiki Hayama
 
メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計
拓樹 谷
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
拓樹 谷
 
Thinking about CSS Architecture
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture
拓樹 谷
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
Mayu Kimura
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
だいすけ ふるかわ
 
プログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみたプログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみた
Eigoro Yamamura
 
ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座
光利 吉田
 
Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法
Katsumi Tazuke
 
デザインのためのデザイン
デザインのためのデザインデザインのためのデザイン
デザインのためのデザイン
Masayuki Uetani
 
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
Ayaka Sumida
 
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえようノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
Sasaki Kouhei
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
Toshiaki Sasaki
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
Mariko Yamaguchi
 
Ad

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

リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
Yahoo!デベロッパーネットワーク
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
マークアップ講座 02 CSS
マークアップ講座 02 CSSマークアップ講座 02 CSS
マークアップ講座 02 CSS
eiji sekiya
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
Kenjiro Kubota
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
今更ながらCSS3を試してみた
今更ながらCSS3を試してみた今更ながらCSS3を試してみた
今更ながらCSS3を試してみた
Takao Sumitomo
 
Sass(SCSS)について
Sass(SCSS)についてSass(SCSS)について
Sass(SCSS)について
Kazufumi Miyamoto
 
フロント作業の効率化
フロント作業の効率化フロント作業の効率化
フロント作業の効率化
Yuto Yoshinari
 
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかたパララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
 
マルチデバイス対応のコーディング・マークアップのポイント
マルチデバイス対応のコーディング・マークアップのポイントマルチデバイス対応のコーディング・マークアップのポイント
マルチデバイス対応のコーディング・マークアップのポイント
Masayuki Maekawa
 
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
Kazuki Akiyama
 
フロンエンドトレンドについて話そう
フロンエンドトレンドについて話そうフロンエンドトレンドについて話そう
フロンエンドトレンドについて話そう
Atushi Sugiyama
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツ
evol-ni
 
Movable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズ
Movable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズMovable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズ
Movable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズ
Kunihiko Miyanaga
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
Yusuke Hirao
 
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Yossy Taka
 
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
Yahoo!デベロッパーネットワーク
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
マークアップ講座 02 CSS
マークアップ講座 02 CSSマークアップ講座 02 CSS
マークアップ講座 02 CSS
eiji sekiya
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
Kenjiro Kubota
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
今更ながらCSS3を試してみた
今更ながらCSS3を試してみた今更ながらCSS3を試してみた
今更ながらCSS3を試してみた
Takao Sumitomo
 
フロント作業の効率化
フロント作業の効率化フロント作業の効率化
フロント作業の効率化
Yuto Yoshinari
 
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかたパララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
 
マルチデバイス対応のコーディング・マークアップのポイント
マルチデバイス対応のコーディング・マークアップのポイントマルチデバイス対応のコーディング・マークアップのポイント
マルチデバイス対応のコーディング・マークアップのポイント
Masayuki Maekawa
 
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
Kazuki Akiyama
 
フロンエンドトレンドについて話そう
フロンエンドトレンドについて話そうフロンエンドトレンドについて話そう
フロンエンドトレンドについて話そう
Atushi Sugiyama
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツ
evol-ni
 
Movable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズ
Movable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズMovable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズ
Movable Typeセミナー2011年4月20日 in 名古屋 アイデアマンズ
Kunihiko Miyanaga
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
Yusuke Hirao
 
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Yossy Taka
 
Ad

More from Hayato Mizuno (9)

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

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