Kombai Logo

Tailwind CSS Top / Right / Bottom / Left

The top, right, bottom, and left properties determine the position of elements within a layout. These properties only work when the elements that are positioned (absolute, relative, fixed, or sticky).

Tailwind CSS provides utility classes for top, right, bottom, and left values, helping you build custom layouts with less effort and more precision.

ClassPropertiesExample
inset-0inset: 0px;<div className="inset-0"></div>
inset-x-0left: 0px; right: 0px;<div className="inset-x-0"></div>
inset-y-0top: 0px; bottom: 0px;<div className="inset-y-0"></div>
start-0inset-inline-start: 0px;<div className="start-0"></div>
end-0inset-inline-end: 0px;<div className="end-0"></div>
top-0top: 0px;<div className="top-0"></div>
right-0right: 0px;<div className="right-0"></div>
bottom-0bottom: 0px;<div className="bottom-0"></div>
left-0left: 0px;<div className="left-0"></div>
inset-pxinset: 1px;<div className="inset-px"></div>
inset-x-pxleft: 1px; right: 1px;<div className="inset-x-px"></div>
inset-y-pxtop: 1px; bottom: 1px;<div className="inset-y-px"></div>
start-pxinset-inline-start: 1px;<div className="start-px"></div>
end-pxinset-inline-end: 1px;<div className="end-px"></div>
top-pxtop: 1px;<div className="top-px"></div>
right-pxright: 1px;<div className="right-px"></div>
bottom-pxbottom: 1px;<div className="bottom-px"></div>
left-pxleft: 1px;<div className="left-px"></div>
inset-0.5inset: 0.125rem; <div className="inset-0.5"></div>
inset-x-0.5left: 0.125rem; right: 0.125rem; <div className="inset-x-0.5"></div>
inset-y-0.5top: 0.125rem; bottom: 0.125rem; <div className="inset-y-0.5"></div>
start-0.5inset-inline-start: 0.125rem; <div className="start-0.5"></div>
end-0.5inset-inline-end: 0.125rem; <div className="end-0.5"></div>
top-0.5top: 0.125rem; <div className="top-0.5"></div>
right-0.5right: 0.125rem; <div className="right-0.5"></div>
bottom-0.5bottom: 0.125rem; <div className="bottom-0.5"></div>
left-0.5left: 0.125rem; <div className="left-0.5"></div>
inset-1inset: 0.25rem; <div className="inset-1"></div>
inset-x-1left: 0.25rem; right: 0.25rem; <div className="inset-x-1"></div>
inset-y-1top: 0.25rem; bottom: 0.25rem; <div className="inset-y-1"></div>
start-1inset-inline-start: 0.25rem; <div className="start-1"></div>
end-1inset-inline-end: 0.25rem; <div className="end-1"></div>
top-1top: 0.25rem; <div className="top-1"></div>
right-1right: 0.25rem; <div className="right-1"></div>
bottom-1bottom: 0.25rem; <div className="bottom-1"></div>
left-1left: 0.25rem; <div className="left-1"></div>
inset-1.5inset: 0.375rem; <div className="inset-1.5"></div>
inset-x-1.5left: 0.375rem; right: 0.375rem; <div className="inset-x-1.5"></div>
inset-y-1.5top: 0.375rem; bottom: 0.375rem; <div className="inset-y-1.5"></div>
start-1.5inset-inline-start: 0.375rem; <div className="start-1.5"></div>
end-1.5inset-inline-end: 0.375rem; <div className="end-1.5"></div>
top-1.5top: 0.375rem; <div className="top-1.5"></div>
right-1.5right: 0.375rem; <div className="right-1.5"></div>
bottom-1.5bottom: 0.375rem; <div className="bottom-1.5"></div>
left-1.5left: 0.375rem; <div className="left-1.5"></div>
inset-2inset: 0.5rem; <div className="inset-2"></div>
inset-x-2left: 0.5rem; right: 0.5rem; <div className="inset-x-2"></div>
inset-y-2top: 0.5rem; bottom: 0.5rem; <div className="inset-y-2"></div>
start-2inset-inline-start: 0.5rem; <div className="start-2"></div>
end-2inset-inline-end: 0.5rem; <div className="end-2"></div>
top-2top: 0.5rem; <div className="top-2"></div>
right-2right: 0.5rem; <div className="right-2"></div>
bottom-2bottom: 0.5rem; <div className="bottom-2"></div>
left-2left: 0.5rem; <div className="left-2"></div>
inset-2.5inset: 0.625rem; <div className="inset-2.5"></div>
inset-x-2.5left: 0.625rem; right: 0.625rem; <div className="inset-x-2.5"></div>
inset-y-2.5top: 0.625rem; bottom: 0.625rem; <div className="inset-y-2.5"></div>
start-2.5inset-inline-start: 0.625rem; <div className="start-2.5"></div>
end-2.5inset-inline-end: 0.625rem; <div className="end-2.5"></div>
top-2.5top: 0.625rem; <div className="top-2.5"></div>
right-2.5right: 0.625rem; <div className="right-2.5"></div>
bottom-2.5bottom: 0.625rem; <div className="bottom-2.5"></div>
left-2.5left: 0.625rem; <div className="left-2.5"></div>
inset-3inset: 0.75rem; <div className="inset-3"></div>
inset-x-3left: 0.75rem; right: 0.75rem; <div className="inset-x-3"></div>
inset-y-3top: 0.75rem; bottom: 0.75rem; <div className="inset-y-3"></div>
start-3inset-inline-start: 0.75rem; <div className="start-3"></div>
end-3inset-inline-end: 0.75rem; <div className="end-3"></div>
top-3top: 0.75rem; <div className="top-3"></div>
right-3right: 0.75rem; <div className="right-3"></div>
bottom-3bottom: 0.75rem; <div className="bottom-3"></div>
left-3left: 0.75rem; <div className="left-3"></div>
inset-3.5inset: 0.875rem; <div className="inset-3.5"></div>
inset-x-3.5left: 0.875rem; right: 0.875rem; <div className="inset-x-3.5"></div>
inset-y-3.5top: 0.875rem; bottom: 0.875rem; <div className="inset-y-3.5"></div>
start-3.5inset-inline-start: 0.875rem; <div className="start-3.5"></div>
end-3.5inset-inline-end: 0.875rem; <div className="end-3.5"></div>
top-3.5top: 0.875rem; <div className="top-3.5"></div>
right-3.5right: 0.875rem; <div className="right-3.5"></div>
bottom-3.5bottom: 0.875rem; <div className="bottom-3.5"></div>
left-3.5left: 0.875rem; <div className="left-3.5"></div>
inset-4inset: 1rem; <div className="inset-4"></div>
inset-x-4left: 1rem; right: 1rem; <div className="inset-x-4"></div>
inset-y-4top: 1rem; bottom: 1rem; <div className="inset-y-4"></div>
start-4inset-inline-start: 1rem; <div className="start-4"></div>
end-4inset-inline-end: 1rem; <div className="end-4"></div>
top-4top: 1rem; <div className="top-4"></div>
right-4right: 1rem; <div className="right-4"></div>
bottom-4bottom: 1rem; <div className="bottom-4"></div>
left-4left: 1rem; <div className="left-4"></div>
inset-5inset: 1.25rem; <div className="inset-5"></div>
inset-x-5left: 1.25rem; right: 1.25rem; <div className="inset-x-5"></div>
inset-y-5top: 1.25rem; bottom: 1.25rem; <div className="inset-y-5"></div>
start-5inset-inline-start: 1.25rem; <div className="start-5"></div>
end-5inset-inline-end: 1.25rem; <div className="end-5"></div>
top-5top: 1.25rem; <div className="top-5"></div>
right-5right: 1.25rem; <div className="right-5"></div>
bottom-5bottom: 1.25rem; <div className="bottom-5"></div>
left-5left: 1.25rem; <div className="left-5"></div>
inset-6inset: 1.5rem; <div className="inset-6"></div>
inset-x-6left: 1.5rem; right: 1.5rem; <div className="inset-x-6"></div>
inset-y-6top: 1.5rem; bottom: 1.5rem; <div className="inset-y-6"></div>
start-6inset-inline-start: 1.5rem; <div className="start-6"></div>
end-6inset-inline-end: 1.5rem; <div className="end-6"></div>
top-6top: 1.5rem; <div className="top-6"></div>
right-6right: 1.5rem; <div className="right-6"></div>
bottom-6bottom: 1.5rem; <div className="bottom-6"></div>
left-6left: 1.5rem; <div className="left-6"></div>
inset-7inset: 1.75rem; <div className="inset-7"></div>
inset-x-7left: 1.75rem; right: 1.75rem; <div className="inset-x-7"></div>
inset-y-7top: 1.75rem; bottom: 1.75rem; <div className="inset-y-7"></div>
start-7inset-inline-start: 1.75rem; <div className="start-7"></div>
end-7inset-inline-end: 1.75rem; <div className="end-7"></div>
top-7top: 1.75rem; <div className="top-7"></div>
right-7right: 1.75rem; <div className="right-7"></div>
bottom-7bottom: 1.75rem; <div className="bottom-7"></div>
left-7left: 1.75rem; <div className="left-7"></div>
inset-8inset: 2rem; <div className="inset-8"></div>
inset-x-8left: 2rem; right: 2rem; <div className="inset-x-8"></div>
inset-y-8top: 2rem; bottom: 2rem; <div className="inset-y-8"></div>
start-8inset-inline-start: 2rem; <div className="start-8"></div>
end-8inset-inline-end: 2rem; <div className="end-8"></div>
top-8top: 2rem; <div className="top-8"></div>
right-8right: 2rem; <div className="right-8"></div>
bottom-8bottom: 2rem; <div className="bottom-8"></div>
left-8left: 2rem; <div className="left-8"></div>
inset-9inset: 2.25rem; <div className="inset-9"></div>
inset-x-9left: 2.25rem; right: 2.25rem; <div className="inset-x-9"></div>
inset-y-9top: 2.25rem; bottom: 2.25rem; <div className="inset-y-9"></div>
start-9inset-inline-start: 2.25rem; <div className="start-9"></div>
end-9inset-inline-end: 2.25rem; <div className="end-9"></div>
top-9top: 2.25rem; <div className="top-9"></div>
right-9right: 2.25rem; <div className="right-9"></div>
bottom-9bottom: 2.25rem; <div className="bottom-9"></div>
left-9left: 2.25rem; <div className="left-9"></div>
inset-10inset: 2.5rem; <div className="inset-10"></div>
inset-x-10left: 2.5rem; right: 2.5rem; <div className="inset-x-10"></div>
inset-y-10top: 2.5rem; bottom: 2.5rem; <div className="inset-y-10"></div>
start-10inset-inline-start: 2.5rem; <div className="start-10"></div>
end-10inset-inline-end: 2.5rem; <div className="end-10"></div>
top-10top: 2.5rem; <div className="top-10"></div>
right-10right: 2.5rem; <div className="right-10"></div>
bottom-10bottom: 2.5rem; <div className="bottom-10"></div>
left-10left: 2.5rem; <div className="left-10"></div>
inset-11inset: 2.75rem; <div className="inset-11"></div>
inset-x-11left: 2.75rem; right: 2.75rem; <div className="inset-x-11"></div>
inset-y-11top: 2.75rem; bottom: 2.75rem; <div className="inset-y-11"></div>
start-11inset-inline-start: 2.75rem; <div className="start-11"></div>
end-11inset-inline-end: 2.75rem; <div className="end-11"></div>
top-11top: 2.75rem; <div className="top-11"></div>
right-11right: 2.75rem; <div className="right-11"></div>
bottom-11bottom: 2.75rem; <div className="bottom-11"></div>
left-11left: 2.75rem; <div className="left-11"></div>
inset-12inset: 3rem; <div className="inset-12"></div>
inset-x-12left: 3rem; right: 3rem; <div className="inset-x-12"></div>
inset-y-12top: 3rem; bottom: 3rem; <div className="inset-y-12"></div>
start-12inset-inline-start: 3rem; <div className="start-12"></div>
end-12inset-inline-end: 3rem; <div className="end-12"></div>
top-12top: 3rem; <div className="top-12"></div>
right-12right: 3rem; <div className="right-12"></div>
bottom-12bottom: 3rem; <div className="bottom-12"></div>
left-12left: 3rem; <div className="left-12"></div>
inset-14inset: 3.5rem; <div className="inset-14"></div>
inset-x-14left: 3.5rem; right: 3.5rem; <div className="inset-x-14"></div>
inset-y-14top: 3.5rem; bottom: 3.5rem; <div className="inset-y-14"></div>
start-14inset-inline-start: 3.5rem; <div className="start-14"></div>
end-14inset-inline-end: 3.5rem; <div className="end-14"></div>
top-14top: 3.5rem; <div className="top-14"></div>
right-14right: 3.5rem; <div className="right-14"></div>
bottom-14bottom: 3.5rem; <div className="bottom-14"></div>
left-14left: 3.5rem; <div className="left-14"></div>
inset-16inset: 4rem; <div className="inset-16"></div>
inset-x-16left: 4rem; right: 4rem; <div className="inset-x-16"></div>
inset-y-16top: 4rem; bottom: 4rem; <div className="inset-y-16"></div>
start-16inset-inline-start: 4rem; <div className="start-16"></div>
end-16inset-inline-end: 4rem; <div className="end-16"></div>
top-16top: 4rem; <div className="top-16"></div>
right-16right: 4rem; <div className="right-16"></div>
bottom-16bottom: 4rem; <div className="bottom-16"></div>
left-16left: 4rem; <div className="left-16"></div>
inset-20inset: 5rem; <div className="inset-20"></div>
inset-x-20left: 5rem; right: 5rem; <div className="inset-x-20"></div>
inset-y-20top: 5rem; bottom: 5rem; <div className="inset-y-20"></div>
start-20inset-inline-start: 5rem; <div className="start-20"></div>
end-20inset-inline-end: 5rem; <div className="end-20"></div>
top-20top: 5rem; <div className="top-20"></div>
right-20right: 5rem; <div className="right-20"></div>
bottom-20bottom: 5rem; <div className="bottom-20"></div>
left-20left: 5rem; <div className="left-20"></div>
inset-24inset: 6rem; <div className="inset-24"></div>
inset-x-24left: 6rem; right: 6rem; <div className="inset-x-24"></div>
inset-y-24top: 6rem; bottom: 6rem; <div className="inset-y-24"></div>
start-24inset-inline-start: 6rem; <div className="start-24"></div>
end-24inset-inline-end: 6rem; <div className="end-24"></div>
top-24top: 6rem; <div className="top-24"></div>
right-24right: 6rem; <div className="right-24"></div>
bottom-24bottom: 6rem; <div className="bottom-24"></div>
left-24left: 6rem; <div className="left-24"></div>
inset-28inset: 7rem; <div className="inset-28"></div>
inset-x-28left: 7rem; right: 7rem; <div className="inset-x-28"></div>
inset-y-28top: 7rem; bottom: 7rem; <div className="inset-y-28"></div>
start-28inset-inline-start: 7rem; <div className="start-28"></div>
end-28inset-inline-end: 7rem; <div className="end-28"></div>
top-28top: 7rem; <div className="top-28"></div>
right-28right: 7rem; <div className="right-28"></div>
bottom-28bottom: 7rem; <div className="bottom-28"></div>
left-28left: 7rem; <div className="left-28"></div>
inset-32inset: 8rem; <div className="inset-32"></div>
inset-x-32left: 8rem; right: 8rem; <div className="inset-x-32"></div>
inset-y-32top: 8rem; bottom: 8rem; <div className="inset-y-32"></div>
start-32inset-inline-start: 8rem; <div className="start-32"></div>
end-32inset-inline-end: 8rem; <div className="end-32"></div>
top-32top: 8rem; <div className="top-32"></div>
right-32right: 8rem; <div className="right-32"></div>
bottom-32bottom: 8rem; <div className="bottom-32"></div>
left-32left: 8rem; <div className="left-32"></div>
inset-36inset: 9rem; <div className="inset-36"></div>
inset-x-36left: 9rem; right: 9rem; <div className="inset-x-36"></div>
inset-y-36top: 9rem; bottom: 9rem; <div className="inset-y-36"></div>
start-36inset-inline-start: 9rem; <div className="start-36"></div>
end-36inset-inline-end: 9rem; <div className="end-36"></div>
top-36top: 9rem; <div className="top-36"></div>
right-36right: 9rem; <div className="right-36"></div>
bottom-36bottom: 9rem; <div className="bottom-36"></div>
left-36left: 9rem; <div className="left-36"></div>
inset-40inset: 10rem; <div className="inset-40"></div>
inset-x-40left: 10rem; right: 10rem; <div className="inset-x-40"></div>
inset-y-40top: 10rem; bottom: 10rem; <div className="inset-y-40"></div>
start-40inset-inline-start: 10rem; <div className="start-40"></div>
end-40inset-inline-end: 10rem; <div className="end-40"></div>
top-40top: 10rem; <div className="top-40"></div>
right-40right: 10rem; <div className="right-40"></div>
bottom-40bottom: 10rem; <div className="bottom-40"></div>
left-40left: 10rem; <div className="left-40"></div>
inset-44inset: 11rem; <div className="inset-44"></div>
inset-x-44left: 11rem; right: 11rem; <div className="inset-x-44"></div>
inset-y-44top: 11rem; bottom: 11rem; <div className="inset-y-44"></div>
start-44inset-inline-start: 11rem; <div className="start-44"></div>
end-44inset-inline-end: 11rem; <div className="end-44"></div>
top-44top: 11rem; <div className="top-44"></div>
right-44right: 11rem; <div className="right-44"></div>
bottom-44bottom: 11rem; <div className="bottom-44"></div>
left-44left: 11rem; <div className="left-44"></div>
inset-48inset: 12rem; <div className="inset-48"></div>
inset-x-48left: 12rem; right: 12rem; <div className="inset-x-48"></div>
inset-y-48top: 12rem; bottom: 12rem; <div className="inset-y-48"></div>
start-48inset-inline-start: 12rem; <div className="start-48"></div>
end-48inset-inline-end: 12rem; <div className="end-48"></div>
top-48top: 12rem; <div className="top-48"></div>
right-48right: 12rem; <div className="right-48"></div>
bottom-48bottom: 12rem; <div className="bottom-48"></div>
left-48left: 12rem; <div className="left-48"></div>
inset-52inset: 13rem; <div className="inset-52"></div>
inset-x-52left: 13rem; right: 13rem; <div className="inset-x-52"></div>
inset-y-52top: 13rem; bottom: 13rem; <div className="inset-y-52"></div>
start-52inset-inline-start: 13rem; <div className="start-52"></div>
end-52inset-inline-end: 13rem; <div className="end-52"></div>
top-52top: 13rem; <div className="top-52"></div>
right-52right: 13rem; <div className="right-52"></div>
bottom-52bottom: 13rem; <div className="bottom-52"></div>
left-52left: 13rem; <div className="left-52"></div>
inset-56inset: 14rem; <div className="inset-56"></div>
inset-x-56left: 14rem; right: 14rem; <div className="inset-x-56"></div>
inset-y-56top: 14rem; bottom: 14rem; <div className="inset-y-56"></div>
start-56inset-inline-start: 14rem; <div className="start-56"></div>
end-56inset-inline-end: 14rem; <div className="end-56"></div>
top-56top: 14rem; <div className="top-56"></div>
right-56right: 14rem; <div className="right-56"></div>
bottom-56bottom: 14rem; <div className="bottom-56"></div>
left-56left: 14rem; <div className="left-56"></div>
inset-60inset: 15rem; <div className="inset-60"></div>
inset-x-60left: 15rem; right: 15rem; <div className="inset-x-60"></div>
inset-y-60top: 15rem; bottom: 15rem; <div className="inset-y-60"></div>
start-60inset-inline-start: 15rem; <div className="start-60"></div>
end-60inset-inline-end: 15rem; <div className="end-60"></div>
top-60top: 15rem; <div className="top-60"></div>
right-60right: 15rem; <div className="right-60"></div>
bottom-60bottom: 15rem; <div className="bottom-60"></div>
left-60left: 15rem; <div className="left-60"></div>
inset-64inset: 16rem; <div className="inset-64"></div>
inset-x-64left: 16rem; right: 16rem; <div className="inset-x-64"></div>
inset-y-64top: 16rem; bottom: 16rem; <div className="inset-y-64"></div>
start-64inset-inline-start: 16rem; <div className="start-64"></div>
end-64inset-inline-end: 16rem; <div className="end-64"></div>
top-64top: 16rem; <div className="top-64"></div>
right-64right: 16rem; <div className="right-64"></div>
bottom-64bottom: 16rem; <div className="bottom-64"></div>
left-64left: 16rem; <div className="left-64"></div>
inset-72inset: 18rem; <div className="inset-72"></div>
inset-x-72left: 18rem; right: 18rem; <div className="inset-x-72"></div>
inset-y-72top: 18rem; bottom: 18rem; <div className="inset-y-72"></div>
start-72inset-inline-start: 18rem; <div className="start-72"></div>
end-72inset-inline-end: 18rem; <div className="end-72"></div>
top-72top: 18rem; <div className="top-72"></div>
right-72right: 18rem; <div className="right-72"></div>
bottom-72bottom: 18rem; <div className="bottom-72"></div>
left-72left: 18rem; <div className="left-72"></div>
inset-80inset: 20rem; <div className="inset-80"></div>
inset-x-80left: 20rem; right: 20rem; <div className="inset-x-80"></div>
inset-y-80top: 20rem; bottom: 20rem; <div className="inset-y-80"></div>
start-80inset-inline-start: 20rem; <div className="start-80"></div>
end-80inset-inline-end: 20rem; <div className="end-80"></div>
top-80top: 20rem; <div className="top-80"></div>
right-80right: 20rem; <div className="right-80"></div>
bottom-80bottom: 20rem; <div className="bottom-80"></div>
left-80left: 20rem; <div className="left-80"></div>
inset-96inset: 24rem; <div className="inset-96"></div>
inset-x-96left: 24rem; right: 24rem; <div className="inset-x-96"></div>
inset-y-96top: 24rem; bottom: 24rem; <div className="inset-y-96"></div>
start-96inset-inline-start: 24rem; <div className="start-96"></div>
end-96inset-inline-end: 24rem; <div className="end-96"></div>
top-96top: 24rem; <div className="top-96"></div>
right-96right: 24rem; <div className="right-96"></div>
bottom-96bottom: 24rem; <div className="bottom-96"></div>
left-96left: 24rem; <div className="left-96"></div>
inset-autoinset: auto;<div className="inset-auto"></div>
inset-1/2inset: 50%;<div className="inset-1/2"></div>
inset-1/3inset: 33.333333%;<div className="inset-1/3"></div>
inset-2/3inset: 66.666667%;<div className="inset-2/3"></div>
inset-1/4inset: 25%;<div className="inset-1/4"></div>
inset-2/4inset: 50%;<div className="inset-2/4"></div>
inset-3/4inset: 75%;<div className="inset-3/4"></div>
inset-fullinset: 100%;<div className="inset-full"></div>
inset-x-autoleft: auto; right: auto;<div className="inset-x-auto"></div>
inset-x-1/2left: 50%; right: 50%;<div className="inset-x-1/2"></div>
inset-x-1/3left: 33.333333%; right: 33.333333%;<div className="inset-x-1/3"></div>
inset-x-2/3left: 66.666667%; right: 66.666667%;<div className="inset-x-2/3"></div>
inset-x-1/4left: 25%; right: 25%;<div className="inset-x-1/4"></div>
inset-x-2/4left: 50%; right: 50%;<div className="inset-x-2/4"></div>
inset-x-3/4left: 75%; right: 75%;<div className="inset-x-3/4"></div>
inset-x-fullleft: 100%; right: 100%;<div className="inset-x-full"></div>
inset-y-autotop: auto; bottom: auto;<div className="inset-y-auto"></div>
inset-y-1/2top: 50%; bottom: 50%;<div className="inset-y-1/2"></div>
inset-y-1/3top: 33.333333%; bottom: 33.333333%;<div className="inset-y-1/3"></div>
inset-y-2/3top: 66.666667%; bottom: 66.666667%;<div className="inset-y-2/3"></div>
inset-y-1/4top: 25%; bottom: 25%;<div className="inset-y-1/4"></div>
inset-y-2/4top: 50%; bottom: 50%;<div className="inset-y-2/4"></div>
inset-y-3/4top: 75%; bottom: 75%;<div className="inset-y-3/4"></div>
inset-y-fulltop: 100%; bottom: 100%;<div className="inset-y-full"></div>
start-autoinset-inline-start: auto;<div className="start-auto"></div>
start-1/2inset-inline-start: 50%;<div className="start-1/2"></div>
start-1/3inset-inline-start: 33.333333%;<div className="start-1/3"></div>
start-2/3inset-inline-start: 66.666667%;<div className="start-2/3"></div>
start-1/4inset-inline-start: 25%;<div className="start-1/4"></div>
start-2/4inset-inline-start: 50%;<div className="start-2/4"></div>
start-3/4inset-inline-start: 75%;<div className="start-3/4"></div>
start-fullinset-inline-start: 100%;<div className="start-full"></div>
end-autoinset-inline-end: auto;<div className="end-auto"></div>
end-1/2inset-inline-end: 50%;<div className="end-1/2"></div>
end-1/3inset-inline-end: 33.333333%;<div className="end-1/3"></div>
end-2/3inset-inline-end: 66.666667%;<div className="end-2/3"></div>
end-1/4inset-inline-end: 25%;<div className="end-1/4"></div>
end-2/4inset-inline-end: 50%;<div className="end-2/4"></div>
end-3/4inset-inline-end: 75%;<div className="end-3/4"></div>
end-fullinset-inline-end: 100%;<div className="end-full"></div>
top-autotop: auto;<div className="top-auto"></div>
top-1/2top: 50%;<div className="top-1/2"></div>
top-1/3top: 33.333333%;<div className="top-1/3"></div>
top-2/3top: 66.666667%;<div className="top-2/3"></div>
top-1/4top: 25%;<div className="top-1/4"></div>
top-2/4top: 50%;<div className="top-2/4"></div>
top-3/4top: 75%;<div className="top-3/4"></div>
top-fulltop: 100%;<div className="top-full"></div>
right-autoright: auto;<div className="right-auto"></div>
right-1/2right: 50%;<div className="right-1/2"></div>
right-1/3right: 33.333333%;<div className="right-1/3"></div>
right-2/3right: 66.666667%;<div className="right-2/3"></div>
right-1/4right: 25%;<div className="right-1/4"></div>
right-2/4right: 50%;<div className="right-2/4"></div>
right-3/4right: 75%;<div className="right-3/4"></div>
right-fullright: 100%;<div className="right-full"></div>
bottom-autobottom: auto;<div className="bottom-auto"></div>
bottom-1/2bottom: 50%;<div className="bottom-1/2"></div>
bottom-1/3bottom: 33.333333%;<div className="bottom-1/3"></div>
bottom-2/3bottom: 66.666667%;<div className="bottom-2/3"></div>
bottom-1/4bottom: 25%;<div className="bottom-1/4"></div>
bottom-2/4bottom: 50%;<div className="bottom-2/4"></div>
bottom-3/4bottom: 75%;<div className="bottom-3/4"></div>
bottom-fullbottom: 100%;<div className="bottom-full"></div>
left-autoleft: auto;<div className="left-auto"></div>
left-1/2left: 50%;<div className="left-1/2"></div>
left-1/3left: 33.333333%;<div className="left-1/3"></div>
left-2/3left: 66.666667%;<div className="left-2/3"></div>
left-1/4left: 25%;<div className="left-1/4"></div>
left-2/4left: 50%;<div className="left-2/4"></div>
left-3/4left: 75%;<div className="left-3/4"></div>
left-fullleft: 100%;<div className="left-full"></div>

