fix: #3617241 Give the search results page a heading and one result per row
Follows on from the search index view modes already merged for #3617241. Config only, one file: recipe.yml.
Verified on a fresh Varbase 11 install, searching Varbase at /search?keywords=Varbase. The query itself was already correct (17 matches, 10 rows, proper empty state). The presentation was not.
What changes
| Problem | Change |
|---|---|
No <h1> on the results page |
A view header area renders the page heading. Not a page title block, so Canvas pages keep the single <h1> they render themselves. |
| Every row rendered an empty heading | The index holds nodes and Canvas pages, so the view ships one title field per entity type and fills only one. Both are carried as sources (exclude: true) and one linked heading is built from {{ title }}{{ title_1 }}. |
Result headings at the display h2 step (2.625rem) |
Semantic <h2> carrying the design system h4 step (1.25rem). |
| No description styling, no read more | Excerpt as <p> with text-subtle-text, plus a Read more link built from search_api_url. |
Deliberately not changed
display.page.display_options.exposed_block is left at true. Flipping it to false does put the search box inline on the results page, but it also removes the views_exposed_filter_block:search-page plugin that canvas.page_region.vartheme_bs5.header points at via component UUID 64cc6d33-c24c-45be-a52b-1deb85fcab0b, which renders "This block is broken or missing" on every page. Confirmed by testing, then reverted. Putting a search box on the results page belongs to Canvas page management, not to that flag.
No vartheme_bs5 template or CSS change is needed: this uses only classes the theme already ships (h4, text-subtle-text). Class hooks with no CSS behind them were deliberately left out rather than shipped dead. Bespoke search-result styling would be a Vartheme BS5 change and belongs in its own issue there.
AI-Generated: Yes
Checkpoints:
- File an issue
- Addition/Change/Update/Fix
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- UX/UI designer responsibilities
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Reviewed by human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release notes snippet
- Release