crossmate

A collaborative crossword app for iOS
Log | Files | Refs | LICENSE

commit 6f7335450860a28514a4ca4d2084612d9cfdba57
parent c65cde3c889283c3058cb64d65851d92457fcdd8
Author: Michael Camilleri <[email protected]>
Date:   Fri,  3 Jul 2026 13:31:00 +0900

Tweak layout sizes

Diffstat:
MCrossmate/Views/Components/AnnouncementBanner.swift | 15++++++++++-----
MCrossmate/Views/GameList/GameCardView.swift | 2+-
MCrossmate/Views/GameList/GameListView.swift | 2+-
MCrossmate/Views/GameList/GameRowView.swift | 2+-
4 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/Crossmate/Views/Components/AnnouncementBanner.swift b/Crossmate/Views/Components/AnnouncementBanner.swift @@ -20,10 +20,12 @@ struct AnnouncementBanner: View { var body: some View { let severityColor = tint(for: announcement.severity) - HStack(alignment: .center, spacing: 8) { + // 10pt between children so the icon gets the same air on its trailing + // side as it has between itself and the severity rail. + HStack(alignment: .center, spacing: 10) { if showsIcon { Image(systemName: iconName(for: announcement.severity)) - .font(.footnote.weight(.semibold)) + .font(.subheadline.weight(.semibold)) .foregroundStyle(severityColor) .frame(width: 24) .accessibilityHidden(true) @@ -32,11 +34,11 @@ struct AnnouncementBanner: View { VStack(alignment: .leading, spacing: 3) { if let title = announcement.title, !title.isEmpty { Text(title) - .font(.subheadline.weight(.semibold)) + .font(.callout.weight(.semibold)) .lineLimit(1) } Text(announcement.body) - .font(.subheadline) + .font(.callout) .foregroundStyle(.primary) .multilineTextAlignment(.leading) .lineLimit(3) @@ -59,7 +61,10 @@ struct AnnouncementBanner: View { .padding(.horizontal, 10) .padding(.vertical, 10) // Without the icon the text would otherwise crowd the severity rail; - // give it a little extra breathing room on the leading edge. + // give it a little extra breathing room on the leading edge. With the + // icon, the extra 4pt makes the rail-to-icon gap match the 10pt + // HStack spacing on the icon's other side (the rail eats 4pt of the + // 10pt base padding). .padding(.leading, showsIcon ? 4 : 12) .frame( maxWidth: .infinity, diff --git a/Crossmate/Views/GameList/GameCardView.swift b/Crossmate/Views/GameList/GameCardView.swift @@ -30,7 +30,7 @@ struct GameCardView: View { VStack(alignment: .leading, spacing: 2) { HStack(spacing: 4) { Text(game.title) - .font((usesRoomierType ? Font.headline : .subheadline).weight(.semibold)) + .font(.headline) .lineLimit(1) .minimumScaleFactor(0.8) .truncationMode(.tail) diff --git a/Crossmate/Views/GameList/GameListView.swift b/Crossmate/Views/GameList/GameListView.swift @@ -619,7 +619,7 @@ struct GameListView: View { inviteThumbnail(for: invite) VStack(alignment: .leading, spacing: 2) { Text(title) - .font(.subheadline.weight(.semibold)) + .font(.headline) .lineLimit(1) .truncationMode(.tail) Text("Invited by \(inviter)") diff --git a/Crossmate/Views/GameList/GameRowView.swift b/Crossmate/Views/GameList/GameRowView.swift @@ -23,7 +23,7 @@ struct GameRowView: View { VStack(alignment: .leading, spacing: 2) { HStack(spacing: 4) { Text(game.title) - .font((usesRoomierType ? Font.headline : .subheadline).weight(.semibold)) + .font(.headline) .lineLimit(1) .minimumScaleFactor(0.8) .truncationMode(.tail)