Overview of Top/Right/Bottom/Left

Positioning elements efficiently

Tailwind lets you assign vertical and horizontal offsets to positioned elements with intuitive classes like top*, right-*, bottom-*, etc.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

In this case:

  • The image is 10 units down from the top and 20 units from the left of the parent container.
  • absolute positioning ensures the placement is relative to the nearest positioned ancestor.

Negative offsets

Sometimes, you may need to offset elements outside the boundaries of their parents. Tailwind allows the use of negative spacings for such cases.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Logical properties for flexibility

Tailwind also supports logical positioning utilities start-* and end-* to set the inset-inline-start or inset-inline-end properties, which adapt to text directions like left-to-right (LTR) or right-to-left (RTL):

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

States and Responsiveness

Hover and Focus States

Tailwind's pseudo-class modifiers like hover: or focus: let you create interactive offsets for positioned elements.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

In this example:

  • The button slightly moves upward when hovered, enhancing interactivity.

Breakpoint Modifiers

Tailwind integrates breakpoint modifiers for responsive, device-specific placement that doesn’t require writing custom media queries. Adjust offsets dynamically at various screen sizes.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Custom Top/Right/Bottom/Left

Extending the theme

You can customize the default spacing scale in your Tailwind configuration to add project-specific offsets.

Once added, you can use them in your layouts:

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Using Arbitrary Values

