테마 설정
이 설정은 모든 메인 테마에 적용됩니다.
공통
컬러 모드
클래식 테마는 메뉴바에서 밝은 모드와 어두운 모드를 선택할 수 있는 기능을 기본으로 지원합니다.
colorMode
오브젝트 내에서 사용자 지정 컬러 모드를 설정할 수 있습니다.
설정할 수 있는 필드
옵션명 | 타입 | 기본값 | 설명 |
---|---|---|---|
defaultMode | 'light' | 'dark' | 'light' | 사용자가 사이트를 처음 방문할 때 컬러 모드입니다. |
disableSwitch | boolean | false | 메뉴바에서 스위치를 숨깁니다. 하나의 컬러 모드만 지원하기 원하는 경우 유용합니다. |
respectPrefersColorScheme | boolean | false | 직접 설정한 defaultMode 대신 사용자 시스템 기본 설정을 사용해 prefers-color-scheme 미디어 쿼리를 사용할지 여부 |
설정 예시:
module.exports = {
themeConfig: {
colorMode: {
defaultMode: 'light',
disableSwitch: false,
respectPrefersColorScheme: false,
},
},
};
respectPrefersColorScheme: true
로 설정한 경우 defaultMode
설정값은 사용자 시스템 환경 설정에 따라 재정의됩니다.
하나의 색상 모드만 지원하려면 사용자 시스템 환경 설정에 영향을 받지 않게 해야 합니다.
메타 정보 이미지
og:image
나 twitter:image
처럼 메타 태그에서 사용할 기본 이미지를 설정합니다.
설정할 수 있는 필드
옵션명 | 타입 | 기본값 | 설명 |
---|---|---|---|
image | string | undefined | 사이트의 메타 이미지 URL입니다. 사이트 "정적" 디렉터리에 상대 경로로 설정합니다. SVG 파일은 설정할 수 없습니다. 외부 URL은 사용할 수 있습니다. |
설정 예시:
module.exports = {
themeConfig: {
image: 'img/docusaurus.png',
},
};
메타데이터
HTML 메타 데이터를 추가하거나 (기존 항목을 재정의할 수 있습니다).
설정할 수 있는 필드
옵션명 | 타입 | 기본값 | 설명 |
---|---|---|---|
metadata | Metadata[] | [] | 모든 필드는 <meta /> 태그로 직접 전달됩니다. 사용할 수 있는 필드는 id , name , property , content , itemprop 등이 있습니다. |
설정 예시:
module.exports = {
themeConfig: {
metadata: [{name: 'twitter:card', content: 'summary'}],
},
};
알림표시줄
웹 사이트에서 공지할 내용이 생길 수 있습니다. 그런 경우 알림표시줄을 추가할 수 있습니다. 메뉴바 위에 고정되지 않고 선택적으로 사용자가 닫을 수 있는 패널이 표시됩니다. 모든 설정은 announcementBar
오브젝트에서 처리합니다.
설정할 수 있는 필드
옵션명 | 타입 | 기본값 | 설명 |
---|---|---|---|
id | string | 'announcement-bar' | 메시지를 식별하는 모든 값입니다. |
content | string | '' | 알리고자 하는 텍스트 콘텐츠입니다. HTML을 삽입할 수 있습니다. |
backgroundColor | string | '#fff' | 알림표시줄 영역 배경색 입니다. |
textColor | string | '#000' | 알림메시지 텍스트 색상입니다. |
isCloseable | boolean | true | 알림메시지를 'x' 버튼으로 닫을 수 있는지 여부 |
설정 예시:
module.exports = {
themeConfig: {
announcementBar: {
id: 'support_us',
content:
'We are looking to revamp our docs, please fill <a target="_blank" rel="noopener noreferrer" href="#">this survey</a>',
backgroundColor: '#fafbfc',
textColor: '#091E42',
isCloseable: false,
},
},
};
메뉴바
설정할 수 있는 필드
옵션명 | 타입 | 기본값 | 설명 |
---|---|---|---|
title | string | undefined | 메뉴바 제목 |
logo | 아래를 참조하세요. | undefined | 로고 오브젝트 사용자 지정 |
items | NavbarItem[] | [] | 메뉴바 아이템 목록입니다. 상세한 내용은 아래 내용을 참고하세요. |
hideOnScroll | boolean | false | 사용자가 아래로 스크롤할 때 메뉴바를 숨길지 여부입니다. |
style | 'primary' | 'dark' | theme와 같음 | 어두운/밝은 테마 설정을 무시하고 메뉴바 스타일을 설정합니다. |
메뉴바 로고
로고는 static 디렉터리에 가져다 놓을 수 있습니다. 로고 URL은 기본적으로 여러분의 사이트 기본 URL이 설정됩니다. 로고 URL을 따로 설정할 수는 있지만 외부 링크인 경우에는 새로운 탭에서 열리게 됩니다. 또한 로고 링크의 target 속성값을 재정의할 수 있습니다. 메인 웹 사이트의 하위 디렉터리에서 문서 웹 사이트를 서비스하는 경우에 유용한 기능입니다. 이런 경우 메인 웹 사이트를 새로운 탭에서 열어주는 로고 링크가 필요하지 않을 수도 있습니다.
어두운 모드 지원을 위해 모드마다 다른 로고를 설정할 수도 있습니다.
설정할 수 있는 필드
옵션명 | 타입 | 기본값 | 설명 |
---|---|---|---|
alt | string | undefined | 로고 이미지의 Alt 태그입니다. |
src | string | 필수 | 로고 이미지의 URL입니다. 기본적으로 기본 URL이 추가됩니다. |
srcDark | string | logo.src | 어두운 모드에서 사용할 대체 이미지 URL입니다. |
href | string | siteConfig.baseUrl | 로고 클릭 시 이동할 링크입니다. |
width | string | number | undefined | width 속성을 설정합니다. |
height | string | number | undefined | height 속성을 설정합니다. |
target | string | href 값에 따라 처리합니다(외부 링크는 새 탭으로 열리고 다른 모든 링크는 현재 탭에서 열립니다). | 링크의 target 속성입니다. 링크가 새 탭에서 열릴지 현재 탭에서 열릴지 여부를 설정합니다. |
className | string | undefined | 이미지에 적용된 CSS 클래스 |
style | object | undefined | CSS 인라인 스타일 오브젝트. 리액트/JSX에서는 카멜표기법을 선호합니다. |
설정 예시:
module.exports = {
themeConfig: {
navbar: {
title: 'Site Title',
logo: {
alt: 'Site Logo',
src: 'img/logo.svg',
srcDark: 'img/logo_dark.svg',
href: 'https://docusaurus.io/',
target: '_self',
width: 32,
height: 32,
className: 'custom-navbar-logo-class',
style: {border: 'solid red'},
},
},
},
};
메뉴바 아이템
themeConfig.navbar.items
설정에서 메뉴바에 아이템을 추가할 수 있습니다.
module.exports = {
themeConfig: {
navbar: {
items: [
{
type: 'doc',
position: 'left',
docId: 'introduction',
label: 'Docs',
},
{to: 'blog', label: 'Blog', position: 'left'},
{
type: 'docsVersionDropdown',
position: 'right',
},
{
type: 'localeDropdown',
position: 'right',
},
{
href: 'https://github.com/facebook/docusaurus',
position: 'right',
className: 'header-github-link',
'aria-label': 'GitHub repository',
},
],
},
},
};
아이템은 type
필드에 따라 다르게 동작할 수 있습니다. 사용할 수 있는 모든 유형의 메뉴바 아이템을 아래에 소개합니다.