files/en-us/web/css/reference/properties/grid-template-rows/index.md
The grid-template-rows CSS property defines the line names and track sizing functions of the {{glossary("grid_row", "grid rows")}}.
{{InteractiveExample("CSS Demo: grid-template-rows")}}
grid-template-rows: auto;
grid-template-rows: 40px 4em 40px;
grid-template-rows: 1fr 2fr 1fr;
grid-template-rows: 3ch auto minmax(10px, 60px);
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 10px;
width: 200px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
/* Keyword value */
grid-template-rows: none;
/* <track-list> values */
grid-template-rows: 100px 1fr;
grid-template-rows: [line-name] 100px;
grid-template-rows: [line-name1] 100px [line-name2 line-name3];
grid-template-rows: minmax(100px, 1fr);
grid-template-rows: fit-content(40%);
grid-template-rows: repeat(3, 200px);
grid-template-rows: subgrid;
grid-template-rows: masonry;
/* <auto-track-list> values */
grid-template-rows: 200px repeat(auto-fill, 100px) 300px;
grid-template-rows:
minmax(100px, max-content)
repeat(auto-fill, 200px) 20%;
grid-template-rows:
[line-name1] 100px [line-name2]
repeat(auto-fit, [line-name3 line-name4] 300px)
100px;
grid-template-rows:
[line-name1 line-name2] 100px
repeat(auto-fit, [line-name1] 300px) [line-name3];
/* Global values */
grid-template-rows: inherit;
grid-template-rows: initial;
grid-template-rows: revert;
grid-template-rows: revert-layer;
grid-template-rows: unset;
This property may be specified as:
none<track-list> value<auto-track-list> value.none
[line-name]
span and auto. Lines may have multiple names separated by a space inside the square brackets, for example [line-name-a line-name-b].{{cssxref("<length>")}}
{{cssxref("<percentage>")}}
auto for the purpose of calculating the intrinsic size of the grid container. The percentage is then resolved against the resulting grid container size for laying out the grid and its items. The browser may adjust the intrinsic size contributions of the track to the size of the grid container and may increase the final size of the track by the minimum amount that would result in honoring the percentage.{{cssxref("<flex_value>","<flex>")}}
fr specifying the track's flex factor. Each <flex>-sized track takes a share of the remaining space in proportion to its flex factor. When appearing outside a minmax() notation, it implies an automatic minimum (i.e., minmax(auto, <flex>)).{{cssxref("max-content")}}
{{cssxref("min-content")}}
{{cssxref("minmax", "minmax(min, max)")}}
<flex> value sets the track's flex factor. It is invalid as a minimum.auto
: As a maximum value, it represents the largest {{cssxref("max-content")}} size of the items in that track.
As a minimum value, it represents the largest minimum size of items in that track (specified by the {{cssxref("min-width")}}/{{cssxref("min-height")}} properties of the items). This often corresponds to the {{cssxref("min-content")}} size, but not always.
If used outside of {{cssxref("minmax()")}} notation, auto represents the range between the minimum and maximum values described above. In most cases, this behaves similarly to minmax(min-content,max-content).
[!NOTE]
autotrack sizes (and onlyautotrack sizes) can be stretched by the {{cssxref("align-content")}} and {{cssxref("justify-content")}} properties. Therefore, by default, anauto-sized track will take up any remaining space in the grid container.
{{cssxref("fit-content_function", "fit-content( [ <length> | <percentage> ] )")}}
min(max-content, max(auto, argument)), which is calculated similar to auto (i.e., minmax(auto, max-content)), except that the track size is clamped at argument if it is greater than the auto minimum.{{cssxref("repeat", "repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )")}}
{{cssinfo}}
{{csssyntax}}
<div id="grid">
<div id="areaA">A</div>
<div id="areaB">B</div>
</div>
#grid {
display: grid;
height: 100px;
grid-template-rows: 30px 1fr;
}
#areaA {
background-color: lime;
}
#areaB {
background-color: yellow;
}
{{EmbedLiveSample("Specifying_grid_row_sizes", "40px", "100px")}}
{{Specifications}}
{{Compat}}