Movatterモバイル変換


[0]ホーム

URL:


Horiguchi Seito, profile picture
Uploaded byHoriguchi Seito
PDF, PPTX61,498 views

悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)

CSS設計に関わるあれこれ。基本〜実践的な内容です。OOCSS, BEM, SMACSSとかも出てきます。

Embed presentation

Download as PDF, PPTX
Architecture for CSS 悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計
ホリグチ セイト 自己紹介 Front-End-Engineer 担当している業務 html,css,jsを用いいた中規模メディアサイト, Webアプリケーションの開発 趣味 Lang-8(先週から)、漫画(いろいろ)、 宇宙とかSFとか 経歴 2001 ! 2014 2014 初めてWebサイトを作る。当時最もモダンな「メモ帳」なるエディターを使い、 また「おえかき掲示板」「キリ番システム」などのリッチコンテンツを提供した。 デザイナーからフロントエンドエンジニアに転身。 カルタ大会やハッカソンなど、業務外の事で活躍し始める。
アジェンダ はじめに CSS設計の3大メソッド OOCSS BEM SMACSS 設計で必要な3つのこと 設計指針 ディレクトリ構成 スタイルガイド 業務で実践してみてわかった7つのこと まとめ
~はじめに~ CSS設計って何それ美味しいの?
CSS設計とは ! CSSをより体系立て、より構造化させることで、 制作とメンテナンスをより容易に行うこと ※引用1 『SMACSS: Scalable and Modular Architecture for CSS』
CSSに強い拡張性、保守性、明瞭性を持たせることが大事 と、言われています
というわけで、今回僕がお話しさせていただくことは3つです
たくさん知ろう いいとこだけ取ろう 自分なりの設計をしてみよう
CSS設計の3大メソッド
OOCSS BEM SMACSS
OOCSS
オブジェクト指向に基づいて考案された設計手法。 米Yahoo!のNicole Sullivan氏によって考案された。 ! OOCSSで設計されている代表的なサイト ! ! OOCSSとは
大きな特徴は以下の2つ 要素をContainerとContentsに切り離して考える 要素をStructureとSkinに切り離して考える
要素をContainerとContentsに切り離して考える
要素をContainerとContentsに切り離して考える Container
要素をContainerとContentsに切り離して考える .registration
要素をContainerとContentsに切り離して考える Contents
要素をContainerとContentsに切り離して考える .text .input .heading .btn
要素をContainerとContentsに切り離して考える
要素をContainerとContentsに切り離して考える
要素をContainerとContentsに切り離して考える .registration > button{ … } というような、依存したスタイルの充て方ではなく、 .btn{ … }というように独立させてスタイルを充てると、色々なところで使い回せる
ストラクチャーとスキンを切り離そう (color) skin (display,text-align,…etc) structure (width,height)
structure skin
structure skin .btn{ display: inline-­‐block; border-­‐radius: 5px; text-­‐align: center; } .btn-­‐green{ background: green; } .btn-­‐black{ background: black; } .btn-­‐pink{ background: pink; } .btn-­‐blue{ background: blue; }
structure skin .btn{ display: inline-­‐block; border-­‐radius: 5px; text-­‐align: center; } .btn-­‐large{ width: 300px; height: 50px; } .btn-­‐medium{ width: 200px; height: 40px; } .btn-­‐small{ width: 100px; height: 30px; }
structure + skin = <button class="btn btn-­‐pink btn-­‐medium">button</button>
structure + skin = <button class="btn btn-­‐black btn-­‐large">button</button>
structure + skin = <button class="btn btn-­‐green btn-­‐small">button</button>
BEM
html構造を明確にすることに軸を置いた設計方法。厳格な命名規則が特徴。 ロシアのYandex社によって考案された。 ! BEMで設計されている代表的なサイト ! ! BEMとは
大きな特徴は以下の2つ 要素を Block, Element, Modifierの3つに分ける .Block__Element_Modifierという命名ルールを用いる
Block, Element, Modifier
Block, Element, Modifier Block
Block, Element, Modifier .registration
Block, Element, Modifier Element
Block, Element, Modifier .registraion__heading .registraion__text .registraion__input .registraion__btn
Block, Element, Modifier Modifier
Block, Element, Modifier .registraion__btn_color_bule
MindBEMding BEMのエッセンスをとり入れつつ、命名ルールは 自分たちでカスタマイズするのもあり CSS Wizardly Harry Roberts氏 http://csswizardry.com/2013/01/mindbemding-getting-your-head -round-bem-syntax/
SMACSS
SMACSSとは OOCSS,BEMの流れを汲みつつ、著者の経験や理論も交えてドキュメントに落とし 込まれたスタイルガイド(コーディングルール)。 Jonathan Snook氏によって考案された。
大きな特徴 要素をBase,Layout,Module,State,Theme の5つに分ける
Base Layout Module State Theme
Base Layout Module State Theme ! reset.css helper.css …etc
Base Layout Module State Theme
Base Layout Module State Theme
Base Layout Module State Theme .tab .is-current
Base Layout Module State Theme
その他にもいろいろ マルチクラス推奨 ざっくりした命名規則 Sassでの実装方法 などなど
設計で必要な3つのこと
設計指針 ディレクトリ構成 スタイルガイド
設計指針
設計指針 コーディングを行う際に守るべき約束事。 方針。 コーディング中に迷いが生じたら、これを 元に判断・解決する
設計指針 例 SMACSSの場合 HTMLとコンテントのセマンティックな価値を向上すること 特定のHTML構造への依存を低減すること ※引用1 『SMACSS: Scalable and Modular Architecture for CSS 日 本語』
設計指針 例 KOJI ISHIMOTO氏の場合 絶対にCSSを増やしたくない class名で悩みたくない 完璧じゃなくてもいい 石本 光司 @t32k Front-end-engineer サイバーエージェント所属 JS Girl ファウンダー ※引用2 KOJI ISHIMOTO『ぼくのかんがえたさいきょうのしーえしゅえしゅ』
ディレクトリ構成
ディレクトリ構成例(SMACSSベース) html scss js image
ディレクトリ構成例(SMACSSベース) html scss js image
ディレクトリ構成例(SMACSSベース) normlize.scss helper.scss header.scss footer.scss main.scss side.scss button.scss heading.scss table.scss form.scss scss mixin.scss …etc setting.scss common.scss base layout module
ディレクトリ構成例(SMACSSベース) scss mixin.scss setting.scss common.scss normlize.scss helper.scss header.scss footer.scss main.scss side.scss button.scss heading.scss table.scss form.scss …etc base layout module
ディレクトリ構成例(SMACSSベース) common.scss @importして1つのCSSに @import "normlize.scss"; @import “helper.scss”; ! @import "header.scss"; @import "footer.scss"; @import "main.scss"; @import "side.scss"; ! @import "button.scss"; @import "heading.scss"; @import "table.scss"; @import "form.scss";
ディレクトリ構成 まとめ カテゴライズして分けておくと管理しやすい SMACSSなどのスタイルガイドを参考にしよう (他にこんなのもあります)
スタイルガイド
スタイルガイド モジュールの一覧表。コンポーネント一覧と 呼ばれることもしばしば。 コーディングルールやカラーコードを載せる  となお良い。
※引用3 Twitter『 Bootstrap』
スタイルガイド 作り方 htmlとcssでべた書きで作る ジェネレーター使う
スタイルガイド 参考になるもの CSS フレームワーク コーディングルール
スタイルガイド まとめ コンポーネントの一覧があると保守しやすく、 コミュニケーションコストを減らせる ジェネレーターを使おう
業務で実践してみてわかった 7つのこと
設計がオリジナルすぎると残業増える
設計がオリジナルすぎると残業増える 設計者&作業者のコミュニケーションコストが増える 既存の手法を取り入れつつ、厳しすぎないルールを設ける S 命名ルールってこの場合はどう なるの? このデータはどこに入れるべき? これはElement ? それともBlockかな? oh…
ベストプラクティスなんてない!
ベストプラクティスなんてない! 時と場合による S メンバー案件の内容期限
S ベストプラクティスなんてない! メンバー案件の内容期限 自分なりの設計をしてみよう
言葉の意味はしっかり定義しとく
言葉の意味はしっかり定義しとく ContainerとContentとか、 BlockとElementtとか、 Moduleとか…言い方多すぎ? Layoutってどこの部分? S
BEMは案外めんどくない
S BEMは案外めんどくない Dashのスニペット機能が超絶楽 PhpStormの補完機能は強力 .block{ &__element{ background: black; } } Sass 3.3̃の使うと省略できる .block__element{ background: black; }
OOCSSとBEMは混ぜるとちょい危険
S OOCSSとBEMは混ぜるとちょい危険 OOCSS シングルクラス向きマルチクラス向き .registration__btn_color_pink .btn .btn_pink .btn_small
S OOCSSとBEMは混ぜるとちょい危険 OOCSS .Block__Element._modifier .registraion__btn._color_pink
セマンティックに こだわりすぎるのもよくない
S セマンティックにこだわりすぎるのもよくない .btn-blue .btn-pink .btn-green .btn-default .btn-primary .btn-success .btn-a .btn-b .btn-c 予測しやすい予測しづらい 変更しづらい変更しやすい
オブジェクト指向を勉強すると OOCSSが楽しくなる
オブジェクト指向を勉強するとOOCSSが楽しくなる スーパークラスとサブクラス 複合オブジェクト など S オススメ ITmedia エンタープライズ『5分で絶対に分かるオブジェクト指向』 URL : http://www.itmedia.co.jp/im/articles/0703/06/news125.html
まとめ
たくさん知ろう いいとこだけ取ろう 自分なりの設計をしてみよう
S たくさん知ろう OOCSS
S いいとこだけ取ろう OOCSS
OOCSS S 自分なりの設計をしてみよう 自分や周りの環境に合わせて、最適な設計をしよう
S 参考文献 ※引用1 Jonathan Snook,斉藤祐也『SMACSS: Scalable and Modular Architecture for CSS』 https://smacss.com/ja ※引用2 KOJI ISHIMOTO『MOL - Designing for a Mobile World!』 http://t32k.me/mol/log/the-perfect-css-i-thought/ ※引用3 Twitter『 Bootstrap』 http://getbootstrap.com/ 谷 拓樹『Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」 の設計手法』 http://www.impressjapan.jp/books/1113101128 株式会社ピクセルグリッド『Code Grid』 https://app.codegrid.net/ Harry Roberts『CSS Wizardly』 http://csswizardry.com/
ご清聴ありがとうございました!

