From df3a288c9fa36ee46378db03fcd68142ba7facab Mon Sep 17 00:00:00 2001 From: Elijah Voigt Date: Sun, 8 Mar 2026 17:26:59 -0700 Subject: [PATCH] chore(quotesdb): add ticket for collapsible filter panel on browse page Co-Authored-By: Claude Sonnet 4.6 --- quotesdb/.nbd/tickets/a6e8ba.md | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 quotesdb/.nbd/tickets/a6e8ba.md diff --git a/quotesdb/.nbd/tickets/a6e8ba.md b/quotesdb/.nbd/tickets/a6e8ba.md new file mode 100644 index 0000000..d8f5fb8 --- /dev/null +++ b/quotesdb/.nbd/tickets/a6e8ba.md @@ -0,0 +1,46 @@ ++++ +title = "quotesdb/ui: collapsible filter panel on browse page" +priority = 5 +status = "todo" +ticket_type = "feature" +dependencies = [] ++++ + +## Summary + +On the Browse Quotes page (`/browse`), move all filter controls (author, tag, date range) behind a collapsible "Filters" button. Filters are hidden by default and expand when the button is clicked. + +## Details + +### Filter Button +- A single "Filters" button (or "Filters ▼" / "Filters ▲" to indicate state) sits above the quote list. +- Clicking it toggles the filter panel open or closed. +- The panel is collapsed by default when the page loads. + +### Filter Panel Layout +Each filter occupies its own line inside the panel: + +1. **Author** — a text input labelled "Author:" +2. **Tag** — a text input labelled "Tag:" +3. **Date range** — displayed as: + `Date: after [date input], before [date input]` + Both date inputs are on the same line, after the "Date:" label. + +### Styling +- All three filter rows must be visually consistent with each other (same label width, same input style, same spacing). +- The panel and button should fit the existing site theme. + +## Acceptance Criteria +- [ ] Filter controls are hidden by default on `/browse` +- [ ] A "Filters" button toggles the panel open/closed +- [ ] Author, tag, and date range each appear on their own line +- [ ] Date range is labelled `Date: after [input], before [input]` +- [ ] All three filter rows share consistent visual styling +- [ ] Existing filter functionality (querying the API with author/tag/date params) is unchanged + +## Validation +Run from `quotesdb/` root: +```sh +cargo fmt && cargo check && cargo clippy +trunk build +```