Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
316 lines
5.1 KiB
Markdown
316 lines
5.1 KiB
Markdown
---
|
|
name: vitepress-theme-configuration
|
|
description: Default theme configuration for navigation, sidebar, search, social links, and footer
|
|
---
|
|
|
|
# Theme Configuration
|
|
|
|
Configure the default theme via `themeConfig` in your VitePress config.
|
|
|
|
## Navigation
|
|
|
|
```ts
|
|
export default {
|
|
themeConfig: {
|
|
// Site title in nav (overrides config.title)
|
|
siteTitle: 'My Docs',
|
|
siteTitle: false, // Hide title
|
|
|
|
// Logo
|
|
logo: '/logo.svg',
|
|
logo: { light: '/light-logo.svg', dark: '/dark-logo.svg', alt: 'Logo' },
|
|
|
|
// Nav links
|
|
nav: [
|
|
{ text: 'Guide', link: '/guide/' },
|
|
{ text: 'API', link: '/api/' },
|
|
{ text: 'GitHub', link: 'https://github.com/...' }
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Dropdown Menu
|
|
|
|
```ts
|
|
nav: [
|
|
{
|
|
text: 'Dropdown',
|
|
items: [
|
|
{ text: 'Item A', link: '/item-a' },
|
|
{ text: 'Item B', link: '/item-b' }
|
|
]
|
|
},
|
|
// With sections
|
|
{
|
|
text: 'Versions',
|
|
items: [
|
|
{
|
|
text: 'v2.x',
|
|
items: [
|
|
{ text: 'v2.0', link: '/v2/' },
|
|
{ text: 'v2.1', link: '/v2.1/' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
```
|
|
|
|
### Active Match
|
|
|
|
Control when nav item shows as active:
|
|
|
|
```ts
|
|
nav: [
|
|
{
|
|
text: 'Guide',
|
|
link: '/guide/',
|
|
activeMatch: '/guide/' // Regex pattern
|
|
}
|
|
]
|
|
```
|
|
|
|
## Sidebar
|
|
|
|
### Simple Sidebar
|
|
|
|
```ts
|
|
sidebar: [
|
|
{
|
|
text: 'Guide',
|
|
items: [
|
|
{ text: 'Introduction', link: '/guide/' },
|
|
{ text: 'Getting Started', link: '/guide/getting-started' }
|
|
]
|
|
}
|
|
]
|
|
```
|
|
|
|
### Multiple Sidebars
|
|
|
|
Different sidebar per section:
|
|
|
|
```ts
|
|
sidebar: {
|
|
'/guide/': [
|
|
{
|
|
text: 'Guide',
|
|
items: [
|
|
{ text: 'Introduction', link: '/guide/' },
|
|
{ text: 'Getting Started', link: '/guide/getting-started' }
|
|
]
|
|
}
|
|
],
|
|
'/api/': [
|
|
{
|
|
text: 'API Reference',
|
|
items: [
|
|
{ text: 'Config', link: '/api/config' },
|
|
{ text: 'Methods', link: '/api/methods' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Collapsible Groups
|
|
|
|
```ts
|
|
sidebar: [
|
|
{
|
|
text: 'Section A',
|
|
collapsed: false, // Open by default, can collapse
|
|
items: [...]
|
|
},
|
|
{
|
|
text: 'Section B',
|
|
collapsed: true, // Collapsed by default
|
|
items: [...]
|
|
}
|
|
]
|
|
```
|
|
|
|
### Base Path
|
|
|
|
Simplify links with common base:
|
|
|
|
```ts
|
|
sidebar: {
|
|
'/guide/': {
|
|
base: '/guide/',
|
|
items: [
|
|
{ text: 'Intro', link: 'intro' }, // /guide/intro
|
|
{ text: 'Setup', link: 'getting-started' } // /guide/getting-started
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Search
|
|
|
|
### Local Search
|
|
|
|
```ts
|
|
themeConfig: {
|
|
search: {
|
|
provider: 'local'
|
|
}
|
|
}
|
|
```
|
|
|
|
With options:
|
|
|
|
```ts
|
|
search: {
|
|
provider: 'local',
|
|
options: {
|
|
miniSearch: {
|
|
searchOptions: {
|
|
fuzzy: 0.2,
|
|
prefix: true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Algolia DocSearch
|
|
|
|
```ts
|
|
search: {
|
|
provider: 'algolia',
|
|
options: {
|
|
appId: 'YOUR_APP_ID',
|
|
apiKey: 'YOUR_API_KEY',
|
|
indexName: 'YOUR_INDEX_NAME'
|
|
}
|
|
}
|
|
```
|
|
|
|
## Social Links
|
|
|
|
```ts
|
|
socialLinks: [
|
|
{ icon: 'github', link: 'https://github.com/...' },
|
|
{ icon: 'twitter', link: 'https://twitter.com/...' },
|
|
{ icon: 'discord', link: 'https://discord.gg/...' },
|
|
// Custom SVG
|
|
{
|
|
icon: { svg: '<svg>...</svg>' },
|
|
link: 'https://...',
|
|
ariaLabel: 'Custom Link'
|
|
}
|
|
]
|
|
```
|
|
|
|
## Footer
|
|
|
|
```ts
|
|
footer: {
|
|
message: 'Released under the MIT License.',
|
|
copyright: 'Copyright © 2024 My Project'
|
|
}
|
|
```
|
|
|
|
Footer only displays on pages without sidebar.
|
|
|
|
## Edit Link
|
|
|
|
```ts
|
|
editLink: {
|
|
pattern: 'https://github.com/org/repo/edit/main/docs/:path',
|
|
text: 'Edit this page on GitHub'
|
|
}
|
|
```
|
|
|
|
`:path` is replaced with the page's source file path.
|
|
|
|
## Last Updated
|
|
|
|
Enable in site config:
|
|
|
|
```ts
|
|
export default {
|
|
lastUpdated: true // Get timestamp from git
|
|
}
|
|
```
|
|
|
|
Customize display:
|
|
|
|
```ts
|
|
themeConfig: {
|
|
lastUpdated: {
|
|
text: 'Updated at',
|
|
formatOptions: {
|
|
dateStyle: 'full',
|
|
timeStyle: 'medium'
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Outline (Table of Contents)
|
|
|
|
```ts
|
|
outline: {
|
|
level: [2, 3], // Which heading levels to show
|
|
label: 'On this page'
|
|
}
|
|
```
|
|
|
|
Or just the level:
|
|
|
|
```ts
|
|
outline: 'deep' // Same as [2, 6]
|
|
outline: 2 // Only h2
|
|
outline: [2, 4] // h2 through h4
|
|
```
|
|
|
|
## Doc Footer Navigation
|
|
|
|
```ts
|
|
docFooter: {
|
|
prev: 'Previous page',
|
|
next: 'Next page'
|
|
}
|
|
// Or disable:
|
|
docFooter: {
|
|
prev: false,
|
|
next: false
|
|
}
|
|
```
|
|
|
|
## External Link Icon
|
|
|
|
```ts
|
|
externalLinkIcon: true // Show icon on external links
|
|
```
|
|
|
|
## Appearance Toggle Labels
|
|
|
|
```ts
|
|
darkModeSwitchLabel: 'Appearance',
|
|
lightModeSwitchTitle: 'Switch to light theme',
|
|
darkModeSwitchTitle: 'Switch to dark theme',
|
|
sidebarMenuLabel: 'Menu',
|
|
returnToTopLabel: 'Return to top'
|
|
```
|
|
|
|
## Key Points
|
|
|
|
- `nav` defines top navigation links
|
|
- `sidebar` can be array (single) or object (multiple sidebars)
|
|
- Use `collapsed` for collapsible sidebar sections
|
|
- Local search works out of the box
|
|
- `editLink.pattern` uses `:path` placeholder
|
|
- Enable `lastUpdated` in site config, customize in themeConfig
|
|
|
|
<!--
|
|
Source references:
|
|
- https://vitepress.dev/reference/default-theme-config
|
|
- https://vitepress.dev/reference/default-theme-nav
|
|
- https://vitepress.dev/reference/default-theme-sidebar
|
|
- https://vitepress.dev/reference/default-theme-search
|
|
-->
|