Recommended

KEY
Slides 1
PDF
World Bank - The Container Port Performance Index 2020 A Comparable Assessmen...
PDF
Multimodal transport
PPTX
ΚΕΦ Γ. 1 ΟΙ ΑΝΤΑΓΩΝΙΣΜΟΙ ΤΩΝ ΜΕΓΑΛΩΝ ΔΥΝΑΜΕΩΝ
PDF
なんでCSSすぐ死んでしまうん
PDF
大規模サイトにおける本当は怖いCSSの話
PDF
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
PDF
CSS の歩き方
PPTX
2016年版 フロントエンド開発フォーマット
PDF
ブラウザにやさしいHTML/CSS
PDF
メンテナブルでありつづけるためのCSS設計
PDF
Thinking about CSS Architecture
PDF
モダンなCSS設計パターンを考える
PDF
今必要なCSSアーキテクチャ
PDF
プログラマがWebデザインについて考えてみた
PDF
プログラマがデザインをがんばってみた
PDF
Web design
PDF
ノンデザイナーのためのWebデザイン講座
PDF
Webデザインのトーン&マナーを導き出す手法
PDF
デザインのためのデザイン
PDF
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
PDF
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
PDF
Webデザインのセオリーを学ぼう
KEY
ノンデザイナーのための配色理論
PPT
色彩センスのいらない配色講座
PPTX
CSS設計
PDF
2017: A CSS Design Odyssey
PDF
BEMについて一緒に考えてみませんか
PPTX
SMACSS入門

