Movatterモバイル変換


[0]ホーム

URL:


拓樹 谷, profile picture
Uploaded by拓樹 谷
21,200 views

Thinking about CSS Architecture

Frontrend in Osaka & Re:Creator's Kansai での講演スライド

Embed presentation

Downloaded 104 times
CsSThInKiNgARcHiTeCtUrEFRoNtReNdiNOSaKaRe:cReatEr’S kAnSaISAtUrDaY, sEpTeMbEr 14 2013AbOuT
HirOkI taNiCYbEragEnT, inC.
タイトル@T32K@AhOmU@HiLoKi@HiLoKi
APpWeB
¤なぜ設計を学ぶべきなのかARcHiTeCtUrE
k1BRoWsEr0PsD
q k u
¤¥
.text { color: black;}.catchcopy { color: red;}#message .text { color: green;}
10mIn11l129 36¥
k11l129 3610mIn 60mIn...aNd MoRe11l129 3611l129 3611111l129 3611l129 3611l129 3611l129 36¤¥
k10mIn BUgS...1 1 1±'llllllHH±'llllllHH±'llllllHH11l129 36¤¥
L?SOmEoNe
L N? YOu
k1112963l30mIn1112963l30mIn¤¥
1CsS
1HtMl1CsS1Js
e良いCSS設計のゴールとはGoAl
®©°®©°PHiLiP waLtOnCsS arChItEcTuRe
®©°®©°PHiLiP waLtOnCsS arChItEcTuRe
&PReDiCtAbLeREuSaBlEMAiNtAiNaBlESCaLaBlE
#content article h1:first-child { ... }
<div id="content"> <article>  <h1>Article Title</h1> </article></div>
<div id="content"> <section>  <h1>Article Title</h1> </section></div>
<div id="content"> <article>  <p>2013/09/13</p>  <h1>Article Title</h1> </article></div>
D¤
.entry-title { ... }
<div id="content"> <article>  <p>2013/09/13</p>  <h1 class="entry-title">Article Title</h1> </article></div>
<div id="content"> <div>  <p>2013/09/13</p>  <h2 class="entry-title">Article Title</h2> </div></div>
POCSSは壊れやすいCsS Is ToO FrAgIlE
®©°®©°OoCsSbY niCoLe suLlIvAn
SEpArAtE CoNtAiNeR AnD CoNtEnTSEpArAtE StRuCtUrE AnD SkIn
SEpArAtE CoNtAiNeR AnD CoNtEnTSEpArAtE StRuCtUrE AnD SkIn
®©°MEdIa obJeCt
<div class="media"> <div class="media-image">  <img src="/img/seminar/15/tani.jpg"> </div> <div class="media-body">  <p>...</p>  <ul>   <li><a>...</a></li>  </ul>  <p>...</p> </div></div>
<div class="media"> <div class="media-image">  <img src="/img/seminar/15/tani.jpg"> </div> <div class="media-body">  <p>...</p>  <ul>   <li><a>...</a></li>  </ul>  <p>...</p> </div></div>
<div class="media"> <div class="media-image">  <img src="/img/seminar/15/tani.jpg"> </div> <div class="media-body">  <p>...</p>  <ul>   <li><a>...</a></li>  </ul>  <p>...</p> </div></div>
.media { overflow: hidden; // Clearfix *zoom: 1; // Clearfix}.media-image { float: left; margin-right: 10px;}.media-image > img { display: block;}.media-body { overflow: hidden;}
<div class="media skin-a"> <div class="media-image">  <img src="/img/seminar/15/tani.jpg"> </div> <div class="media-body">  <p>...</p>  <ul>   <li><a>...</a></li>  </ul>  <p>...</p> </div></div>
<div class="media skin-b"> <div class="media-image">  <img src="/img/seminar/15/tani.jpg"> </div> <div class="media-body">  <p>...</p>  <ul>   <li><a>...</a></li>  </ul>  <p>...</p> </div></div>
SEpArAtE CoNtAiNeR AnD CoNtEnTSEpArAtE StRuCtUrE AnD SkIn
h2 { font-weight: bold; font-size: 16px;}#news h2 { border-bottom: 1px solid black; padding-bottom: 0.5em;}
h2 { font-weight: bold; font-size: 16px;}#news h2,#speakers h2 { border-bottom: 1px solid black; padding-bottom: 0.5em;}
<div id="speakers"> <h1>Hiroki Tani</h1> <h2>Session Title</h2> <div>  <p>Summary</p> </div></div>
®©°
<div id="speakers"> <h1>Hiroki Tani</h1> <h2>Session Title</h2> <div>  <p>...</p> </div> <div>  <h2>Books</h2>  <ul>   <li>...</li>  </ul> </div></div>
<div id="speakers"> <h1>Hiroki Tani</h1> <h2>Session Title</h2> <div>  <p>...</p> </div> <div>  <h2>Books</h2>  <ul>   <li>...</li>  </ul> </div></div>
<div id="speakers"> <h1>Hiroki Tani</h1> <h2>Session Title</h2> <div>  <p>...</p> </div> <div>  <h2>Books</h2>  <ul>   <li>...</li>  </ul> </div></div>
D¤
h2 { font-weight: bold; font-size: 16px;}.headline { border-bottom: 1px solid black; padding-bottom: 0.5em;}
<div id="speakers"> <h1>Hiroki Tani</h1> <h2 class="headline">Session Title</h2> <div>  <p>...</p> </div> <div>  <h2>Books</h2>  <ul>   <li>...</li>  </ul> </div></div>
.heading { font-weight: bold; font-size: 16px;}.headline { border-bottom: 1px solid black; padding-bottom: 0.5em;}
<div id="speakers"> <h1>Hiroki Tani</h1> <h2 class="heading headline">SessionTitle</h2> <div>  <p>...</p> </div> <div>  <h2 class="heading">Books</h2>  <ul>   <li>...</li>  </ul> </div></div>
®©°=DoN’t uSe iD!*
®©°3SHoUlDn'TuSe iD seLeCtOr11
®©°=.colorRed {color: red;}*
®©°311.note {color: red;}
®©°3iF YoU NeEd It.11
®©°®©°SmAcSsBY joNaThAn snOoK
cAtEgOrIzAtIoNnAmInG CoNvEnTiOndEcOuPlInG CsS FrOm HtMl
cAtEgOrIzAtIoNBAsE MOdUlE THeMeSTaTeLAyOuT
/* # Base */body, form {margin: 0;padding: 0;}a {color: #039;}a:hover {color: #03F;}
/* # Layout */.l-header, l-article, l-footer {width: 960px;margin: auto;}.l-article {border: solid #CCC;border-width: 1px 0 0;}.l-grid {margin: 0;padding: 0;list-style-type: none;}.l-grid > li {display: inline-block;margin: 0 0 10px 10px;}
/* # Layout */#header, #article, #footer {width: 960px;margin: auto;}.l-article {border: solid #CCC;border-width: 1px 0 0;}.l-grid {margin: 0;padding: 0;list-style-type: none;}.l-grid > li {display: inline-block;margin: 0 0 10px 10px;}
/* # Layout */.l-container {width: 960px;margin: auto;}.l-article {border: solid #CCC;border-width: 1px 0 0;}.l-grid {margin: 0;padding: 0;list-style-type: none;}.l-grid > li {display: inline-block;margin: 0 0 10px 10px;}
/* # State */.is-hidden { display: none;}.is-error { font-weight: bold; color: red;}.is-tab-active { border-bottom-color: transparent;}
/* # Theme *//* ## Pink Theme CSS */.theme-header { background-image: url("/theme/pink/header.png");}.theme-border { 1px solid pink;}
/* # Module *//* ## Button */.btn { ... }.btn-primary { ... }.btn-small { ... }/* ## UIlist */.uilist { ... }.uilist-item { ... }.uilist-item-icon { ... }/* ## Widget */.widget { ... }.widget-title { ... }.widget-body { ... }
<button class="btn btn-primary">Submit</button><a href="/help" class="btn btn-small">Help</a><button class="btn btn-success btn-large">Complete!</button>
<div class="widget"> <h2>Title</h2> <p>Text</p></div>
.widget { ... }.widget p { margin-top: 10px; margin-bottom: 10px;}
<div class="widget"> <h2>Title</h2> <ul>  <li>ListItem</li>  <li>ListItem</li>  <li>ListItem</li> </ul></div>
.widget { ... }.widget p,.widget ul { margin-top: 10px; margin-bottom: 10px;}
<div class="widget"> <h2>Title</h2> <ul class="widget-body">  <li>ListItem</li>  <li>ListItem</li>  <li>ListItem</li> </ul></div>
.widget { ... }.widget-body { margin-top: 10px; margin-bottom: 10px;}
®©°>
®©°,‘RUlE Of ThReE’
®©°3, 6, 9, 12, 15,‘RUlE Of ThReE’
®©°3, 6, 9, 12, 15,‘RUlE Of ThReE’
®©°3, 6, 12, 24, 48,‘RUlE Of ThReE’
®©°3, 6, 9, 12, 15,‘RUlE Of ThReE’
®©°,‘RUlE Of ThReE’3, 6, 9, 12, 15
®©°DOnAlD e, knUtH時期尚早な最適化は諸悪の根源である。... PrEmAtUrE OpTiMiZaTiOn Is ThE RoOt Of AlL EvIl.
®©°
®©°=NOt SeMaNtIcS!*
®©°すべてのセマンティックがコンテンツ派生である必要はない。... NoT AlL SeMaNtIcS NeEd To Be CoNtEnT-DeRiVeD.NIcOlAs gaLlAgHeR
<div class="review"><h1>CSS Architecture</h1><p class="reviewer">Review: <span>Hiroki Tani</span></p><time datetime="2013-09-14">2013/09/14</time><p class="review-summary">CSS Bible!</p><p class="review-description">...</p>Rating: <span class="rating">4.5</span></div>
<div itemscope itemtype="http://data-vocabulary.org/Review"><h1 itemprop="itemreviewed">CSS Architecture</h1><p>Review: <span itemprop="reviewer">HirokiTani</span></p><time itemprop="dtreviewed"datetime="2013-09-14">2013/09/14</time><p itemprop="summary">CSS Bible!</p><p itemprop="description">...</p>Rating: <span itemprop="rating">4.5</span></div>
®©°=*ClAsS!ClAsS!ClAsS! ...
®©°311
/* Sass(.scss) */%btn {border-radius: 6px;padding: 0.5em 1em;background-color: #CCC;}.btn-primary {@extend %btn;background-image: linear-gradient(...);color: #FFF;}
/* CSS */.btn-primary {border-radius: 6px;adding: 0.5em 1em;background-color: #CCC;background-image: linear-gradient(...);color: #FFF;}
<button class="btn-primary">Save</button>
/* Sass(.scss) */%btn {border-radius: 6px;padding: 0.5em 1em;background-color: #CCC;}%btn-primary {border-radius: 6px;padding: 0.5em 1em;background-color: #CCC;}%btn-large {font-size: 18px;}.save {@extend %btn;@extend %btn-primary;@extend %btn-large;}
/* CSS */.save {border-radius: 6px;adding: 0.5em 1em;background-color: #CCC;background-image: linear-gradient(...);color: #FFF;font-size: 18px;}
<button class="save">Submit</button>
.clearfix:after,.btn_type2_A:after,.bnaviul:after,.box_3col:after,.userDatadl:after,.likeTool:after,.likeUser ul:after,.commentUserul:after,.userData:after,.circleList lia:after,.time_count:after,.pagingul:after,.myData:after,.status:after,.bar:after,.month:after,.month2:after,.about:after,.sort:after,.mainListul:after,.mainList2 liul:after,.bnr_2col:after,.likeTool_lp:after,.flow:after,.radio:after,.btn_entry_2col:after,.sort2:after,ul#popup_message:after,.sort3:after,.f_circleList:after,.f_circleList a:after,.mainList3 dl:after,.mainList3ul:after,.box_2col:after,.frame_desc dl:after {content: "";display: block;clear: both;height: 0;}
®©°©°BEmbY yaNdEx
/* # Module *//* ## Button */.btn { ... }.btn-primary { ... }.btn-small { ... }/* ## Widget */.widget { ... }.widget-title { ... }.widget-body { ... }
v vk.btn .btn-primaryMOdIfIeR
00.widget.widget-bodySUb-CoMpOnEnT
BLoCk,elEmEnT,moDiFiEr
BlOcK,ElEmEnT,MoDiFiEr
.ranking { ... }.ranking__thumbnail { ... }.ranking__item { ... }.nav-line { ... }.nav-line__item { ... }.nav-line_separated { ... }.nav-line_separated__item { ... }
/* # Module *//* ## Button */.btn { ... }.btn_primary { ... }.btn_small { ... }/* ## Widget */.widget { ... }.widget__title { ... }.widget__body { ... }
/* # Module *//* ## Button */.btn { ... }.btn--primary { ... }.btn--small { ... }/* ## Widget */.widget { ... }.widget__title { ... }.widget__body { ... }
®©°=*UUuUgLy!
®©°=AgReEeE!
;パターンライブラリ/CSSスタイルガイド/テストTOoL
®©©°
®©KsSSTyLeGuIdE geNeRaToR
®©°©°STyLedoCcOSTyLeGuIdE geNeRaToR
/*A button suitable for giving stars to someone.:hover - Subtle hover highlight..stars-given - A highlight indicating you've already given astar..stars-given:hover - Subtle hover highlight on top of stars-givenstyling..disabled - Dims the button to indicate it cannot be used.Styleguide 2.1.3.*/a.button.star{...}a.button.star.stars-given{...}a.button.star.disabled{...}
COmPoNeNt&&&&
COmPoNeNt&&&&WeB
BeSt pRaCtIcE
BeSt pRaCtIcES
®©°どんなに多くの人が貢献したとしても、どのコードも一人で書いたようにする。ALl CoDe In AnY CoDe-BaSe ShOuLd LoOk LiKe A SiNgLe PeRsOntYpEd It, EvEn WhEn MaNy PeOpLe ArE CoNtRiBuTiNg To It.NIcOlAs gaLlAgHeR
THaNkS@HiLoKiiNkDeSiGn.JpC
CrEdItShttp://www.flickr.com/photos/darice/8526800143/http://www.flickr.com/photos/franksvalli/5173283924/http://www.flickr.com/photos/bdesham/2432400623/

Recommended

PDF
メンテナブルでありつづけるためのCSS設計
PDF
Why Sass?
PDF
CSS設計の理想と現実
PDF
CSS Components
PDF
Professional Web Development
PDF
How to Win the Heart of CSS Boys
PDF
Middleman 一小時完成你的專案原形
DOCX
Practica #4 equipo 4
PDF
HTML, CSS i Javascript Web tehnologije - 2. predavanje - Startit.rs
TXT
Index
PDF
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
TXT
Code blogtangcan
PDF
HTML, CSS i Javascript Web tehnologije - 4. predavanje - Startit.rs
PDF
HTML5とは何か? HTML5はじめの一歩 - 多摩美メディア芸術基礎II-1
TXT
Johny see book update
PDF
CSS 101
PPT
Joomla Day Austin Part 3
PPT
CSS Technieken Toegelicht
PDF
box model
 
TXT
thiết kế website bằng blogspot
PPT
Joomla Day Austin Part 2
PDF
How to Turn Your Ugly Old CSS into a Clean Future-Ready Beauty
RTF
Documento
TXT
Johny coba dulu
 
DOCX
Portafolio 2do Parcial
PDF
CSS-методологии от О до Б
KEY
Presentación WP Versión Keynote
PDF
JustJava2008 Facelets
PDF
Beyond CSS Architecture
PDF
モダンなCSS設計パターンを考える

More Related Content

PDF
メンテナブルでありつづけるためのCSS設計
PDF
Why Sass?
PDF
CSS設計の理想と現実
PDF
CSS Components
PDF
Professional Web Development
PDF
How to Win the Heart of CSS Boys
PDF
Middleman 一小時完成你的專案原形
DOCX
Practica #4 equipo 4
メンテナブルでありつづけるためのCSS設計
Why Sass?
CSS設計の理想と現実
CSS Components
Professional Web Development
How to Win the Heart of CSS Boys
Middleman 一小時完成你的專案原形
Practica #4 equipo 4

What's hot

PDF
HTML, CSS i Javascript Web tehnologije - 2. predavanje - Startit.rs
TXT
Index
PDF
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
TXT
Code blogtangcan
PDF
HTML, CSS i Javascript Web tehnologije - 4. predavanje - Startit.rs
PDF
HTML5とは何か? HTML5はじめの一歩 - 多摩美メディア芸術基礎II-1
TXT
Johny see book update
PDF
CSS 101
PPT
Joomla Day Austin Part 3
PPT
CSS Technieken Toegelicht
PDF
box model
 
TXT
thiết kế website bằng blogspot
PPT
Joomla Day Austin Part 2
PDF
How to Turn Your Ugly Old CSS into a Clean Future-Ready Beauty
RTF
Documento
TXT
Johny coba dulu
 
DOCX
Portafolio 2do Parcial
PDF
CSS-методологии от О до Б
KEY
Presentación WP Versión Keynote
PDF
JustJava2008 Facelets
HTML, CSS i Javascript Web tehnologije - 2. predavanje - Startit.rs
Index
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
Code blogtangcan
HTML, CSS i Javascript Web tehnologije - 4. predavanje - Startit.rs
HTML5とは何か? HTML5はじめの一歩 - 多摩美メディア芸術基礎II-1
Johny see book update
CSS 101
Joomla Day Austin Part 3
CSS Technieken Toegelicht
box model
 
thiết kế website bằng blogspot
Joomla Day Austin Part 2
How to Turn Your Ugly Old CSS into a Clean Future-Ready Beauty
Documento
Johny coba dulu
 
Portafolio 2do Parcial
CSS-методологии от О до Б
Presentación WP Versión Keynote
JustJava2008 Facelets

More from 拓樹 谷

PDF
Beyond CSS Architecture
PDF
モダンなCSS設計パターンを考える
PDF
モダンなCSS設計パターンを考える
PDF
Try Web Components
PDF
High Performance Webdesign
PDF
CSSプリプロセッサの取扱説明書
Beyond CSS Architecture
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
Try Web Components
High Performance Webdesign
CSSプリプロセッサの取扱説明書

Thinking about CSS Architecture


[8]ページ先頭

©2009-2025 Movatter.jp