# floret-kit The shared **Material 3 Expressive design system + plumbing** for the Floret family of Android apps ([Calendula](https://gitea.jeanlucmakiola.de/makiolaj/calendula), [Agendula](https://gitea.jeanlucmakiola.de/makiolaj/agendula), and future siblings). "Floret" is the family's design language: a Calendula flower head is a cluster of many small *florets*, and each app is one of them. This repo is the bloom they share — so a new app doesn't reinvent a settings screen, an edit form, or a theme; it draws from here. ## How it's consumed Each app embeds this repo as a **git submodule** and wires it in with a Gradle **composite build**, so the kit is always built **from source** (no published artifacts — keeps every app reproducible for F-Droid): ```kotlin // app's settings.gradle.kts includeBuild("floret-kit") ``` ```kotlin // app module's build.gradle.kts implementation("de.jeanlucmakiola.floret:core-time") ``` Gradle's dependency substitution maps `de.jeanlucmakiola.floret:` to the local source module — edit the kit and the app picks it up immediately. ## Modules | Module | What it holds | |--------|---------------| | `core-time` | Pure-Kotlin date/time helpers: local-day windows (`DayWindow`) for smart-list logic and locale/zone-aware display formatting (`Instant.formatDate()` / `formatTime()` / `formatDateTime()`). No Android, no deps. | _More modules (identity/theme, components, screen recipes, provider/prefs/reminders/crash plumbing) land as they're extracted from the apps._ ## Build ```sh ./gradlew :core-time:test ```