More Related Content

KEY
Slides 1
PDF
World Bank - The Container Port Performance Index 2020 A Comparable Assessmen...
PDF
Multimodal transport
PPTX
ΚΕΦ Γ. 1 ΟΙ ΑΝΤΑΓΩΝΙΣΜΟΙ ΤΩΝ ΜΕΓΑΛΩΝ ΔΥΝΑΜΕΩΝ
PDF
なんでCSSすぐ死んでしまうん
PDF
大規模サイトにおける本当は怖いCSSの話
PDF
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
Slides 1
World Bank - The Container Port Performance Index 2020 A Comparable Assessmen...
Multimodal transport
ΚΕΦ Γ. 1 ΟΙ ΑΝΤΑΓΩΝΙΣΜΟΙ ΤΩΝ ΜΕΓΑΛΩΝ ΔΥΝΑΜΕΩΝ
なんでCSSすぐ死んでしまうん
大規模サイトにおける本当は怖いCSSの話
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー

Viewers also liked

PDF
CSS の歩き方
PPTX
2016年版 フロントエンド開発フォーマット
PDF
ブラウザにやさしいHTML/CSS
PDF
メンテナブルでありつづけるためのCSS設計
PDF
Thinking about CSS Architecture
PDF
モダンなCSS設計パターンを考える
PDF
今必要なCSSアーキテクチャ
PDF
プログラマがWebデザインについて考えてみた
PDF
プログラマがデザインをがんばってみた
PDF
Web design
PDF
ノンデザイナーのためのWebデザイン講座
PDF
Webデザインのトーン&マナーを導き出す手法
PDF
デザインのためのデザイン
PDF
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
PDF
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
PDF
Webデザインのセオリーを学ぼう
KEY
ノンデザイナーのための配色理論
PPT
色彩センスのいらない配色講座
CSS の歩き方
2016年版 フロントエンド開発フォーマット
ブラウザにやさしいHTML/CSS
メンテナブルでありつづけるためのCSS設計
Thinking about CSS Architecture
モダンなCSS設計パターンを考える
今必要なCSSアーキテクチャ
プログラマがWebデザインについて考えてみた
プログラマがデザインをがんばってみた
Web design
ノンデザイナーのためのWebデザイン講座
Webデザインのトーン&マナーを導き出す手法
デザインのためのデザイン
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
Webデザインのセオリーを学ぼう
ノンデザイナーのための配色理論
色彩センスのいらない配色講座

