18
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

css-modulesを初めて導入してみて思ったこと

Posted at

どうもヒロです。
もうそろそろ8月だというのに梅雨が抜けきらない感じに雨が降りますよね。年々梅雨の時期がズレて来ているように感じます。
そんなこんなで、前回の記事wp-rest-apiとreact.jsを使って色々試してみた話しでcss-modulesを初めて使用してみて思ったことや簡単な導入の仕方等、説明して行きたいと思います。

前回と同じですが、コードはこちらのリポジトリにあります。

##css-modules導入のことはじめ
初めに、css-modulesを使うにはcss-loaderが必要なので、css-loaderをインストールしましょう。

ターミナル
$ npm i css-loader -D

そして、webpackのconfigファイルの中にcss-loaderを読み込みますが、以下のような感じで読み込みます。

webpack.config.babel.js
{
  test: /\.css$/,
  loaders: ['style', 'css?modules', 'postcss']
}

上記のcss?modulesとなっているところがポイントで、上記のようにすることによりcss-modulesを使用することが出来ます。

ここまでが完了したらあとは簡単!適当にCSSのクラスを用意しましょう。

assets/css/style.css
.loader {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 100;
}

.loaderBg {
  background: #f7f7f7;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 10;
}

.contentWrap {
  display: flex;
  flex-wrap: wrap;
}

ここで一つポイント。通常CSSのクラス名を決める時、キャメルケースにはしないのが一般的だと思いますが、javascript側に読み込ませる為にキャメルケースを採用しています。

##実際に読み込ませてみる

assets/js/container/Main.jsx
import styles from '../../css/style.css';
...
<main>
  <Header page="もふ☆パラブログ" leftIcon={false} />
  <div className={styles.contentWrap}>{this.state.body ? title : ''}</div>
</main>
...

上記のstyles.contentWrapの部分でCSSを読み込んでいます。実際にブラウザでこの部分を確認してみると....

スクリーンショット 2016-07-28 16.42.47.png

ちゃんと読み込めてる!

##感想
css-modules使ってみたいという気持ちはあった物の、導入が面倒な気がして引き気味でしたが、やってみたら意外と簡単でした。

また、inline-cssと違い、今までと同じようにCSSを記述し、それを読み込むだけなので、導入してみて違和感等もありませんでした。むしろ今後積極的に取り入れて行きたいと思えるくらい便利だなーと思いました。

BEMやSMACCS等で適切なルール決めをすれば不要なのかもしれませんし、そもそもclassがバッティングするような設計が間違いなのかもしれませんが、本当に違和感がなかった。というのが正直な感想ですね。

まとまりが悪いですが汗
今回はこんな感じで!それではまた!

##参考
CSSモジュール ― 明るい未来へようこそ
http://postd.cc/css-modules/
css-modulesのリポジトリ
https://github.com/css-modules/css-modules
webpackのcss-loaderでCSS Modulesをやる
http://qiita.com/_likr/items/c335dec5221024ad56bc

18
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?