outline-width外枠の太さ
0以上の長さか、thin・medium・thickのキーワードで指定します。
要素のborderより外側へ、レイアウトを動かさずに外枠を描くプロパティ。太さ・線のかたち・色を組み合わせ、フォーカス位置を見やすくします。
outlineとは?外枠の太さ・線種・色をライブプレビューで変えながら、borderとの違い、フォーカス表示、アクセシビリティを初学者向けに解説します。
.element outline: 4px solid #7258e8;
値のパターン
outline-width0以上の長さか、thin・medium・thickのキーワードで指定します。
outline-stylesolidやdashed、autoなどから線の見た目を選びます。
outline-color色を省略すると、通常はcurrentColorをもとに描かれます。
3つの値は順不同で書けます。初学者は「太さ・線種・色」の順にそろえると読みやすくなります。
4px solid #7258e8太さ・線種・色をまとめて指定する基本3px dashed #d9472b破線の外枠で強調する破線thick double #0f735f太い2本線の外枠を描く2本線autoフォーカスに適した見た目をブラウザーへ任せる自動none外枠を表示しない非表示outline-offset: 4px別プロパティでborderとの間隔を空ける関連フォーカスできる要素へ太く見分けやすい外枠をつけ、現在位置を示します。
.button:focus-visible { outline: 4px solid #7258e8; }outlineは空間を取らないため、入力欄の幅を変えずに操作中の項目を囲めます。
.field:focus { outline: 3px solid #0f735f; }色だけに頼らず破線も組み合わせると、入力エラーの領域を見分けやすくできます。
.field[aria-invalid="true"] { outline: 3px dashed #d9472b; }ポイント
outlineはoutline-width・outline-style・outline-colorの一括指定で、すべての要素に適用でき、子要素へは継承されません。各構成要素の初期値はmedium・none・autoなので、初期状態では線が見えません。outlineはborderの外側へ描かれ、要素や周囲の箱の位置・大きさを変えませんが、近くの内容へ重なることがあります。4辺は常に同じ見た目で、辺ごとのoutlineプロパティはありません。outline-offsetは間隔を変える別プロパティです。操作できる要素でoutline: noneや0を使う場合は、同等以上に分かりやすいフォーカス表示を必ず用意します。
outline と一緒に使われるプロパティや、詳しい外部リファレンスをまとめました。