Conversation
FIXME: background body not fixed on modal open
semantic elements
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR completely overhauls the search experience by replacing the basic dropdown results list with a modern, full-featured search modal. The new modal provides a polished, app-like search interface with keyboard navigation, result counts, and smooth animations.
Key Features
Search Modal Interface
Enhanced User Experience
/key anywhere to instantly open searchTechnical Improvements
Before vs After
Before:
After:
Implementation Details
CSS Architecture (
sass/parts/_search.scss)JavaScript Functionality (
static/js/search.js)showSearchModal(): Handles modal opening, scroll locking, and focus managementhideSearchModal(): Handles modal closing and scroll restorationupdateResultsCount(): Displays formatted result count with singular/plural handlingupdateSelection(): Manages keyboard navigation stateescapeHtml()for user inputHTML Structure (
templates/macros/index_macros.html)<dialog>element for modalRelated Issue(s)
N/A - This is an enhancement to improve the search UX
Screenshots