← Cockpit Wireframes Pages by level Navigation map
Venue Filters · 코트 필터 재구성▾
Shipped app (old grammar)Components · 공유 키트상세 페이지 — 플랫 언어Session Card · 밴드 없는 카드
홈 · Home
Home · 홈
시작 · Entry
Onboarding · 시작
ArchiveStrip Map · 세션 스트립 전체 시나리오Headers · 헤더 아이콘Card Continuity · 카드 = 상세의 예고편Session Hero · 더 조용한 공유 카드 (제안)Session Share Card · 히어로 = 공유 카드Session List Frame · 날짜 섹션 · 패널 필터 · 2+2 카드Compaction — 일정 · 코트 · 스코어카드Compaction — 클럽 상세 · 홈Compaction — 기록 · 프로필Live anchor — 진행 중 밴드Density · 카드 밀도토스트 — 리디자인 제안Club List · 클럽Clubs · 클럽클럽 상세 — 여섯 탭 플랫운영 섹션 — 플랫 목표위저드 내비게이션 — 결정 보드드래프트 복원 — 무음 복원클럽 조 편성 — 모델 결정 보드게스트 → 회원 — 심사 흐름Page polish — titled postsWeb app — desktop layoutProduct questions — openWeb app — desktop adaptation, round 2Visual tone — pure white, flat rows, one Tag, a colour budgetLibrary — chrome, surfaces, rows, labelsLibrary — controls, overlays, states, formsLibrary — page patterns, scaling, motionLibrary — additions from the pagesEmpty-once — 프로필 빈 섹션Notification groups — 할 일 밴드 그룹화Profile Cockpit · 프로필 압축Session Detail — Redesign · 일정Venue Detail — Redesign · 테니스장Profile Detail — Redesign · 프로필Tournament Detail — Redesign · 대항전Applicant Detail — Redesign · 가입 심사Canvas Migration — 회비 · 멤버 · 규칙Record Detail — Redesign · 기록Venue Finder · 코트 찾기Venue Filters · 코트 필터 재구성Notifications · 알림Panel Placement · 하단 고정
Archived — superseded by Venue Finder · 코트 찾기
Interactive kit · grounded in code

Venue Filters · 코트 필터 재구성

