sashigane
コンポーネント

Badge

バッジ。状態や分類を短い語で示す

色は宣言から来ます

中立は凹んだ面を宣言します。 色付きは淡い塗りを使います。 どちらも背景と文字が対で決まっているので、背景だけを塗る道はありません。

<Badge>中立</Badge>
<Badge tone="danger">危険</Badge>

トーンは塗りを持つものすべて(accent / danger / warning / success / info)に加えて、 色を持たない neutral があります。既定は neutral です。

枠線が付きます

凹んだ面の上に置くと、中立のバッジは背景と同じ色になります。 面の段は凹んだところで底に着くので、その上に凹んだ面を宣言しても深くなりません。

境界があれば、背景が同じでもバッジの輪郭が読めます。

Badge は押せません

hover も focus も持ちません。押せるようにしたいなら Button を使ってください。

リンクにしたいときは asChild で a を渡せます。そのときも見た目は変わりません—— 押せることが見た目から分からないので、押す前提の導線には向きません。

<Badge asChild>
  <a href="/tags/x">タグへ</a>
</Badge>

大きさは2段です

小さい方は表の行や見出しの脇に、大きい方は本文と並べて使います。

折り返しません

バッジは1行に収まる前提です。長い語は枠の側で切るか、そもそも短い語だけを載せてください。

3つの状態

通常・空・エッジケースの3つは、どのコンポーネントにも必ずあります。

通常default.tsx

通常。色は宣言から来る。

中立強調危険注意成功情報
小さい方表の行の脇に大きい方本文と並べて

空empty.tsx

空。中身が無くても枠は潰れない。

エッジケースedge.tsx

エッジケース。長い語と、面の上での見え方。

Supercalifragilisticexpialidocious
凹んだ面の上

使い方

3つの状態とは別に、説明のために置いている例です。

要素の差し替えas-child.tsx

バッジをリンクにする。

props

Prop

Type

型と説明はコンポーネントのソースから抽出しています。既定値は出していません——cva の defaultVariants は 署名に現れないので、表に出すと「引数のデフォルトが書かれているものだけ」になり、嘘になります。

On this page