Search¶
What it is¶
Void ships a full-screen search modal powered by the built-in MkDocs search
plugin and a custom JavaScript layer. Press / to open, type to search, and
browse results with context snippets, highlighted terms, and a one-click
copy-link button on every result.
When to use it¶
Search is always on by default. It's the fastest way to find a page, a
heading, or a specific term in the docs. The modal also supports deep links:
sharing ?q=term in a URL re-opens search on arrival.
How it works¶
The search modal is a full-screen overlay with a text input, result list, and
footer showing keyboard hints. The MkDocs search plugin generates a
search/worker.js file and a JSON index at build time. The Void theme's
initSearch() function creates a Worker pointing at that file, sends
queries as the user types, and renders results in real time.
| Step | What happens |
|---|---|
Press / |
openSearch() shows the overlay, focuses the input, and loads recent suggestions |
| Type β₯ 2 chars | The worker queries the MkDocs index and returns matching results |
| Result shown | Title with <mark> highlights, context snippet, breadcrumb path, icon, copy-link button |
Press Enter |
Navigates to the selected result |
Press Esc |
Closes the overlay and clears the URL ?q= parameter |
| Copy-link button | Copies pageURL?q=query to clipboard, shows a toast confirmation |
Configuration¶
theme:
void:
search:
enabled: true # Render the search dialog (default true)
shortcut_key: "/" # Keyboard shortcut that opens search (default "/")
placeholder: "Search..." # Input placeholder
min_chars: 2 # Minimum characters before searching (default 2)
max_results: 10 # Maximum results to display (default 10)
show_context: true # Show context snippet under each result
context_length: 120 # Characters of context per snippet (default 120)
highlight_results: true # Highlight search terms in results
suggest: true # Show recent-search suggestions
style: "modal" # "modal" | "dropdown" (future)
ui:
glass: true # Glass morphism on the search dialog
overlay_opacity: 0.5 # Backdrop overlay opacity
show_shortcuts: true # Show keyboard shortcut hints in footer
result:
show_icon: true # Show page icon in results
show_breadcrumb: true # Show page path in results
show_highlights: true # Highlight terms inside matched text
show_share: true # Show "copy link" button on results
The shortcut is remappable under theme.void.keyboard.shortcuts.search:
Under the hood¶
- File:
void.jsβinitSearch(config)(line ~487) - Worker:
new Worker(joinUrl(base, "search/worker.js"))β the MkDocs search plugin generates this file at build time - Session: last query stored in
void-session.search; last 5 queries stored invoid-session.search_history - Deep link:
?q=termre-opens search on arrival; the parameter is cleaned from the URL when search closes - Focus trap: Tab cycles through the input, results, close button, and share buttons β never escapes the overlay
- Config access:
_config.void_search(injected fromtheme.void.search)
Accessibility notes¶
- The overlay is announced to screen readers; the input has a placeholder and
an
aria-label. - Arrow keys (
β/β) navigate results;Enteropens the selected result. - Focus is trapped inside the modal and returned to the trigger element on close.
- The close button is labeled and activatable with
Esc.