CSSフレームワーク BULMA チュートリアル①

# はじめに

BULMAは、CSSフレームワークで、2016年5月に勧告候補になり各ブラウザへの対応も進んでいる「Flexbox」を最大限に利用しています。またJavaScriptを必要としないことも特徴で、BULMAが用意したCSSファイルを一つ、Webページに組み込むだけで手軽に使えるようになるのも良いところかと思います。

本記事では、BULMAの簡単な使い方を紹介するために、まずは基礎的な使い方を説明し、そのあとはWebページを１ページ作成するチュートリアルを行う予定です。


# BULMAの導入

BULMAを導入するには三つの手段があると公式ドキュメントに紹介されています。「NPMコマンドでインストール」、「公式サイトからダウンロード」、「CDNを利用」の三つです。本記事では主に「CDNを利用」を使う予定です。

下記のサンプルコードはCDNをつかってBULMAを導入している例です。BULMAと一緒に使うことを推奨されている「Font Awesome」もCDNで導入しています。


```html:tutorial.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>BULMAチュートリアル</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://use.fontawesome.com/releases/v5.3.1/js/all.js" defer ></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.0/css/bulma.min.css" />
  </head>
  <body>
    <a href="#">HELLO!</a>
  </body>
</html>
```


# BULMAの基本

BULMAで用意されているコンポーネントやレイアウトを利用するには、HTML要素にクラスを割り当てます。
tutorial.html中のa要素に下記のようにbuttonクラスを追加してBULMAの働きを見てみてください。

```html:tutorial.html(抜粋)
<a href="#" class="button">HELLO!</a>
```
<img width="299" alt="de9bd5b4-e3cb-ccc7-f4b2-b9fba53bebbb.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/a0307b06-b49a-2d4f-c227-b0a7c1edc3fa.png">

### 色と大きさの指定

BULMAではモディファイアーと呼ばれるクラスを追加することで、要素の色や大きさを変更することもできます。
再度、tutorial.html中のa要素に下記のようにクラスを追加してください。

```html:tutorial.html(抜粋)
<a href="#" class="button is-primary is-large">HELLO!</a>
```
<img width="300" alt="bfcc2f28-878d-ff24-db14-5b00e1fbb6f8.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/215d5d98-5353-7de1-28a7-b9e47a1f1d93.png">


**使用できる色の一覧は次の通りです。**

- is-primary
- is-info
- is-success
- is-warning
- is-danger
- is-white
- is-black

<img width="638" alt="dd2de3f5-6ff0-ff67-3e8a-f62ed6a2cbd8.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/a0da9076-f5fe-ff73-bb3c-8a775662bc1c.png">

ただしBULMAのソースコードを見てみると、もう少し定義済みの色があるような感じです。

**使用できる大きさの一覧は次の通りです。**

- is-small
- is-medium
- is-large

<img width="305" alt="a4e387bd-b937-e060-cc47-9c2e3cb6491d.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/fc82b546-be7f-f0b6-e88c-2516ab599aca.png">


### レイアウト

要素のレイアウトは、クラスを付与するだけで実現できます。

```html:tutorial.html(抜粋)
<div class="columns">
   <div class="column">
     <div style="background-color: #42afe3">
       左サイド左サイド左サイド左サイド左サイド
     </div>
   </div>
   <div class="column">
     <div style="background-color: #f68b39">
       まんなかまんなかまんなかまんなかまんなか
     </div>
   </div>
   <div class="column">
     <div style="background-color: #fce473">
       右サイド右サイド右サイド右サイド右サイド
     </div>
   </div>
</div>
```

<img width="788" alt="cc1ab719-684c-8900-4450-11ff3c727b7d.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/0bfb3b79-3b39-b4e5-81a1-e2e98fa84dc7.png">

並べたいそれぞれの要素には"column"クラスを付与し、それを"columns"クラスを付与した要素で囲むことで、レイアウトが完成します。
デフォルトでは、各"column"クラスの要素は均等に並べられます。これを変更する手段として二種類のモディファイアーが用意されています。

* 分数表現：ウィンドウ幅の1/2や1/3といった指定
* グリッド表現：ウィンドウ幅を１２分割したうちのいくつ分となるかを指定

```html:tutorial.html(抜粋)
    <div class="columns">
      <div class="column is-two-thirds">
        <div style="background-color: #f68b39">
          ウィンドウ幅2/3サイズの要素
        </div>
      </div>
      <div class="column is-one-thirds">
        <div style="background-color: #fce473">
          ウィンドウ幅1/3サイズの要素
        </div>
      </div>
    </div>
    <div class="columns">
      <div class="column is-one-quarter">
        <div style="background-color: #42afe3">
          ウィンドウ幅1/4サイズの要素
        </div>
      </div>
      <div class="column is-half">
        <div style="background-color: #f68b39">
          ウィンドウ幅1/2サイズの要素
        </div>
      </div>
    </div>
```
<img width="837" alt="fccad358-ac8f-e45f-fe6d-7b72e9506889.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/19886318-584b-e942-5ea1-117d73f324cf.png">


```html:tutorial.html(抜粋)
    <div class="columns">
      <div class="column is-4">
        <div style="background-color: #f68b39">
          ウィンドウ幅4/12サイズの要素
        </div>
      </div>
      <div class="column is-8">
        <div style="background-color: #fce473">
          ウィンドウ幅8/12サイズの要素
        </div>
      </div>
    </div>
    <div class="columns">
      <div class="column is-2">
        <div style="background-color: #42afe3">
          ウィンドウ幅2/12サイズの要素
        </div>
      </div>
      <div class="column is-2">
        <div style="background-color: #f68b39">
          ウィンドウ幅2/12サイズの要素
        </div>
      </div>
    </div>
```
<img width="909" alt="aa46211f-04cf-0537-1565-8c287efee105.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/103c4ed8-ec92-99e1-8c1b-9ab46080f13b.png">


# ここまでのまとめ
まずは基本的なBULMAの使い方と導入の仕方を説明しました。
次回からは↓こんなようなWebページを作るチュートリアルを始めたいと思います。
<img width="1107" alt="5e88d5a2-a891-d14f-81a6-50dd767677d9.png" src="https://qiita-image-store.s3.amazonaws.com/0/24283/222aef6d-8a86-3742-7277-20e666b6e814.png">


#　目次
[CSSフレームワーク BULMA チュートリアル①](http://qiita.com/ochiochi/items/de1afd2d3fc8f6d3ea55)
[CSSフレームワーク BULMA チュートリアル②](http://qiita.com/ochiochi/items/19a4ac858483af9295b8)
[CSSフレームワーク BULMA チュートリアル③](http://qiita.com/ochiochi/items/23f96b5164686e8d62c1)