diff --git a/packages/logos-docusaurus-theme/src/client/css/custom.scss b/packages/logos-docusaurus-theme/src/client/css/custom.scss index d0424fd..ff15cef 100644 --- a/packages/logos-docusaurus-theme/src/client/css/custom.scss +++ b/packages/logos-docusaurus-theme/src/client/css/custom.scss @@ -334,12 +334,32 @@ small { color: rgb(var(--lsd-text-secondary)); } +.breadcrumbs__item { + opacity: 0.7; +} + +.breadcrumbs__item--active { + opacity: 1; +} + +.breadcrumbs__item:not(:last-child):after { + content: '/'; + opacity: 1; +} + +.breadcrumbs__link { + padding: 0; +} + .navbar { - padding-block: 24px; padding-inline: 0; height: 80px; } +.navbar__inner { + align-items: center; +} + .row { position: relative; } @@ -359,6 +379,34 @@ small { text-decoration-color: #fff !important; } +div.w-10 > a { + padding-left: 0; + padding-right: 16px; +} + +div.w-10 > a:not(:last-child) { + &:after { + content: '•'; + margin-left: 16px; + text-decoration: none; + display: inline-block; + } +} + +.menu__link--active { + border-left: 1px solid rgb(var(--lsd-border-primary)); + border-radius: 0; +} + +.menu__list-item-collapsible > a { + border: none !important; +} + +.table-of-contents__link--active code { + color: rgb(var(--lsd-text-secondary)) !important; + opacity: 0.7; +} + @media (max-width: 576px) { :root { --ifm-global-spacing: 0.5rem; diff --git a/packages/logos-docusaurus-theme/src/client/theme/DocBreadcrumbs/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocBreadcrumbs/index.tsx new file mode 100644 index 0000000..dcb367e --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/theme/DocBreadcrumbs/index.tsx @@ -0,0 +1,109 @@ +import React from 'react' +import clsx from 'clsx' +import { ThemeClassNames } from '@docusaurus/theme-common' +import { + useSidebarBreadcrumbs, + useHomePageRoute, +} from '@docusaurus/theme-common/internal' +import Link from '@docusaurus/Link' +import { translate } from '@docusaurus/Translate' +import HomeBreadcrumbItem from '@theme/DocBreadcrumbs/Items/Home' +import styles from './styles.module.css' +import { Typography } from '@acid-info/lsd-react' + +// TODO move to design system folder +function BreadcrumbsItemLink({ children, href, isLast }) { + const className = 'breadcrumbs__link' + if (isLast) { + return ( + + {children} + + ) + } + return href ? ( + + + {children} + + + ) : ( + // TODO Google search console doesn't like breadcrumb items without href. + // The schema doesn't seem to require `id` for each `item`, although Google + // insist to infer one, even if it's invalid. Removing `itemProp="item + // name"` for now, since I don't know how to properly fix it. + // See https://github.com/facebook/docusaurus/issues/7241 + + {children} + + ) +} + +// TODO move to design system folder +function BreadcrumbsItem({ children, active, index, addMicrodata }) { + return ( +
  • + {children} + +
  • + ) +} + +export default function DocBreadcrumbs() { + const breadcrumbs = useSidebarBreadcrumbs() + const homePageRoute = useHomePageRoute() + if (!breadcrumbs) { + return null + } + + return ( + + ) +} diff --git a/packages/logos-docusaurus-theme/src/client/theme/DocBreadcrumbs/styles.module.css b/packages/logos-docusaurus-theme/src/client/theme/DocBreadcrumbs/styles.module.css new file mode 100644 index 0000000..72da467 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/theme/DocBreadcrumbs/styles.module.css @@ -0,0 +1,4 @@ +.breadcrumbsContainer { + --ifm-breadcrumb-size-multiplier: 0.8; + margin-bottom: 0.8rem; +} diff --git a/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.css b/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.css index 0430342..f103bec 100644 --- a/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.css +++ b/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.css @@ -17,6 +17,7 @@ display: grid; grid-template-columns: repeat(14, 1fr); gap: 16px; + padding-left: 12px; /* Temporary offset */ } .toc {