diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js index d7c5d066ece2..5db5e854c625 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js @@ -49,9 +49,12 @@ function NavLink({activeBasePath, to, href, label, position, ...props}) { ); } -function NavItem({items, position, ...props}) { +function NavItem({items, position, className, ...props}) { + const navLinkClassNames = (extraClassName) => + classnames('navbar__item', 'navbar__link', extraClassName); + if (!items) { - return ; + return ; } return ( @@ -60,44 +63,56 @@ function NavItem({items, position, ...props}) { 'dropdown--left': position === 'left', 'dropdown--right': position === 'right', })}> - + {props.label}
    - {items.map((linkItemInner, i) => ( -
  • - -
  • - ))} + {items.map( + ({className: childItemClassName, ...linkItemInnerProps}, i) => ( +
  • + +
  • + ), + )}
); } -function MobileNavItem({items, ...props}) { +function MobileNavItem({items, className, ...props}) { + const navLinkClassNames = (extraClassName, isSubList = false) => + classnames('menu__link', extraClassName, { + 'menu__link--sublist': isSubList, + }); + if (!items) { return (
  • - +
  • ); } return (
  • - + {props.label}
      - {items.map((linkItemInner, i) => ( -
    • - -
    • - ))} + {items.map( + ({className: childItemClassName, ...linkItemInnerProps}, i) => ( +
    • + +
    • + ), + )}
  • ); diff --git a/website/docs/theme-classic.md b/website/docs/theme-classic.md index c6d4ce8afbb8..a77816c8920a 100644 --- a/website/docs/theme-classic.md +++ b/website/docs/theme-classic.md @@ -138,6 +138,7 @@ module.exports = { // To apply the active class styling on all // routes starting with this path. activeBasePath: 'docs', + className: '', // Custom CSS class (for styling any item) }, // ... other links ], diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 1e76f8504084..bcbba5488fab 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -120,8 +120,8 @@ module.exports = { }, { href: 'https://github.com/facebook/docusaurus', - label: 'GitHub', position: 'right', + className: 'header-github-link', }, ], }, diff --git a/website/src/css/custom.css b/website/src/css/custom.css index b45ea0a3a234..433ae3f52335 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -35,3 +35,21 @@ html[data-theme='dark'] .docusaurus-highlight-code-line { .navbar__item.dropdown > .navbar__link { pointer-events: none; } + +.header-github-link:hover { + opacity: 0.6; +} + +.header-github-link:before { + content: ''; + width: 24px; + height: 24px; + display: flex; + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + no-repeat; +} + +html[data-theme='dark'] .header-github-link:before { + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + no-repeat; +}