Skip to content

Commit 62ed769

Browse files
Small design adjustments to API page
1 parent a038dcb commit 62ed769

File tree

3 files changed

+92
-11
lines changed

3 files changed

+92
-11
lines changed

css/components/dark-mode.css

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,22 @@
421421
color: var(--color-phel-accent);
422422
}
423423

424+
.dark .api-namespace-toggle-text {
425+
color: var(--color-phel-accent);
426+
opacity: 0.8;
427+
}
428+
429+
.dark .api-namespace-toggle:hover .api-namespace-toggle-text {
430+
opacity: 1;
431+
}
432+
424433
.dark .api-namespace-icon {
425434
color: var(--color-phel-accent);
435+
opacity: 0.8;
436+
}
437+
438+
.dark .api-namespace-toggle:hover .api-namespace-icon {
439+
opacity: 1;
426440
}
427441

428442
.dark .api-namespace-toggle[aria-expanded="false"] + .api-namespace-content::after {
@@ -431,6 +445,13 @@
431445
var(--color-dark-bg) 100%);
432446
}
433447

448+
.dark .api-namespace-toggle[aria-expanded="false"] + .api-namespace-content.has-overflow {
449+
background: linear-gradient(to bottom,
450+
rgba(255, 255, 255, 0.02) 0%,
451+
rgba(255, 255, 255, 0.04) 50%,
452+
rgba(255, 255, 255, 0.05) 100%);
453+
}
454+
434455
.dark .api-namespace-toggle[aria-expanded="false"] + .api-namespace-content.has-overflow::before {
435456
background: var(--color-phel-accent);
436457
color: var(--color-dark-bg);

css/components/documentation.css

Lines changed: 65 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -232,22 +232,73 @@
232232
margin: 0;
233233
padding: 0;
234234
letter-spacing: -0.02em;
235+
line-height: 1;
236+
}
237+
238+
.api-namespace-toggle-indicator {
239+
display: none;
240+
align-items: flex-end;
241+
gap: var(--space-sm);
242+
flex-shrink: 0;
243+
}
244+
245+
/* Only show indicator when there's overflow */
246+
.api-index__entry:has(.api-namespace-content.has-overflow) .api-namespace-toggle-indicator {
247+
display: flex;
248+
}
249+
250+
.api-namespace-toggle-text {
251+
font-size: var(--text-sm);
252+
font-weight: 600;
253+
color: var(--color-phel-primary);
254+
opacity: 0.8;
255+
transition: opacity var(--duration-fast) var(--ease-out);
256+
}
257+
258+
.api-namespace-toggle:hover .api-namespace-toggle-text {
259+
opacity: 1;
260+
color: var(--color-phel-primary);
261+
}
262+
263+
/* When hovering over collapsed area, highlight the toggle text */
264+
.api-namespace-toggle[aria-expanded="false"] + .api-namespace-content.has-overflow:hover ~ .api-namespace-toggle .api-namespace-toggle-text,
265+
.api-index__entry:has(.api-namespace-content.has-overflow:hover) .api-namespace-toggle-text {
266+
opacity: 1;
267+
color: var(--color-phel-primary);
268+
}
269+
270+
/* Update text content based on state */
271+
.api-namespace-toggle[aria-expanded="true"] .api-namespace-toggle-text::before {
272+
content: "Show less";
273+
}
274+
275+
.api-namespace-toggle[aria-expanded="false"] .api-namespace-toggle-text::before {
276+
content: "Show all";
235277
}
236278

237279
.api-namespace-icon {
238280
flex-shrink: 0;
239281
color: var(--color-phel-primary);
240282
transition: transform var(--duration-normal) var(--ease-out);
241-
display: none;
283+
opacity: 0.8;
284+
width: 24px;
285+
height: 24px;
242286
}
243287

244-
/* Only show icon when there's overflow */
245-
.api-index__entry:has(.api-namespace-content.has-overflow) .api-namespace-icon {
246-
display: block;
288+
.api-namespace-toggle:hover .api-namespace-icon {
289+
opacity: 1;
290+
color: var(--color-phel-primary-hover);
291+
}
292+
293+
/* When hovering over collapsed area, highlight the icon */
294+
.api-index__entry:has(.api-namespace-content.has-overflow:hover) .api-namespace-icon {
295+
opacity: 1;
296+
color: var(--color-phel-primary-hover);
247297
}
248298

249-
.api-namespace-toggle[aria-expanded="false"] .api-namespace-icon {
250-
transform: rotate(-90deg);
299+
/* Collapsed (closed) = chevron down (V), Expanded (open) = chevron up (^) */
300+
.api-namespace-toggle[aria-expanded="true"] .api-namespace-icon {
301+
transform: rotate(180deg);
251302
}
252303

253304
.api-namespace-content {
@@ -284,6 +335,12 @@
284335
/* Make entire collapsed area clickable */
285336
.api-namespace-toggle[aria-expanded="false"] + .api-namespace-content.has-overflow {
286337
cursor: pointer;
338+
background: linear-gradient(to bottom,
339+
rgba(0, 0, 0, 0.01) 0%,
340+
rgba(0, 0, 0, 0.03) 50%,
341+
rgba(0, 0, 0, 0.04) 100%);
342+
border-radius: var(--radius-lg);
343+
width: calc(100% + var(--space-md) * 2);
287344
}
288345

289346
/* Disable pill interactions when collapsed and has overflow */
@@ -328,7 +385,7 @@
328385
box-shadow: var(--shadow-lg);
329386
opacity: 0;
330387
pointer-events: none;
331-
transition: opacity var(--duration-fast) var(--ease-out);
388+
transition: opacity var(--duration-normal) var(--ease-in);
332389
z-index: 10;
333390
}
334391

@@ -356,7 +413,7 @@
356413

357414
.api-index__entry > ul a {
358415
display: inline-block;
359-
padding: var(--space-xs) var(--space-lg);
416+
padding: var(--space-xs) var(--space-md);
360417
background: var(--color-light-bg-secondary);
361418
color: var(--color-light-text-secondary);
362419
font-size: var(--text-sm);

templates/page-api.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ <h1>{{page.title}}</h1>
1313
<li class="api-index__entry">
1414
<button class="api-namespace-toggle" aria-expanded="false">
1515
<h2 class="api-namespace-title">{{ namespace.title }}</h2>
16-
<svg class="api-namespace-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
17-
<path d="M5 7.5L10 12.5L15 7.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
18-
</svg>
16+
<div class="api-namespace-toggle-indicator">
17+
<span class="api-namespace-toggle-text"></span>
18+
<svg class="api-namespace-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
19+
<path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
20+
</svg>
21+
</div>
1922
</button>
2023
<ul class="api-namespace-content">
2124
{% for fn in namespace.children %}

0 commit comments

Comments
 (0)