Lism Tips

最大幅(-max-sz)

-max-sz は、要素の横幅の上限を決めるクラスです。xs〜xl の5段階と、親いっぱい・画面いっぱいに広げる full と bleed があります。

-max-sz は、要素の横幅の上限を決めるクラスです。sz は size(大きさ)の略で、CSS の max-inline-size(横書きでは max-width と同じ)を指定します。文章の幅を読みやすく抑えたり、一部だけを画面いっぱいに広げたりするときに使います。

どんなときに使う?#

  • 本文が横に長くなりすぎないよう、幅に上限を付けたいとき(-max-sz:m など)
  • 本文の幅の中にある画像や背景を、左右の余白まで広げたいとき(-max-sz:full)
  • 本文の幅を飛び出して、画面の端から端まで広げたいとき(-max-sz:bleed)

決まった数の幅(100% など)にしたいときは、幅と高さ の -max-w も使えます。

使い方#

上限を付けたい要素に -max-sz:s のように付けます。幅が上限より広い場所では、上限で止まります。真ん中に置くなら -mx:auto を足します。

表示例

-max-sz:xs(最大 400px)
-max-sz:s(最大 640px)
html
<div class="l--stack -g:10">
  <div class="-max-sz:xs -mx:auto -p:20 -bgc:base-2">-max-sz:xs(最大 400px)</div>
  <div class="-max-sz:s -mx:auto -p:20 -bgc:base-2">-max-sz:s(最大 640px)</div>
</div>

指定できる値#

xs〜xl は、Lism の大きさのトークン(あらかじめ決めてある値)--sz--{名前} を使います。

クラス 使う変数 上限の幅
-max-sz:xs --sz--xs 400px
-max-sz:s --sz--s 640px
-max-sz:m --sz--m 880px
-max-sz:l --sz--l 1200px
-max-sz:xl --sz--xl 1600px
-max-sz:full なし 親いっぱい(下で説明)
-max-sz:bleed --sz--bleed いちばん外側の is--container の幅(下で説明)

親いっぱいに広げる(full)#

-max-sz:full は、ふつうは幅の上限を 100% にするだけです。

has--gutter(左右に余白を付ける) のすぐ下の子に付けたときは、動きが変わります。親の左右の余白(--gutter)の分まで外へはみ出し、親の箱の端から端まで広がります。

表示例

has--gutter の中の文章です。

-max-sz:full

左右に余白があります。

html
<div class="has--gutter l--stack -g:10 -py:20 -bd">
  <p>has--gutter の中の文章です。</p>
  <div class="-max-sz:full -p:20 -bgc:base-2">-max-sz:full</div>
  <p>左右に余白があります。</p>
</div>

画面いっぱいに広げる(bleed)#

-max-sz:bleed は、本文の幅や、入れ子になった is--container を突き抜けて、いちばん外側の is--container の幅まで広がります。ページ全体に is--container(幅の基準になる箱) を付けておけば、画面の端から端まで届く帯が作れます。

祖先に is--container が1つも無いときは、画面の幅(100svi)まで広がります。

表示例

本文の幅の中です。

-max-sz:bleed
html
<div class="is--container has--gutter -py:20 -bd">
  <div class="l--stack -g:10 -max-sz:xs -mx:auto">
    <p>本文の幅の中です。</p>
    <div class="-max-sz:bleed -p:20 -bgc:base-2">-max-sz:bleed</div>
  </div>
</div>

bleed が広がる幅は、is--container が --sz--bleed 変数で子に伝えています。

場所 --sz--bleed の値
is--container のすぐ下の子 100cqi(その container の幅)
is--container has--gutter のすぐ下の子 calc(100cqi + var(--gutter) * 2)(左右の余白も足す)
内側の is--container のすぐ下の子 inherit(いちばん外側の値を受け継ぐ)

cqi は、いちばん近い container の横幅を 100 等分した単位です。

画面の幅で切り替える#

-max-sz はブレイクポイント(レイアウトを切り替える画面の幅)に対応しています。HTML では、-max-sz_sm などのクラスと --max-sz_sm などの変数をセットで書きます(画面の幅で切り替える(レスポンシブ))。

html
<div class="-max-sz:s -max-sz_sm -max-sz_md" style="--max-sz_sm: var(--sz--m); --max-sz_md: var(--sz--l)"></div>

切り替えに使えるのは、xs〜xl のトークンと、720px のような長さの値です。

注意

full と bleed は、上限の幅だけでなく inline-size(幅)や margin-inline(左右の外側の余白)も書きかえる特別なクラスです。そのため、ブレイクポイントでは切り替えられません。

  • ブレイクポイントの値に full・bleed を入れても効きません
  • full・bleed を付けた要素にブレイクポイントの値を重ねると、外側の余白が残ったまま幅だけが変わり、レイアウトが崩れます

React・Astro で書く場合#

コンポーネントでは max-sz に値を渡します。画面の幅で切り替えるときは、配列かオブジェクトで書きます。

jsx
<Box max-sz="m" />
<Box max-sz={['s', 'm', 'l']} />
<Box max-sz={{ base: 's', md: '720px' }} />

関連するページ#

公式ドキュメント

2026年10月5日時点の内容(lism-css 1.0.1・@lism-css/ui 0.40.1)をもとに、やさしい日本語でまとめています。

ページの一覧