Utilities for simulating an offset when adding outline rings.
Use the ring-offset-{width}
utilities to simulate an offset by adding solid white box-shadow and increasing the thickness of the accompanying outline ring to accommodate the offset.
<button class="... ring ring-pink-600 ring-offset-0">ring-0</button>
<button class="... ring ring-pink-600 ring-offset-2">ring-2</button>
<button class="... ring ring-pink-600 ring-offset-4">ring-4</button>
You can't actually offset a box-shadow in CSS, so we have to fake it using a solid color shadow that matches the parent background color. We use white by default, but if you are adding a ring offset over a different background color, you should use the ring-offset-{color}
utilities to match the parent background color:
bg-green-100
<div class="... bg-green-100">
<button class="... ring ring-green-600 ring-offset-4 ring-offset-green-100">
ring-offset-green-100
</button>
</div>
For more information, see the ringOffsetColor documentation.
To control the ring offset width at a specific breakpoint, add a {screen}:
prefix to any existing ring offset width utility. For example, use md:ring-offset-4
to apply the ring-offset-4
utility at only medium screen sizes and above.
<button class="ring-2 ring-offset-2 md:ring-offset-4">
<!-- ... -->
</button>
For more information about Tailwind's responsive design features, check out the Responsive Design documentation.
To customize which ring offset width utilities are generated, add your custom values under ringOffsetWidth
key in the theme
section of your tailwind.config.js
file.
// tailwind.config.js
module.exports = {
theme: {
extend: {
ringOffsetWidth: {
'3': '3px',
'6': '6px',
'10': '10px',
}
}
}
}
Learn more about customizing the default theme in the theme customization documentation.
By default, only responsive, focus-within and focus variants are generated for ring width utilities.
You can control which variants are generated for the ring width utilities by modifying the ringWidth
property in the variants
section of your tailwind.config.js
file.
For example, this config will also generate hover and active variants:
// tailwind.config.js
module.exports = {
variants: {
extend: {
// ...
+ ringWidth: ['hover', 'active'],
}
}
}
If you don't plan to use the ring width utilities in your project, you can disable them entirely by setting the ringWidth
property to false
in the corePlugins
section of your config file:
// tailwind.config.js
module.exports = {
corePlugins: {
// ...
+ ringWidth: false,
}
}