← Cockpit Wireframes Pages by level Navigation map
Match grammar — one anatomy, every surface▾
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 · 하단 고정
For owner review

Match grammar — one anatomy, every surface

One match drawn one way wherever it appears: a face for each player, one team per line, the viewer’s team first, each name its own tap. The ATP card is the reference; the row, the block, the sheets, the number pad, the ResultRow and the profile history all draw it.

1 · Anatomy

A header line, then one team per line: a 32 face (two overlapping 8 for a pair) in a 56 slot, 12, the names, the games.

1번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
Doubles result: 122 tall with no Tag, lines 12 apart
One anatomy
Team linethe viewer’s team first with “(나)”; a 32 face (one for singles, two whole faces overlapping 8 with a 2 px ring in the surface colour for doubles) in a 56 slot so names start at one x; 12; the names, partners with the 1px break; the set columns. The line is max(text, 32).Faceson by default in every context; dropped from 1.5× text; initials where can_view_face refuses, drawn the same as a missing face; faces={false} only for a deliberate text-only specimen (data-faces=off).Winnerweight and tone only: names 600 ink against 400 secondary, games ink against secondary; on a block the numeral is ball against white α0.7.Tapseach name is its own stop to that player’s profile (44 tall; the 44 pitch is the 32 line plus the 12 gap), a sibling stop after the row’s press, never nested; the rest of the row opens the match page, where the pair’s record and head-to-head live (a team stat; the backend needs a pair-keyed stats model, noted, not built).Heights at 390row 122 with no Tag (a plain result) or text, 128 with a Tag (예정, 검토 중), 140 with a Button; block 144; sheet and number pad lines 48.

2 · Singles and doubles

The same anatomy; a singles team has one face.

1번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
Doubles: two faces overlapping 8
1번 코트
김민준 (나)
67
박지훈
464
Singles: one face, the same 56 slot

3 · The row in a result and in a schedule

A plain result shows no Tag; the header's Tag is for 예정 and 검토 중; a schedule has no numerals.

1번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
Result, doubles
1번 코트
김민준 (나)
67
박지훈
464
Result, singles
1번 코트
검토 중
김민준 (나)이서연
67
최
박지훈최유나
464
Under review: the Tag 검토 중, the score stands (128)
1번 코트14:00
예정
김민준 (나)이서연
최
박지훈최유나
Schedule, doubles: the time, no numerals
1번 코트14:00
예정
김민준 (나)
박지훈
Schedule, singles

4 · The block

The same faces on ink, ringed in the block’s ink; the block stays 144.

2번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
Doubles, a result
2번 코트
점수 입력
김민준 (나)
박지훈
경기가 끝났어요
Singles, an action: faces beside the door

5 · A sheet

The same 32 faces in a 48 line; the 40 face and the 40 footprint pair are retired.

점수 검토1번 코트
입력된 점수
김민준 (나)이서연
67
최
박지훈최유나
464
Doubles in a sheet
점수 검토1번 코트
입력된 점수
김민준 (나)
67
박지훈
464
Singles in a sheet

6 · The number pad

The cells context: the faces, then a 48 input for each set.

1세트
김
이
김민준 (나)이서연
6
박
최
박지훈최유나
4
Doubles, set 1 focused
1세트
김
김민준 (나)
6
박
박지훈
4
Singles

7 · ResultRow

The history row: the same shell with a date header; the profile’s recent matches draw it.

9월 18일 (금)
승
이
김민준 (나)이서연
67
최
박지훈최유나
464
Win, doubles
9월 11일 (금)
패
김민준 (나)
3
오세훈
6
Loss, singles

8 · Lists of 4 and 8

What a round costs in height: 4 rows are 512, 8 rows are 1024.

1라운드1번 코트
김민준 (나)이서연
6
최
박지훈최유나
4
1라운드2번 코트
한소희정우진
64
강
오세훈강다은
36
1라운드3번 코트
김민준 (나)한소희
7
최
정우진최유나
5
1라운드4번 코트
이서연오세훈
3
강
박지훈강다은
6
4 matches
1라운드1번 코트
김민준 (나)이서연
6
최
박지훈최유나
4
1라운드2번 코트
한소희정우진
64
강
오세훈강다은
36
1라운드3번 코트
김민준 (나)한소희
7
최
정우진최유나
5
1라운드4번 코트
이서연오세훈
3
강
박지훈강다은
6
2라운드1번 코트
김민준 (나)정우진
66
최
이서연최유나
12
2라운드2번 코트
박지훈한소희
6
김
오세훈김하준
4
2라운드3번 코트
박
김민준 (나)박지훈
63
강다은최유나
46
2라운드4번 코트
이서연정우진
6
오
한소희오세훈
2
8 matches

9 · 100%, 150% and 200%

From 1.5× the faces drop and the names keep the width; each name stays a tap.

1번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
100%
1번 코트
김민준 (나)이서연
67
박지훈최유나
464
150%: faces dropped
1번 코트
김민준 (나)이서연
67
박지훈최유나
464
200%: faces dropped, names wrap whole

10 · Korean and English

Longer English names wrap whole and the row grows.

1번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
Korean
Court 1
Minjun Kim (You)Seoyeon Lee
67
Y
Jihun ParkYuna Choi
464
English

11 · A pickup list

Pickup players are strangers, so every face is initials, drawn the same as a missing face.

1라운드1번 코트
김
이
김민준 (나)이서연
6
박
최
박지훈최유나
4
1라운드2번 코트
정
한
정우진한소희
64
오
강
오세훈강다은
36
1라운드3번 코트
김
윤
김하준윤지아
7
서
임
서도윤임하은
5
1라운드4번 코트
배
조
배서준조예린
3
홍
문
홍지우문채원
6
Pickup: a column of initials

12 · When a face shows

A photo shows only when the person has one and the viewer may see it; otherwise initials, which look the same either way.

The person has a photo and the viewer…
Shows
The viewer is the person
Photo
They share an active club
Photo
They are accepted friends
Photo
The person chose “public”
Photo
Anyone else, or no photo at all
Initials
Logged out
Initials
public.can_view_face: a refused face looks like a missing one
1번 코트
김민준 (나)이서연
67
박지훈최유나
464
Club-mates and friends: a photo on every face
1번 코트
이
김민준 (나)이서연
67
박
최
박지훈최유나
464
A pickup co-player shares no club: initials, one letter, per face
1번 코트
김민준 (나)이서연
67
박지훈최유나
464
From 150% text no face circle is drawn; the names carry it

13 · The tap map

Blue: the row’s own press, the match page. Orange: each name, a stop to that player’s profile.

1번 코트
김민준 (나)이서연
67
최
박지훈최유나
464
Doubles at 100%: four name stops on the 44 pitch
1번 코트
김민준 (나)
67
박지훈
464
Singles at 100%
1번 코트
김민준 (나)이서연
67
박지훈최유나
464
200%: the faces drop, the names stay tappable
Spec (grounding, anatomy)

The match grammar: one anatomy on every surface that draws a match.

route · flat-v2-kit-content.jsx grounded in 6 source file(s)
packages/app/src/presentation/components/sessions/match-scoreboard.tsxpackages/features/sessions/src/scorecard-page/schedule-match-row.tsxpackages/features/sessions/src/scorecard-page/tabs/live-tab.tsxpackages/features/sessions/src/session-detail/page/session-matches-section.tsxpackages/features/sessions/src/draw/preview/draw-preview-view.tsxpackages/features/sessions/src/scorecard-page/tabs/ladder-tab.tsx