feat(ui): month card grid + week timeline, wire view switcher
Replace the throwaway debug screen with the first real calendar UI and a functional Month <-> Week switcher, on Material 3 Expressive. Month view (S1): - Material 3 Expressive card-per-day grid; only the current month's weeks render (neighbouring days left blank) - per-day event dots with "+N" overflow, today via primaryContainer - spring-based press feedback from the active motion scheme - swipe + drawer navigation, Loading/Failure/Success states Week view (S2): - vertical time schedule with overlap-resolved lanes (per-day clipping, midnight spanning, instant events) - all-day / multi-day events as connected horizontal spans - single scroll container (gutter + day columns stay aligned), columns bundled in a rounded container, noon-centred on load - top section colour-shifts with the app bar on scroll; swipe navigation, three states Shared / infra: - CalendarHost holds the active view; RootScreen renders it post-permission - ui/common building blocks: CalendarDrawer, CalendarFailure, ViewSwitcherPill, pastelize, observable locale, M3 Expressive slide transition (motionScheme fastSpatialSpec) - unit tests for the week layout (lanes, clipping, all-day spans) - build: compileSdk 37, material3 pinned to 1.5.0-alpha21 for Expressive Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,8 @@
|
||||
|---|---|---|
|
||||
| v0.1 | Foundation & CI | complete |
|
||||
| v0.2 | Data Layer & Permission Flow | complete |
|
||||
| v0.3 | Month view | pending |
|
||||
| v0.4 | Week view | pending |
|
||||
| v0.3 | Month view | in progress |
|
||||
| v0.4 | Week view | in progress |
|
||||
| v0.5 | Day view | pending |
|
||||
| v0.6 | Event Detail Sheet | pending |
|
||||
| v0.7 | Filter & Settings | pending |
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
# Calendula — Current State
|
||||
|
||||
*Last updated: 2026-06-08*
|
||||
*Last updated: 2026-06-10*
|
||||
|
||||
## Status
|
||||
|
||||
**Milestone:** v0.2 — Data Layer & Permission Flow
|
||||
**Phase:** Plan 02 complete; UI-design iteration pending before Plan 03
|
||||
**Milestone:** v0.4 — Week view (in progress)
|
||||
**Phase:** Month + Week views implemented; cross-cutting wiring (detail sheet,
|
||||
filter, settings, jump-to-date) still stubbed
|
||||
|
||||
## Progress
|
||||
|
||||
@@ -13,11 +14,15 @@
|
||||
- [x] V1 design decisions resolved (App name "Calendula", icon, seed color)
|
||||
- [x] Plan 01 written and executed — foundation lands (theme, icon, i18n, Hilt, DataStore, CI green)
|
||||
- [x] Plan 02 written and executed — data layer + permission flow + debug screen
|
||||
- [ ] UI-design iteration (mockups for Month/Week/Day/Detail/Filter/Settings, all three states)
|
||||
- [ ] Plan 03 (Month view)
|
||||
- [x] Month view (S1) — 6-week grid, event dots, today marker, swipe nav, three states (replaces debug screen)
|
||||
- [x] Week view (S2) — time schedule with overlap-resolved lanes, all-day strip, swipe nav, three states
|
||||
- [x] View-switcher (M1) wired — cycles Month ↔ Week (Day joins once S3 lands)
|
||||
- [ ] Day view (S3)
|
||||
- [ ] Event-detail sheet (S4) — week/month event taps are currently no-ops
|
||||
- [ ] Filter sheet (M3), Settings (M4), Jump-to-date (M2) — drawer entries stubbed
|
||||
|
||||
## Next
|
||||
|
||||
1. Iterate on UI design (mockups per screen, all three states)
|
||||
2. Write Plan 03: Month view
|
||||
3. Execute Plan 03 — Debug screen gets replaced by month view
|
||||
1. Day view (S3) — slot it into the view-switcher cycle
|
||||
2. Event-detail sheet (S4) — wire month-day and week-event taps to it
|
||||
3. Revisit month/week UI polish + shared anchor-date continuity across views
|
||||
|
||||
Reference in New Issue
Block a user