0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

意味を意識したBootstrapクラス設計入門

Last updated at Posted at 2025-12-21

はじめに

Bootstrapはよく「見た目を整えるCSSフレームワーク」として使われます。
しかし、この認識だけでは長期運用や拡張性のあるUI設計は難しいです。

BootstrapはUI言語として設計されており、HTML上で「意味を持つUI文」を書くことを前提としています。
単に色や装飾を目的としてクラスを付けるのではなく、役割・状態・条件を意識して使うことが重要です。

この記事では以下のポイントを中心に整理します:

  • CSS設計の考え方(BEMに近い文法的アプローチ)
  • 12分割グリッドとレスポンシブ設計
  • クラス名・色の持つ意味

Bootstrapは「CSS集」ではなく「UI言語」

Bootstrapのクラスは単なる装飾ではなく、
UIの構造や役割を表現する言語です。

HTMLはUIを構築する文章、classは単語、クラスの組み合わせは文です。

<div class="d-flex align-items-center justify-content-between"></div>

Bootstrap的には、
「横並びで、縦中央揃えで、両端配置」
という一文になります。

👉 Bootstrapを使う = UI文をBootstrap言語で書く
この意識がないと、独自CSSと混ざって破綻する原因になります。

クラス名は「文法」を持つ

Bootstrapの命名は偶然ではなく、
階層構造と役割を明示する文法に基づいています。

基本構造

  • css
  • コードをコピーする
  • [対象 / ベース] - [役割 / 条件] - [値]

例:ボタン

<button class="btn btn-primary">送信</button>
クラス 意味
btn ボタンというUI部品
btn-primary 主となる操作

btn-primary は 単体では成立せず、必ず btn がベースとして存在
👉 ベース → 派生 が命名で表現されています。

Bootstrapのクラスは「見た目」ではなく、
UI部品の種類・役割・状態を文法的に表すための語彙
として設計されています。

色クラスは「色」ではなく「意味」

Bootstrapの色系クラスは、色そのものではなく UI上の意味 を表します。

クラス 意味
primary 最重要
secondary 補助
success 成功
danger 破壊的操作
warning 注意
info 情報

❌ 誤解: primary = 青
⭕ 正解: primary = 主役(テーマによって色は変わる)

Bootstrapは「色を指定する」のではなく、
UIの役割を宣言するための語彙として色名を使っている
という点が重要です。

👉 見た目ではなく意味でクラスを選ぶことが、長期運用で破綻しないコツ

「どこに効くか」を先に言う命名

Bootstrapのユーティリティクラスは、
「どの要素に対して」「どんな意味を与えるか」
明確にするための命名規則を持っています。

<div class="text-danger bg-light border-primary"></div>

Bootstrapは必ず [対象] - [意味] の順で命名します。

接頭辞 対象
text 文字
bg 背景
border 枠線
d display

👉 クラス名を見るだけで「何に効いているか」が分かる。

この命名規則のおかげで、
HTMLを読むだけでUIの意図が理解できる というメリットがあります。

逆に、対象を無視してクラスを使うと、
「なぜそのクラスが付いているのか」が分からなくなり、
長期運用で破綻しやすくなります。

グリッド・12分割・レスポンシブ

BootstrapのGridは、単なる列分割ではなく
レイアウトを記述するための文法 です。

12分割を基本としており、
実務でよく使う比率(1/2, 1/3, 1/4, 2/3 など)を自然に表現できます。

<div class="container">
  <div class="row">
    <div class="col-md-6 col-lg-4">...</div>
    <div class="col-md-6 col-lg-8">...</div>
  </div>
</div>
要素 役割
container レイアウトの枠
row 横並びの行
col

col-md-6
「md以上で12分割中6(=半分)」
という意味になります。

👉 クラス名そのものがレスポンシブ条件を表す“文”になっている

そして、
container → row → col
の階層を守らないと文法違反となり、レイアウトが破綻します。

Bootstrapは「CSSを書かせない」設計

<div class="d-flex justify-content-between align-items-center"></div>

クラス CSS

