From ee1556cd21e79c994f7101ac8c743f2eb8f5f320 Mon Sep 17 00:00:00 2001 From: opficdev Date: Sat, 3 Oct 2026 22:25:23 +0900 Subject: [PATCH] =?UTF-8?q?ui:=20=ED=99=9C=EB=8F=99=20=EC=9E=94=EB=94=94?= =?UTF-8?q?=20=EC=9C=84=EC=A0=AF=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- Widget/WidgetExtension/Heatmap/HeatmapWidget.swift | 2 +- .../WidgetExtension/Heatmap/HeatmapWidgetEntryView.swift | 3 ++- Widget/WidgetExtension/Heatmap/WidgetHeatmapGrid.swift | 7 ++++--- Widget/WidgetExtension/Heatmap/WidgetHeatmapLayout.swift | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Widget/WidgetExtension/Heatmap/HeatmapWidget.swift b/Widget/WidgetExtension/Heatmap/HeatmapWidget.swift index 26bf4ce0..3647b970 100644 --- a/Widget/WidgetExtension/Heatmap/HeatmapWidget.swift +++ b/Widget/WidgetExtension/Heatmap/HeatmapWidget.swift @@ -20,7 +20,7 @@ struct HeatmapWidget: Widget { provider: HeatmapWidgetProvider() ) { entry in HeatmapWidgetEntryView(entry: entry) - .containerBackground(.fill.tertiary, for: .widget) + .containerBackground(Color.surface, for: .widget) .widgetURL(WidgetDeepLink.heatmapURL) } .configurationDisplayName(LocalizedStringResource("widget_heatmap_title")) diff --git a/Widget/WidgetExtension/Heatmap/HeatmapWidgetEntryView.swift b/Widget/WidgetExtension/Heatmap/HeatmapWidgetEntryView.swift index 45d3be69..ea0adee6 100644 --- a/Widget/WidgetExtension/Heatmap/HeatmapWidgetEntryView.swift +++ b/Widget/WidgetExtension/Heatmap/HeatmapWidgetEntryView.swift @@ -28,7 +28,7 @@ struct HeatmapWidgetEntryView: View { private func content(_ snapshot: HeatmapWidgetSnapshot) -> some View { switch widgetFamily { case .systemSmall: - VStack(alignment: .leading, spacing: 4) { + VStack(alignment: .leading, spacing: 8) { header(title: "widget_heatmap_current_month_title") WidgetHeatmapGrid( months: currentMonths(from: snapshot), @@ -83,6 +83,7 @@ struct HeatmapWidgetEntryView: View { Text(title) .font(.headline) .lineLimit(1) + .minimumScaleFactor(0.8) Spacer(minLength: 0) } } diff --git a/Widget/WidgetExtension/Heatmap/WidgetHeatmapGrid.swift b/Widget/WidgetExtension/Heatmap/WidgetHeatmapGrid.swift index b03bfaf6..f903c269 100644 --- a/Widget/WidgetExtension/Heatmap/WidgetHeatmapGrid.swift +++ b/Widget/WidgetExtension/Heatmap/WidgetHeatmapGrid.swift @@ -108,10 +108,10 @@ private struct WidgetHeatmapMonthGrid: View { let count = dayCount(for: day) if count == 0 { - return Color(.systemGray5) + return Color.surfaceSecondary } - return Color.blue.opacity(opacity(for: count, max: maxCount)) + return Color.accent.opacity(opacity(for: count, max: maxCount)) } private func dayCount(for day: WidgetHeatmapDaySnapshot) -> Int { @@ -136,7 +136,8 @@ private struct WidgetHeatmapMonthGrid: View { private func opacity(for count: Int, max: Int) -> Double { guard 0 < count && 0 < max else { return 0 } let ratio = Double(count) / Double(max) - return ceil(ratio * 10) / 10 + let level = min(Int(ceil(ratio * 4)), 4) + return 0.2 + 0.2 * Double(level) } } diff --git a/Widget/WidgetExtension/Heatmap/WidgetHeatmapLayout.swift b/Widget/WidgetExtension/Heatmap/WidgetHeatmapLayout.swift index bf273024..797ced41 100644 --- a/Widget/WidgetExtension/Heatmap/WidgetHeatmapLayout.swift +++ b/Widget/WidgetExtension/Heatmap/WidgetHeatmapLayout.swift @@ -39,10 +39,10 @@ struct WidgetHeatmapLayout { max(2, cellSize * 0.2) } - private static let baseCellSpacing: CGFloat = 3 - private static let baseMonthSpacing: CGFloat = 10 + private static let baseCellSpacing: CGFloat = 4 + private static let baseMonthSpacing: CGFloat = 12 private static let maxMonthSpacing: CGFloat = 26 - private static let baseMonthTitleSpacing: CGFloat = 4 + private static let baseMonthTitleSpacing: CGFloat = 6 private static func resolvedMonthTitleSpacing(showsMonthTitles: Bool) -> CGFloat { // 월 제목을 표시하는 Medium에서만 제목과 셀 사이 간격을 확보한다.