Přeskočit na hlavní obsah

S3 — Filtrování (drawer/overlay)

Screen IDS3
Typ Sekundární
FázeMVP
Účel obrazovky

Bottom sheet nebo full-screen overlay s filtry pro seznam akcí. Smart defaults: tři hlavní filtry jsou vždy viditelné (datum, žánr, město). Rozšířené filtry jsou ve „Další filtry“ (ve výchozím stavu sbalené), s badgem počtu aktivních skrytých filtrů. Po potvrzení se filtry aplikují na výpis — CTA „Zobrazit výsledky“ bez dynamického počtu v labelu (počet výsledků se aktualizuje až po otevření overlaye a stisku Apply, ne průběžně při každé změně).


Content Priority

  1. Header — „Filtrovat" s tlačítkem zavření (×), swipe-to-dismiss hint App Bar / Top NavigationIcon Button
  2. Datum — range picker — od–do (kalendář nebo date picker), min = dnes — vždy viditelné Date Range Picker
  3. Žánr — multi-select chips (Rock, Pop, Klasika, Divadlo…) — vždy viditelné Chip / Filter Button
  4. Město — multi-select chips — vždy viditelné Chip / Filter Button
  5. Sekce „Další filtry“sbalená ve výchozím stavu; na hlavičce badge s počtem aktivních filtrů v této sekci (neplatí pro datum / žánr / město nahoře). Po rozbalení:
  6. CTA „Zobrazit výsledky" — primary button, bez dynamického (N) v textu Primary Button
  7. „Resetovat filtry" — secondary text link Ghost/Text Button

Interakce

TriggerAkceCíl
Otevření overlayeNačtení / zobrazení aktuálního stavu filtrů a případně posledního známého počtu výsledků (ne live při úpravách uvnitř sheetu)Konzistentní výchozí stav
Změna filtru uvnitř sheetuLokální úprava výběru; žádný real-time přepočet počtu v CTAPočet v seznamu a případný souhrn se projeví až po Apply
Tap „Zobrazit výsledky"Zavření overlay, aplikace filtrů, případně jednorázový fetch výsledkůP2 — Seznam akcí s filtrovanými výsledky
Tap „Resetovat filtry"Vymazání všech výběrů včetně skrytýchVýchozí stav, CTA zůstává „Zobrazit výsledky"
Swipe dolů / × / BackZavření bez aplikace změnNávrat na P2, předchozí filtry zachovány
Scroll v overlayScrollovatelný obsah (dlouhé seznamy)Plynulý scroll

Stavy

StavPopisVizuální chování
Default (bez filtrů)Žádný filtr aktivníHlavní sekce prázdné/výchozí, „Další filtry" sbalené, badge skrytý nebo 0
Aktivní pouze hlavní filtryDatum / žánr / městoChips a datum zvýrazněny, badge na „Další filtry" = 0 pokud nic v sekci
Aktivní skryté filtryMísto konání, pořadatel, cena nebo dostupnostBadge na „Další filtry" ukazuje počet aktivních položek v této sekci
No results po ApplyAplikované filtry → 0 akcíPo zavření sheetu prázdný stav na P2 dle P2 — Seznam akcí / empty state
Loading při ApplyČeká na API po stisku CTASpinner na CTA nebo na P2 po návratu

Edge Cases a Error States

ScénářŘešení
Všechny filtry aktivní → 0 výsledků po ApplyEmpty state na P2 + prominentní „Resetovat filtry" nebo odkaz zpět do filtrů
Datum od v minulostiDisabled v date pickeru, min = dnešek
Město bez míst konáníPrázdný výběr nebo „V tomto městě zatím nemáme místa"
API timeout při aplikaci filtrůToast / error na P2, možnost znovu otevřít filtry
Velmi dlouhý seznam žánrůSearchable nebo grouped chips, max viditelných s „Více"
Uživatel rychle mění hodnoty před ApplyBez live count — žádný storm dotazů; stav držet lokálně do potvrzení

Mobilní patterny a odlišení od webu

Co přebíráme

  • Sada filtrů (datum, žánr, místo, cena, dostupnost)
  • Reset filtrů
  • Potvrzení výběru návratem na výpis

Co děláme jinak

  • Bottom sheet místo sidebar drawer — na webu jsou filtry v bočním panelu, na mobilu bottom sheet (snadnější reachability)
  • Tři hlavní filtry vždy nahoře — méně kognitivní zátěž; zbytek pod „Další filtry" se sbaleným stavem
  • Badge na skryté filtry — uživatel vidí, že něco dál aktivuje rozšířené kritéria
  • CTA bez (N) — žádné průběžné API pro počet; jednodušší implementace a klidnější UI
  • Range slider s haptic snaps — při posunu na mezní hodnoty lehký haptic feedback
  • Multi-select chips pro žánr a město — lépe ovladatelné na dotyku než dlouhý seznam checkboxů
  • Searchable select pro místo konání a pořadatele — fullscreen search overlay místo úzkého dropdownu

Aplikované patterny

  • iOS: UISheetPresentationController pro bottom sheet, UISlider s custom track, UICollectionView pro chips
  • Android: ModalBottomSheet, Slider (Material 3) s hapticFeedbackEnabled, FilterChip s multi-select

Reference — Aktuální web

SCR-WEB-09: Filter drawer — chips, expandable filtry, Show Events CTA
Web ColosseumSCR-WEB-09Filter drawer — chips, expandable filtry, Show Events CTA

Reference — CineStar benchmark

CineStar využívá obdobné filtry (datum, lokalita, formát) v programu. Pro srovnání viz P2 — Seznam akcí reference.