Tasks: unify checkboxes to 16pt rounded square across Calendar & Matrix
Match the Today list checkbox (16pt, cornerRadius 5): - Calendar list-view row: cr3/18 → cr5/16. - Calendar day task-list row (CalTaskRow): cr6/22 → cr5/16. - Calendar Month agenda markers (DayTimelineView): task complete + all-day markers circle → rounded square, circleD 18 → 16 (workout stays a circle, the timed bullet stays a dot, so those remain visually distinct). - Matrix row (QDTaskRow): 22 → 16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -648,9 +648,9 @@ struct CalendarView: View {
|
|||||||
}
|
}
|
||||||
ForEach(dayTasks) { task in
|
ForEach(dayTasks) { task in
|
||||||
HStack(spacing: 12) {
|
HStack(spacing: 12) {
|
||||||
RoundedRectangle(cornerRadius: 3)
|
RoundedRectangle(cornerRadius: 5, style: .continuous)
|
||||||
.strokeBorder(task.quadrant.color, lineWidth: 1.5)
|
.strokeBorder(task.quadrant.color, lineWidth: 1.5)
|
||||||
.frame(width: 18, height: 18)
|
.frame(width: 16, height: 16)
|
||||||
Text(task.title).font(AppFonts.sans(13)).foregroundColor(AppColors.text(cs))
|
Text(task.title).font(AppFonts.sans(13)).foregroundColor(AppColors.text(cs))
|
||||||
Spacer()
|
Spacer()
|
||||||
if let d = task.dueDate {
|
if let d = task.dueDate {
|
||||||
@@ -1865,7 +1865,7 @@ private struct DayTLRow: View {
|
|||||||
var onWorkoutTap: (() -> Void)?
|
var onWorkoutTap: (() -> Void)?
|
||||||
var onToggle: (() -> Void)?
|
var onToggle: (() -> Void)?
|
||||||
|
|
||||||
private let circleD: CGFloat = 18
|
private let circleD: CGFloat = 16
|
||||||
private let timeW: CGFloat = 46
|
private let timeW: CGFloat = 46
|
||||||
private let trackW: CGFloat = 26
|
private let trackW: CGFloat = 26
|
||||||
private let topGap: CGFloat = 10
|
private let topGap: CGFloat = 10
|
||||||
@@ -1873,7 +1873,7 @@ private struct DayTLRow: View {
|
|||||||
@ViewBuilder private var marker: some View {
|
@ViewBuilder private var marker: some View {
|
||||||
ZStack {
|
ZStack {
|
||||||
if entry.isComplete {
|
if entry.isComplete {
|
||||||
Circle()
|
RoundedRectangle(cornerRadius: 5, style: .continuous)
|
||||||
.fill(entry.color.opacity(0.14))
|
.fill(entry.color.opacity(0.14))
|
||||||
.frame(width: circleD, height: circleD)
|
.frame(width: circleD, height: circleD)
|
||||||
Image(systemName: "checkmark")
|
Image(systemName: "checkmark")
|
||||||
@@ -1887,7 +1887,7 @@ private struct DayTLRow: View {
|
|||||||
.font(.system(size: 8))
|
.font(.system(size: 8))
|
||||||
.foregroundColor(AppColors.blue)
|
.foregroundColor(AppColors.blue)
|
||||||
} else if entry.isAllDay {
|
} else if entry.isAllDay {
|
||||||
Circle()
|
RoundedRectangle(cornerRadius: 5, style: .continuous)
|
||||||
.strokeBorder(entry.color, lineWidth: 1.5)
|
.strokeBorder(entry.color, lineWidth: 1.5)
|
||||||
.frame(width: circleD, height: circleD)
|
.frame(width: circleD, height: circleD)
|
||||||
} else {
|
} else {
|
||||||
@@ -1995,18 +1995,18 @@ private struct CalTaskRow: View {
|
|||||||
HStack(spacing: 12) {
|
HStack(spacing: 12) {
|
||||||
Button(action: onToggle) {
|
Button(action: onToggle) {
|
||||||
ZStack {
|
ZStack {
|
||||||
RoundedRectangle(cornerRadius: 6)
|
RoundedRectangle(cornerRadius: 5, style: .continuous)
|
||||||
.fill(task.isComplete ? AppColors.surface3(cs) : Color.clear)
|
.fill(task.isComplete ? AppColors.surface3(cs) : Color.clear)
|
||||||
.frame(width: 22, height: 22)
|
.frame(width: 16, height: 16)
|
||||||
RoundedRectangle(cornerRadius: 6)
|
RoundedRectangle(cornerRadius: 5, style: .continuous)
|
||||||
.strokeBorder(
|
.strokeBorder(
|
||||||
task.isComplete ? Color.clear : task.quadrant.color,
|
task.isComplete ? Color.clear : task.quadrant.color,
|
||||||
lineWidth: 1.5
|
lineWidth: 1.5
|
||||||
)
|
)
|
||||||
.frame(width: 22, height: 22)
|
.frame(width: 16, height: 16)
|
||||||
if task.isComplete {
|
if task.isComplete {
|
||||||
Image(systemName: "checkmark")
|
Image(systemName: "checkmark")
|
||||||
.font(.system(size: 10, weight: .bold))
|
.font(.system(size: 9, weight: .bold))
|
||||||
.foregroundColor(AppColors.text3(cs))
|
.foregroundColor(AppColors.text3(cs))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -647,13 +647,13 @@ private struct QDTaskRow: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
HStack(spacing: 12) {
|
HStack(spacing: 12) {
|
||||||
Button(action: onToggle) {
|
Button(action: onToggle) {
|
||||||
RoundedRectangle(cornerRadius: 5)
|
RoundedRectangle(cornerRadius: 5, style: .continuous)
|
||||||
.stroke(task.isComplete ? quadrant.color.opacity(0.3) : quadrant.color, lineWidth: 1.5)
|
.stroke(task.isComplete ? quadrant.color.opacity(0.3) : quadrant.color, lineWidth: 1.5)
|
||||||
.frame(width: 22, height: 22)
|
.frame(width: 16, height: 16)
|
||||||
.overlay {
|
.overlay {
|
||||||
if task.isComplete {
|
if task.isComplete {
|
||||||
Image(systemName: "checkmark")
|
Image(systemName: "checkmark")
|
||||||
.font(.system(size: 9, weight: .bold))
|
.font(.system(size: 8, weight: .bold))
|
||||||
.foregroundColor(quadrant.color.opacity(0.5))
|
.foregroundColor(quadrant.color.opacity(0.5))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user