Similar to 悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)

PPTX
CSS設計
PDF
2017: A CSS Design Odyssey
PDF
BEMについて一緒に考えてみませんか
PPTX
SMACSS入門
PPTX
Oocssとかついでにsmacssとbemの話も
PDF
Styleguide Driven Development x CMS - MTDDC Tokyo 2015
PDF
HTML5とCSS3でWebが変わる!でも導入は簡単!
PDF
モダンCSS設計と BEMという開発手法
PDF
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
PDF
CSS設計のお勉強
PDF
コーディングがラクになる!? “自分仕様”のさくさくコーディング法
PDF
CSSと仲良くなろう
PPTX
BEM記法~HTMLコーディングする際のidやclassの命名規則~
PDF
プロデザイナーが実践するHTML&CSSスキル向上トレーニング〜Wikipedia編 先生:笠井 枝理依
PDF
GW講習3日目!プロデザイナーが実践するHTML&CSSスキル向上トレーニング
PDF
Sass introduction (jscafe 10)
PDF
Web制作勉強会 #1
PDF
HTML5, きちんと。
PDF
CSSの光と闇
PDF
WebデザイナーのためのSass/Compass入門
CSS設計
2017: A CSS Design Odyssey
BEMについて一緒に考えてみませんか
SMACSS入門
Oocssとかついでにsmacssとbemの話も
Styleguide Driven Development x CMS - MTDDC Tokyo 2015
HTML5とCSS3でWebが変わる!でも導入は簡単!
モダンCSS設計と BEMという開発手法
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
CSS設計のお勉強
コーディングがラクになる!? “自分仕様”のさくさくコーディング法
CSSと仲良くなろう
BEM記法~HTMLコーディングする際のidやclassの命名規則~
プロデザイナーが実践するHTML&CSSスキル向上トレーニング〜Wikipedia編 先生:笠井 枝理依
GW講習3日目!プロデザイナーが実践するHTML&CSSスキル向上トレーニング
Sass introduction (jscafe 10)
Web制作勉強会 #1
HTML5, きちんと。
CSSの光と闇
WebデザイナーのためのSass/Compass入門

More from Horiguchi Seito

PDF
Lets start-react
PDF
カロリーインターンの僕が 新規事業を立ち上げた話
PDF
元コンビニ店長の人生を賭けたエンジニア留学
PDF
Css Architecture for the future 未来を見据えるCSS設計
PDF
Sassをはじめからていねいに<概要−基礎編>
PDF
レスポンシブ基礎 ~Webサイトをレスポンシブに する方法とそのメリット~
PDF
今日から使える! HTML/CSS/JSの シンプルテクニック15選
PDF
Cross2015自己紹介LT資料
PDF
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
PDF
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Lets start-react
カロリーインターンの僕が 新規事業を立ち上げた話
元コンビニ店長の人生を賭けたエンジニア留学
Css Architecture for the future 未来を見据えるCSS設計
Sassをはじめからていねいに<概要−基礎編>
レスポンシブ基礎 ~Webサイトをレスポンシブに する方法とそのメリット~
今日から使える! HTML/CSS/JSの シンプルテクニック15選
Cross2015自己紹介LT資料
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう

悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)


[8]ページ先頭

©2009-2025 Movatter.jp