feat(mobile): promote filter toggle when active + document 360px baseline
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 12s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 47s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 0s
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 12s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 47s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 0s
MOB-08: Search list pagination is already implemented (page_size 50, "Load more schools" button + count) — no change needed; ticket closed. MOB-10: Rather than build a full bottom-sheet filter modal (large change, modal/focus-trap/scroll-lock infra), promote the existing "Advanced" toggle to a coral pill labeled "Filters (n)" whenever dropdown filters are applied. Users now see at a glance that the list is being narrowed; the inline accordion remains the disclosure mechanism. Adds aria-expanded for screen readers. MOB-23: Add MOBILE.md at the repo root with the 360 px design baseline, acceptance checks for any UI PR (no horizontal overflow, ≥44px tap targets, no <11px visible text, iOS Chrome parity, safe-area-inset, dvh), and the established component patterns. Playwright regression test deferred — adding the dep for one test is heavier than the current value warrants; documented as a future option. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -261,6 +261,21 @@
|
||||
color: var(--text-primary, #1a1612);
|
||||
}
|
||||
|
||||
/* When filters are applied, promote the toggle to a coral pill so users
|
||||
can see at a glance that the result list is being narrowed. */
|
||||
.advancedToggleActive {
|
||||
border-color: var(--accent-coral, #e07256);
|
||||
background: var(--accent-coral-bg, rgba(224, 114, 86, 0.12));
|
||||
color: var(--accent-coral, #e07256);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.advancedToggleActive:hover {
|
||||
border-color: var(--accent-coral-dark, #c45a3f);
|
||||
background: var(--accent-coral-bg, rgba(224, 114, 86, 0.18));
|
||||
color: var(--accent-coral-dark, #c45a3f);
|
||||
}
|
||||
|
||||
.chevronDown,
|
||||
.chevronUp {
|
||||
display: inline-block;
|
||||
|
||||
@@ -199,10 +199,11 @@ export function FilterBar({ filters, isHero, resultFilters }: FilterBarProps) {
|
||||
|
||||
<button
|
||||
type="button"
|
||||
className={styles.advancedToggle}
|
||||
className={`${styles.advancedToggle}${hasActiveDropdownFilters ? ` ${styles.advancedToggleActive}` : ''}`}
|
||||
onClick={() => setFiltersOpen((v) => !v)}
|
||||
aria-expanded={filtersOpen}
|
||||
>
|
||||
Advanced
|
||||
{hasActiveDropdownFilters ? 'Filters' : 'Advanced'}
|
||||
{hasActiveDropdownFilters
|
||||
? ` (${activeDropdownFilters.length})`
|
||||
: ""}
|
||||
|
||||
Reference in New Issue
Block a user