Skip to content

Owner review 31 — a critical evaluation of the page grammar and 홈 (2026-10-15) ​

Status: Superseded in part — its 클럽 소식 option was replaced by the combined 소식 in review 32 · Date: 2026-10-15

Answers: "I want you to evaluate the grammar and the home page critically. After all, I am only evaluating the home tab for now. Once we finalize the grammar, we will then tackle the remaining pages in the hub page."

Method:

  • read the grammar (library §1.14) against the 홈 frames;
  • render the two states direction B had never been drawn in, dark and 200% text;
  • check 홈's sets against the other tabs' rulings.

Board: flat-v2-hub § 홈, groups "Direction B" (the new Dark and 200% frames) and "Open question: what is 홈's Feed?".

Fixed: defects the renders proved ​

#DefectFix
D1Dark: a game day's date was a light fill with a white numeral, close to invisibleThe numeral takes the canvas colour on the filled date (white in light, the dark canvas in dark)
D2200% text: the seven-column week collapsed. Numerals split ("1 / 8"), circles were clipped, and venue names and times broke mid-word ("올림 / 픽", "09: / 00")From 1.5×, the week reflows to one Cell per game day ("토 19일 › 올림픽공원, 09:00")
D3200% text: two tiles a row cropped the venue, which is the tile's leadFrom 1.5×, one tile a row
D4200% text: a tile's exception Tag drifted off its line (the verifier's adornment check)The Tag attaches through the line slot
D5"저장됨" was shown as a session's source. Saved is why it is in your list, not whose it isThe source is always the club, or 번개 for a pickup; saved becomes a filter of the Feed's head
D6The empty Block read "다음 7일 · 일정 없음". The Block's subject is the next game at any distance (review 28), so a game nine days away would contradict itThe empty Block is "다가오는 일정 · 일정 없음": shown only when nothing is ahead at all

Gaps in the grammar, now written in (library §1.14) ​

  • Zone states. The grammar said nothing about loading, empty, error or offline. Each zone now owns its own:
    • the Lead shows a skeleton of its shape;
    • an empty Module is absent;
    • the Feed shows skeleton rows, an empty line with a door, and an inline retry line;
    • the page-level EmptyState stays only for a cold start.
  • Reflow at large text. D2 and D3 were one missing rule: a multi-column Module reflows to one column from 1.5×.
  • Panes own the zones below them (on 클럽 홈 each pane has its own Modules and Feed).
  • Modules keep a fixed order per page. "Ordered by state" was vague and fought the fixed 할 일 → 내 일정 order. State order lives in the Block.
  • Why one pinned layer. About a quarter of the screen is already chrome. The cost, written down: on 경기 the day headers stay in the flow.

Open: what is 홈's Feed? ​

The problem. The grammar defines the Feed as the page's whole open-ended list, with no 전체 보기 "because it is the whole list". But 홈's Feed, 참여할 수 있는 일정, is not 홈's own:

  • Review 27 put the same set in 경기 › 예정 ("the same two groups as 홈, across every upcoming day").
  • It is also not really open-ended for a member. Their clubs' open sessions plus their saved ones come to a handful a week.
  • So 홈 and 예정 would show the same list twice, and 홈's version could never be "the whole list".

Two ways out, both consistent with the grammar:

  • (a) 홈 has no Feed. 참여할 수 있는 일정 becomes a bounded Module: four tiles (two rows), then 전체 보기 with its count, to 경기 › 예정. 홈 ends there.
    • For: the smallest, most coherent 홈.
    • Against: nothing on 홈 changes between visits unless sessions do.
  • (b) 홈's Feed is 클럽 소식: the posts, results and photos of every club you are in, newest first, with a club filter. 참여할 수 있는 일정 becomes the bounded Module of (a), and the page's one Band marks the change from your things to the clubs' news. Drawn: home-b-news.
    • For:
      • the Feed is content no other tab owns (each 클럽 홈 shows one club);
      • it uses the club page's template, the owner's own model;
      • it gives 홈 a reason to be opened daily.
      • Naver BAND merged its bands' feeds into one main home in its November 2025 renewal (byline.network). That is the pattern Korean club members already know.
    • Against:
      • new scope: a cross-club query, muting a club, and a club filter;
      • 홈 grows longer;
      • news can bury the bounded Modules for someone in many busy clubs.

Recommendation: (b), with the Feed after the Band and a club filter in its head. If the scope is unwelcome now, (a) is the safe step and (b) can come later without changing the layout above it.

Smaller findings ​

  • Dark: the map tiles are the brightest things on the screen. The map art stays light by design (Naver's static maps have no dark style here), so on the dark canvas each tile is a white block.
    • Recommendation: a black scrim at α0.12 over map images in dark. This is the kit's change and the app's.
  • Officers: 할 일 sits between "my game" (the Block) and "my week". It splits the two personal modules. The order is kept, because a task with a deadline today outranks a week the officer already knows. Noted for the owner.
  • Two games on one day stack in the day's column; the day then opens 경기 › 예정 at that day. Specified, not yet drawn.
  • A week with no games (the next game is further out) is absent, by the zone-state rule. The Block still shows the next game.
  • The venue short name needs data: a new venue field, defaulting to the first word cut to three syllables, with a club override (review 29). It is an implementation dependency.

Before 홈 can be marked ​

These must be drawn:

  • the Block's remaining states (cancelled, check-in open, waitlisted);
  • 홈 in English;
  • loading, error, cold offline and cached offline, under the zone-state rule;
  • first run (no club);
  • a member's own 할 일 (참가비 입금, 회비 납부).

Not drawn yet, because they depend on the Feed decision above: the Feed's end, empty and failed-page lines. They will be drawn once (a) or (b) is chosen.

Markdown remains the source of truth. Run yarn docs:check before handoff.