diff options
Diffstat (limited to '_sass/navbar.css')
-rw-r--r-- | _sass/navbar.css | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/_sass/navbar.css b/_sass/navbar.css new file mode 100644 index 0000000..10933a0 --- /dev/null +++ b/_sass/navbar.css @@ -0,0 +1,196 @@ +.navbarItem .inner { + background-color: var(--bg-alt); + color: var(--fg); + + padding: 8px; + border-radius: 8px; + + transition-property: background-color, color; + transition-duration: .15s; + + position: relative; + + display: flex; + gap: 8px; + align-items: center; +} + +.navbarItem { + text-decoration: none; + display: block; +} + +.navbarItem .icon { display: inline-block; } + +.navbarItem.indentLevel0 { margin-bottom: 12px; } + +.navbarItem.active .inner, +.navbarItem.link:hover .inner { + background-color: var(--fg-alt); + color: var(--bg-alt); +} + +.navbarItem.chapter .inner, +.navbarItem.pinned .inner { + background-color: transparent; + color: var(--fg); + + padding: 4px 0; + overflow: visible; +} + +.navbarItem.pinned .inner .title { + margin: 0; + font-style: italic; + opacity: .8; + color: var(--fg-alt) +} +.navbarItem.pinned * { cursor: default !important; } + +.navbarItem .title { + display: inline-block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.navbarItem.chapter .title { margin-top: 1px; } + +.navbarItem.chapter .chapterChildren { + transition-property: height; + transition-duration: .3s; + + overflow: hidden; +} + +.navbarItem.chapter.childrenCollapsed > .chapterChildren { height: 0; } +.navbarItem.chapter > .chapterChildren { height: var(--children-height); } + +.navbarItem .inner, +.navbarItem .icon, +.navbarItem .icon .collapseIcon { + height: 24px; +} + +.navbarItem > div > svg { vertical-align: super; } + +@media (prefers-color-scheme: light) { + .navbarItem.active .inner, + .navbarItem.link:hover .inner { + background-color: var(--fg); + } + + .navbarItem.pinned .inner .title { + opacity: .6; + color: var(--fg-alt); + } +} + +.mobileNav { + width: 48px; + text-align: center; + line-height: 0; +} + +.mobileNav .button:last-child { + margin-bottom: 0; +} + +.mobileNav .button { + padding: 12px; + display: inline-block !important; + min-width: 0; + border-radius: 24px; + margin: 0; + box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 25%); + + width: 24px; + height: 24px; + position: relative; +} + +.mobileNav .button > svg { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + fill: currentColor !important; +} + +.mobileNav .button.small { + padding: 6px; + margin-bottom: 12px; + + opacity: 0; + transition: opacity .3s; +} + +.mobileNav.open .button.small { + opacity: 1; +} + +.chapterChildren > ul { padding-left: 0 !important; } +.chapterChildren ul { padding-left: 12px; } + +.chapterChildren li, +.chapterChildren summary { + margin: 4px 0; +} + +.chapterChildren ul, +.chapterChildren summary { + list-style: none; +} + +.chapterChildren li, +.chapterChildren summary { + min-height: 24px; + padding-left: 32px; + position: relative; + display: flex; + align-items: center; +} + +.chapterChildren li.stub { + padding-left: 0; + margin: 0; +} +.chapterChildren li.stub::before { + display: none; +} + +.chapterChildren summary { + cursor: pointer; +} + +.chapterChildren li::before, +.chapterChildren summary::before { + content: ""; + position: absolute; + width: 24px; + height: 24px; + left: 0; + top: 0; + background-color: var(--fg); +} + +.chapterChildren details > summary::before { + transform: rotate(-90deg); + transition-property: transform; + transition-duration: .3s; +} +.chapterChildren details[open] > summary::before { + transform: rotate(0deg); +} + +.chapterChildren details summary::before { + clip-path: path('M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7a.9959.9959 0 010-1.41c.39-.38 1.03-.39 1.42 0z'); +} +.chapterChildren li::before { + clip-path: path('M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z'); +} + +.chapterChildren a { + color: var(--fg); + text-decoration: none; + user-select: none; +} |