Skip to content

Commit d00729d

Browse files
Add collapse back to nav subsections and increase ToC height (#69)
* make ToC height larger, add collapse to sub sections in main nav * fix the collapse animation * implementing nav feedback, chevrons to right * remove gap between top level nav items * use an optional partial for the logo url
1 parent d392d64 commit d00729d

File tree

5 files changed

+25
-41
lines changed

5 files changed

+25
-41
lines changed

src/css/components/collapse.css

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
@layer components {
2-
.collapse:not(td):not(tr):not(colgroup) {
3-
@apply visible;
2+
.collapse {
3+
@apply !visible grid;
44
}
55

6-
.collapse {
7-
@apply relative grid overflow-hidden;
6+
.collapse > .collapse-content {
7+
@apply relative col-start-1 row-start-2 grid min-h-0;
88

9-
grid-template-rows: auto 0fr;
9+
grid-template-rows: 0fr;
1010
transition: grid-template-rows 0.2s;
1111
}
1212

13+
.collapse > .collapse-content > * {
14+
@apply overflow-hidden;
15+
}
16+
1317
.collapse-title,
1418
.collapse > input[type="checkbox"],
15-
.collapse > input[type="radio"],
16-
.collapse-content {
19+
.collapse > input[type="radio"] {
1720
@apply col-start-1 row-start-1;
1821
}
1922

@@ -22,28 +25,8 @@
2225
@apply cursor-pointer appearance-none opacity-0;
2326
}
2427

25-
.collapse-content {
26-
@apply invisible col-start-1 row-start-2 min-h-0;
27-
28-
transition: visibility 0.2s;
29-
}
30-
31-
.collapse[open],
32-
.collapse-open,
33-
.collapse:focus:not(.collapse-close) {
34-
grid-template-rows: auto 1fr;
35-
}
36-
37-
.collapse:not(.collapse-close):has(> input[type="checkbox"]:checked),
38-
.collapse:not(.collapse-close):has(> input[type="radio"]:checked) {
39-
grid-template-rows: auto 1fr;
40-
}
41-
42-
.collapse[open] > .collapse-content,
43-
.collapse-open > .collapse-content,
44-
.collapse:focus:not(.collapse-close) > .collapse-content,
45-
.collapse:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-content,
46-
.collapse:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-content {
47-
@apply visible min-h-fit;
28+
.collapse > input[type="checkbox"]:checked ~ .collapse-content,
29+
.collapse > input[type="radio"]:checked ~ .collapse-content {
30+
grid-template-rows: 1fr;
4831
}
4932
}

src/partials/nav-tree.hbs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,29 @@
11
{{#if navigation.length}}
2-
<ul{{#if (greater (or ./level 0) 1)}} class="ml-3 pl-2 border-l"{{/if}}>
2+
<ul>
33
{{#each navigation}}
44
{{#if ./content}}
5-
{{#if (and (eq (or ../level 0) 0) ./items.length)}}
5+
{{#if ./items.length}}
66
<li class="collapse" data-depth="{{or ../level 0}}">
77
<input type="checkbox" class="peer z-10" {{#if (navTreeContainsUrl ./items @root.page.url)}} checked{{/if}} />
8-
<div class="collapse-title inline-block text-overline py-2 peer-checked:[&_i]:rotate-90">
9-
<i class="block float-left mr-1 material-icons transition-transform">chevron_right</i>
8+
<div class="collapse-title rounded flex items-start py-1 px-2 peer-checked:[&_i]:rotate-180 peer-hover:bg-level2{{#if (greater (or ../level 0) 0)}} text-caption{{else}} text-overline py-2{{/if}}">
109
{{{./content}}}
10+
<i class="material-icons text-lg text-tertiary transition-transform ml-[0.15em]">expand_more</i>
1111
</div>
12-
<div class="collapse-content ml-2 pl-2 border-l">
12+
<div class="collapse-content ml-3 pl-2 border-l">
1313
{{> nav-tree navigation=./items level=(increment ../level)}}
1414
</div>
1515
</li>
1616
{{else}}
1717
<li data-depth="{{or ../level 0}}">
1818
{{#if ./url}}
1919
<a class="flex rounded !no-underline text-body-small text-primary py-1 px-2 hover:bg-level2
20+
{{~#if (greater (or ../level 0) 1)}} text-tertiary{{~/if}}
2021
{{~#if (eq ./url @root.page.url)}} text-link font-semibold{{~/if}}"
2122
href="{{~#if (eq ./urlType 'internal')}}{{{relativize ./url}}}{{~else}}{{{./url}}}{{~/if}}">
2223
{{{./content}}}
2324
</a>
2425
{{else}}
25-
<span class="flex rounded text-overline text-tertiary py-1 px-2">
26+
<span class="flex rounded text-body-small text-tertiary py-1 px-2">
2627
{{{./content}}}
2728
</span>
2829
{{/if}}

src/partials/nav.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{{#with page.navigation}}
2-
<nav id="side-nav" class="h-full bg-level1 overflow-y-auto flex flex-col w-[17rem] p-2"
2+
<nav id="side-nav" class="h-full bg-level1 overflow-y-scroll flex flex-col w-[18.5rem] py-4 px-2"
33
{{#if page.component}} data-component="{{page.component.name}}"
44
data-version="{{page.version}}" {{/if}}>
55
{{> nav-tree navigation=this}}

src/partials/navbar.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<nav
2-
class="bg-body fixed top-0 z-40 flex h-20 w-[100vw] flex-auto items-center gap-2 lg:gap-4 border-b px-3 lg:px-6"
2+
class="bg-body fixed top-0 z-40 flex h-20 w-[100vw] flex-auto items-center gap-2 lg:gap-4 border-b px-4"
33
>
44
<label
55
for="nav-drawer-input"
66
class="btn btn-neutral btn-plain btn-icon drawer-button lg:hidden"
77
>
88
<i class="icon material-icons">menu_open</i>
99
</label>
10-
<a href="{{{or site.url siteRootPath}}}">
10+
<a href="{{#> logo-url}}{{{or site.url siteRootPath}}}{{/logo-url}}">
1111
{{> logo}}
1212
</a>
1313
<div class="DocSearch" id="docsearch"></div>

src/partials/toc.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{{#unless (or (eq page.layout 'full') (eq page.layout 'landing'))}}
22
<aside
3-
class="toc sidebar peer overflow-y-auto sticky top-[10rem] hidden h-[calc(100vh-24rem)] w-[20rem] xl:flex xl:flex-col xl:col-start-2"
3+
class="toc sidebar peer sticky top-[6rem] hidden h-[calc(100vh-10rem)] mb-[14rem] w-[20rem] xl:flex xl:flex-col xl:col-start-2"
44
data-title="{{{or page.attributes.toctitle 'Contents'}}}"
55
data-levels="{{{or page.attributes.toclevels 2}}}"
66
>
7-
<div class="toc-menu-container">
7+
<div class="toc-menu-container overflow-y-auto">
88
<div class="toc-menu"></div>
99
{{#if page.attributes.tags}}
1010
<h3 class="!my-2 text-h3">Tags</h3>

0 commit comments

Comments
 (0)