When you need to apply unplanned or precise values, arbitrary values can bridge the gap. These values are enclosed in square brackets[]:

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Real World Examples

Chat Message Bubbles

Chat interface with positioned message bubbles and timestamps.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

A modal component with a positioned close button in the top-right corner.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

A cookie consent banner that appears at the bottom of the page with accept/reject options.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Floating Social Share Buttons

A fixed social media sharing panel positioned on the right side of the screen that follows scroll.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Bottom Navigation Bar

A mobile-first bottom navigation bar with icons and labels.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Customization Examples

Notification Badge with Custom Positioning

This example demonstrates how to create a notification badge with custom positioning for a profile avatar using theme customization.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Floating Action Menu with Custom Spacing

This example shows how to create a floating action menu with customized spacing for each button.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Sliding Tooltip with Custom Positioning

This example demonstrates how to create a sliding tooltip with custom positioning using theme customization.

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Best Practices

Maintain Design Consistency

When applying the top, right, bottom, and left utilities in Tailwind CSS, strive to maintain consistency across your layouts. Always consider your design system’s spacing scale to ensure uniform alignment and spacing. For instance, by using Tailwind's predefined spacing values (top-4, left-6, etc.), you can create a cohesive look across all components in your project. Avoid arbitrary spacing unless absolutely necessary to minimize unpredictability in your design.

