はじめに・ステップ 4 / 7
はじめてのページを作る
Lism のクラスを少しずつ足しながら、見出し・文章・タグ・カードの並ぶ小さなページを組み立てる手順を説明します。
このページでは、Lism のクラスを1つずつ足しながら、小さなページを作ります。各段の表示例を見比べると、クラスを足すたびに何が変わるかが分かります。Lism の CSS は、読み込み方(インストール) のとおりに読み込んである前提です。
0. クラスを何も付けない#
まずは、ふつうの HTML だけを書きます。見出し・文章・タグの並び・カードが、すきまなく縦に詰まっています。
表示例
わたしの本だな
好きな本を3冊しょうかいします。
<div>
<h2>わたしの本だな</h2>
<p>好きな本を3冊しょうかいします。</p>
<div>
<span>小説</span>
<span>図鑑</span>
<span>まんが</span>
</div>
<div>
<div>1冊め</div>
<div>2冊め</div>
<div>3冊め</div>
</div>
</div>
1. 中身の幅と左右の余白をそろえる#
いちばん外側の箱に、次のクラスを付けます。
| クラス | していること |
|---|---|
is--wrapper |
直下の子要素の幅を、決まった最大の幅までにそろえ、真ん中に置く |
style="--contentSize: 20rem" |
その最大の幅を 20rem(約 320px)にする |
has--gutter |
左右に決まった余白(ガター)を付ける |
-py:40 |
上下に約 40px の余白を付ける(py は padding-block の略) |
表示例
わたしの本だな
好きな本を3冊しょうかいします。
<div class="is--wrapper has--gutter -py:40 -bd" style="--contentSize: 20rem">
<h2>わたしの本だな</h2>
<p>好きな本を3冊しょうかいします。</p>
<div>
<span>小説</span>
<span>図鑑</span>
<span>まんが</span>
</div>
<div>
<div>1冊め</div>
<div>2冊め</div>
<div>3冊め</div>
</div>
</div>
中身が 20rem より広がらず、箱の真ん中に寄りました。is--wrapper の最大の幅は、何も指定しなければ m(880px)です。決まった段階なら -contentSize:s のように s(640px)・m・l・xl から選べ、それ以外の幅は CSS 変数 --contentSize で渡します。寄り方が見えるように小さい幅にし、枠が分かるように -bd(枠線)も付けています。
本物のページでは、is--wrapper は <main> などページ全体を包む要素に付けます。広い画面では中身が真ん中に寄り、両側があきます。
くわしくは is--wrapper(中身の幅をそろえる) と has--gutter(左右に余白を付ける) を見てください。
2. 縦に並べて、すきまをそろえる#
外側の箱に l--stack と -g:30 を足します。l--stack は中の要素を縦に並べ、-g:30 はそのすきまを約 24px にします(g は gap の略)。
表示例
わたしの本だな
好きな本を3冊しょうかいします。
<div class="is--wrapper has--gutter -py:40 -bd l--stack -g:30" style="--contentSize: 20rem">
<h2>わたしの本だな</h2>
<p>好きな本を3冊しょうかいします。</p>
<div>
<span>小説</span>
<span>図鑑</span>
<span>まんが</span>
</div>
<div>
<div>1冊め</div>
<div>2冊め</div>
<div>3冊め</div>
</div>
</div>
見出しと文章とタグとカードのあいだに、同じすきまが空きました。くわしくは l--stack(縦に並べる) を見てください。
3. タグを横に並べる#
タグの箱に l--cluster と -g:10 を付けます。l--cluster は中の要素を横に並べ、入りきらなければ次の行へ折り返します。それぞれのタグには、枠線(-bd)・角丸(-bdrs:99)・左右の余白(-px:15)を付けます。
表示例
わたしの本だな
好きな本を3冊しょうかいします。
<div class="is--wrapper has--gutter -py:40 -bd l--stack -g:30" style="--contentSize: 20rem">
<h2>わたしの本だな</h2>
<p>好きな本を3冊しょうかいします。</p>
<div class="l--cluster -g:10">
<span class="-bd -bdrs:99 -px:15">小説</span>
<span class="-bd -bdrs:99 -px:15">図鑑</span>
<span class="-bd -bdrs:99 -px:15">まんが</span>
</div>
<div>
<div>1冊め</div>
<div>2冊め</div>
<div>3冊め</div>
</div>
</div>
-bdrs:99 は角をいちばん大きく丸め、両はしが丸い形になります(bdrs は border-radius の略)。くわしくは l--cluster(横に並べて折り返す) を見てください。
4. カードを同じ幅の列に分ける#
カードの箱に l--columns を付けます。列の数は CSS 変数 --cols で決めます。ここでは、せまい幅では1列、480px 以上では3列にします。
| 書くもの | していること |
|---|---|
l--columns |
中の要素を同じ幅の列に並べる |
style="--cols: 1" |
ふだんは1列 |
-cols_sm と --cols_sm: 3 |
幅が 480px 以上のときは3列 |
-g:20 |
列どうしのすきまを約 16px |
カード1枚1枚には、内側の余白(-p:20)と、うすい背景色(-bgc:base-2)を付けます。
表示例
わたしの本だな
好きな本を3冊しょうかいします。
<div class="is--wrapper has--gutter -py:40 -bd l--stack -g:30" style="--contentSize: 20rem">
<h2>わたしの本だな</h2>
<p>好きな本を3冊しょうかいします。</p>
<div class="l--cluster -g:10">
<span class="-bd -bdrs:99 -px:15">小説</span>
<span class="-bd -bdrs:99 -px:15">図鑑</span>
<span class="-bd -bdrs:99 -px:15">まんが</span>
</div>
<div class="l--columns -cols_sm -g:20" style="--cols: 1; --cols_sm: 3">
<div class="-p:20 -bgc:base-2">1冊め</div>
<div class="-p:20 -bgc:base-2">2冊め</div>
<div class="-p:20 -bgc:base-2">3冊め</div>
</div>
</div>
スマートフォンではカードが縦に1列、広い画面では横に3列で並びます。
-cols_sm のような幅で切り替えるクラスは、見ているのは画面の幅ではなく、先祖にある is--container の箱の幅です(コンテナクエリ)。ページのどこかの先祖に is--container を付けておかないと切り替わりません。くわしくは 画面の幅で切り替える(レスポンシブ) を見てください。
くわしくは l--columns(同じ幅の列に分ける) を見てください。
5. 文字と色を整える#
最後に、見出しと文章の見た目を整えます。
| クラス | していること |
|---|---|
-fz:2xl |
文字を大きくする(fz は font-size の略) |
-c:text-2 |
文字をうすめの色にする(c は color の略) |
-bdrs:20 |
角を少し丸める |
-bxsh:20 |
影を付ける(bxsh は box-shadow の略) |
表示例
わたしの本だな
好きな本を3冊しょうかいします。
<div class="is--wrapper has--gutter -py:40 -bd l--stack -g:30" style="--contentSize: 20rem">
<h2 class="-fz:2xl">わたしの本だな</h2>
<p class="-c:text-2">好きな本を3冊しょうかいします。</p>
<div class="l--cluster -g:10">
<span class="-bd -bdrs:99 -px:15">小説</span>
<span class="-bd -bdrs:99 -px:15">図鑑</span>
<span class="-bd -bdrs:99 -px:15">まんが</span>
</div>
<div class="l--columns -cols_sm -g:20" style="--cols: 1; --cols_sm: 3">
<div class="-p:20 -bgc:base-2 -bdrs:20 -bxsh:20">1冊め</div>
<div class="-p:20 -bgc:base-2 -bdrs:20 -bxsh:20">2冊め</div>
<div class="-p:20 -bgc:base-2 -bdrs:20 -bxsh:20">3冊め</div>
</div>
</div>
これで完成です。CSS を1行も書かずに、クラスの組み合わせだけでここまで作れました。
使ったクラスのまとめ#
| 種類 | 使ったクラス | くわしいページ |
|---|---|---|
| 幅と余白の土台 | is--wrapper・--contentSize・has--gutter |
Trait Class ってなに? |
| 並べ方 | l--stack・l--cluster・l--columns |
Primitive ってなに? |
| 余白 | -p:20・-px:15・-py:40・-g:10 など |
余白(padding・margin・gap) |
| 文字と色 | -fz:2xl・-c:text-2・-bgc:base-2 |
文字の色と背景 |
| 枠線・角丸・影 | -bd・-bdrs:20・-bxsh:20 |
枠線・角丸・影(-bd など) |
次に読むページ#
- クラスの種類と見分け方:
l--・is--・-p:など、クラスの頭の文字で役割を見分ける
公式ドキュメント
2026年10月5日時点の内容(lism-css 1.0.1・@lism-css/ui 0.40.1)をもとに、やさしい日本語でまとめています。