Mintlify Wiki — Layout & Structure Reference
How the live wiki at internal-wiki.xoxoday.com is laid out: navigation structure, where each menu/widget sits, sidebar behaviour, footer layout, and AI assistant placement. Use this to replicate the same structure in a different Mintlify documentation project.
For the visual styling (custom CSS, hover galleries, dot-grid background), see style.css at repo root.
1. Page-level layout — what sits where
Mintlify’s default chrome with our customizations. The wiki uses a 3-column layout on desktop:2. Top navbar
Configured indocs.json → logo and navbar.
| Position | Element | Source |
|---|---|---|
| Top-left | Logo (light/dark variants) | logo.light = /logo/light.svg, logo.dark = /logo/dark.svg |
| Top-center | Search bar (with “Ask AI” option built in) | Mintlify default (Pro/Enterprise) |
| Top-right | Theme toggle (light/dark) | Mintlify default |
| Top-right | (Optional) Navbar links — currently empty | navbar.links: [] |
navbar.links is empty. If you want extra buttons in the top-right (e.g. “Dashboard”, “Sign up”), add them like:
3. Left sidebar — the actual navigation structure
The sidebar is built fromdocs.json → navigation.groups. 6 top-level groups in this order:
Sidebar interaction
Critical setting:"interaction": { "drilldown": false } at the root of docs.json.
This makes clicking on a group label (like “Products”) only expand/collapse the group — it does NOT navigate to the first child page. Without this, Mintlify auto-navigates to the first sub-page, which is confusing when users just want to browse.
Nesting depth
- 1 level (e.g. “Getting started” → home page) — simple list
- 2 levels (e.g. “Company” → “Teams” → pages) — most common
- 3 levels (e.g. “FAQs” → “Empuls” → “Rewards & Recognition” → pages) — used for RFP repository where there’s genuine topical hierarchy
Hidden pages
Some.mdx files exist in the repo but are not in docs.json — they’re stub pages, hidden from the sidebar until content lands. Tracked in STUB_PAGES.md at the repo root. Currently 19 hidden pages (HR policies stubs, sales playbook stubs, etc.).
4. Right sidebar — Table of Contents
Auto-generated by Mintlify fromh2 and h3 headings on the current page. No config needed. Shows page sections with click-to-jump anchors.
Hidden on mobile and when the page has fewer than 2 headings.
5. AI Assistant (“Ask AI”)
Enabled by default on Pro/Enterprise Mintlify plans. No explicit config indocs.json — Mintlify includes it automatically.
Where it appears:
- Inside the top-center search bar as an “Ask AI” option (modern Mintlify default)
- Can also appear as a contextual menu in the page header (where users can pick “Copy”, “View as Markdown”, “Open in ChatGPT”, “Open in Claude”)
docs.json:
6. Search
Top-center of the navbar. Mintlify default — full-text search across all pages. Triggered byCmd/Ctrl + K or clicking the bar.
No config needed. Works out of the box.
7. Theme toggle
Top-right of the navbar. Toggles between light and dark mode. Mintlify default — no config needed. Light mode usesbackground.color.light = #F7F9FF (frosty blue-white).
Dark mode uses background.color.dark = #06182D (deep navy).
8. Footer
Configured indocs.json → footer:
9. Article-level UI elements (Mintlify defaults)
These appear inside the main content area, automatically:| Element | Where | How to control |
|---|---|---|
| Breadcrumbs | Top of main content (above page H1) | Auto from the nav path |
| H1 (page title) | Top of main content | From frontmatter title: |
| Page description | Below H1, slightly greyed | From frontmatter description: |
| Previous / Next page nav | Bottom of main content | Auto from docs.json nav order |
| ”Was this page helpful?” feedback | Bottom of page | Mintlify default |
10. Background and theming (visual chrome)
Configured indocs.json:
decoration: "gradient"→ adds a soft top-edge gradient glow (Mintlify built-in)color.light/color.dark→ base background colours for each theme
style.css adds a subtle dot-grid pattern via CSS — only visible if style.css is loaded (Pro plan custom CSS feature).
Brand colour scheme:
11. Replicating this layout in a new wiki
Copy these files first:docs.json, swap these brand-specific bits:
| Field | Current value | Replace with |
|---|---|---|
name | "Xoxoday Internal Wiki" | new wiki name |
colors.primary/light/dark | #0A51E8 / #3B82F6 / #1D4ED8 | new brand hex codes |
background.color.light/dark | #F7F9FF / #06182D | new page background hex |
navigation.groups | the 6 groups above | your section structure |
footer.socials | LinkedIn/YouTube/Instagram URLs | your org’s socials |
footer.links | Feedback + Quick Links groups | your footer links |
logo.light/dark | SVG paths | your brand logos |
| Field | Value | Why |
|---|---|---|
theme | "mint" | Standard Mintlify theme |
interaction.drilldown | false | Sidebar groups expand-only (no auto-navigate) |
background.decoration | "gradient" | Top-edge gradient glow |
12. Patterns we follow for new pages
When adding a new section to the wiki, the consistent layout is: Sidebar nesting rule: 1–2 levels deep is best. Go to 3 levels only when there’s a real categorical hierarchy (like the RFP repository’s product → module → topic structure). Hub-page pattern: Whenever a section has more than ~4 pages, create a landing/hub page first that summarises each sub-page in 3-4 lines with a link. Used on:- Onboarding Hub (
/onboarding/overview) - Asset Library (
/asset-library) - RFP Attachments (
/rfp-attachments) - KPIs Hub (
/people/kpis) - Xoxo Academy (
/people/learning/xoxo-academy)
<Info>**Stub** ...</Info> banner at the top and are removed from docs.json nav until content lands. Tracked in STUB_PAGES.md.
Cross-section linking: Use absolute paths like /asset-library/empuls (relative to wiki root). Mintlify resolves these correctly.