sashigane
コンポーネント

Separator

区切り線。話題やまとまりの切れ目を示す

飾りが既定です

多くの区切りは見た目のためだけにあります。 読み上げに出すと「区切り 区切り」と数えられるだけで、意味が増えません。

意味のある区切り(話題が変わる、群が変わる)のときだけ decorative={false} にしてください。

<Separator />                    {/* 飾り。読み上げに出ません */}
<Separator decorative={false} /> {/* 意味のある区切り */}

見た目は変わりません。 変わるのは読み上げに出るかどうかだけです。

縦向きは親の高さに広がります

親が高さを持たないと見えません。 横並びの中で使うときは、 親に高さがあるか align-items: stretch になっているか確かめてください。

<div style={{ display: 'flex', height: 40 }}>
  <span>左</span>
  <Separator orientation="vertical" />
  <span>右</span>
</div>

hr ではありません

縦の区切りに hr は意味が合いません。向きで要素が変わる形にしていません。 読み上げへの意味は role で与えています。

太さは1段だけです

罫線の太さは1つしか持っていません。強い区切りは線では表せません。

区切りの強さは間隔で表してください。 線を太くすると、区切りではなく 枠として読まれます。

要素は差し替えられません

線はこの要素自身の境界で描いています。子へ移すと、子が持つ境界の既定と重なります (hr は上辺に 1px を持ちます)。

メニューの区切りのように li にしたいときは、外側で包んでください。

3つの状態

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

通常default.tsx

通常。横向きが既定で、飾りとして扱われる。

上の段落

下の段落

左
右
その次

空empty.tsx

空。中身を持たない。

エッジケースedge.tsx

エッジケース。縦向きは親の高さに広がる。

親が高さを持つとき

左
右

親が高さを持たないとき(線が出ません)

意味のある区切り

props

Prop

Type

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

On this page