x
1
2
3
4
5
6
7
8
<div class="header-layout">
<header id="header">
<div>Header</div>
</header>
<main id="main">
<div>Main</div>
</main>
</div>
1
2
3
4
5
6
7
8
9
<div class="header-layout">
<header id="header">
<div>Header</div>
</header>
<main id="main">
<div>Main</div>
</main>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
.sidebar-layout {
display: grid;
grid-template-areas: "header header" "sidebar main";
grid-template-columns: var(--sidebar-width, 0) 1fr;
grid-template-rows: auto 1fr;
min-block-size: 100dvh;
max-block-size: 100dvh;
@media (width >= 48rem) {
--sidebar-border-width: var(--border);
--sidebar-padding: var(--size-2);
--sidebar-width: 220px;
}
@media (width >= 64rem) {
--sidebar-border-width: var(--border);
--sidebar-padding: var(--size-4);
--sidebar-width: 280px;
}
}
.header-layout {
display: grid;
grid-template-areas: "header" "main";
grid-template-rows: auto 1fr;
min-block-size: 100dvh;
}
.centered-layout {
display: grid;
place-items: center;
min-block-size: 100dvh;
}
.container {
inline-size: 100%;
margin-inline: auto;
max-inline-size: var(--container-width, 64rem);
}
#header {
align-items: center;
background-color: var(--color-bg);
border-block-end-width: var(--border);
block-size: var(--size-16);
display: flex;
gap: var(--size-4);
grid-area: header;
inset-block-start: 0;
padding-inline: var(--size-4);
position: sticky;
@media (width >= 64rem) {
padding-inline: var(--size-6);
}
}
#sidebar {
border-inline-end-width: var(--sidebar-border-width, 0);
display: flex;
flex-direction: column;
grid-area: sidebar;
gap: var(--size-2);
overflow-x: hidden;
padding: var(--sidebar-padding, 0);
}
#main {
display: flex;
flex-direction: column;
gap: var(--size-4);
grid-area: main;
overflow-y: auto;
padding: var(--size-4);
@media (width >= 64rem) {
gap: var(--size-6); padding: var(--size-6);
}
}
Java Script is not required or multiple files are needed, check the notes.