Quick reference

grid-rows-1grid-template-rows: repeat(1, minmax(0, 1fr));
grid-rows-2grid-template-rows: repeat(2, minmax(0, 1fr));
grid-rows-3grid-template-rows: repeat(3, minmax(0, 1fr));
grid-rows-4grid-template-rows: repeat(4, minmax(0, 1fr));
grid-rows-5grid-template-rows: repeat(5, minmax(0, 1fr));
grid-rows-6grid-template-rows: repeat(6, minmax(0, 1fr));
grid-rows-nonegrid-template-rows: none;

Basic usage

Specifying the rows in a grid

Use the grid-rows-{n} utilities to create grids with n equally sized rows.

<div class="grid grid-rows-4 grid-flow-col gap-4">
  <!-- ... -->

Applying conditionally

Hover, focus, and other states

Tailwind lets you conditionally apply utility classes in different states using variant modifiers. For example, use hover:grid-rows-6 to only apply the grid-rows-6 utility on hover.

<div class="grid grid-rows-2 hover:grid-rows-6">
  <!-- ... -->

For a complete list of all available state modifiers, check out the Hover, Focus, & Other States documentation.

Breakpoints and media queries

You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:grid-rows-6 to apply the grid-rows-6 utility at only medium screen sizes and above.

<div class="grid grid-rows-2 md:grid-rows-6">
  <!-- ... -->

To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.

Using custom values

Customizing your theme

By default, Tailwind includes grid-template-row utilities for creating basic grids with up to 6 equal width rows. You can customize these values by editing theme.gridTemplateRows or theme.extend.gridTemplateRows in your tailwind.config.js file.

You have direct access to the grid-template-rows CSS property here so you can make your custom rows values as generic or as complicated and site-specific as you like.

module.exports = {
  theme: {
    extend: {
      gridTemplateRows: {
        // Simple 8 row grid
        '8': 'repeat(8, minmax(0, 1fr))',

        // Complex site-specific row configuration
        'layout': '200px minmax(900px, 1fr) 100px',

Learn more about customizing the default theme in the theme customization documentation.

Arbitrary values

If you need to use a one-off grid-template-rows value that doesn’t make sense to include in your theme, use square brackets to generate a property on the fly using any arbitrary value.

<div class="grid grid-rows-[200px_minmax(900px,_1fr)_100px]">
  <!-- ... -->

Learn more about arbitrary value support in the arbitrary values documentation.