feat(v2): add logo and title in doc sidebar (#2161)

* feat(v2): add logo and title in doc sidebar

* fix: hide sidebar logo on small screens
This commit is contained in:
Alexey Pyltsyn 2019-12-30 16:06:12 +03:00 committed by Yangshun Tay
parent 8c693fbac9
commit ca30adc19d
3 changed files with 31 additions and 2 deletions

View file

@ -13,6 +13,8 @@
border-right: 1px solid var(--ifm-contents-border-color); border-right: 1px solid var(--ifm-contents-border-color);
box-sizing: border-box; box-sizing: border-box;
width: 300px; width: 300px;
position: relative;
top: calc(-1 * var(--ifm-navbar-height));
} }
.docMainContainer { .docMainContainer {

View file

@ -7,7 +7,8 @@
import React, {useState, useCallback} from 'react'; import React, {useState, useCallback} from 'react';
import classnames from 'classnames'; import classnames from 'classnames';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import useBaseUrl from '@docusaurus/useBaseUrl';
import Link from '@docusaurus/Link'; import Link from '@docusaurus/Link';
import styles from './styles.module.css'; import styles from './styles.module.css';
@ -104,6 +105,10 @@ function mutateSidebarCollapsingState(item, location) {
function DocSidebar(props) { function DocSidebar(props) {
const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false); const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false);
const {
siteConfig: {themeConfig: {navbar: {title, logo = {}} = {}}} = {},
} = useDocusaurusContext();
const logoUrl = useBaseUrl(logo.src);
const { const {
docsSidebars, docsSidebars,
@ -132,6 +137,10 @@ function DocSidebar(props) {
return ( return (
<div className={styles.sidebar}> <div className={styles.sidebar}>
<div className={styles.sidebarLogo}>
{logo != null && <img src={logoUrl} alt={logo.alt} />}
{title != null && <strong>{title}</strong>}
</div>
<div <div
className={classnames('menu', 'menu--responsive', { className={classnames('menu', 'menu--responsive', {
'menu--show': showResponsiveSidebar, 'menu--show': showResponsiveSidebar,

View file

@ -11,7 +11,8 @@
overflow-y: auto; overflow-y: auto;
padding: 0.5rem; padding: 0.5rem;
position: sticky; position: sticky;
top: var(--ifm-navbar-height); top: 0;
padding-top: var(--ifm-navbar-height);
} }
.sidebar::-webkit-scrollbar { .sidebar::-webkit-scrollbar {
@ -31,6 +32,23 @@
.sidebar::-webkit-scrollbar-thumb:hover { .sidebar::-webkit-scrollbar-thumb:hover {
background: #555; background: #555;
} }
.sidebarLogo {
display: flex !important;
align-items: center;
position: absolute;
top: var(--ifm-navbar-padding-horizontal);
padding: 0 0 0 var(--ifm-navbar-padding-vertical);
}
.sidebarLogo img {
margin-right: 0.5rem;
height: 2rem;
}
}
.sidebarLogo {
display: none;
} }
.sidebarMenuIcon { .sidebarMenuIcon {