diff --git a/packages/logos-docusaurus-theme/src/client/css/custom.scss b/packages/logos-docusaurus-theme/src/client/css/custom.scss index 6986362..d3edbd2 100644 --- a/packages/logos-docusaurus-theme/src/client/css/custom.scss +++ b/packages/logos-docusaurus-theme/src/client/css/custom.scss @@ -185,7 +185,7 @@ --ifm-navbar-padding-vertical: calc(var(--ifm-spacing-vertical) * 0.5); --ifm-navbar-shadow: var(--ifm-global-shadow-lw); --ifm-navbar-search-input-icon: url('data:image/svg+xml;utf8,'); - --ifm-navbar-sidebar-width: 83vw; + --ifm-navbar-sidebar-width: 100vw; --ifm-pagination-border-radius: var(--ifm-global-radius); --ifm-pagination-font-size: 1rem; --ifm-pagination-item-active-background: var(--ifm-hover-overlay); @@ -548,6 +548,27 @@ a[class^='sidebarLogo_'] { } } +.navbar-sidebar__item { + padding-inline: var(--content-padding); + padding-block: 0; +} + +.navbar-sidebar__back { + display: flex; + align-items: center; + padding: 0; + width: 100% !important; + margin: 0 !important; + gap: 16px; + margin-top: 24px !important; + margin-bottom: 24px !important; +} + +.theme-doc-sidebar-menu .menu__link { + padding-left: var(--content-padding); + padding-right: 0; +} + @include utils.responsive('sm', 'down') { :root { --ifm-global-spacing: 0.5rem; @@ -879,4 +900,35 @@ a[class^='sidebarLogo_'] { .main-wrapper { padding-inline: 0; } + + .navbar-sidebar__brand { + height: 60px; + padding-block: 0; + } + + .navbar-sidebar__brand > button { + width: 32px; + height: 32px; + } + + .navbar-sidebar__brand > button:first-of-type { + margin-right: 0 !important; + margin-left: auto; + } + + .navbar-sidebar__brand > button:not(:last-of-type) { + border-right: none; + } + + .navbar-sidebar__close { + border: 1px solid rgb(var(--lsd-border-primary)); + display: flex; + align-items: center; + justify-content: center; + margin-left: unset; + } + + .menu__list-item .menu__link { + font-size: var(--lsd-body2-fontSize); + } } diff --git a/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx index bba0b2d..e281f94 100644 --- a/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx @@ -17,7 +17,7 @@ import Link from '@docusaurus/Link' import { translate } from '@docusaurus/Translate' import useIsBrowser from '@docusaurus/useIsBrowser' import DocSidebarItems from '@theme/DocSidebarItems' -import { ArrowDownIcon, ArrowUpIcon } from '@acid-info/lsd-react' +import { ArrowDownIcon, ArrowUpIcon, Typography } from '@acid-info/lsd-react' // If we navigate to a category and it becomes active, it should automatically // expand itself @@ -165,7 +165,9 @@ export default function DocSidebarItemCategory({ href={collapsible ? hrefWithSSRFallback ?? '#' : hrefWithSSRFallback} {...props} > - {label} + + {label} + {collapsed ? : } {href && collapsible && ( diff --git a/packages/logos-docusaurus-theme/src/client/theme/Navbar/MobileSidebar/Header/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/Navbar/MobileSidebar/Header/index.tsx new file mode 100644 index 0000000..f9b4166 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/theme/Navbar/MobileSidebar/Header/index.tsx @@ -0,0 +1,35 @@ +import React from 'react' +import { useNavbarMobileSidebar } from '@docusaurus/theme-common/internal' +import { translate } from '@docusaurus/Translate' +import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle' +import NavbarLogo from '@theme/Navbar/Logo' +import { CloseIcon } from '@acid-info/lsd-react' +import SearchBar from '@theme/SearchBar' + +function CloseButton() { + const mobileSidebar = useNavbarMobileSidebar() + return ( + + ) +} +export default function NavbarMobileSidebarHeader() { + return ( +
+ + + + +
+ ) +} diff --git a/packages/logos-docusaurus-theme/src/client/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx new file mode 100644 index 0000000..69ba0e3 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx @@ -0,0 +1,37 @@ +import React from 'react' +import { useThemeConfig } from '@docusaurus/theme-common' +import { useNavbarSecondaryMenu } from '@docusaurus/theme-common/internal' +import Translate from '@docusaurus/Translate' +import { Typography } from '@acid-info/lsd-react' +import { IconArrowLeft } from '@logos-theme/components/Icon' + +function SecondaryMenuBackButton(props) { + return ( + + ) +} +// The secondary menu slides from the right and shows contextual information +// such as the docs sidebar +export default function NavbarMobileSidebarSecondaryMenu() { + const isPrimaryMenuEmpty = useThemeConfig().navbar.items.length === 0 + const secondaryMenu = useNavbarSecondaryMenu() + return ( + <> + {/* edge-case: prevent returning to the primaryMenu when it's empty */} + {!isPrimaryMenuEmpty && ( + secondaryMenu.hide()} /> + )} + {secondaryMenu.content} + + ) +}