Additionally, establish clear design tokens in your tailwind.config.js file to standardize values. For instance, if your project requires a lot of corner elements (like badges or notifications), creating reusable spacing presets allows you to maintain the same offsets across all components, reducing redundancy.

By incorporating consistent spacing values and aligning to your design system, you not only create visually appealing layouts but also simplify team collaboration on shared UI components.

Leverage Utility Combinations

Tailwind unlocks powerful layouts when top, right, bottom, and left are paired with complementary utilities. Combining positioning, flex, grid, and spacing utilities ensures seamless integration across components. For example, use absolute positioning alongside z-index (z-x) to stack overlapping elements with precise control.

Additionally, blend pseudo-classes like hover: and conditional utilities for interactive effects. For instance, combining hover:top-X and transitions (transition-all) can create smooth hover animations that enhance your user interface. Thoughtfully combining utilities reduces the need for custom CSS and increases scalability.

Accessibility Considerations

Enhance Readability and Navigability

Strategic use of top, right, bottom, and left can significantly improve the readability and navigability of content. For instance, you can position vital content like alerts or tooltips closer to the user’s focus area, making interfaces more intuitive for assistive technologies (AT).

Make sure that important components positioned off-screen (e.g., modals or hidden dropdowns) remain accessible through the DOM order. Use hidden utilities like sr-only for screen readers and provide alternative cues for vision-impaired users.

Focus on High Contrast

Offset components, such as badges or interactive buttons, often benefit from intentional use of top and right with proper contrast management. Ensure your positioned components achieve sufficient color contrast ratios as outlined by Web Content Accessibility Guidelines (WCAG).

This is a live editor. Play around with it!
export default function App() {
  return <h1>Hello world</h1>
}

Apply these utilities alongside Tailwind's text-opacity-90 or high-color utility classes (text-gray-900 vs. text-gray-300) for greater visibility, effectively catering to users with low vision.

Debugging Common Issues

Handle Nested Element Challenges

Positioning within nested or multi-layered components can produce unexpected behavior due to parent inheritance or overflow clipping. Always ensure the containing elements allow visible overflow (overflow-visible) and provide sufficient padding/margin to account for offsets.

When encountering clipped content, enabling overflow visibility or adjusting the container size can usually resolve these issues without requiring extensive restructuring.

Handle Nested Element Challenges

Deeply nested layouts can cause confusion when using Top / Right / Bottom / Left due to the stacking context.

Ensure parent elements have the correct relative or absolute positioning to avoid inheritance conflicts with children elements. By defining relative on the parent, the absolute child positions are properly scoped, avoiding unintended global placements.