SmartCodingTips

Grid Areas and Placement

Tailwind CSS allows you to control grid item placement using utilities like col-start, col-span, row-start, row-span, and custom CSS grid-area definitions.

1. Column and Row Placement

You can control where elements appear in the grid using start and span utilities:

<div class="grid grid-cols-4 gap-4">
    <div class="bg-indigo-200 col-start-2 col-span-2 p-4">
        Spans from column 2 to 4
    </div>
    <div class="bg-indigo-400 row-start-2 row-span-2 p-4">
        Starts on row 2 and spans 2 rows
    </div>
</div>
            

2. Named Grid Areas (with custom CSS)

Tailwind does not support named grid areas directly, but you can extend it via @layer and apply custom CSS:

/* tailwind.config.js */
module.exports = {
  theme: {
    extend: {
      gridTemplateAreas: {
        layout: [
          "header header",
          "sidebar content",
          "footer footer",
        ],
      },
    },
  },
  plugins: [require('@savvywombat/tailwindcss-grid-areas')],
}
            
<div class="grid [grid-template-areas:'header_header''sidebar_content''footer_footer'] grid-cols-2 gap-4">
    <header class="[grid-area:header] bg-blue-300 p-4">Header</header>
    <aside class="[grid-area:sidebar] bg-blue-200 p-4">Sidebar</aside>
    <main class="[grid-area:content] bg-white p-4">Main Content</main>
    <footer class="[grid-area:footer] bg-blue-400 p-4">Footer</footer>
</div>
            

Use plugins like @savvywombat/tailwindcss-grid-areas for cleaner area naming.

3. Let the Grid Auto-Place

If you don’t specify start or span, Tailwind will auto-place items based on document order:

<div class="grid grid-cols-3 gap-4">
    <div class="bg-gray-200 p-4">1</div>
    <div class="bg-gray-300 p-4">2</div>
    <div class="bg-gray-400 p-4">3</div>
</div>
            

Conclusion

Grid placement utilities give you fine control over layout structure, while custom extensions can add full CSS grid-area support to Tailwind CSS.