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

Класс
Свойства
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-{width} для имитации смещения, добавляя сплошную белую тень прямоугольника и увеличивая толщину сопутствующего кольца контура для соответствия смещению.

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-{color} для соответствия родительскому цвету фона:

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 value, которое не имеет смысла включать в вашу тему, используйте квадратные скобки, чтобы сгенерировать свойство на лету, используя любое произвольное значение.

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

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