Movatterモバイル変換


[0]ホーム

URL:


拓樹 谷, profile picture
Uploaded by拓樹 谷
PDF, PPTX42,970 views

モダンなCSS設計パターンを考える

This document discusses modern CSS architecture patterns. It introduces concepts like OOCSS, SMACSS, and BEM for organizing CSS in a modular, scalable and maintainable way. It provides examples of how to build reusable CSS modules and maintain them through techniques like naming conventions, categorization and decoupling CSS from HTML. The presentation emphasizes goals of building predictable, reusable, maintainable and scalable CSS architecture.

Embed presentation

Download as PDF, PPTX
モダンなCSS設計パターンを考えるModern CSS ArchitectureHiroki TaniHTML5 Conference 2013
Hiroki TaniCyberAgent, Inc.
http://frontrend.github.io/Frontrend in SapporoFrontrend in Fukuoka2013年12月7日2013年1月
Why Architecture ?



#news h2 { border-bottom: 1px solid black; padding: 1em 0.5em; font-size: 18px; font-weight: bold;}
#news h2 { border-bottom: 1px solid black; padding: 1em 0.5em; font-size: 18px; font-weight: bold;}#faq .title { border-bottom: 1px solid black; padding: 1em 0.5em; font-size: 18px; font-weight: bold;}
#news h2 { border-bottom: 1px solid black; padding: 1em 0.5em; font-size: 18px; font-weight: bold;}#faq .title { border-bottom: 1px solid black; padding: 1em 0.5em; font-size: 18px; font-weight: bold;}#service .feature .title { border: 1px solid black; padding: 0.5em; font-size: 16px;}
.column_2 #inbox .list { ... }.column_3 #inbox .list { ... }.column_3 #inbox .list .name { ... }.column_3 #inbox .list .name p { ....column_3 #inbox .list .name.reply {.column_3 #inbox .list .name.reply abody#top .column_3 #inbox .list.left}... }{ ... }{ ... }
!important
Goals of Better CSS Architecture- Predictable- Reusable- Maintainable- Scalable予測しやすい再利用しやすい保守しやすい拡張しやすいhttp://enja.studiomohawk.com/2013/07/06/css-architecture/
Modular CSS
OOCSSNicole Sullivanhttps://github.com/stubbornella/oocss/wiki
OOCSS- Separate structure and skin構造と見た目の分離- Separate container and contentコンテナとコンテンツの分離
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 { /* 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>
How to build modules ?
It depends.
Rule of Three‘Refactoring’http://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)
3, 6
3, 6, 9, 12, 15 ...
3, 6, 12, 24, 48 ...
3, 6, 9
3, 6, 9, 12, 15 ...
.fontSize10 { font-size: 10px}.colorRed { color: red}
<p class="fontSize18 colorRed">入力内容に誤りがあります。</p>
<p class="box radius10 fontSize18 colorRed">入力内容に誤りがあります。</p>
.colorRed { color: red}
.colorRed { color: orange;}⚠
.colorRed { color: orange; /* あとで直す */}⚠
.fontSize18 { font-size: 18px}
.fontSize18 { font-size: 18px}@media only screen and (max-width : 320px) { .fontSize18 {  font-size: 14px }}⚠
.radius6 { border-radius:}.radius10 { border-radius:}.radius12 { border-radius:}.radius14 { border-radius:}6px;10px;12px;14px;⚠
How to maintain modules ?
SMACSSJonathan Snookhttp://smacss.com/ja
日本語、ありますSMACSSJonathan Snookhttp://smacss.com/ja
SMACSS- Categorizationカテゴライズ- Naming Convention命名規則- Decoupling CSS from HTMLHTMLとCSSの分離
SMACSS Categories- Base- Layout- State- Theme- Module
/* # Base */body, form {margin: 0;padding: 0;}a {color: #039;}a:hover {color: #03F;}
/* # Layout */#header {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 *//* ## Spring Theme CSS */.theme-header { background-image: url("/theme/spring/header.png");}.theme-border { 1px solid pink;}
Message-boxhttp://cdpn.io/hKBkm
<div class="msg"><p>...</p></div>.msg {display: block;border: 1px solid #cccccc;border-radius: 8px;padding: 1em;background-color: #efefef;color: #333333;}
<div class="msg msg-error"><p>...</p></div>.msg {...}.msg-error {border: 1px solid #c0392b;background-color: #fe9282;}
<div class="msg msg-success"><p>...</p></div>.msg {...}.msg-success {border: 1px solid #27ae60;background-color: #99f3c9;}
<div class="msg msg-error"><h2>...</h2><p>...</p></div>
<div class="msg msg-error"><h2>...</h2><p>...</p></div>.msg h2 {font-size: inherit;font-weight: bold;}.msg p {margin-top: 0.6em;}
.msg h2 {font-size: inherit;font-weight: bold;}.msg ul,.msg p {margin-top: 0.6em;}
.msg h2 {font-size: inherit;font-weight: bold;}.msg ul,.msg p {margin-top: 0.6em;}⚠
<div class="msg msg-error"><h2 class="msg-title">...</h2><ul class="msg-body"><li>...</li><li>...</li></ul></div>
.msg-title {font-size: inherit;font-weight: bold;}.msg-body {margin-top: 0.6em;}
<div class="msg msg-error"><p class="msg-title">...</p><ul class="msg-body"><li>...</li><li>...</li></ul></div>
<div class="msg msg-error"><h2 class="msg-title"><i class="msg-title-icon ico ico-label ico-alert"></i>...</h2><ul class="msg-body"><li>...</li><li>...</li></ul></div>
.msg-title-icon {vertical-align: -0.3em;}.ico {display: inline-block;}.ico-alert {background-image: url(...);width: 24px;height: 24px;}.ico-label {margin-right: 0.3em;}
%ico {display: inline-block;}%ico-alert {background-image: url(...);width: 24px;height: 24px;}%ico-label {margin-right: 0.3em;}.msg-error-icon {vertical-align: -0.3em;@extend %ico;@extend %ico-alert;@extend %ico-label;}

.msg-error {border: 1px solid #c0392b;background-color: #fe9282;}

.msg-title {font-size: inherit;font-weight: bold;}.msg-body {margin-top: 0.6em;}
.msg {...}.msg-error {border: 1px solid #c0392b;background-color: #fe9282;}.msg-title {font-size: inherit;font-weight: bold;}
BEMYandexhttp://bem.info/
BEM stands for ...- Block- Element- Modifier
Block
Element
Modifier
.block { ...}.block__element { ...}.block_modifier { ...}.block__element_modifier { ...}
.nav { ...}.nav__item { ...}.nav_segmented { ...}.nav__item_segmented { ...}
.nav { ...}.nav__item { ...}.nav--segmented { ...}.nav__item--segmented { ...}http://enja.studiomohawk.com/2012/03/20/about-html-semantics-and-front-end-architecture/
.msg {...}.msg--error {border: 1px solid #c0392b;background-color: #fe9282;}
.msg__title {font-size: inherit;font-weight: bold;}.msg__body {margin-top: 0.6em;}.msg__title-icon {vertical-align: -0.3em;}
MCSS- Base- Project- cosmetichttp://operatino.github.io/MCSS/en/
inuit.css- Base- Generic- Objectshttp://inuitcss.com/
SUIT- Utilities- Componentshttps://github.com/suitcss/suit
Front-end Styleguide
Starbucks Style Guidehttp://www.starbucks.com/static/reference/styleguide/
Pattern Primerhttp://patternprimer.adactio.com/
MailChimp Pattern Libraryhttp://ux.mailchimp.com/patterns/
Twitter Bootstraphttp://getbootstrap.com
KSShttp://warpspire.com/kss/styleguides/
Kaleihttp://kaleistyleguide.com/
StyleDoccohttp://jacobrask.github.io/styledocco/
//// # 見出し//// 説明文を書きます。マークダウン形式です。//// ```// <button type="button" class="btn btn-default">//``` で囲んだ部分にデモのHTMLを記述します。// </button>// ```.btn {display: inline-block;...&:hover,&:focus {color: @btn-default-color;text-decoration: none;}}
$ styledocco -n "ProjectName" css/$ styledocco -n "ProjectName" -o "mydocs"$ styledocco -n "ProjectName" --preprocessor "lessc" less/
Building Pages🎬⚏👤 👤
Building Pages🎬⚏👤 👤🎬⚏👤
Building PagesSystems🎬⚏🎬⚏👤 👤👤
Developer vs Designer ?
🎬⚏👤 👤
🎬⚏👤 👤
🎬⚏👤 👤
🎬⚏👤 👤 
🎬⚏👤 👤 
🎬⚏👤 👤 
🎬⚏👤 👤 
Developer with Designer
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.”- Idiomatic CSShttps://github.com/necolas/idiomatic-css
“壊れない完璧な設計を求めるのではなく壊れたときに勇気をもって修復できる設計を- Anonymous”
Thanks.- twitter.com/hiloki- inkdesign.jp- html5experts.jp/hiloki/
Photo credit-http://www.flickr.com/photos/bpotstra/3490333174/sizes/l/http://www.flickr.com/photos/bettybroadbent/3704523854/sizes/o/http://www.flickr.com/photos/drewmaughan/8209503226/sizes/l/http://www.flickr.com/photos/biodork/6849406792/http://www.flickr.com/photos/43266097@N03/9444574320/sizes/l/http://www.flickr.com/photos/90585146@N08/8234225693/sizes/l/http://www.flickr.com/photos/lwr/6778863776/sizes/l/http://www.flickr.com/photos/jezpage/4696962046/http://www.flickr.com/photos/april-mo/8485249298/sizes/l/http://www.flickr.com/photos/4st4roth/2366615948/http://www.flickr.com/photos/sharman/4570412801/sizes/l/http://www.flickr.com/photos/kaptainkobold/3771497484/http://www.flickr.com/photos/laurie_pink/2549598674/sizes/l/http://www.flickr.com/photos/dansdata/3266946102/http://www.flickr.com/photos/ochre_jelly/6839227477/sizes/l/http://www.flickr.com/photos/in-duce/2232109985/sizes/o/http://www.flickr.com/photos/pgoyette/5911926699/sizes/z/http://www.flickr.com/photos/conradoplg/10091603396/sizes/l/http://www.flickr.com/photos/kaptainkobold/4441509147/sizes/l/

Recommended

PDF
モダンなCSS設計パターンを考える
PDF
Beyond CSS Architecture
PDF
CSSプリプロセッサの取扱説明書
PDF
High Performance Webdesign
PDF
Try Web Components
KEY
Html5 intro
PDF
Rapid Prototyping
PPTX
Xlrays online web tutorials
PDF
The Backside of the Class (CSS Day 2015)
TXT
Dorothea orem-theory
DOC
I pv6+at+caribbean+sector
TXT
Html22
TXT
Guia de-estudio-2
PDF
Class 4 handout w css3 using j fiddle
PDF
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
PDF
Haml, Sass & Compass
PDF
A More Perfect Union with CSS
TXT
Capitulo 3-enegia-y-conservacion-de-masas
PDF
Introducing YUI
KEY
Plone Interactivity
PDF
LessCSS Presentation @ April 2015 GTALUG Meeting
PDF
WordCamp Bari 2019
PDF
Nanoformats
PPTX
Hardcore HTML
PDF
Doing it in style - creating beautiful sites, the web standards way / WebDD /...
TXT
Espacios en-tu-vida
PDF
10 Things Web Designers tend to forget when doing SEO
PDF
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014
KEY
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
KEY
Wrangling the CSS Beast with Sass

More Related Content

PDF
モダンなCSS設計パターンを考える
PDF
Beyond CSS Architecture
PDF
CSSプリプロセッサの取扱説明書
PDF
High Performance Webdesign
PDF
Try Web Components
KEY
Html5 intro
PDF
Rapid Prototyping
PPTX
Xlrays online web tutorials
モダンなCSS設計パターンを考える
Beyond CSS Architecture
CSSプリプロセッサの取扱説明書
High Performance Webdesign
Try Web Components
Html5 intro
Rapid Prototyping
Xlrays online web tutorials

What's hot

PDF
The Backside of the Class (CSS Day 2015)
TXT
Dorothea orem-theory
DOC
I pv6+at+caribbean+sector
TXT
Html22
TXT
Guia de-estudio-2
PDF
Class 4 handout w css3 using j fiddle
PDF
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
PDF
Haml, Sass & Compass
PDF
A More Perfect Union with CSS
TXT
Capitulo 3-enegia-y-conservacion-de-masas
PDF
Introducing YUI
KEY
Plone Interactivity
PDF
LessCSS Presentation @ April 2015 GTALUG Meeting
PDF
WordCamp Bari 2019
PDF
Nanoformats
PPTX
Hardcore HTML
PDF
Doing it in style - creating beautiful sites, the web standards way / WebDD /...
TXT
Espacios en-tu-vida
PDF
10 Things Web Designers tend to forget when doing SEO
PDF
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014
The Backside of the Class (CSS Day 2015)
Dorothea orem-theory
I pv6+at+caribbean+sector
Html22
Guia de-estudio-2
Class 4 handout w css3 using j fiddle
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Haml, Sass & Compass
A More Perfect Union with CSS
Capitulo 3-enegia-y-conservacion-de-masas
Introducing YUI
Plone Interactivity
LessCSS Presentation @ April 2015 GTALUG Meeting
WordCamp Bari 2019
Nanoformats
Hardcore HTML
Doing it in style - creating beautiful sites, the web standards way / WebDD /...
Espacios en-tu-vida
10 Things Web Designers tend to forget when doing SEO
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014

Similar to モダンなCSS設計パターンを考える

KEY
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
KEY
Wrangling the CSS Beast with Sass
PDF
CSMess to OOCSS: Refactoring CSS with Object Oriented Design
PDF
LESS : The dynamic stylesheet language
PDF
Structuring your CSS for maintainability: rules and guile lines to write CSS
PPTX
CSS for Developers
PDF
Part 2 in depth guide on word-press coding standards for css &amp; js big
PDF
CSS- Smacss Design Rule
KEY
前端开发理论热点面对面:从怎么看,到怎么做?
PPTX
CSS - chained classes
PDF
UI Realigning & Refactoring by Jina Bolton
PDF
The Future is Modular, Jonathan Snook
PDF
Accelerated Stylesheets
PDF
Css cheat sheet
PDF
More of less (take 2)
PDF
Compass And Sass(Tim Riley)
PDF
ACSS: Rethinking CSS Best Practices
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
Wrangling the CSS Beast with Sass
CSMess to OOCSS: Refactoring CSS with Object Oriented Design
LESS : The dynamic stylesheet language
Structuring your CSS for maintainability: rules and guile lines to write CSS
CSS for Developers
Part 2 in depth guide on word-press coding standards for css &amp; js big
CSS- Smacss Design Rule
前端开发理论热点面对面:从怎么看,到怎么做?
CSS - chained classes
UI Realigning & Refactoring by Jina Bolton
The Future is Modular, Jonathan Snook
Accelerated Stylesheets
Css cheat sheet
More of less (take 2)
Compass And Sass(Tim Riley)
ACSS: Rethinking CSS Best Practices

More from 拓樹 谷

PDF
CSS設計の理想と現実
PDF
Why Sass?
PDF
メンテナブルでありつづけるためのCSS設計
PDF
CSS Components
PDF
How to Win the Heart of CSS Boys
PDF
Thinking about CSS Architecture
CSS設計の理想と現実
Why Sass?
メンテナブルでありつづけるためのCSS設計
CSS Components
How to Win the Heart of CSS Boys
Thinking about CSS Architecture

Recently uploaded

PDF
Six Shifts For 2026 (And The Next Six Years)
PDF
Eredità digitale sugli smartphone: cosa resta di noi nei dispositivi mobili
PDF
December Patch Tuesday
 
PPTX
AI in Cybersecurity: Digital Defense by Yasir Naveed Riaz
PPTX
cybercrime in Information security .pptx
PDF
Vibe Coding vs. Spec-Driven Development [Free Meetup]
PPTX
AI's Impact on Cybersecurity - Challenges and Opportunities
PPTX
Ethics in AI - Artificial Intelligence Fundamentals.pptx
PDF
The year in review - MarvelClient in 2025
PDF
Session 1 - Solving Semi-Structured Documents with Document Understanding
PDF
Is It Possible to Have Wi-Fi Without an Internet Provider
PDF
API-First Architecture in Financial Systems
PPTX
Protecting Data in an AI Driven World - Cybersecurity in 2026
PDF
Unser Jahresrückblick – MarvelClient in 2025
PDF
Safeguarding AI-Based Financial Infrastructure
PDF
Energy Storage Landscape Clean Energy Ministerial
PDF
Dev Dives: AI that builds with you - UiPath Autopilot for effortless RPA & AP...
PPTX
Unit-4-ARTIFICIAL NEURAL NETWORKS.pptx ANN ppt Artificial neural network
PDF
Greetings All Students Update 3 by Mia Corp
PPTX
Cybercrime in the Digital Age: Risks, Impact & Protection
Six Shifts For 2026 (And The Next Six Years)
Eredità digitale sugli smartphone: cosa resta di noi nei dispositivi mobili
December Patch Tuesday
 
AI in Cybersecurity: Digital Defense by Yasir Naveed Riaz
cybercrime in Information security .pptx
Vibe Coding vs. Spec-Driven Development [Free Meetup]
AI's Impact on Cybersecurity - Challenges and Opportunities
Ethics in AI - Artificial Intelligence Fundamentals.pptx
The year in review - MarvelClient in 2025
Session 1 - Solving Semi-Structured Documents with Document Understanding
Is It Possible to Have Wi-Fi Without an Internet Provider
API-First Architecture in Financial Systems
Protecting Data in an AI Driven World - Cybersecurity in 2026
Unser Jahresrückblick – MarvelClient in 2025
Safeguarding AI-Based Financial Infrastructure
Energy Storage Landscape Clean Energy Ministerial
Dev Dives: AI that builds with you - UiPath Autopilot for effortless RPA & AP...
Unit-4-ARTIFICIAL NEURAL NETWORKS.pptx ANN ppt Artificial neural network
Greetings All Students Update 3 by Mia Corp
Cybercrime in the Digital Age: Risks, Impact & Protection

モダンなCSS設計パターンを考える


[8]ページ先頭

©2009-2025 Movatter.jp