“Every DOM element is rendered as a box comprising Content, Padding, Border, and Margin. Tailwind sets "box-sizing: border-box" globally so padding and border never expand an element beyond its defined width. The "ring-*" utility applies box-shadow outlines that do not shift layout geometry.”
Understand Box-Sizing: border-box, padding vs margin, and the outer ring utility.
<button class="px-5 py-2.5 rounded-lg font-medium text-white bg-slate-900 border border-slate-700 hover:border-cyan-500 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:ring-offset-2 focus:ring-offset-slate-950 transition-all">
Click without layout shift
</button>*, ::before, ::after { box-sizing: border-box; }
.ring-2 { --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }Tailwind Preflight resets all elements to "box-sizing: border-box"
Inner spacing is applied with "p-*" (padding)
Outer separation is applied with "m-*" (margin)
Borders are defined with "border border-slate-200"
Focus indicators use "ring-2 ring-cyan-500 ring-offset-2" to avoid border resizing shifts
Using "ring-*" for focus and active states guarantees 0px layout reflow shifts and preserves 60 FPS animation smoothness.