mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-27 21:48:41 +02:00
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:
parent
8c693fbac9
commit
ca30adc19d
3 changed files with 31 additions and 2 deletions
|
@ -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 {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue