【2016年冬】最新CSSフレームワークまとめ

<center>
![スクリーンショット 2016-12-20 10.04.41.png](https://qiita-image-store.s3.amazonaws.com/0/74192/19640ad3-5a57-79c9-900a-8b4f18f89067.png)
</center>

# はじめに

以前、[HTMLやCSS設計がよく分から無いというあなたへ。知ることから始める5つのTIPS](http://qiita.com/RyutaYoshi/items/30f965dc44b7c533ef95)という記事を書いたのですが、これは、僕が当初CSSの設計が凄く苦手で、苦手なりにも沢山書いていって少しわかるかな？と思ってきたときに備忘録も兼ねてまとめました。
なぜ苦手だったのかと振り返ると、その中で一番大きな要素が、構造間の依存関係を把握できていなかったことにあるのではないかなと思います。

[この記事](http://qiita.com/RyutaYoshi/items/30f965dc44b7c533ef95)の中でも言うようにCSSの設計やもっと大きく言えばプロダクトの設計思想によって異なるとは思いますが、その依存関係を把握できていない原因はおそらくは何かしら取り入れているCSSのフレームワークの理解に乏しいことに原因があるのではと考えました。

そこで、多くの人に用いられているであろうCSSフレームワークを、2016年末時点でgithubのスター数が多かった順に５位までまとめてみました。ここで一般的によく用いられているフレームワークを知っていただいて自分で詳しく調べてもらって設計まで落としてもらうような使い方をしていただきたいです。
この記事は主に以下のような方を対象としています。

- サービスを作るにあたって、プロダクトで使える無難なフレームワークを探したい
- 単純にどういうCSSフレームワークがあるか気になる。
- デザインが苦手だ
- デザインは60点で良いから機能開発に集中したい！！！

それでは早速ランキング形式で紹介していきます！！

## <div id="no1">第1位 Bootstrap　スター数: 104,657</div>
<center>
<img width="1273" alt="スクリーンショット 2016-12-19 21.31.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/1f1ff56b-2b87-d0b1-e932-8e27b673d87a.png">
</center>

### 特徴

Bootstrapはtwitter社に勤めていた、Mark Otto, Jacob Thornton氏らによって作成され、2011年8月19日(今から5年前)に初版が発表されました。言わずと知れたCSSフレームワークの王様で、デザインに疎い方でもWEBサービスのデザインを触ったりしたことがある方は一度は聞いたことがあると思います。

githubのスター数が[全てのリポジトリの中で2位](https://github.com/search?q=stars%3A%3E1&s=stars&type=Repositories)で、なんとあの[NASA](https://www.nasa.gov/)のHPにも採用されている、もっとも支持されているCSSフレームワークです。

[col-xs, col-sm, col-md, col-lgといった、デバイスに合わせた豊富なレスポンシブなレイアウトパターン](http://getbootstrap.com/css/#grid)を始めとし、[ラベルやボタン、フォーム、リストやテーブルのスタイルなど](http://getbootstrap.com/css/#tables)WEBサイトを作成するにあたって必要となりそうな基本的なデザインが網羅されています。

![スクリーンショット 2016-12-19 23.40.13.png](https://qiita-image-store.s3.amazonaws.com/0/74192/21da5211-05b8-0bfc-c62b-e84b508213c9.png)


万人受けする無難なデザインが多いため慣れてくるとbootstrap臭さみたいなものを感じることがありますが、支持されているのには当然理由があるので、特にこだわりが無い方は、CSSフレームワークとしてbootstrapを用い、慣れてきたらデフォルトデザインを修正してオリジナル性を取り入れていくような使い方が良いと思います！

※デザインが苦手な方は以下の画像の様に[bootstrapをベースにカスタムされたテーマ](http://themes.getbootstrap.com/collections/all)もあるので、少しお金はかかりますが急いでおしゃれなデザインが欲しい方は検討してみると良いと思います。

<div style="text-align: center;">
<img width="1000" alt="スクリーンショット 2016-12-19 22.22.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/4cb992c5-86aa-55a6-e9f3-8cab4862d1bb.png">
</div>


### 情報
- getting started: http://getbootstrap.com/getting-started/
- githubリポジトリ: https://github.com/twbs/bootstrap
- スター数: 104,657 (記事公開時)

### 参考サイト
- [Bootstrap](http://getbootstrap.com/)
- [Bootstrap History](http://getbootstrap.com/about/#team)

## <div id="no2">第2位 Semantic-UI スター数: 30,174</div>
<center>
![スクリーンショット 2016-12-19 23.43.32.png](https://qiita-image-store.s3.amazonaws.com/0/74192/72a450f7-2983-62ca-c1f2-8700e48f2998.png)

</center>

### 特徴

第2位はSemantic-UIです。Semantic-UIの大きな特徴は、その設計思想にあります！

> Design Beautiful Websites Quicker
Semantic is a development framework that helps create beautiful, responsive layouts using human-friendly HTML.

一般的に、CSSフレームワークは簡単に綺麗なデザインを早く組むことができるのですが、それと引き換えに学習コストが高くなりがちです。
class名を見ただけでスタイルがどのような状態なのか誰でも簡単に把握できるように学習コストを落としhuman-friendlyなhtml構造にすることで解決しようとしたのがSemantic-UIです。

例えば、ボタンのデザインであればSemantic-UIでは以下のように定義されています。

<img width="680" alt="スクリーンショット 2016-12-20 1.05.11.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/e8f0e614-e34d-68b3-851f-338640f6b747.png">

"ui three buttons"はclass名だけで3つのボタンを定義していることが把握できます。
そういった設計思想に基づいて作られていながら、[こちらのページ](http://semantic-ui.com/)のelementsの欄を見ていただければ分かるように、Semantic-UIもBootstrap同様にレイアウトスタイルから、ボタンやテーブルなどのデザインまで幅広くカバーしています。

以下のようなボタンへのアニメーションも簡単に実装することもできます。

![semantic-ui.gif](https://qiita-image-store.s3.amazonaws.com/0/74192/96df1275-e907-ca7f-e7fa-50880b11c8c1.gif)


スター数だけで単純比較するとBootstrapにはまだまだ劣りますが、最近急激に伸びているので注目のフレームワークであることが言えます。
大型のフレームワークなのでBootstrapと比較しても容量は大きくなりますが、学習コストが低く幅広いデザインを扱っているので初心者向けのフレームワークです。サイトのベースを構成するためのCSSフレームワークとして検討すべき対象になるかと思います。

### 情報
- getting started: http://semantic-ui.com/introduction/getting-started.html
- githubリポジトリ: https://github.com/Semantic-Org/Semantic-UI
- スター数: 30,174 (記事公開時)

### 参考サイト
- [Semantic-UI](http://semantic-ui.com/)
- [Semantic UI - クラス指定に意味を持たせたデザインフレームワーク](http://www.moongift.jp/2014/12/semantic-ui-%E3%82%AF%E3%83%A9%E3%82%B9%E6%8C%87%E5%AE%9A%E3%81%AB%E6%84%8F%E5%91%B3%E3%82%92%E6%8C%81%E3%81%9F%E3%81%9B%E3%81%9F%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%95%E3%83%AC%E3%83%BC/)


## <div id="no3">第3位　Foundation　スター数: 24,601</div>
<center>
<img width="1280" alt="スクリーンショット 2016-12-20 1.31.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/c49bcdb2-1597-785b-2625-de6de27f8a67.png">
</center>

### 特徴

Foundationは、zurb社が提供しているCSSフレームワークで、現在version6までリリースされている人気なフレームワークです。
Foundationは、主に以下のような特徴を備えています。

#### Semantic
全てがセマンティック(意味論的)であり、Foundationが持つ利便性やスピード感を犠牲にすることなく、最もクリーンなマークアップを保つことができます。
#### Mobile First
モバイル向けにサイトを構築することができます。また、デバイスが大きくなればなるほど、複雑さが増すレスポンシブなデザインが完成します。
#### Customizable
特定の要素を追加したり削除したりしてカスタマイズすることで、列のサイズや、色、フォントサイズなどを定義することができます。
#### Professional
何百万人ものデザイナーと開発者がFoundationを使用している。 zurb社は、クライアントの製品やサービスを拡大するためのビジネスサポート、トレーニング、コンサルティングを行っています。

今までのフレームワークと比べて若干玄人向けのフレームワークではあるものの利便性の高さから、adobeやamazonなどを始めとする以下のような企業がFoundationを使用しています。

<img width="1170" alt="スクリーンショット 2016-12-20 1.49.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/e7a63bbf-f64f-3afc-39ff-eed681c287c4.png">

一例ではあるものの以下のようにボタンのデザインを見てみるとわかるように、マルチクラスで状態を定義しているので拡張性に優れていることがわかります。

<img width="784" alt="スクリーンショット 2016-12-20 2.28.31.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/8be0e9df-ba18-ae2f-d6b4-c09f4728cbb5.png">

そのほかにも[こちらのキッチンシンク](http://foundation.zurb.com/sites/docs/kitchen-sink.html)の方でUIの実装例をまとめてあります。

Foundationは基本的に出来ることがBootstrapと同じなので、よく比較されています。
[こちらの記事](https://dannyherran.com/2016/03/state-of-affairs-bootstrap-4-vs-foundation-6/)にもあるのですが、Foundationの強みはSemanticと明言しているだけあって、Bootstrapのようにcontainerを持たずとも複雑なレイアウトでも簡潔にかけるようになっています。また、[Block Grid](http://foundation.zurb.com/sites/docs/v/5.5.3/components/block_grid.html)という、1つのrowに入るカラム数を画面幅によって高さまで揃えた上で動的に出し分けてくれるようなスタイルもあります。これはデフォルトのBootstrapには無いデザインなので、より柔軟にレイアウトを組みたい時にはFoundationの方を検討すると良いかもしれないですね。


### 情報
- getting started: http://foundation.zurb.com/sites/getting-started.html
- githubリポジトリ: https://github.com/zurb/foundation-sites
- スター数: 24,601 (記事公開時)

### 参考サイト
- [Foundation](http://foundation.zurb.com/)
- [Foundation6を使ってみる。導入編](http://mizukazu.minibird.jp/foundation-start/)
- [FoundationがBootstrapよりもECサイトに向いている理由](http://welcustom.net/foundation-for-ecommerce/)


## <div id="no4">第4位 Materialize　スター数: 23,424</div>
<center>
<img width="977" alt="スクリーンショット 2016-12-20 7.41.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/ed719564-cb72-f385-da51-3a1b63741e33.png">

</center>

### 特徴

[Materialize](http://materializecss.com)は、Googleが提唱する[マテリアルデザインという概念](http://qiita.com/nogson/items/804dd3a879f482fb7018)をベースに設計されたレスポンシブなCSSフレームワークです。

ユーザビリティーに特化したフレームワークで、マテリアルデザインを早く簡単に実装することができます。
リプルというボタンをクリックした際に波を打つようなアニメーションなどもカバーしていて、なおかつ全てのデバイスに対応したグリッドレイアウトデザインもサポートしているので、Googleが提唱するマテリアルデザインという概念をプロダクトに取り入れたい方は検討すべきCSSフレームワークだと思います。

<img width="1000" alt="スクリーンショット 2016-12-20 8.03.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/646dea99-3c2b-70e2-01dd-afb27244752b.png">

※マテリアルデザイン特有な影のデザインは勿論のこと、カラーパレットなども準備されています。
<img width="1000" alt="スクリーンショット 2016-12-20 8.02.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/154f4b78-f5dc-2689-79d7-da85e4f3cb9a.png">


### 情報
- getting started: http://materializecss.com/getting-started.html
- githubリポジトリ: https://github.com/Dogfalo/materialize
- スター数: 23,424 (記事公開時)

### 参考サイト
- [Materialize](http://materializecss.com/)
- [マテリアルデザインについて少し調べる](http://qiita.com/nogson/items/804dd3a879f482fb7018)
- [簡単！マテリアルデザイン「Materialize」でサイト作ってみた！](http://liruu.com/%E7%B0%A1%E5%8D%98%EF%BC%81%E3%83%9E%E3%83%86%E3%83%AA%E3%82%A2%E3%83%AB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%80%8Cmaterialize%E3%80%8D%E3%81%A7%E3%82%B5%E3%82%A4%E3%83%88%E4%BD%9C%E3%81%A3%E3%81%A6/)

## <div id="no5">第5位 Material-UI スター数: 21,857</div>
<center>
<img width="1280" alt="スクリーンショット 2016-12-20 8.08.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/74192/61fba649-876f-c1c2-d58e-0034ccec784f.png">

</center>

### 特徴

第5位はMaterial-UIです。こちらのCSSフレームワークもMaterialize同様、Googleが提唱するマテリアルデザインという概念をベースに作られています。
現在発表されているCSSフレームワークの中でGoogleが出しているマテリアルデザインのスタイルガイドラインに最も精巧に準拠したフレームワークなので、もし精巧なマテリアルデザインのフレームワークを探している方ならこちらのフレームワークを用いることをお勧めします。

![material-ui.gif](https://qiita-image-store.s3.amazonaws.com/0/74192/18f7af7e-de73-690c-63d5-48646d27de57.gif)

ただ、1点問題点があり、**このCSSフレームワークは、Googleが提唱するマテリアルデザインのUIを[React](https://facebook.github.io/react/)のコンポーネントとして提供するプロダクト**になっています。

こちらのCSSフレームワークは、インラインスタイルのみで構成されるため必然的にReactを使用する必要がありますが、もし、Reactを今まで触ったことがあり、なおかつマテリアルデザインのような設計をしたい方は間違いなく取り入れるべきCSSフレームワークですね。
単純比較はできないものの、Reactのgithubのスター数が56,010(記事執筆時)に対して、Material-UIのスター数は21,857ととても多くの人に使用されていることがわかります。

### 情報
- getting started: http://www.material-ui.com/#/get-started/required-knowledge
- githubリポジトリ: https://github.com/callemall/material-ui
- スター数: 21,857 (記事公開時)


## まとめ
CSS周りのフレームワークについてまとめましたが、やはりBootstrapのサポートや網羅性は凄いなと改めて感じました。
今回はgithubのスター数のランキング形式で紹介したので、サービスのベースになりそうな比較的大きなサイズのCSSフレームワークに偏りましたが、例えば今回の記事を書くにあたって参考にさせていただいた以下の参照サイトを一例としCSSのフレームワークは沢山存在しています。

- [レスポンシブ対応のCSSフレームワーク25選](https://ferret-plus.com/2783)
- [CSSフレームワークまとめ](http://qiita.com/komeda/items/a74bda1408141e9109c9)

デザインがかける人もかけない人も、どういうフレームワークがありそれらのフレームワークがどういう特徴を持っているか把握しておくと、開発スピードを加速させたいときにもしかしたら手助けしてくれるかもしれませんね！


## 補足・備考
※まとめ方は以前少しだけ反響があった以下の記事を踏襲しています。
[【2016年夏】個人的に注目なフロントエンドで使えるJavaScriptフレームワークまとめ](http://qiita.com/RyutaYoshi/items/35627978de3764fa4451)
こちらも頑張ってまとめましたので、興味がある方は是非見ていただけると嬉しいです！

※本記事に関して、該当するフレームワークを1つ1つチェックはしたのですがもしかすると、抜けているフレームワークや順位の前後などがあるかもしれませんので、気になる点がありましたら気軽にコメントや編集リクエスト頂けると助かります！