Merge develop -> main: full session (KC-51 through KC-71) #28
@@ -2176,3 +2176,14 @@ etc., previously crammed under the title on the left) moved to a trailing
|
|||||||
reads title/date on the left, countdown/indicators on the right, instead of
|
reads title/date on the left, countdown/indicators on the right, instead of
|
||||||
all metadata piled on the left and the right column empty. `TodayTLRow` was
|
all metadata piled on the left and the right column empty. `TodayTLRow` was
|
||||||
left as-is (its leading time-track column already fills that role there).
|
left as-is (its leading time-track column already fills that role there).
|
||||||
|
|
||||||
|
### Follow-up 2 — typography polish
|
||||||
|
User asked for the row text to be "easy on the eye" without increasing any
|
||||||
|
font sizes. Impeccable was considered but is a no-op here (its `detect`
|
||||||
|
engine only parses HTML, not Swift/SwiftUI — confirmed limitation from the
|
||||||
|
F1 Pitt project setup). Applied by hand instead, sizes unchanged: title
|
||||||
|
bumped from `.regular` to `.medium` weight for stronger hierarchy against
|
||||||
|
the dimmer date/countdown line; both mono metadata lines (date and
|
||||||
|
countdown) got `.tracking(0.2)` for legibility at 9.5pt; column spacing
|
||||||
|
loosened slightly (2→3 left, 3→4 right) for breathing room between the two
|
||||||
|
lines.
|
||||||
|
|||||||
@@ -1350,13 +1350,14 @@ struct TaskRowView: View {
|
|||||||
}
|
}
|
||||||
.buttonStyle(PressButtonStyle(scale: 0.82))
|
.buttonStyle(PressButtonStyle(scale: 0.82))
|
||||||
|
|
||||||
VStack(alignment: .leading, spacing: 2) {
|
VStack(alignment: .leading, spacing: 3) {
|
||||||
Text(task.title)
|
Text(task.title)
|
||||||
.font(AppFonts.sans(13))
|
.font(AppFonts.sans(13, weight: .medium))
|
||||||
.foregroundColor(AppColors.text(cs))
|
.foregroundColor(AppColors.text(cs))
|
||||||
if let d = task.dueDate, showDetails {
|
if let d = task.dueDate, showDetails {
|
||||||
Text("\(dueFmt.string(from: d))\(task.isRecurring ? " · \(task.recurrenceLabel ?? "Repeat")" : "")")
|
Text("\(dueFmt.string(from: d))\(task.isRecurring ? " · \(task.recurrenceLabel ?? "Repeat")" : "")")
|
||||||
.font(AppFonts.mono(9.5))
|
.font(AppFonts.mono(9.5))
|
||||||
|
.tracking(0.2)
|
||||||
.foregroundColor(AppColors.text3(cs))
|
.foregroundColor(AppColors.text3(cs))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1366,10 +1367,11 @@ struct TaskRowView: View {
|
|||||||
// Right column mirrors the left: countdown metadata on top,
|
// Right column mirrors the left: countdown metadata on top,
|
||||||
// icon-only category/reminder/series indicators below — fills
|
// icon-only category/reminder/series indicators below — fills
|
||||||
// what used to be dead space instead of a lone floating icon.
|
// what used to be dead space instead of a lone floating icon.
|
||||||
VStack(alignment: .trailing, spacing: 3) {
|
VStack(alignment: .trailing, spacing: 4) {
|
||||||
if let d = task.dueDate, showDetails {
|
if let d = task.dueDate, showDetails {
|
||||||
Text(countdownLabel(to: d))
|
Text(countdownLabel(to: d))
|
||||||
.font(AppFonts.mono(9.5, weight: .semibold))
|
.font(AppFonts.mono(9.5, weight: .semibold))
|
||||||
|
.tracking(0.2)
|
||||||
.foregroundColor(countdownColor(to: d))
|
.foregroundColor(countdownColor(to: d))
|
||||||
}
|
}
|
||||||
HStack(spacing: 5) {
|
HStack(spacing: 5) {
|
||||||
|
|||||||
Reference in New Issue
Block a user