WaterView added two toggle rows which pushed content past panel
height, so it got wrapped in a ScrollView. That introduced a
vertical scroll bar — visually noisy for a tab that should fit at a
glance.
Compaction strategy:
- VStack spacing 14 → 10 (saves ~24pt across 4 gaps)
- cupShape 130×160 → 100×130 (saves ~30pt + width breathing room)
- Big "X" number font 40 → unchanged (still readable in 100pt cup)
- toggleRows (vertical 2-stack of 32pt pills) → toggleRow
(horizontal 30pt single line with short labels "🍅 +1" / "整点提醒")
- Drop tipText (saves ~30pt) — redundant with the badge text
Net height now fits inside the panel without scroll.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two cross-tab integrations from the 2026-05-20 product superpower
review:
1. waterAutoFromPomodoro (default true) — each pomodoro focus phase
end auto-logs 1 cup. Lazy users get streak data without taps,
pomodoro break is the natural "go drink water" cue.
2. waterHourlyReminder (default true) — Mon–Fri 9..18 hourly nag if
cups < goal. Deduped by last-fired-hour so plugin restart in the
same hour won't double-fire.
UI: WaterView now wraps in ScrollView (toggles push it past 580pt),
adds two togglePill rows below the goalRow. Custom slim-track
indicator since SwiftUI's Toggle styling clashes with the plugin's
dark capsule aesthetic.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Office-survival toolkit. Five tabs in the notch:
- 🍅 番茄钟: 25/5 focus/break with circular ring timer + tally.
- 🪑 久坐: count-up since last break, dock-bounce alert at 45min.
- 💧 喝水: animated cup, daily goal tracking with progress dots.
- 🏃 下班: H:M:S countdown to clock-out hour with gradient bar.
- 🎉 周末: 天/时/分 to next Saturday + rotating 打工语录.
100% local. UNUserNotificationCenter for alerts, dock-bounce
fallback when authorization denied. UserDefaults persistence.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>