main
css 297 lines 6.46 KB
Raw
1 .site-header {
2 position: sticky;
3 inset-block-start: 0;
4 z-index: var(--z-header);
5 border-bottom: var(--size-border-thin) solid var(--color-border);
6 background: var(--color-surface);
7 }
8
9 .header-nav {
10 display: flex;
11 align-items: center;
12 justify-content: space-between;
13 min-height: var(--size-header-height);
14 max-width: calc(var(--nav-width) + var(--gap) * 2);
15 margin: auto;
16 padding: 0 var(--gap);
17 gap: var(--space-3);
18 }
19
20 .site-brand,
21 .site-header__cluster,
22 .site-actions,
23 .icon-button,
24 .site-menu__toggle {
25 display: inline-flex;
26 align-items: center;
27 }
28
29 .site-brand {
30 gap: var(--space-2);
31 color: var(--color-text);
32 font-family: var(--font-display);
33 font-size: var(--text-xl);
34 font-weight: 700;
35 letter-spacing: var(--tracking-tight);
36 white-space: nowrap;
37 }
38
39 .site-brand__mark {
40 display: inline-flex;
41 justify-content: center;
42 align-items: center;
43 width: var(--size-logo-mark);
44 height: var(--size-logo-mark);
45 padding: 0.125rem;
46 border: var(--size-border-thin) solid var(--color-border);
47 border-radius: var(--radius-md);
48 background: var(--color-accent-muted);
49 color: var(--color-accent);
50 }
51
52 .site-brand__mark img {
53 width: 100%;
54 height: 100%;
55 border-radius: calc(var(--radius-md) - 2px);
56 object-fit: cover;
57 }
58
59 .site-header__cluster {
60 gap: var(--space-3);
61 }
62
63 .site-menu {
64 display: none;
65 position: relative;
66 }
67
68 .site-menu__toggle {
69 display: none;
70 gap: var(--space-2);
71 min-height: calc(var(--space-5) + var(--space-2));
72 padding: 0 var(--space-3);
73 border: var(--size-border-thin) solid var(--color-border);
74 border-radius: var(--radius-full);
75 background: var(--color-surface);
76 color: var(--color-text);
77 cursor: pointer;
78 font: inherit;
79 font-size: var(--text-sm);
80 font-weight: 600;
81 }
82
83 .site-menu__toggle::marker,
84 .site-menu__toggle::-webkit-details-marker {
85 display: none;
86 }
87
88 .site-menu__toggle-icon,
89 .site-menu__toggle-icon::before,
90 .site-menu__toggle-icon::after {
91 display: block;
92 width: var(--size-icon-sm);
93 height: var(--size-focus-ring);
94 border-radius: var(--radius-full);
95 background: currentColor;
96 }
97
98 .site-menu__toggle-icon {
99 position: relative;
100 }
101
102 .site-menu__toggle-icon::before,
103 .site-menu__toggle-icon::after {
104 content: "";
105 position: absolute;
106 inset-inline-start: 0;
107 }
108
109 .site-menu__toggle-icon::before {
110 inset-block-start: calc(var(--space-1) * -1.5);
111 }
112
113 .site-menu__toggle-icon::after {
114 inset-block-start: calc(var(--space-1) * 1.5);
115 }
116
117 .menu {
118 display: flex;
119 align-items: center;
120 gap: var(--space-3);
121 margin: 0;
122 list-style: none;
123 white-space: nowrap;
124 }
125
126 .menu a {
127 display: inline-flex;
128 align-items: center;
129 min-height: var(--size-header-height);
130 border-bottom: var(--size-focus-ring) solid transparent;
131 color: var(--color-text-muted);
132 font-size: var(--text-sm);
133 font-weight: 600;
134 letter-spacing: var(--tracking-nav);
135 }
136
137 .menu a:hover,
138 .menu a:focus-visible,
139 .menu a[aria-current="page"] {
140 color: var(--color-text);
141 }
142
143 .menu a[aria-current="page"] {
144 border-bottom-color: var(--color-accent);
145 }
146
147 .site-actions {
148 gap: var(--space-2);
149 }
150
151 .icon-button {
152 justify-content: center;
153 width: calc(var(--space-5) + var(--space-2));
154 height: calc(var(--space-5) + var(--space-2));
155 border: var(--size-border-thin) solid var(--color-border);
156 border-radius: var(--radius-full);
157 background: var(--color-surface);
158 color: var(--color-text-muted);
159 cursor: pointer;
160 }
161
162 .icon-button:hover,
163 .icon-button:focus-visible {
164 color: var(--color-text);
165 border-color: var(--color-accent);
166 }
167
168 .icon-button svg {
169 width: var(--size-icon-md);
170 height: var(--size-icon-md);
171 }
172
173 [data-theme="dark"] .moon,
174 :root:not([data-theme]) .sun {
175 display: none;
176 }
177
178 [data-theme="light"] .sun {
179 display: none;
180 }
181
182 [data-theme="dark"] .sun {
183 display: block;
184 }
185
186 @media (max-width: 56rem) {
187 .header-nav {
188 align-items: center;
189 }
190
191 .site-brand__text {
192 font-size: var(--text-lg);
193 }
194
195 .site-header__cluster {
196 gap: var(--space-2);
197 }
198
199 .menu--desktop {
200 display: none;
201 }
202
203 .site-menu {
204 display: block;
205 order: 2;
206 }
207
208 .site-menu__toggle {
209 display: inline-flex;
210 }
211
212 .site-menu__toggle-text {
213 display: none;
214 }
215
216 .site-menu:not([open]) .menu {
217 display: none;
218 }
219
220 .site-menu[open] .menu {
221 position: absolute;
222 inset-block-start: calc(100% + var(--space-2));
223 inset-inline-end: 0;
224 display: grid;
225 min-width: calc(var(--space-16) * 1.5);
226 padding: var(--space-2);
227 border: var(--size-border-thin) solid var(--color-border);
228 border-radius: var(--radius-lg);
229 background: var(--color-surface);
230 box-shadow: var(--shadow-lg);
231 white-space: normal;
232 }
233
234 .menu a {
235 width: 100%;
236 min-height: auto;
237 padding: var(--space-2) var(--space-3);
238 border-bottom: 0;
239 border-inline-start: var(--size-focus-ring) solid transparent;
240 border-radius: var(--radius-md);
241 }
242
243 .menu a[aria-current="page"] {
244 border-inline-start-color: var(--color-accent);
245 background: var(--color-accent-muted);
246 }
247 }
248
249 .topic-shortcuts {
250 display: flex;
251 flex-wrap: wrap;
252 align-items: center;
253 gap: var(--space-2);
254 max-width: calc(var(--nav-width) + var(--gap) * 2);
255 margin: 0 auto;
256 padding: var(--space-2) var(--gap);
257 border-top: var(--size-border-thin) solid var(--color-border);
258 color: var(--color-text-muted);
259 font-size: var(--text-sm);
260 }
261
262 .topic-shortcuts__label {
263 letter-spacing: 0.04em;
264 text-transform: uppercase;
265 }
266
267 .topic-shortcuts a {
268 display: inline-flex;
269 align-items: center;
270 min-height: calc(var(--space-4) + var(--space-1));
271 padding: 0 var(--space-2);
272 border: var(--size-border-thin) solid var(--color-border);
273 border-radius: var(--radius-full);
274 background: var(--color-bg);
275 color: var(--color-text);
276 font-weight: 700;
277 text-decoration: none;
278 }
279
280 .topic-shortcuts a:hover,
281 .topic-shortcuts a:focus-visible {
282 border-color: var(--color-accent);
283 color: var(--color-accent);
284 }
285
286 .topic-shortcuts__utility {
287 background: var(--color-accent-muted) !important;
288 color: var(--color-accent) !important;
289 }
290
291 @media (max-width: 56rem) {
292 .topic-shortcuts {
293 overflow-x: auto;
294 flex-wrap: nowrap;
295 padding-block: var(--space-2);
296 }
297 }