Decision 1Replace the venue finder's one fixed filter panel with a kind-aware facet row + counts everywhere?
AKeep today's single mixed panel — 지역/시·군·구 + one 시설 dropdown mixing 테니스장-only and 연습장-only values + 확인된 테니스장만 + 실내, unchanged no matter which nav chip is active; nav chips carry no result-size counts.
BMake the facet row a function of the selected nav chip (테니스장 → play-surface facets, 연습장 → practice facets, 샵 → none), retire the mixed 시설 dropdown, and add counts everywhere a user narrows (nav chips, the filter-toggle badge, a result line).
Recommendation → B — the current dropdown mixes values from two different facility kinds in one list, and counting at every decision point lets a user narrow with feedback instead of guessing.
A. 현재 — 필터 5개 뒤섞임
코트 찾기
테니스장 이름이나 지역으로 검색
필터
지역
시·군·구
시설
확인된 테니스장만실내
전체테니스장연습장샵즐겨찾기
지역·시·군·구·시설·확인 여부·실내가 한 줄에 뒤섞여 있고, 나브칩엔 숫자가 없어요 — 어느 칩을 눌러도 몇 곳이 나올지 미리 알 수 없어요. '시설' 드롭다운은 테니스장 전용 값(정규 코트)과 연습장 전용 값(볼머신/스크린/레슨)을 한 목록에 섞어요.
B. 제안 · 테니스장
코트 찾기
전체3,341테니스장2,489연습장848샵189즐겨찾기
테니스장 이름이나 지역으로 검색
3
필터초기화
서울
송파구
실내야간조명주차샤워예약 가능공공
확인된 곳만
송파구 테니스장 37곳
나브칩에 결과 크기(2,489)가 미리 보이고, 필터 토글에 활성 개수(3) 배지가 붙어요. 시설 드롭다운 대신 테니스장 전용 팻말(실내·야간조명·주차·샤워·예약 가능·공공) 한 줄 — 여러 개를 동시에 켤 수 있는 AND 조건. 확인 여부는 조용한 스위치로 내려가요.
C. 제안 · 연습장
코트 찾기
전체3,341테니스장2,489연습장848샵189즐겨찾기
테니스장 이름이나 지역으로 검색
2
필터초기화
서울
송파구
볼머신레슨스크린주차24시
확인된 곳만
송파구 연습장 12곳
같은 크롬, 다른 팻말 — 연습장엔 놀이 시설이 아니라 연습 장비가 기준이라 볼머신·레슨· 스크린·주차·24시로 바뀌어요. 정규 코트(테니스장 전용)와 실내/야간조명/샤워/예약 가능 (테니스장 전용)는 여기 없어요.
D. 제안 · 샵 (지역만)
전체3,341테니스장2,489연습장848샵189즐겨찾기
테니스장 이름이나 지역으로 검색
2
필터초기화
서울
송파구
샵엔 실내·조명·볼머신 같은 플레이 시설이 없어요 — 패널이 지역/시·군·구 한 줄로 줄어들어요. 있지도 않은 시설 팻말 대신 빈 줄 하나 남기지 않는 게 요점이에요.
데이터 소스 노트
각 팻말이 읽는 데이터
실내has_indoor
야간조명has_lighting
주차has_parking
샤워has_shower
예약 가능booking_url IS NOT NULL OR fee_schedule
공공data_source in gov sources
볼머신 · 레슨 · 스크린capabilities (ball_machine / lessons / screen)
24시operating_hours 24h, or name LIKE '%24시%'
확인된 곳만verification = corroborated (2+ source agreement)
제안 — 하나의 축, 카운트는 어디에나나브칩(전체/테니스장/연습장/샵)이 유일한 1차 축이에요 — 팻말 행은 그 축을 따라가고, 결정을 내리는 모든 지점(나브칩·필터 토글 배지·결과 줄)에 숫자가 붙어요. 시설 드롭다운은 폐지 — 값이 정규 코트(테니스장 자체) + 볼머신/스크린/레슨(연습장 전용)로 애초에 두 세계에 걸쳐 있었어요.
지역/시·군·구는 세 상태 모두 그대로예요 — 바뀌는 건 그 아래 한 줄뿐이라 사용자가 '지역' 컨트롤을 다시 배우지 않아도 돼요.
Spec (grounding, anatomy)

PROPOSAL, not shipped — the venue finder's filter panel is one fixed set of dimensions today no matter which nav chip (전체/테니스장/연습장/샵/즐겨찾기) is active: RegionDistrictFilter + a kind-blind 시설 DropdownChip (mixing 테니스장-only `full_court` with 연습장-only `ball_machine`/`screen`/`lessons`) + 확인된 테니스장만 + 실내. This board proposes counts on every nav chip, an active-count badge on the filter toggle, and a facet row that SWAPS with the selected kind — 테니스장 gets play-surface facets, 연습장 gets practice-equipment facets, 샵 gets none (region/district only). §A is the shipped panel; §B/§C show the proposal for 테니스장/연습장; §D is a compact strip for 샵's degenerate (facet-less) case; §Notes lists the literal DB field each facet chip reads.

route · packages/app/src/presentation/components/sessions/venue-finder.tsx (NAV_CHIPS) · venue-filter-bar.tsx (VenueFilterBar) · expandable-filter-bar.tsx (the shared SearchBar+toggle+panel chrome) grounded in 5 source file(s)
packages/app/src/presentation/components/sessions/venue-finder.tsxpackages/app/src/presentation/components/sessions/venue-filter-bar.tsxpackages/app/src/presentation/components/expandable-filter-bar.tsxpackages/ui/src/selection-chip.tsxpackages/ui/src/dropdown-chip.tsx