Tailwind CSS Scroll Margin
Scroll Margin in CSS is the distance that will remain between the screen and the element when it’s being scrolled into view.
With Tailwind CSS, you can easily implement scroll margin properties, apply conditional states & breakpoints, and even customize the values to suit specific project requirements. Let’s dive deep into the utility classes for scroll margin and learn how to manage it effectively.
| Class | Properties | Example |
|---|---|---|
scroll-m-0 | scroll-margin: 0px; | <div className="scroll-m-0"></div> |
scroll-mx-0 | scroll-margin-left: 0px;
scroll-margin-right: 0px; | <div className="scroll-mx-0"></div> |
scroll-my-0 | scroll-margin-top: 0px;
scroll-margin-bottom: 0px; | <div className="scroll-my-0"></div> |
scroll-ms-0 | scroll-margin-inline-start: 0px; | <div className="scroll-ms-0"></div> |
scroll-me-0 | scroll-margin-inline-end: 0px; | <div className="scroll-me-0"></div> |
scroll-mt-0 | scroll-margin-top: 0px; | <div className="scroll-mt-0"></div> |
scroll-mr-0 | scroll-margin-right: 0px; | <div className="scroll-mr-0"></div> |
scroll-mb-0 | scroll-margin-bottom: 0px; | <div className="scroll-mb-0"></div> |
scroll-ml-0 | scroll-margin-left: 0px; | <div className="scroll-ml-0"></div> |
scroll-m-px | scroll-margin: 1px; | <div className="scroll-m-px"></div> |
scroll-mx-px | scroll-margin-left: 1px;
scroll-margin-right: 1px; | <div className="scroll-mx-px"></div> |
scroll-my-px | scroll-margin-top: 1px;
scroll-margin-bottom: 1px; | <div className="scroll-my-px"></div> |
scroll-ms-px | scroll-margin-inline-start: 1px; | <div className="scroll-ms-px"></div> |
scroll-me-px | scroll-margin-inline-end: 1px; | <div className="scroll-me-px"></div> |
scroll-mt-px | scroll-margin-top: 1px; | <div className="scroll-mt-px"></div> |
scroll-mr-px | scroll-margin-right: 1px; | <div className="scroll-mr-px"></div> |
scroll-mb-px | scroll-margin-bottom: 1px; | <div className="scroll-mb-px"></div> |
scroll-ml-px | scroll-margin-left: 1px; | <div className="scroll-ml-px"></div> |
scroll-m-0.5 | scroll-margin: 0.125rem; | <div className="scroll-m-0.5"></div> |
scroll-mx-0.5 | scroll-margin-left: 0.125rem;
scroll-margin-right: 0.125rem; | <div className="scroll-mx-0.5"></div> |
scroll-my-0.5 | scroll-margin-top: 0.125rem;
scroll-margin-bottom: 0.125rem; | <div className="scroll-my-0.5"></div> |
scroll-ms-0.5 | scroll-margin-inline-start: 0.125rem; | <div className="scroll-ms-0.5"></div> |
scroll-me-0.5 | scroll-margin-inline-end: 0.125rem; | <div className="scroll-me-0.5"></div> |
scroll-mt-0.5 | scroll-margin-top: 0.125rem; | <div className="scroll-mt-0.5"></div> |
scroll-mr-0.5 | scroll-margin-right: 0.125rem; | <div className="scroll-mr-0.5"></div> |
scroll-mb-0.5 | scroll-margin-bottom: 0.125rem; | <div className="scroll-mb-0.5"></div> |
scroll-ml-0.5 | scroll-margin-left: 0.125rem; | <div className="scroll-ml-0.5"></div> |
scroll-m-1 | scroll-margin: 0.25rem; | <div className="scroll-m-1"></div> |
scroll-mx-1 | scroll-margin-left: 0.25rem;
scroll-margin-right: 0.25rem; | <div className="scroll-mx-1"></div> |
scroll-my-1 | scroll-margin-top: 0.25rem;
scroll-margin-bottom: 0.25rem; | <div className="scroll-my-1"></div> |
scroll-ms-1 | scroll-margin-inline-start: 0.25rem; | <div className="scroll-ms-1"></div> |
scroll-me-1 | scroll-margin-inline-end: 0.25rem; | <div className="scroll-me-1"></div> |
scroll-mt-1 | scroll-margin-top: 0.25rem; | <div className="scroll-mt-1"></div> |
scroll-mr-1 | scroll-margin-right: 0.25rem; | <div className="scroll-mr-1"></div> |
scroll-mb-1 | scroll-margin-bottom: 0.25rem; | <div className="scroll-mb-1"></div> |
scroll-ml-1 | scroll-margin-left: 0.25rem; | <div className="scroll-ml-1"></div> |
scroll-m-1.5 | scroll-margin: 0.375rem; | <div className="scroll-m-1.5"></div> |
scroll-mx-1.5 | scroll-margin-left: 0.375rem;
scroll-margin-right: 0.375rem; | <div className="scroll-mx-1.5"></div> |
scroll-my-1.5 | scroll-margin-top: 0.375rem;
scroll-margin-bottom: 0.375rem; | <div className="scroll-my-1.5"></div> |
scroll-ms-1.5 | scroll-margin-inline-start: 0.375rem; | <div className="scroll-ms-1.5"></div> |
scroll-me-1.5 | scroll-margin-inline-end: 0.375rem; | <div className="scroll-me-1.5"></div> |
scroll-mt-1.5 | scroll-margin-top: 0.375rem; | <div className="scroll-mt-1.5"></div> |
scroll-mr-1.5 | scroll-margin-right: 0.375rem; | <div className="scroll-mr-1.5"></div> |
scroll-mb-1.5 | scroll-margin-bottom: 0.375rem; | <div className="scroll-mb-1.5"></div> |
scroll-ml-1.5 | scroll-margin-left: 0.375rem; | <div className="scroll-ml-1.5"></div> |
scroll-m-2 | scroll-margin: 0.5rem; | <div className="scroll-m-2"></div> |
scroll-mx-2 | scroll-margin-left: 0.5rem;
scroll-margin-right: 0.5rem; | <div className="scroll-mx-2"></div> |
scroll-my-2 | scroll-margin-top: 0.5rem;
scroll-margin-bottom: 0.5rem; | <div className="scroll-my-2"></div> |
scroll-ms-2 | scroll-margin-inline-start: 0.5rem; | <div className="scroll-ms-2"></div> |
scroll-me-2 | scroll-margin-inline-end: 0.5rem; | <div className="scroll-me-2"></div> |
scroll-mt-2 | scroll-margin-top: 0.5rem; | <div className="scroll-mt-2"></div> |
scroll-mr-2 | scroll-margin-right: 0.5rem; | <div className="scroll-mr-2"></div> |
scroll-mb-2 | scroll-margin-bottom: 0.5rem; | <div className="scroll-mb-2"></div> |
scroll-ml-2 | scroll-margin-left: 0.5rem; | <div className="scroll-ml-2"></div> |
scroll-m-2.5 | scroll-margin: 0.625rem; | <div className="scroll-m-2.5"></div> |
scroll-mx-2.5 | scroll-margin-left: 0.625rem;
scroll-margin-right: 0.625rem; | <div className="scroll-mx-2.5"></div> |
scroll-my-2.5 | scroll-margin-top: 0.625rem;
scroll-margin-bottom: 0.625rem; | <div className="scroll-my-2.5"></div> |
scroll-ms-2.5 | scroll-margin-inline-start: 0.625rem; | <div className="scroll-ms-2.5"></div> |
scroll-me-2.5 | scroll-margin-inline-end: 0.625rem; | <div className="scroll-me-2.5"></div> |
scroll-mt-2.5 | scroll-margin-top: 0.625rem; | <div className="scroll-mt-2.5"></div> |
scroll-mr-2.5 | scroll-margin-right: 0.625rem; | <div className="scroll-mr-2.5"></div> |
scroll-mb-2.5 | scroll-margin-bottom: 0.625rem; | <div className="scroll-mb-2.5"></div> |
scroll-ml-2.5 | scroll-margin-left: 0.625rem; | <div className="scroll-ml-2.5"></div> |
scroll-m-3 | scroll-margin: 0.75rem; | <div className="scroll-m-3"></div> |
scroll-mx-3 | scroll-margin-left: 0.75rem;
scroll-margin-right: 0.75rem; | <div className="scroll-mx-3"></div> |
scroll-my-3 | scroll-margin-top: 0.75rem;
scroll-margin-bottom: 0.75rem; | <div className="scroll-my-3"></div> |
scroll-ms-3 | scroll-margin-inline-start: 0.75rem; | <div className="scroll-ms-3"></div> |
scroll-me-3 | scroll-margin-inline-end: 0.75rem; | <div className="scroll-me-3"></div> |
scroll-mt-3 | scroll-margin-top: 0.75rem; | <div className="scroll-mt-3"></div> |
scroll-mr-3 | scroll-margin-right: 0.75rem; | <div className="scroll-mr-3"></div> |
scroll-mb-3 | scroll-margin-bottom: 0.75rem; | <div className="scroll-mb-3"></div> |
scroll-ml-3 | scroll-margin-left: 0.75rem; | <div className="scroll-ml-3"></div> |
scroll-m-3.5 | scroll-margin: 0.875rem; | <div className="scroll-m-3.5"></div> |
scroll-mx-3.5 | scroll-margin-left: 0.875rem;
scroll-margin-right: 0.875rem; | <div className="scroll-mx-3.5"></div> |
scroll-my-3.5 | scroll-margin-top: 0.875rem;
scroll-margin-bottom: 0.875rem; | <div className="scroll-my-3.5"></div> |
scroll-ms-3.5 | scroll-margin-inline-start: 0.875rem; | <div className="scroll-ms-3.5"></div> |
scroll-me-3.5 | scroll-margin-inline-end: 0.875rem; | <div className="scroll-me-3.5"></div> |
scroll-mt-3.5 | scroll-margin-top: 0.875rem; | <div className="scroll-mt-3.5"></div> |
scroll-mr-3.5 | scroll-margin-right: 0.875rem; | <div className="scroll-mr-3.5"></div> |
scroll-mb-3.5 | scroll-margin-bottom: 0.875rem; | <div className="scroll-mb-3.5"></div> |
scroll-ml-3.5 | scroll-margin-left: 0.875rem; | <div className="scroll-ml-3.5"></div> |
scroll-m-4 | scroll-margin: 1rem; | <div className="scroll-m-4"></div> |
scroll-mx-4 | scroll-margin-left: 1rem;
scroll-margin-right: 1rem; | <div className="scroll-mx-4"></div> |
scroll-my-4 | scroll-margin-top: 1rem;
scroll-margin-bottom: 1rem; | <div className="scroll-my-4"></div> |
scroll-ms-4 | scroll-margin-inline-start: 1rem; | <div className="scroll-ms-4"></div> |
scroll-me-4 | scroll-margin-inline-end: 1rem; | <div className="scroll-me-4"></div> |
scroll-mt-4 | scroll-margin-top: 1rem; | <div className="scroll-mt-4"></div> |
scroll-mr-4 | scroll-margin-right: 1rem; | <div className="scroll-mr-4"></div> |
scroll-mb-4 | scroll-margin-bottom: 1rem; | <div className="scroll-mb-4"></div> |
scroll-ml-4 | scroll-margin-left: 1rem; | <div className="scroll-ml-4"></div> |
scroll-m-5 | scroll-margin: 1.25rem; | <div className="scroll-m-5"></div> |
scroll-mx-5 | scroll-margin-left: 1.25rem;
scroll-margin-right: 1.25rem; | <div className="scroll-mx-5"></div> |
scroll-my-5 | scroll-margin-top: 1.25rem;
scroll-margin-bottom: 1.25rem; | <div className="scroll-my-5"></div> |
scroll-ms-5 | scroll-margin-inline-start: 1.25rem; | <div className="scroll-ms-5"></div> |
scroll-me-5 | scroll-margin-inline-end: 1.25rem; | <div className="scroll-me-5"></div> |
scroll-mt-5 | scroll-margin-top: 1.25rem; | <div className="scroll-mt-5"></div> |
scroll-mr-5 | scroll-margin-right: 1.25rem; | <div className="scroll-mr-5"></div> |
scroll-mb-5 | scroll-margin-bottom: 1.25rem; | <div className="scroll-mb-5"></div> |
scroll-ml-5 | scroll-margin-left: 1.25rem; | <div className="scroll-ml-5"></div> |
scroll-m-6 | scroll-margin: 1.5rem; | <div className="scroll-m-6"></div> |
scroll-mx-6 | scroll-margin-left: 1.5rem;
scroll-margin-right: 1.5rem; | <div className="scroll-mx-6"></div> |
scroll-my-6 | scroll-margin-top: 1.5rem;
scroll-margin-bottom: 1.5rem; | <div className="scroll-my-6"></div> |
scroll-ms-6 | scroll-margin-inline-start: 1.5rem; | <div className="scroll-ms-6"></div> |
scroll-me-6 | scroll-margin-inline-end: 1.5rem; | <div className="scroll-me-6"></div> |
scroll-mt-6 | scroll-margin-top: 1.5rem; | <div className="scroll-mt-6"></div> |
scroll-mr-6 | scroll-margin-right: 1.5rem; | <div className="scroll-mr-6"></div> |
scroll-mb-6 | scroll-margin-bottom: 1.5rem; | <div className="scroll-mb-6"></div> |
scroll-ml-6 | scroll-margin-left: 1.5rem; | <div className="scroll-ml-6"></div> |
scroll-m-7 | scroll-margin: 1.75rem; | <div className="scroll-m-7"></div> |
scroll-mx-7 | scroll-margin-left: 1.75rem;
scroll-margin-right: 1.75rem; | <div className="scroll-mx-7"></div> |
scroll-my-7 | scroll-margin-top: 1.75rem;
scroll-margin-bottom: 1.75rem; | <div className="scroll-my-7"></div> |
scroll-ms-7 | scroll-margin-inline-start: 1.75rem; | <div className="scroll-ms-7"></div> |
scroll-me-7 | scroll-margin-inline-end: 1.75rem; | <div className="scroll-me-7"></div> |
scroll-mt-7 | scroll-margin-top: 1.75rem; | <div className="scroll-mt-7"></div> |
scroll-mr-7 | scroll-margin-right: 1.75rem; | <div className="scroll-mr-7"></div> |
scroll-mb-7 | scroll-margin-bottom: 1.75rem; | <div className="scroll-mb-7"></div> |
scroll-ml-7 | scroll-margin-left: 1.75rem; | <div className="scroll-ml-7"></div> |
scroll-m-8 | scroll-margin: 2rem; | <div className="scroll-m-8"></div> |
scroll-mx-8 | scroll-margin-left: 2rem;
scroll-margin-right: 2rem; | <div className="scroll-mx-8"></div> |
scroll-my-8 | scroll-margin-top: 2rem;
scroll-margin-bottom: 2rem; | <div className="scroll-my-8"></div> |
scroll-ms-8 | scroll-margin-inline-start: 2rem; | <div className="scroll-ms-8"></div> |
scroll-me-8 | scroll-margin-inline-end: 2rem; | <div className="scroll-me-8"></div> |
scroll-mt-8 | scroll-margin-top: 2rem; | <div className="scroll-mt-8"></div> |
scroll-mr-8 | scroll-margin-right: 2rem; | <div className="scroll-mr-8"></div> |
scroll-mb-8 | scroll-margin-bottom: 2rem; | <div className="scroll-mb-8"></div> |
scroll-ml-8 | scroll-margin-left: 2rem; | <div className="scroll-ml-8"></div> |
scroll-m-9 | scroll-margin: 2.25rem; | <div className="scroll-m-9"></div> |
scroll-mx-9 | scroll-margin-left: 2.25rem;
scroll-margin-right: 2.25rem; | <div className="scroll-mx-9"></div> |
scroll-my-9 | scroll-margin-top: 2.25rem;
scroll-margin-bottom: 2.25rem; | <div className="scroll-my-9"></div> |
scroll-ms-9 | scroll-margin-inline-start: 2.25rem; | <div className="scroll-ms-9"></div> |
scroll-me-9 | scroll-margin-inline-end: 2.25rem; | <div className="scroll-me-9"></div> |
scroll-mt-9 | scroll-margin-top: 2.25rem; | <div className="scroll-mt-9"></div> |
scroll-mr-9 | scroll-margin-right: 2.25rem; | <div className="scroll-mr-9"></div> |
scroll-mb-9 | scroll-margin-bottom: 2.25rem; | <div className="scroll-mb-9"></div> |
scroll-ml-9 | scroll-margin-left: 2.25rem; | <div className="scroll-ml-9"></div> |
scroll-m-10 | scroll-margin: 2.5rem; | <div className="scroll-m-10"></div> |
scroll-mx-10 | scroll-margin-left: 2.5rem;
scroll-margin-right: 2.5rem; | <div className="scroll-mx-10"></div> |
scroll-my-10 | scroll-margin-top: 2.5rem;
scroll-margin-bottom: 2.5rem; | <div className="scroll-my-10"></div> |
scroll-ms-10 | scroll-margin-inline-start: 2.5rem; | <div className="scroll-ms-10"></div> |
scroll-me-10 | scroll-margin-inline-end: 2.5rem; | <div className="scroll-me-10"></div> |
scroll-mt-10 | scroll-margin-top: 2.5rem; | <div className="scroll-mt-10"></div> |
scroll-mr-10 | scroll-margin-right: 2.5rem; | <div className="scroll-mr-10"></div> |
scroll-mb-10 | scroll-margin-bottom: 2.5rem; | <div className="scroll-mb-10"></div> |
scroll-ml-10 | scroll-margin-left: 2.5rem; | <div className="scroll-ml-10"></div> |
scroll-m-11 | scroll-margin: 2.75rem; | <div className="scroll-m-11"></div> |
scroll-mx-11 | scroll-margin-left: 2.75rem;
scroll-margin-right: 2.75rem; | <div className="scroll-mx-11"></div> |
scroll-my-11 | scroll-margin-top: 2.75rem;
scroll-margin-bottom: 2.75rem; | <div className="scroll-my-11"></div> |
scroll-ms-11 | scroll-margin-inline-start: 2.75rem; | <div className="scroll-ms-11"></div> |
scroll-me-11 | scroll-margin-inline-end: 2.75rem; | <div className="scroll-me-11"></div> |
scroll-mt-11 | scroll-margin-top: 2.75rem; | <div className="scroll-mt-11"></div> |
scroll-mr-11 | scroll-margin-right: 2.75rem; | <div className="scroll-mr-11"></div> |
scroll-mb-11 | scroll-margin-bottom: 2.75rem; | <div className="scroll-mb-11"></div> |
scroll-ml-11 | scroll-margin-left: 2.75rem; | <div className="scroll-ml-11"></div> |
scroll-m-12 | scroll-margin: 3rem; | <div className="scroll-m-12"></div> |
scroll-mx-12 | scroll-margin-left: 3rem;
scroll-margin-right: 3rem; | <div className="scroll-mx-12"></div> |
scroll-my-12 | scroll-margin-top: 3rem;
scroll-margin-bottom: 3rem; | <div className="scroll-my-12"></div> |
scroll-ms-12 | scroll-margin-inline-start: 3rem; | <div className="scroll-ms-12"></div> |
scroll-me-12 | scroll-margin-inline-end: 3rem; | <div className="scroll-me-12"></div> |
scroll-mt-12 | scroll-margin-top: 3rem; | <div className="scroll-mt-12"></div> |
scroll-mr-12 | scroll-margin-right: 3rem; | <div className="scroll-mr-12"></div> |
scroll-mb-12 | scroll-margin-bottom: 3rem; | <div className="scroll-mb-12"></div> |
scroll-ml-12 | scroll-margin-left: 3rem; | <div className="scroll-ml-12"></div> |
scroll-m-14 | scroll-margin: 3.5rem; | <div className="scroll-m-14"></div> |
scroll-mx-14 | scroll-margin-left: 3.5rem;
scroll-margin-right: 3.5rem; | <div className="scroll-mx-14"></div> |
scroll-my-14 | scroll-margin-top: 3.5rem;
scroll-margin-bottom: 3.5rem; | <div className="scroll-my-14"></div> |
scroll-ms-14 | scroll-margin-inline-start: 3.5rem; | <div className="scroll-ms-14"></div> |
scroll-me-14 | scroll-margin-inline-end: 3.5rem; | <div className="scroll-me-14"></div> |
scroll-mt-14 | scroll-margin-top: 3.5rem; | <div className="scroll-mt-14"></div> |
scroll-mr-14 | scroll-margin-right: 3.5rem; | <div className="scroll-mr-14"></div> |
scroll-mb-14 | scroll-margin-bottom: 3.5rem; | <div className="scroll-mb-14"></div> |
scroll-ml-14 | scroll-margin-left: 3.5rem; | <div className="scroll-ml-14"></div> |
scroll-m-16 | scroll-margin: 4rem; | <div className="scroll-m-16"></div> |
scroll-mx-16 | scroll-margin-left: 4rem;
scroll-margin-right: 4rem; | <div className="scroll-mx-16"></div> |
scroll-my-16 | scroll-margin-top: 4rem;
scroll-margin-bottom: 4rem; | <div className="scroll-my-16"></div> |
scroll-ms-16 | scroll-margin-inline-start: 4rem; | <div className="scroll-ms-16"></div> |
scroll-me-16 | scroll-margin-inline-end: 4rem; | <div className="scroll-me-16"></div> |
scroll-mt-16 | scroll-margin-top: 4rem; | <div className="scroll-mt-16"></div> |
scroll-mr-16 | scroll-margin-right: 4rem; | <div className="scroll-mr-16"></div> |
scroll-mb-16 | scroll-margin-bottom: 4rem; | <div className="scroll-mb-16"></div> |
scroll-ml-16 | scroll-margin-left: 4rem; | <div className="scroll-ml-16"></div> |
scroll-m-20 | scroll-margin: 5rem; | <div className="scroll-m-20"></div> |
scroll-mx-20 | scroll-margin-left: 5rem;
scroll-margin-right: 5rem; | <div className="scroll-mx-20"></div> |
scroll-my-20 | scroll-margin-top: 5rem;
scroll-margin-bottom: 5rem; | <div className="scroll-my-20"></div> |
scroll-ms-20 | scroll-margin-inline-start: 5rem; | <div className="scroll-ms-20"></div> |
scroll-me-20 | scroll-margin-inline-end: 5rem; | <div className="scroll-me-20"></div> |
scroll-mt-20 | scroll-margin-top: 5rem; | <div className="scroll-mt-20"></div> |
scroll-mr-20 | scroll-margin-right: 5rem; | <div className="scroll-mr-20"></div> |
scroll-mb-20 | scroll-margin-bottom: 5rem; | <div className="scroll-mb-20"></div> |
scroll-ml-20 | scroll-margin-left: 5rem; | <div className="scroll-ml-20"></div> |
scroll-m-24 | scroll-margin: 6rem; | <div className="scroll-m-24"></div> |
scroll-mx-24 | scroll-margin-left: 6rem;
scroll-margin-right: 6rem; | <div className="scroll-mx-24"></div> |
scroll-my-24 | scroll-margin-top: 6rem;
scroll-margin-bottom: 6rem; | <div className="scroll-my-24"></div> |
scroll-ms-24 | scroll-margin-inline-start: 6rem; | <div className="scroll-ms-24"></div> |
scroll-me-24 | scroll-margin-inline-end: 6rem; | <div className="scroll-me-24"></div> |
scroll-mt-24 | scroll-margin-top: 6rem; | <div className="scroll-mt-24"></div> |
scroll-mr-24 | scroll-margin-right: 6rem; | <div className="scroll-mr-24"></div> |
scroll-mb-24 | scroll-margin-bottom: 6rem; | <div className="scroll-mb-24"></div> |
scroll-ml-24 | scroll-margin-left: 6rem; | <div className="scroll-ml-24"></div> |
scroll-m-28 | scroll-margin: 7rem; | <div className="scroll-m-28"></div> |
scroll-mx-28 | scroll-margin-left: 7rem;
scroll-margin-right: 7rem; | <div className="scroll-mx-28"></div> |
scroll-my-28 | scroll-margin-top: 7rem;
scroll-margin-bottom: 7rem; | <div className="scroll-my-28"></div> |
scroll-ms-28 | scroll-margin-inline-start: 7rem; | <div className="scroll-ms-28"></div> |
scroll-me-28 | scroll-margin-inline-end: 7rem; | <div className="scroll-me-28"></div> |
scroll-mt-28 | scroll-margin-top: 7rem; | <div className="scroll-mt-28"></div> |
scroll-mr-28 | scroll-margin-right: 7rem; | <div className="scroll-mr-28"></div> |
scroll-mb-28 | scroll-margin-bottom: 7rem; | <div className="scroll-mb-28"></div> |
scroll-ml-28 | scroll-margin-left: 7rem; | <div className="scroll-ml-28"></div> |
scroll-m-32 | scroll-margin: 8rem; | <div className="scroll-m-32"></div> |
scroll-mx-32 | scroll-margin-left: 8rem;
scroll-margin-right: 8rem; | <div className="scroll-mx-32"></div> |
scroll-my-32 | scroll-margin-top: 8rem;
scroll-margin-bottom: 8rem; | <div className="scroll-my-32"></div> |
scroll-ms-32 | scroll-margin-inline-start: 8rem; | <div className="scroll-ms-32"></div> |
scroll-me-32 | scroll-margin-inline-end: 8rem; | <div className="scroll-me-32"></div> |
scroll-mt-32 | scroll-margin-top: 8rem; | <div className="scroll-mt-32"></div> |
scroll-mr-32 | scroll-margin-right: 8rem; | <div className="scroll-mr-32"></div> |
scroll-mb-32 | scroll-margin-bottom: 8rem; | <div className="scroll-mb-32"></div> |
scroll-ml-32 | scroll-margin-left: 8rem; | <div className="scroll-ml-32"></div> |
scroll-m-36 | scroll-margin: 9rem; | <div className="scroll-m-36"></div> |
scroll-mx-36 | scroll-margin-left: 9rem;
scroll-margin-right: 9rem; | <div className="scroll-mx-36"></div> |
scroll-my-36 | scroll-margin-top: 9rem;
scroll-margin-bottom: 9rem; | <div className="scroll-my-36"></div> |
scroll-ms-36 | scroll-margin-inline-start: 9rem; | <div className="scroll-ms-36"></div> |
scroll-me-36 | scroll-margin-inline-end: 9rem; | <div className="scroll-me-36"></div> |
scroll-mt-36 | scroll-margin-top: 9rem; | <div className="scroll-mt-36"></div> |
scroll-mr-36 | scroll-margin-right: 9rem; | <div className="scroll-mr-36"></div> |
scroll-mb-36 | scroll-margin-bottom: 9rem; | <div className="scroll-mb-36"></div> |
scroll-ml-36 | scroll-margin-left: 9rem; | <div className="scroll-ml-36"></div> |
scroll-m-40 | scroll-margin: 10rem; | <div className="scroll-m-40"></div> |
scroll-mx-40 | scroll-margin-left: 10rem;
scroll-margin-right: 10rem; | <div className="scroll-mx-40"></div> |
scroll-my-40 | scroll-margin-top: 10rem;
scroll-margin-bottom: 10rem; | <div className="scroll-my-40"></div> |
scroll-ms-40 | scroll-margin-inline-start: 10rem; | <div className="scroll-ms-40"></div> |
scroll-me-40 | scroll-margin-inline-end: 10rem; | <div className="scroll-me-40"></div> |
scroll-mt-40 | scroll-margin-top: 10rem; | <div className="scroll-mt-40"></div> |
scroll-mr-40 | scroll-margin-right: 10rem; | <div className="scroll-mr-40"></div> |
scroll-mb-40 | scroll-margin-bottom: 10rem; | <div className="scroll-mb-40"></div> |
scroll-ml-40 | scroll-margin-left: 10rem; | <div className="scroll-ml-40"></div> |
scroll-m-44 | scroll-margin: 11rem; | <div className="scroll-m-44"></div> |
scroll-mx-44 | scroll-margin-left: 11rem;
scroll-margin-right: 11rem; | <div className="scroll-mx-44"></div> |
scroll-my-44 | scroll-margin-top: 11rem;
scroll-margin-bottom: 11rem; | <div className="scroll-my-44"></div> |
scroll-ms-44 | scroll-margin-inline-start: 11rem; | <div className="scroll-ms-44"></div> |
scroll-me-44 | scroll-margin-inline-end: 11rem; | <div className="scroll-me-44"></div> |
scroll-mt-44 | scroll-margin-top: 11rem; | <div className="scroll-mt-44"></div> |
scroll-mr-44 | scroll-margin-right: 11rem; | <div className="scroll-mr-44"></div> |
scroll-mb-44 | scroll-margin-bottom: 11rem; | <div className="scroll-mb-44"></div> |
scroll-ml-44 | scroll-margin-left: 11rem; | <div className="scroll-ml-44"></div> |
scroll-m-48 | scroll-margin: 12rem; | <div className="scroll-m-48"></div> |
scroll-mx-48 | scroll-margin-left: 12rem;
scroll-margin-right: 12rem; | <div className="scroll-mx-48"></div> |
scroll-my-48 | scroll-margin-top: 12rem;
scroll-margin-bottom: 12rem; | <div className="scroll-my-48"></div> |
scroll-ms-48 | scroll-margin-inline-start: 12rem; | <div className="scroll-ms-48"></div> |
scroll-me-48 | scroll-margin-inline-end: 12rem; | <div className="scroll-me-48"></div> |
scroll-mt-48 | scroll-margin-top: 12rem; | <div className="scroll-mt-48"></div> |
scroll-mr-48 | scroll-margin-right: 12rem; | <div className="scroll-mr-48"></div> |
scroll-mb-48 | scroll-margin-bottom: 12rem; | <div className="scroll-mb-48"></div> |
scroll-ml-48 | scroll-margin-left: 12rem; | <div className="scroll-ml-48"></div> |
scroll-m-52 | scroll-margin: 13rem; | <div className="scroll-m-52"></div> |
scroll-mx-52 | scroll-margin-left: 13rem;
scroll-margin-right: 13rem; | <div className="scroll-mx-52"></div> |
scroll-my-52 | scroll-margin-top: 13rem;
scroll-margin-bottom: 13rem; | <div className="scroll-my-52"></div> |
scroll-ms-52 | scroll-margin-inline-start: 13rem; | <div className="scroll-ms-52"></div> |
scroll-me-52 | scroll-margin-inline-end: 13rem; | <div className="scroll-me-52"></div> |
scroll-mt-52 | scroll-margin-top: 13rem; | <div className="scroll-mt-52"></div> |
scroll-mr-52 | scroll-margin-right: 13rem; | <div className="scroll-mr-52"></div> |
scroll-mb-52 | scroll-margin-bottom: 13rem; | <div className="scroll-mb-52"></div> |
scroll-ml-52 | scroll-margin-left: 13rem; | <div className="scroll-ml-52"></div> |
scroll-m-56 | scroll-margin: 14rem; | <div className="scroll-m-56"></div> |
scroll-mx-56 | scroll-margin-left: 14rem;
scroll-margin-right: 14rem; | <div className="scroll-mx-56"></div> |
scroll-my-56 | scroll-margin-top: 14rem;
scroll-margin-bottom: 14rem; | <div className="scroll-my-56"></div> |
scroll-ms-56 | scroll-margin-inline-start: 14rem; | <div className="scroll-ms-56"></div> |
scroll-me-56 | scroll-margin-inline-end: 14rem; | <div className="scroll-me-56"></div> |
scroll-mt-56 | scroll-margin-top: 14rem; | <div className="scroll-mt-56"></div> |
scroll-mr-56 | scroll-margin-right: 14rem; | <div className="scroll-mr-56"></div> |
scroll-mb-56 | scroll-margin-bottom: 14rem; | <div className="scroll-mb-56"></div> |
scroll-ml-56 | scroll-margin-left: 14rem; | <div className="scroll-ml-56"></div> |
scroll-m-60 | scroll-margin: 15rem; | <div className="scroll-m-60"></div> |
scroll-mx-60 | scroll-margin-left: 15rem;
scroll-margin-right: 15rem; | <div className="scroll-mx-60"></div> |
scroll-my-60 | scroll-margin-top: 15rem;
scroll-margin-bottom: 15rem; | <div className="scroll-my-60"></div> |
scroll-ms-60 | scroll-margin-inline-start: 15rem; | <div className="scroll-ms-60"></div> |
scroll-me-60 | scroll-margin-inline-end: 15rem; | <div className="scroll-me-60"></div> |
scroll-mt-60 | scroll-margin-top: 15rem; | <div className="scroll-mt-60"></div> |
scroll-mr-60 | scroll-margin-right: 15rem; | <div className="scroll-mr-60"></div> |
scroll-mb-60 | scroll-margin-bottom: 15rem; | <div className="scroll-mb-60"></div> |
scroll-ml-60 | scroll-margin-left: 15rem; | <div className="scroll-ml-60"></div> |
scroll-m-64 | scroll-margin: 16rem; | <div className="scroll-m-64"></div> |
scroll-mx-64 | scroll-margin-left: 16rem;
scroll-margin-right: 16rem; | <div className="scroll-mx-64"></div> |
scroll-my-64 | scroll-margin-top: 16rem;
scroll-margin-bottom: 16rem; | <div className="scroll-my-64"></div> |
scroll-ms-64 | scroll-margin-inline-start: 16rem; | <div className="scroll-ms-64"></div> |
scroll-me-64 | scroll-margin-inline-end: 16rem; | <div className="scroll-me-64"></div> |
scroll-mt-64 | scroll-margin-top: 16rem; | <div className="scroll-mt-64"></div> |
scroll-mr-64 | scroll-margin-right: 16rem; | <div className="scroll-mr-64"></div> |
scroll-mb-64 | scroll-margin-bottom: 16rem; | <div className="scroll-mb-64"></div> |
scroll-ml-64 | scroll-margin-left: 16rem; | <div className="scroll-ml-64"></div> |
scroll-m-72 | scroll-margin: 18rem; | <div className="scroll-m-72"></div> |
scroll-mx-72 | scroll-margin-left: 18rem;
scroll-margin-right: 18rem; | <div className="scroll-mx-72"></div> |
scroll-my-72 | scroll-margin-top: 18rem;
scroll-margin-bottom: 18rem; | <div className="scroll-my-72"></div> |
scroll-ms-72 | scroll-margin-inline-start: 18rem; | <div className="scroll-ms-72"></div> |
scroll-me-72 | scroll-margin-inline-end: 18rem; | <div className="scroll-me-72"></div> |
scroll-mt-72 | scroll-margin-top: 18rem; | <div className="scroll-mt-72"></div> |
scroll-mr-72 | scroll-margin-right: 18rem; | <div className="scroll-mr-72"></div> |
scroll-mb-72 | scroll-margin-bottom: 18rem; | <div className="scroll-mb-72"></div> |
scroll-ml-72 | scroll-margin-left: 18rem; | <div className="scroll-ml-72"></div> |
scroll-m-80 | scroll-margin: 20rem; | <div className="scroll-m-80"></div> |
scroll-mx-80 | scroll-margin-left: 20rem;
scroll-margin-right: 20rem; | <div className="scroll-mx-80"></div> |
scroll-my-80 | scroll-margin-top: 20rem;
scroll-margin-bottom: 20rem; | <div className="scroll-my-80"></div> |
scroll-ms-80 | scroll-margin-inline-start: 20rem; | <div className="scroll-ms-80"></div> |
scroll-me-80 | scroll-margin-inline-end: 20rem; | <div className="scroll-me-80"></div> |
scroll-mt-80 | scroll-margin-top: 20rem; | <div className="scroll-mt-80"></div> |
scroll-mr-80 | scroll-margin-right: 20rem; | <div className="scroll-mr-80"></div> |
scroll-mb-80 | scroll-margin-bottom: 20rem; | <div className="scroll-mb-80"></div> |
scroll-ml-80 | scroll-margin-left: 20rem; | <div className="scroll-ml-80"></div> |
scroll-m-96 | scroll-margin: 24rem; | <div className="scroll-m-96"></div> |
scroll-mx-96 | scroll-margin-left: 24rem;
scroll-margin-right: 24rem; | <div className="scroll-mx-96"></div> |
scroll-my-96 | scroll-margin-top: 24rem;
scroll-margin-bottom: 24rem; | <div className="scroll-my-96"></div> |
scroll-ms-96 | scroll-margin-inline-start: 24rem; | <div className="scroll-ms-96"></div> |
scroll-me-96 | scroll-margin-inline-end: 24rem; | <div className="scroll-me-96"></div> |
scroll-mt-96 | scroll-margin-top: 24rem; | <div className="scroll-mt-96"></div> |
scroll-mr-96 | scroll-margin-right: 24rem; | <div className="scroll-mr-96"></div> |
scroll-mb-96 | scroll-margin-bottom: 24rem; | <div className="scroll-mb-96"></div> |
scroll-ml-96 | scroll-margin-left: 24rem; | <div className="scroll-ml-96"></div> |
Overview of Scroll Margin
Adding the Scroll Margin
Tailwind's scroll-margin utilities can be applied for individual sides (top, right, bottom, left) or collectively. To add scroll-margin to an element, use the utilities like- scroll-m-*, scroll-mx-*, scroll-my-*, etc.
export default function App() { return <h1>Hello world</h1> }
Adding the Negative Scroll Margin
Tailwind also lets you assign negative values to scroll margin. To add a negative scroll margin, use utilities like- -scroll-m-*, -scroll-mx-*, -scroll-my-*, etc.
export default function App() { return <h1>Hello world</h1> }
Adding the Logical Scroll Margin
Tailwind also provides logical property support, where scroll margins can be adjusted based on the text direction- left-to-right or right-to-left. To add these logical properties to your code- use scroll-ms-* and scroll-me-* utilities.
export default function App() { return <h1>Hello world</h1> }
States and Responsiveness
Hover and Focus States
Tailwind also provides state modifiers to conditionally apply scroll margins. To apply scroll margins on states such as hover or focus, prepend the modifiers to the utilities, e.g., hover:scroll-mt-*, hover:scroll-mb-*, etc.
export default function App() { return <h1>Hello world</h1> }
Breakpoint Modifiers
Tailwind lets you apply scroll margins to different screen sizes by using breakpoint modifiers- sm, md, lg, etc. To apply scroll margins on specific breakpoints, prepend the modifiers to the utilities, e.g., md:scroll-mt-*, lg:scroll-mb-*, etc.
export default function App() { return <h1>Hello world</h1> }
Custom Scroll Margin
Extending the Theme
To implement specific scroll-margin values not available by default in Tailwind, you can extend the theme configuration. Then apply the custom scroll-margin values via the utility class:
export default function App() { return <h1>Hello world</h1> }
Using Arbitrary Values
Tailwind CSS also supports arbitrary values for scroll margins where predefined classes don't suffice. Here, custom values are passed directly in square brackets, making arbitrary values quick to use without customization in the config file.
export default function App() { return <h1>Hello world</h1> }
Real World Examples
Recipe Steps Carousel
A step-by-step recipe guide with horizontal scrolling and proper scroll margin for each instruction card.
export default function App() { return <h1>Hello world</h1> }
Team Member Profiles
A horizontal scrolling list of team member profiles with proper scroll margin and snap points.
export default function App() { return <h1>Hello world</h1> }
Image Gallery
A horizontal scrolling image gallery with proper scroll margins.
export default function App() { return <h1>Hello world</h1> }
Timeline Component
A vertical timeline with scroll margin for smooth anchor navigation.
export default function App() { return <h1>Hello world</h1> }
Card Carousel
A responsive card carousel with scroll margin and snap points.
export default function App() { return <h1>Hello world</h1> }
Customization Examples
Horizontal Image Gallery
A horizontal scrolling image gallery where each image snaps to custom scroll points.
export default function App() { return <h1>Hello world</h1> }
Vertical Content Steps
A vertical stepper component where each step snaps to a custom top margin, providing better visibility when scrolling through content.
export default function App() { return <h1>Hello world</h1> }
Article Section
A reading interface where article sections snap to custom margins.
export default function App() { return <h1>Hello world</h1> }
Best Practices
Maintain Design Consistency
Consistency is a cornerstone of good design, particularly when working with utilities like scroll-margin in Tailwind CSS. It's important to ensure that scroll margins are applied uniformly across similar components or sections.
For example, using consistent scroll margin values for sections such as headers, navigation anchors, or content blocks creates a predictable and visually consistent experience for users. This can be achieved by pre-defined scroll margins like- scroll-mt-*, scroll-mx-*, etc., or custom utilities added via the Tailwind theme configuration.
Focusing on consistency not only improves the UX but also simplifies collaboration and project maintainability for teams working on large-scale projects.
Build Responsive Design
Responsive design requires adjustments to scroll-margin values based on screen size. Tailwind CSS provides responsive variants that enable designers to define scroll behavior across different breakpoints. Defining larger scroll margins on larger screens and smaller ones for smaller screens helps maintain proportionate spacing without disrupting usability.
For instance, a scroll-mt-16 value may work well on desktop layouts but might be too excessive for mobile views. Using variants such as sm:scroll-mt-4 lg:scroll-mt-8 provides more precise control while ensuring consistency across devices. This technique helps prevent unnecessary whitespace on mobile while retaining a polished layout on larger screens.
Accessibility Considerations
Enhance Readability and Navigability
Ensuring sufficient scroll margins prevents content from appearing too close to the viewport’s edge when scrolled into view, maintaining a comfortable reading experience.
For users with motion sensitivity, abrupt scrolling changes caused by improper scroll-margin values can be disruptive. To mitigate this, keeping scroll margins moderate and consistent helps maintain a steady user experience without causing visual discomfort. Additionally, combining scroll-margin with focus-visible ensures that navigable elements remain clearly distinguishable when accessed through keyboard navigation.
Focus on High Contrast
While scroll margin primarily affects spacing, it indirectly influences contrast and readability by ensuring sufficient separation between different sections. When text or interactive elements are too close to the screen edges or other content, users may struggle to differentiate between distinct sections. Properly applied scroll margins create a balanced layout where each section is visually distinct, improving the user experience for individuals with visual impairments.
Users with low vision or color perception deficiencies benefit from layouts that avoid overcrowding. The combination of scroll-m-* with appropriate background contrast and text styling ensures that content remains legible under different accessibility settings, such as high-contrast mode.