Render board members as person cards via ::: team block #56

Merged
Tom merged 3 commits from design/board-team into main 2026-10-01 16:15:35 +02:00
Owner

Implements #45 (Design 6/7: Vorstandsteam als Personen-Grid).

What

  • New ::: team Markdown block: every list item becomes a person card.
    • **Name** (Rolle): name plus role chip.
    • *a, b* on the next line: duty tags.
    • Any further line: the note.
    • An item without this convention becomes a plain card, without error.
  • Initials avatar whose colour is fixed by the name (FNV-1a + fmix32). Only the two brand tints are used, blue and green.
  • One grid for all groups: repeat(auto-fill, minmax(17rem, 1fr)). The cards of a row share one height and keep their content at the top.
  • ::: team gross (Vorsitz) only fills the role chip in brand blue. Width and column count stay the same as in every other group.
  • Duty tags never wrap inside a tag (nowrap); the row wraps between tags instead.
  • Docs: example in docs/redaktion.md under "Gestaltungsbausteine".
  • Dev seed and test fixture: the /board body now uses the new block.

Tests

  • TeamMemberTests cover:
    • initials: double name, umlauts, single word
    • stable colour, even spread over the real board
    • parsing with and without role and duties
    • an entry without the convention
    • escaping and the modifier
  • Smoke test Board_renders_team_block_as_person_cards.

After merge

  • Enter the new /board body in production through the PocketBase admin.
  • Later: a board_members collection, noted in #39.
Implements #45 (Design 6/7: Vorstandsteam als Personen-Grid). ## What - New `::: team` Markdown block: every list item becomes a person card. - `**Name** (Rolle)`: name plus role chip. - `*a, b*` on the next line: duty tags. - Any further line: the note. - An item without this convention becomes a plain card, without error. - Initials avatar whose colour is fixed by the name (FNV-1a + fmix32). Only the two brand tints are used, blue and green. - One grid for all groups: `repeat(auto-fill, minmax(17rem, 1fr))`. The cards of a row share one height and keep their content at the top. - `::: team gross` (Vorsitz) only fills the role chip in brand blue. Width and column count stay the same as in every other group. - Duty tags never wrap inside a tag (`nowrap`); the row wraps between tags instead. - Docs: example in `docs/redaktion.md` under "Gestaltungsbausteine". - Dev seed and test fixture: the `/board` body now uses the new block. ## Tests - `TeamMemberTests` cover: - initials: double name, umlauts, single word - stable colour, even spread over the real board - parsing with and without role and duties - an entry without the convention - escaping and the modifier - Smoke test `Board_renders_team_block_as_person_cards`. ## After merge - Enter the new `/board` body in production through the PocketBase admin. - Later: a `board_members` collection, noted in #39.
Tom added 3 commits 2026-10-01 16:15:24 +02:00
Tom merged commit ae362639e3 into main 2026-10-01 16:15:35 +02:00
Tom deleted branch design/board-team 2026-10-01 16:15:35 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Tom/Elternbeirat#56