Story 2137: Post Filter and Library Filter Components#2260
Story 2137: Post Filter and Library Filter Components#2260
Conversation
0164d6b to
e82eaae
Compare
herzog0
left a comment
There was a problem hiding this comment.
LGTM, thanks for all the improvements!
julioest
left a comment
There was a problem hiding this comment.
Just one suggestion
Other than that, great stuff! ✅
… over field dicts
…ibrary_filter.html
83ef4cc to
fca8aa7
Compare
|
Hey @herzog0 , @jlchilders11 , @julioest ! Can I get another round review from you? I added a new |
julioest
left a comment
There was a problem hiding this comment.
Looks great, nice job on this one Julia - approved ![]()
jlchilders11
left a comment
There was a problem hiding this comment.
Approved as is, one thought/question about z-index.
| display: none; | ||
| position: fixed; | ||
| inset: 0; | ||
| z-index: 10000; |
There was a problem hiding this comment.
Quick thought: Should z-index be a var to prevent unintended collisions?
There was a problem hiding this comment.
Great call out @jlchilders11 ! You're right we definitely need a more robust way to manage z-index across the app. Are you okay with me spinning off a separate PR to evaluate all components' z-index set up?
There was a problem hiding this comment.
Sounds good to me! Raw numbers for z-index give me itchy foot gun trigger reactions, lol
Issue: #2137
Summary
Add 2 new filter components and a searchable multi-select field for the V3 redesign:
Changes
_post_filter.htmltemplate andpost-filter.css– checkbox-backed filter pill group with hover, selected, and focus-visible states_library_filter.htmltemplate andlibrary-filter.css– row of filter dropdowns (View, Grading, C++ Version, Category, Sort) that collapses into a CSS-only fullscreen modal on mobile via hidden checkbox toggle._field_combo_multi.htmltemplate – searchable multi-select field combining combo search/filter with multiselect checkboxes, multiple hidden inputs for form submission, and<select multiple>in no-JS fallbackexpandicon toicon.htmlfor the mobile filter triggerdialog.jsto support both hash-based and checkbox-based dialog types:_dialog.html– hash-based modals (unchanged behavior)_library_filter.html– checkbox-based modal with focus trap, ESC close, Enter key on labels, and focus restorationforms.cssdropdown and combo accessibility styling (i.e.focus-visibleoutline)V3ComponentDemoView_dialog.html. This is intentional – the filter panel is transient UI that should not be deep-linkable or add entries to browser history. A URL hash like_dialog.htmlwould let users navigate to an open filter state directly, which doesn't make as much sense for this component.dialog.jswas refactored to detect and enhance both dialog types (hash-based and checkbox-based) with shared focus-trap and ESC-close behavior, while keeping their open/close mechanisms distinct.Screenshots
Post Filter
Library Filter
No-JS Fallback
Self-review Checklist
Frontend