Align Self
Utilities for controlling how an individual flex or grid item is positioned along its container's cross axis.
Auto
Use self-auto
to align an item based on the value of the container's align-items
property:
<div class="flex items-stretch bg-gray-200 h-24">
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">1</div>
<div class="self-auto flex-1 text-gray-800 text-center bg-gray-500 px-4 py-2 m-2">2</div>
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">3</div>
</div>
Start
Use self-start
to align an item to the start of the container's cross axis, despite the container's align-items
value:
<div class="flex items-stretch bg-gray-200 h-24">
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">1</div>
<div class="self-start flex-1 text-gray-800 text-center bg-gray-500 px-4 py-2 m-2">2</div>
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">3</div>
</div>
Center
Use self-center
to align an item along the center of the container's cross axis, despite the container's align-items
value:
<div class="flex items-stretch bg-gray-200 h-24">
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">1</div>
<div class="self-center flex-1 text-gray-800 text-center bg-gray-500 px-4 py-2 m-2">2</div>
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">3</div>
</div>
End
Use self-end
to align an item to the end of the container's cross axis, despite the container's align-items
value:
<div class="flex items-stretch bg-gray-200 h-24">
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">1</div>
<div class="self-end flex-1 text-gray-800 text-center bg-gray-500 px-4 py-2 m-2">2</div>
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">3</div>
</div>
Stretch
Use self-stretch
to stretch an item to fill the container's cross axis, despite the container's align-items
value:
<div class="flex items-start bg-gray-200 h-24">
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">1</div>
<div class="self-stretch flex-1 text-gray-800 text-center bg-gray-500 px-4 py-2 m-2">2</div>
<div class="flex-1 text-gray-700 text-center bg-gray-400 px-4 py-2 m-2">3</div>
</div>
Responsive
To control the alignment of a flex item at a specific breakpoint, add a {screen}:
prefix to any existing utility class. For example, use md:self-end
to apply the self-end
utility at only medium screen sizes and above.
For more information about Tailwind's responsive design features, check out the Responsive Design documentation.
<div class="items-stretch ...">
<!-- ... -->
<div class="self-auto sm:self-start md:self-end lg:self-center xl:self-stretch ...">2</div>
<!-- ... -->
</div>
Customizing
Responsive and pseudo-class variants
By default, only responsive variants are generated for align-self utilities.
You can control which variants are generated for the align-self utilities by modifying the alignSelf
property in the variants
section of your tailwind.config.js
file.
For example, this config will also generate hover and focus variants:
// tailwind.config.js
module.exports = {
variants: {
// ...
- alignSelf: ['responsive'],
+ alignSelf: ['responsive', 'hover', 'focus'],
}
}
Disabling
If you don't plan to use the align-self utilities in your project, you can disable them entirely by setting the alignSelf
property to false
in the corePlugins
section of your config file:
// tailwind.config.js
module.exports = {
corePlugins: {
// ...
+ alignSelf: false,
}
}