クラス CSS
d-flex display: flex
justify-content-between justify-content: space-between
align-items-center align-items: center

BootstrapはCSSを書かせない代わりに、
CSSの概念をHTMLで書かせる設計です。

Bootstrapを使うときのNGな考え方

1. ボタンの正しい使い方(意味ベース)

❌ NG

<div class="btn btn-primary">青くしたいだけ</div>

⭕ 良い例

<button class="btn btn-primary">保存する</button>
<button class="btn btn-secondary">キャンセル</button>

ポイント

  • primary=最重要操作
  • secondary=補助操作
  • HTMLタグも意味に合わせて <button> を使う

👉 「意味で選ぶとUIの優先度が自然に揃う」

✅ 2. 色クラスを“意味”で使う例

❌ NG

<p class="text-danger">赤文字にしたいだけ</p>

⭕ 良い例

<p class="text-danger">この操作は取り消せません</p>
<p class="text-warning">保存していない変更があります</p>
<p class="text-success">設定を保存しました</p>

ポイント

  • danger=破壊的・注意喚起
  • warning=注意
  • success=成功

👉 「色ではなくメッセージの意味に合わせて選ぶ」

✅ 3. Gridの正しい文法例(container → row → col)

❌ NG

<div class="col-6">rowの外で使ってしまう</div>

⭕ 良い例

<div class="container">
  <div class="row">
    <div class="col-md-4">サイドバー</div>
    <div class="col-md-8">メインコンテンツ</div>
  </div>
</div>

ポイント

  • containerrowcol の階層を守る
  • col の比率は「文法」であり、意味を持つ

👉 「レイアウトが破綻しないBootstrapの基本文法」

✅ 4. Utilityクラスを“必要最小限”に使う例

❌ NG

<!-- このカードはどういう余白のルールなの? が分からない -->
<div class="mt-3 mb-4 pt-2 pb-1">プロフィールカード</div>

⭕ 良い例

<!-- このカードは「内側 p-3」「下方向 mb-4」という性格を持つ -->
<div class="card p-3 mb-4">プロフィールカード</div>

ポイント

  • spacing scale を守る
  • 余白はコンポーネント単位で統一する

👉 「ユーティリティは“調整”ではなく“宣言”として使う」

✅ 5. 独自CSSを“意味の追加”として使う例

❌ NG

.btn {
  border-radius: 20px;
}

⭕ 良い例

.btn-round {
  border-radius: 20px;
}
<button class="btn btn-primary btn-round">送信</button>

ポイント

  • Bootstrapのベースを壊さない
  • 独自クラスは「意味の追加」として扱う

👉 「拡張はOK、上書きはNG」

👉 NG例の共通点

  • 意味を無視している
  • 文法を破っている
  • Bootstrapの思想と逆行している

Bootstrapは「CSSを楽にする道具」ではなく、
UIを意味で組み立てるための言語 です。

文法と意味を無視すると、
どれだけ小さなプロジェクトでも必ず破綻します。

Bootstrapを使うときの正しいスタンス

  • Bootstrapの命名を信頼する
  • 意味を追加する拡張はOK
  • 見た目だけの独自解釈はしない
  • HTMLは「UIを書く場所」と割り切る

おわりに

Bootstrapは雑に使うと破綻しやすいですが、
思想を理解すると長期運用に強いフレームワークです。

まずは
「BootstrapはUI言語である」
という前提を持つだけで、使い方は大きく変わります。


補足:BEMとBootstrapの関係

Bootstrapのクラス命名は、CSS設計でよく使われる
BEM(Block-Element-Modifier) に近い考え方を持っています。

  • Block(ブロック):UI部品のベース
    (例:btncard
  • Element(要素):部品内の構成要素
    (例:card-header
  • Modifier(修飾):状態やバリエーション
    (例:btn-primarytext-danger

Bootstrapでも、

ベース(Block) → 派生・状態(Modifier)
という階層構造があり、意味と文法に沿ったUI部品の設計が可能です。

💡 ポイント
BEMを意識すると、Bootstrapクラスを「見た目」ではなく「意味で選ぶ」感覚がより理解しやすくなります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?