Краткая справка

Класс
Свойства
ring-offset-0--tw-ring-offset-width: 0px; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color), var(--tw-ring-shadow);
ring-offset-1--tw-ring-offset-width: 1px; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color), var(--tw-ring-shadow);
ring-offset-2--tw-ring-offset-width: 2px; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color), var(--tw-ring-shadow);
ring-offset-4--tw-ring-offset-width: 4px; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color), var(--tw-ring-shadow);
ring-offset-8--tw-ring-offset-width: 8px; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color), var(--tw-ring-shadow);

Основы использования

Установка ширины смещения кольца

Используйте такие утилиты, как ring-offset-2 и ring-offset-4, чтобы имитировать смещение, добавляя сплошную белую тень и увеличивая толщину сопровождающего контурного кольца для соответствия смещению.

ring-offset-0

ring-offset-2

ring-offset-4

<button class="... ring ring-pink-500 ring-offset-0">Кнопка А</button>
<button class="... ring ring-pink-500 ring-offset-2">Кнопка Б</button>
<button class="... ring ring-pink-500 ring-offset-4">Кнопка В</button>

Изменение цвета смещения

На самом деле вы не можете компенсировать тень блока в CSS, поэтому нам придется имитировать ее, используя тень сплошного цвета, соответствующую цвету родительского фона. По умолчанию мы используем белый цвет, но если вы добавляете смещение кольца поверх другого цвета фона, используйте утилиты цвета смещения кольца, например ring-offset-slate-50, чтобы соответствовать родительскому цвету фона:

ring-offset-slate-50

<button class="ring ring-pink-500 ring-offset-2 ring-offset-slate-50 dark:ring-offset-slate-900 ...">
  Сохранить изменения
</button>

Для получения дополнительной информации смотрите документацию цвет смещения кольца.


Применяя условно

Tailwind позволяет условно применять служебные классы в разных состояниях с помощью модификаторов вариантов. Например, используйте hover:ring-offset-4, чтобы применять утилиту ring-offset-4 только при hover.

<button class="ring-2 ring-offset-2 hover:ring-offset-4">
  <!-- ... -->
</button>

Полный список всех доступных модификаторов состояния смотрите в документации Наведение, фокус и другие состояния.

Контрольные точки и медиа-запросы

Вы также можете использовать модификаторы вариантов для таргетинга на медиа-запросы, такие как реагирующие контрольные точки, темный режим, предпочтения с уменьшенным движением и многое другое. Например, используйте md:ring-offset-4, чтобы применить утилиту ring-offset-4 только на экранах среднего размера и выше.

<button class="ring-2 ring-offset-2 md:ring-offset-4">
  <!-- ... -->
</button>

Чтобы узнать больше, ознакомьтесь с документацией по адаптивному дизайну, темному режиму и другим модификаторам медиазапросов.


Использование пользовательских значений

Настройка вашей темы

Чтобы настроить, какие утилиты ширины смещения кольца генерируются, добавьте свои пользовательские значения под ключом ringOffsetWidth в разделе theme файла tailwind.config.js.

tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  theme: {
    extend: {
      ringOffsetWidth: {
        '3': '3px',
        '6': '6px',
        '10': '10px',
      }
    }
  }
}

Дополнительные сведения о настройке темы по умолчанию смотрите в документации настройка темы.

Произвольные значения

Если вам нужно использовать одноразовое ring-offset, которое не имеет смысла включать в вашу тему, используйте квадратные скобки для создания свойства на лету с использованием любого произвольного значения.

<div class="ring-offset-[3px]">
  <!-- ... -->
</div>

Узнайте больше о поддержке произвольных значений в документации по произвольным значениям.