🔲

【Tailwind和訳】BORDERS/Divide Width

2021/10/24に公開

この記事について

この記事は、BORDERS/Divide Width の記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。

Divide Width

要素間の境界線の幅を制御するためのユーティリティ。

クラス プロパティ
divide-x-0 > * + * --tw-divide-x-reverse: 0;
border-right-width: calc(0px * var(--tw-divide-x-reverse));
border-left-width: calc(0px * calc(1 - var(--tw-divide-x-reverse)));
divide-x-2 > * + * --tw-divide-x-reverse: 0;
border-right-width: calc(2px * var(--tw-divide-x-reverse));
border-left-width: calc(2px * calc(1 - var(--tw-divide-x-reverse)));
divide-x-4 > * + * --tw-divide-x-reverse: 0;
border-right-width: calc(4px * var(--tw-divide-x-reverse));
border-left-width: calc(4px * calc(1 - var(--tw-divide-x-reverse)));
divide-x-8 > * + * --tw-divide-x-reverse: 0;
border-right-width: calc(8px * var(--tw-divide-x-reverse));
border-left-width: calc(8px * calc(1 - var(--tw-divide-x-reverse)));
divide-x > * + * --tw-divide-x-reverse: 0;
border-right-width: calc(1px * var(--tw-divide-x-reverse));
border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
divide-y-0 > * + * --tw-divide-y-reverse: 0;
border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
divide-y-2 > * + * --tw-divide-y-reverse: 0;
border-top-width: calc(2px * calc(1 - var(--tw-divide-y-reverse)));
border-bottom-width: calc(2px * var(--tw-divide-y-reverse));
divide-y-4 > * + * --tw-divide-y-reverse: 0;
border-top-width: calc(4px * calc(1 - var(--tw-divide-y-reverse)));
border-bottom-width: calc(4px * var(--tw-divide-y-reverse));
divide-y-8 > * + * --tw-divide-y-reverse: 0;
border-top-width: calc(8px * calc(1 - var(--tw-divide-y-reverse)));
border-bottom-width: calc(8px * var(--tw-divide-y-reverse));
divide-y > * + * --tw-divide-y-reverse: 0;
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
divide-y-reverse > * + * --tw-divide-y-reverse: 1;
divide-x-reverse > * + * --tw-divide-x-reverse: 1;

水平方向の子要素の間に境界線を追加する

divide-x-{amount} ユーティリティーを使って、水平方向の要素の間にボーダーを追加します。

divide-x-amount

<div class="grid grid-cols-3 divide-x divide-green-500">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

スタックされた子要素の間に境界線を追加する

divide-y-{amount} ユーティリティーを使って、積み重ねられた要素の間にボーダーを追加します。

divide-y-amount

<div class="grid grid-cols-1 divide-y divide-yellow-500">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

子要素の順序を逆にする

flex-row-reverseflex-col-reverse のように要素の順序が逆の場合は、divide-x-reversedivide-y-reverse ユーティリティを使用して、各要素の正しい面にボーダーが追加されるようにします。

divide-y-reverse

<div class="flex flex-col-reverse divide-y divide-y-reverse divide-rose-400">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

レスポンシブ

特定のブレークポイントで要素間の境界を制御するには、既存の divide ユーティリティーに {screen}: というプレフィックスを追加します。例えば、md:divide-y-8 というクラスを要素に追加すると、divide-y-8 ユーティリティが中程度のスクリーンサイズ以上で適用されます。

<div class="divide-y divide-gray-400 md:divide-y-8">
  <div class="py-2">1</div>
  <div class="py-2">2</div>
  <div class="py-2">3</div>
</div>

Tailwind のレスポンシブデザイン機能の詳細については、レスポンシブデザインのドキュメントをご覧ください。


カスタマイズ

分割幅のスケール

divide width scale は、デフォルトでは borderWidth スケールから値を継承しています。従って、border width と divide width の両方の値を一緒にカスタマイズしたい場合は、tailwind.config.js ファイルの theme.borderWidth セクションを使用してください。

tailwind.config.js
  module.exports = {
    theme: {
      borderWidth: {
        DEFAULT: '1px',
        '0': '0',
        '2': '2px',
+       '3': '3px',
        '4': '4px',
+       '6': '6px',
-       '8': '8px',
      }
    }
  }

分割幅の値だけをカスタマイズするには、tailwind.config.js ファイルの theme.divideWidth セクションを使用します。

tailwind.config.js
  module.exports = {
    theme: {
      divideWidth: {
        DEFAULT: '1px',
        '0': '0',
        '2': '2px',
+       '3': '3px',
        '4': '4px',
+       '6': '6px',
-       '8': '8px',
      }
    }
  }

デフォルトのテーマのカスタマイズについては、テーマのカスタマイズに関するドキュメントをご覧ください。

バリアント

デフォルトでは、幅を分割するユーティリティのために、レスポンシブバリアントのみが生成されます。

tailwind.config.js ファイルの variants セクションにある divideWidth プロパティを変更することで、幅を分割するユーティリティのために生成されるバリアントを制御することができます。

例えば、この設定ではホバーとフォーカスのバリアントも生成されます。

tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       divideWidth: ['hover', 'focus'],
      }
    }
  }

無効化

divideWidth ユーティリティーを使用しない場合は、設定ファイルの corePlugins セクションで divideWidth プロパティを false に設定することで、ユーティリティーを完全に無効にすることができます。

tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     divideWidth: false,
    }
  }

Discussion

ログインするとコメントできます