はじめに
この章では、本ドキュメントの目的と読み方、想定読者をやさしく説明します。本書はBulmaというCSSフレームワークをCDN経由で導入する方法に焦点を当て、特徴や利点、具体的な導入コード、実装例、他の導入方法との比較、カスタマイズについて分かりやすくまとめました。実務で手早く使いたい方や、学習を始めたい方の両方に役立ちます。
読者想定
HTMLとCSSの基礎知識がある方を想定しています。初めての方にも配慮して、専門用語は最小限にし、具体例を交えて説明します。
本書の構成
- 第2章: Bulmaとは何か — 概要とメリット
- 第3章: Bulmaの主要な特徴 — レイアウトやコンポーネント
- 第4章: CDN経由での導入方法 — 実際のコード例
- 第5章: 実装例 — 基本レイアウトの作り方
- 第6章: 導入方法の比較 — CDNとその他の方法
- 第7章: カスタマイズとSass対応 — 見た目を調整する方法
進め方のアドバイス
手を動かして試すと理解が早まります。章ごとのコード例をコピーして実際に試してください。疑問が出たら、該当章に戻って確認すると良いです。
Bulmaとは何か
概要
BulmaはモダンなオープンソースのCSSフレームワークで、JavaScriptを含まない純粋なCSSだけで動作します。Flexboxをベースに設計されており、レスポンシブ対応が簡単です。読み込みが軽く、ページ表示が速くなる点が特長です。
どんな場面で使うか
ボタンやフォーム、カード、ナビゲーションなど、よく使うUI要素を手早く整えたいときに便利です。たとえばプロトタイプ作成や管理画面、ブログのテンプレートなどで効果を発揮します。
特に覚えておきたい点
- CSSのみ:動作に追加のJavaScriptは不要です。軽量で扱いやすいです。
- Flexboxベース:列レイアウトや中央寄せが少ないコードで実現できます。
- クラス名の直感性:buttonやcolumnsなどのクラスを組み合わせるだけで見た目が整います。
簡単な例
次のように記述すると、見た目の整ったボタンがすぐに表示できます。
<button class="button is-primary">送信</button>
このように、少ない記述で標準的なコンポーネントを作れる点がBulmaの魅力です。
Bulmaの主要な特徴
概要
Bulmaはシンプルで使いやすいCSSフレームワークです。設計がモジュール化されているため、必要な部分だけ取り込めます。読み込みを軽くでき、メンテナンスもしやすいです。
モジュール設計
- 必要なコンポーネントだけをインポート可能です。たとえばボタンだけ使う場合はボタンのスタイルだけ読み込むことができます。
- Sassファイルを分割して管理できるため、カスタマイズが楽です。
12カラムのFlexboxグリッド
- BulmaはFlexboxベースの12カラムグリッドを採用しています。直感的に列を並べられ、レスポンシブ対応も容易です。
- クラス名(例: columns, column is-half)を追加するだけでレイアウトが決まります。コードがシンプルで読みやすいです。
豊富なCSSコンポーネント
- ボタン、フォーム、カード、ナビゲーション、モーダルなど、よく使うUIが揃っています。デフォルトで見た目が整うため開発が早く進みます。
フレームワークとの統合
- ReactやVue.jsとも相性が良く、単純にクラス名を付けるだけで使えます。コンポーネントライブラリも多数あり、組み合わせて使うと開発効率が上がります。
レスポンシブとユーティリティ
- 表示・非表示や余白、サイズ調整のユーティリティクラスが用意されています。画面幅に応じた調整が簡単に行えます。
注意点
- 見た目は最初から整っていますが、独自デザインに合わせる場合は多少の上書きが必要です。柔軟にカスタマイズできますので、プロジェクトに応じて使い分けてください。
CDN経由でのBulma導入方法
基本はheadに1行追加するだけ
HTMLの内にCSSへのリンクを置くだけで導入できます。最もシンプルな例は次の通りです。
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
この1行でBulmaのスタイルが使えます。リンクはのなるべく上に置くと、スタイルの読み込み順が分かりやすくなります。
よく使われるCDNの例
- jsDelivr
- https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css
- cdnjs
- https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.4/css/bulma.min.css
上のURLは「例」です。必要に応じてバージョンを変えてください。
CSS内での@import
外部CSSやカスタムCSSの先頭で@importを使う方法もあります。例:
@import url('https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css');
/* その下に自分のスタイルを書く */
ただし、@importは読み込みが遅くなる場合があるので、可能ならを使うことをおすすめします。
右から左(RTL)言語への対応
Bulma自体はRTL向けの別パッケージ(bulma-rtl)もあります。CDN経由で読み込む例:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma-rtl@0.9.4/css/bulma-rtl.min.css">
RTLを使うとアラビア語やヘブライ語のような右から左の言語で自然な表示になります。
応用ポイント
- カスタムCSSでBulmaのスタイルを上書きする場合は、Bulmaの読み込み後に自分のCSSを読み込んでください。
- セキュリティや検証が必要な場合は、SRI(integrity属性)やcrossorigin属性の利用を検討してください。
- ネットワークが不安定な環境では、ローカルにダウンロードして使う方法もあります。
実装例:基本的なレイアウト
概要
ここではCDNを使った最小限の実装例を示します。まずBulmaのスタイルシートを読み込み、container内にタイトルとテキストを置く基本例を紹介します。その後、レスポンシブな3分割カラムの例を示します。
最小の実装(CDN経由)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
<title>Bulma Example</title>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">タイトル</h1>
<p class="content">ここに説明文を入れます。簡単に見やすいレイアウトが作れます。</p>
</div>
</section>
</body>
</html>
複数カラムの例(レスポンシブ)
<section class="section">
<div class="container">
<div class="columns">
<div class="column"><div class="box">カラム1</div></div>
<div class="column"><div class="box">カラム2</div></div>
<div class="column"><div class="box">カラム3</div></div>
</div>
</div>
</section>
上の例では、画面幅が小さいと縦に並び、広いと横並びで均等に3分割されます。
ポイント・注意点
- sectionは上下の余白を作ります。containerは中央寄せで幅を制御します。
- .boxで簡単に囲いを作れます。見出しは.title、段落は.contentを使うと見た目が整います。
- さらに細かい制御が必要なときは、レスポンシブ修飾子(例:is-one-third-desktop)を使えます。
次の章ではCDN導入とその他の方法を比較します。
CDN導入とその他の方法の比較
CDN方式
短時間で導入できます。HTMLのに1行追加するだけで利用可能です。例:
利点は設定不要で即プレビューできる点、ファイル管理が不要な点です。欠点は外部依存があることと、細かなカスタマイズが難しいことです。
ダウンロード方式
BulmaのCSSファイルをダウンロードしてプロジェクトに置く方法です。自由にバージョンを管理でき、ネットワーク断でも動作します。利点は安定性とオフライン対応、欠点は手動で更新や配置を管理する必要がある点です。
npm方式
npmでパッケージを導入し、Sassファイルを扱える方法です。変数やコンポーネントの読み替えで高度なカスタマイズが可能です。メリットは柔軟なカスタマイズとビルド統合、デメリットはビルド環境や知識が必要な点です。
選び方の目安
- 素早く試したい: CDN
- 配布やオフラインを重視: ダウンロード
- デザインを細かく変更したい: npm(Sass)
実践的な注意点
パフォーマンスやキャッシュ、ライセンスは確認してください。開発段階はCDNで始め、本番でダウンロードやnpmに切り替える運用もおすすめです。
カスタマイズとSass対応
CDNとnpmの違い
CDNでの利用は手軽ですが、カスタマイズは限定的です。npmでBulmaをインストールすると、.sass/.scssファイルに直接触れるため、変数やミックスインを使った細かい調整が可能です。
npmでの基本手順
- インストール: npm install bulma –save
- スタイルファイルを作成: src/styles.scss
- 変数を上書きしてからBulmaを読み込む(※順序が重要です)。
例:
// src/styles.scss
$primary: #ff6b6b; // ここで色を上書き
@import "bulma/bulma";
よく使うカスタマイズ例
- カラーパレット($primary, $infoなど)
- 間隔・グリッド($gap, $container-max-widthなど)
- ボーダーや角丸($radius)
ミックスインを使うと、共通スタイルを再利用できます。例:
@import "bulma/sass/utilities/_all";
.my-card{ @include box-shadow(0 2px 6px rgba(0,0,0,.12)); }
ビルド方法の例
シンプルな方法はSass CLIです。
sass src/styles.scss dist/styles.css –style=compressed
また、WebpackやVite、Parcelなどのバンドラを使うと、モジュール単位で管理しやすくなります。
注意点
- 変数は必ずBulmaを読み込む前に定義してください。順序が逆だと上書きできません。
- カスタムを多用するとアップデート時に競合が出ることがあるため、変更は部分的に保つと運用が楽になります。
この章では、npm経由での導入から変数上書き、ミックスインの利用、ビルド例まで簡潔に説明しました。必要に応じて、実際のプロジェクト構成に合わせて調整してください。












