stylelint-plugin-grid 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -30
- package/docs/rules/configs/grid-all.md +23 -23
- package/docs/rules/configs/grid-recommended.md +16 -16
- package/docs/rules/configs/index.md +23 -23
- package/docs/rules/consistent-area-naming.md +5 -5
- package/docs/rules/getting-started.md +8 -8
- package/docs/rules/no-conflicting-placement.md +11 -11
- package/docs/rules/no-dense-auto-flow.md +8 -8
- package/docs/rules/no-ineffective-container-properties.md +13 -13
- package/docs/rules/no-invalid-areas.md +11 -11
- package/docs/rules/no-invalid-auto-repeat.md +8 -8
- package/docs/rules/no-invalid-minmax.md +8 -8
- package/docs/rules/no-invalid-repeat-count.md +8 -8
- package/docs/rules/no-invalid-span.md +8 -8
- package/docs/rules/no-mismatched-template-rows.md +8 -8
- package/docs/rules/no-overlapping-areas.md +4 -4
- package/docs/rules/no-reversed-placement-lines.md +9 -9
- package/docs/rules/no-unknown-areas.md +4 -4
- package/docs/rules/no-unused-areas.md +5 -5
- package/docs/rules/no-zero-grid-lines.md +8 -8
- package/docs/rules/prefer-gap-properties.md +10 -10
- package/docs/rules/prefer-minmax-zero-fr.md +7 -7
- package/docs/rules/require-explicit-rows-with-column-flow.md +10 -10
- package/docs/rules/require-explicit-tracks-with-areas.md +22 -22
- package/docs/rules/validate-area-shapes.md +10 -10
- package/docs/rules/validate-track-counts.md +10 -10
- package/package.json +15 -7
|
@@ -12,13 +12,13 @@ length, or a percentage instead.
|
|
|
12
12
|
|
|
13
13
|
```css
|
|
14
14
|
.layout {
|
|
15
|
-
|
|
15
|
+
grid-template-columns: minmax(1fr, 20rem) 2fr;
|
|
16
16
|
}
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
```css
|
|
20
20
|
.layout {
|
|
21
|
-
|
|
21
|
+
grid-auto-rows: minmax(0.5fr, auto);
|
|
22
22
|
}
|
|
23
23
|
```
|
|
24
24
|
|
|
@@ -26,13 +26,13 @@ length, or a percentage instead.
|
|
|
26
26
|
|
|
27
27
|
```css
|
|
28
28
|
.layout {
|
|
29
|
-
|
|
29
|
+
grid-template-columns: minmax(0, 1fr) minmax(12rem, 20rem);
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
```css
|
|
34
34
|
.layout {
|
|
35
|
-
|
|
35
|
+
grid-auto-rows: minmax(10rem, auto);
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -40,10 +40,10 @@ length, or a percentage instead.
|
|
|
40
40
|
|
|
41
41
|
```js
|
|
42
42
|
export default {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
plugins: ["stylelint-plugin-grid"],
|
|
44
|
+
rules: {
|
|
45
|
+
"grid/no-invalid-minmax": true,
|
|
46
|
+
},
|
|
47
47
|
};
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -11,13 +11,13 @@ those cases.
|
|
|
11
11
|
|
|
12
12
|
```css
|
|
13
13
|
.layout {
|
|
14
|
-
|
|
14
|
+
grid-template-columns: repeat(0, 1fr);
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
```css
|
|
19
19
|
.layout {
|
|
20
|
-
|
|
20
|
+
grid-template-rows: repeat(2.5, auto);
|
|
21
21
|
}
|
|
22
22
|
```
|
|
23
23
|
|
|
@@ -25,13 +25,13 @@ those cases.
|
|
|
25
25
|
|
|
26
26
|
```css
|
|
27
27
|
.layout {
|
|
28
|
-
|
|
28
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
```css
|
|
33
33
|
.layout {
|
|
34
|
-
|
|
34
|
+
grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
|
|
35
35
|
}
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -39,10 +39,10 @@ those cases.
|
|
|
39
39
|
|
|
40
40
|
```js
|
|
41
41
|
export default {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
plugins: ["stylelint-plugin-grid"],
|
|
43
|
+
rules: {
|
|
44
|
+
"grid/no-invalid-repeat-count": true,
|
|
45
|
+
},
|
|
46
46
|
};
|
|
47
47
|
```
|
|
48
48
|
|
|
@@ -10,13 +10,13 @@ invalid or ignored.
|
|
|
10
10
|
|
|
11
11
|
```css
|
|
12
12
|
.item {
|
|
13
|
-
|
|
13
|
+
grid-column: span 0 / span 2;
|
|
14
14
|
}
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
```css
|
|
18
18
|
.item {
|
|
19
|
-
|
|
19
|
+
grid-row-start: span -1;
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
@@ -24,13 +24,13 @@ invalid or ignored.
|
|
|
24
24
|
|
|
25
25
|
```css
|
|
26
26
|
.item {
|
|
27
|
-
|
|
27
|
+
grid-column: span 2 / sidebar-end;
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
```css
|
|
32
32
|
.item {
|
|
33
|
-
|
|
33
|
+
grid-row-start: span var(--rows);
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -38,10 +38,10 @@ invalid or ignored.
|
|
|
38
38
|
|
|
39
39
|
```js
|
|
40
40
|
export default {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
plugins: ["stylelint-plugin-grid"],
|
|
42
|
+
rules: {
|
|
43
|
+
"grid/no-invalid-span": true,
|
|
44
|
+
},
|
|
45
45
|
};
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -7,10 +7,10 @@ count when both declarations appear in the same block.
|
|
|
7
7
|
|
|
8
8
|
```css
|
|
9
9
|
.layout {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
grid-template-areas:
|
|
11
|
+
"header"
|
|
12
|
+
"main";
|
|
13
|
+
grid-template-rows: auto;
|
|
14
14
|
}
|
|
15
15
|
```
|
|
16
16
|
|
|
@@ -18,10 +18,10 @@ count when both declarations appear in the same block.
|
|
|
18
18
|
|
|
19
19
|
```css
|
|
20
20
|
.layout {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
grid-template-areas:
|
|
22
|
+
"header"
|
|
23
|
+
"main";
|
|
24
|
+
grid-template-rows: auto 1fr;
|
|
25
25
|
}
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -11,11 +11,11 @@ usually indicate layout collisions in your codebase.
|
|
|
11
11
|
|
|
12
12
|
```css
|
|
13
13
|
.header {
|
|
14
|
-
|
|
14
|
+
grid-area: header;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.mobileHeader {
|
|
18
|
-
|
|
18
|
+
grid-area: header;
|
|
19
19
|
}
|
|
20
20
|
```
|
|
21
21
|
|
|
@@ -23,11 +23,11 @@ usually indicate layout collisions in your codebase.
|
|
|
23
23
|
|
|
24
24
|
```css
|
|
25
25
|
.header {
|
|
26
|
-
|
|
26
|
+
grid-area: header;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
.sidebar {
|
|
30
|
-
|
|
30
|
+
grid-area: sidebar;
|
|
31
31
|
}
|
|
32
32
|
```
|
|
33
33
|
|
|
@@ -11,14 +11,14 @@ dynamic values.
|
|
|
11
11
|
|
|
12
12
|
```css
|
|
13
13
|
.item {
|
|
14
|
-
|
|
14
|
+
grid-column: 4 / 2;
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
```css
|
|
19
19
|
.item {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
grid-row-start: 7;
|
|
21
|
+
grid-row-end: 6;
|
|
22
22
|
}
|
|
23
23
|
```
|
|
24
24
|
|
|
@@ -26,13 +26,13 @@ dynamic values.
|
|
|
26
26
|
|
|
27
27
|
```css
|
|
28
28
|
.item {
|
|
29
|
-
|
|
29
|
+
grid-column: 2 / 4;
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
```css
|
|
34
34
|
.item {
|
|
35
|
-
|
|
35
|
+
grid-row: span 2 / 5;
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -40,10 +40,10 @@ dynamic values.
|
|
|
40
40
|
|
|
41
41
|
```js
|
|
42
42
|
export default {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
plugins: ["stylelint-plugin-grid"],
|
|
44
|
+
rules: {
|
|
45
|
+
"grid/no-reversed-placement-lines": true,
|
|
46
|
+
},
|
|
47
47
|
};
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -7,11 +7,11 @@ declared by `grid-template-areas` in the same stylesheet.
|
|
|
7
7
|
|
|
8
8
|
```css
|
|
9
9
|
.layout {
|
|
10
|
-
|
|
10
|
+
grid-template-areas: "header main";
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.sidebar {
|
|
14
|
-
|
|
14
|
+
grid-area: sidebr;
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -19,11 +19,11 @@ declared by `grid-template-areas` in the same stylesheet.
|
|
|
19
19
|
|
|
20
20
|
```css
|
|
21
21
|
.layout {
|
|
22
|
-
|
|
22
|
+
grid-template-areas: "header main";
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.header {
|
|
26
|
-
|
|
26
|
+
grid-area: header;
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -11,11 +11,11 @@ templates and items live in separate files.
|
|
|
11
11
|
|
|
12
12
|
```css
|
|
13
13
|
.layout {
|
|
14
|
-
|
|
14
|
+
grid-template-areas: "header main";
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.main {
|
|
18
|
-
|
|
18
|
+
grid-area: main;
|
|
19
19
|
}
|
|
20
20
|
```
|
|
21
21
|
|
|
@@ -31,14 +31,14 @@ templates and items live in separate files.
|
|
|
31
31
|
|
|
32
32
|
```css
|
|
33
33
|
.layout {
|
|
34
|
-
|
|
34
|
+
grid-template-areas: "header main";
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.header {
|
|
38
|
-
|
|
38
|
+
grid-area: header;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.main {
|
|
42
|
-
|
|
42
|
+
grid-area: main;
|
|
43
43
|
}
|
|
44
44
|
```
|
|
@@ -9,13 +9,13 @@ edge. Line `0` does not exist, so placement values using `0` are invalid.
|
|
|
9
9
|
|
|
10
10
|
```css
|
|
11
11
|
.item {
|
|
12
|
-
|
|
12
|
+
grid-column: 0 / 2;
|
|
13
13
|
}
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
```css
|
|
17
17
|
.item {
|
|
18
|
-
|
|
18
|
+
grid-row-end: 0;
|
|
19
19
|
}
|
|
20
20
|
```
|
|
21
21
|
|
|
@@ -23,13 +23,13 @@ edge. Line `0` does not exist, so placement values using `0` are invalid.
|
|
|
23
23
|
|
|
24
24
|
```css
|
|
25
25
|
.item {
|
|
26
|
-
|
|
26
|
+
grid-column: 1 / -1;
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
```css
|
|
31
31
|
.item {
|
|
32
|
-
|
|
32
|
+
grid-row: var(--row-start) / var(--row-end);
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -37,10 +37,10 @@ edge. Line `0` does not exist, so placement values using `0` are invalid.
|
|
|
37
37
|
|
|
38
38
|
```js
|
|
39
39
|
export default {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
plugins: ["stylelint-plugin-grid"],
|
|
41
|
+
rules: {
|
|
42
|
+
"grid/no-zero-grid-lines": true,
|
|
43
|
+
},
|
|
44
44
|
};
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -8,9 +8,9 @@ This rule is autofixable.
|
|
|
8
8
|
|
|
9
9
|
```css
|
|
10
10
|
.layout {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
display: grid;
|
|
12
|
+
grid-gap: 1rem;
|
|
13
|
+
grid-column-gap: 2rem;
|
|
14
14
|
}
|
|
15
15
|
```
|
|
16
16
|
|
|
@@ -18,9 +18,9 @@ This rule is autofixable.
|
|
|
18
18
|
|
|
19
19
|
```css
|
|
20
20
|
.layout {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
display: grid;
|
|
22
|
+
gap: 1rem;
|
|
23
|
+
column-gap: 2rem;
|
|
24
24
|
}
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -28,10 +28,10 @@ This rule is autofixable.
|
|
|
28
28
|
|
|
29
29
|
```js
|
|
30
30
|
export default {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
plugins: ["stylelint-plugin-grid"],
|
|
32
|
+
rules: {
|
|
33
|
+
"grid/prefer-gap-properties": true,
|
|
34
|
+
},
|
|
35
35
|
};
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -11,7 +11,7 @@ to the rest of the layout rules.
|
|
|
11
11
|
|
|
12
12
|
```css
|
|
13
13
|
.layout {
|
|
14
|
-
|
|
14
|
+
grid-template-columns: 1fr 2fr;
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -19,13 +19,13 @@ to the rest of the layout rules.
|
|
|
19
19
|
|
|
20
20
|
```css
|
|
21
21
|
.layout {
|
|
22
|
-
|
|
22
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
```css
|
|
27
27
|
.layout {
|
|
28
|
-
|
|
28
|
+
grid-template-columns: repeat(2, 1fr);
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
@@ -33,10 +33,10 @@ to the rest of the layout rules.
|
|
|
33
33
|
|
|
34
34
|
```js
|
|
35
35
|
export default {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
plugins: ["stylelint-plugin-grid"],
|
|
37
|
+
rules: {
|
|
38
|
+
"grid/prefer-minmax-zero-fr": true,
|
|
39
|
+
},
|
|
40
40
|
};
|
|
41
41
|
```
|
|
42
42
|
|
|
@@ -15,8 +15,8 @@ cascade layers.
|
|
|
15
15
|
|
|
16
16
|
```css
|
|
17
17
|
.cards {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
grid-auto-flow: column;
|
|
19
|
+
grid-template-columns: repeat(3, 1fr);
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
@@ -24,15 +24,15 @@ cascade layers.
|
|
|
24
24
|
|
|
25
25
|
```css
|
|
26
26
|
.cards {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
grid-auto-flow: column;
|
|
28
|
+
grid-auto-rows: minmax(10rem, auto);
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
```css
|
|
33
33
|
.cards {
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
grid-auto-flow: column;
|
|
35
|
+
grid-template-rows: repeat(3, minmax(0, 1fr));
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -40,10 +40,10 @@ cascade layers.
|
|
|
40
40
|
|
|
41
41
|
```js
|
|
42
42
|
export default {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
plugins: ["stylelint-plugin-grid"],
|
|
44
|
+
rules: {
|
|
45
|
+
"grid/require-explicit-rows-with-column-flow": true,
|
|
46
|
+
},
|
|
47
47
|
};
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -11,7 +11,7 @@ common.
|
|
|
11
11
|
|
|
12
12
|
```css
|
|
13
13
|
.layout {
|
|
14
|
-
|
|
14
|
+
grid-template-areas: "nav main";
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -19,8 +19,8 @@ With `{ rows: true }`:
|
|
|
19
19
|
|
|
20
20
|
```css
|
|
21
21
|
.layout {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
grid-template-areas: "main";
|
|
23
|
+
grid-template-columns: minmax(0, 1fr);
|
|
24
24
|
}
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -28,8 +28,8 @@ With `{ rows: true }`:
|
|
|
28
28
|
|
|
29
29
|
```css
|
|
30
30
|
.layout {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
grid-template-areas: "nav main";
|
|
32
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -37,9 +37,9 @@ With `{ rows: true }`:
|
|
|
37
37
|
|
|
38
38
|
```css
|
|
39
39
|
.layout {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
grid-template-areas: "main";
|
|
41
|
+
grid-template-columns: minmax(0, 1fr);
|
|
42
|
+
grid-template-rows: auto;
|
|
43
43
|
}
|
|
44
44
|
```
|
|
45
45
|
|
|
@@ -47,16 +47,16 @@ With `{ rows: true }`:
|
|
|
47
47
|
|
|
48
48
|
```js
|
|
49
49
|
export default {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
50
|
+
plugins: ["stylelint-plugin-grid"],
|
|
51
|
+
rules: {
|
|
52
|
+
"grid/require-explicit-tracks-with-areas": [
|
|
53
|
+
true,
|
|
54
|
+
{
|
|
55
|
+
columns: true,
|
|
56
|
+
rows: false,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
60
|
};
|
|
61
61
|
```
|
|
62
62
|
|
|
@@ -64,10 +64,10 @@ export default {
|
|
|
64
64
|
|
|
65
65
|
```js
|
|
66
66
|
export default {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
plugins: ["stylelint-plugin-grid"],
|
|
68
|
+
rules: {
|
|
69
|
+
"grid/require-explicit-tracks-with-areas": true,
|
|
70
|
+
},
|
|
71
71
|
};
|
|
72
72
|
```
|
|
73
73
|
|
|
@@ -9,9 +9,9 @@ authored template declaration instead of leaving it to browser behavior.
|
|
|
9
9
|
|
|
10
10
|
```css
|
|
11
11
|
.layout {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
grid-template-areas:
|
|
13
|
+
"main side"
|
|
14
|
+
"main main";
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -19,9 +19,9 @@ authored template declaration instead of leaving it to browser behavior.
|
|
|
19
19
|
|
|
20
20
|
```css
|
|
21
21
|
.layout {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
grid-template-areas:
|
|
23
|
+
"main side"
|
|
24
|
+
"main side";
|
|
25
25
|
}
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -29,10 +29,10 @@ authored template declaration instead of leaving it to browser behavior.
|
|
|
29
29
|
|
|
30
30
|
```js
|
|
31
31
|
export default {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
plugins: ["stylelint-plugin-grid"],
|
|
33
|
+
rules: {
|
|
34
|
+
"grid/validate-area-shapes": true,
|
|
35
|
+
},
|
|
36
36
|
};
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -7,11 +7,11 @@ match the dimensions of `grid-template-areas`.
|
|
|
7
7
|
|
|
8
8
|
```css
|
|
9
9
|
.layout {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
grid-template-areas:
|
|
11
|
+
"nav main"
|
|
12
|
+
"nav footer";
|
|
13
|
+
grid-template-columns: 12rem;
|
|
14
|
+
grid-template-rows: auto auto auto;
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -19,11 +19,11 @@ match the dimensions of `grid-template-areas`.
|
|
|
19
19
|
|
|
20
20
|
```css
|
|
21
21
|
.layout {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
grid-template-areas:
|
|
23
|
+
"nav main"
|
|
24
|
+
"nav footer";
|
|
25
|
+
grid-template-columns: 12rem 1fr;
|
|
26
|
+
grid-template-rows: auto auto;
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|