Files
jeanlucmakiola.de/src/content/projects/floret-kit.md
T
makiolaj ff3c0fa437 Point sources at Codeberg, add the Play button, refresh descriptions
Codeberg is where the apps live now, so the source link, its icon and the
release lookup follow. Forgejo serves Gitea's /api/v1, so the version badge
keeps working — with a fallback to the newest pre-release, since a pre-1.0
app publishes nothing else (Agendula showed a stale v0.2.0 before).

Calendula is on Google Play as well as F-Droid; adds a tonal button for it,
and its fifteen community translations replace "German and English".

Agendula's entry described the app it stopped being: it now carries its own
VTODO store, with an external provider as a choice rather than a requirement,
plus export and its own CalDAV sync in progress. floret-kit's modules have
grown past core-time. Footer forge link and the /uses infrastructure list
separate the two roles: Codeberg for source, self-hosted Gitea for builds.
2026-09-09 16:09:30 +02:00

1.8 KiB

name, order, status, released, platform, license, summary, tech, features, links
name order status released platform license summary tech features links
floret-kit 3 Design system false Android library MIT The shared Material 3 Expressive design system and plumbing behind the Floret app family — so each app draws from one bloom instead of reinventing it.
Kotlin
Jetpack Compose
Gradle composite build
title body
Built from source Embedded as a git submodule and wired in with a Gradle composite build — no published artifacts, which keeps every app reproducible for F-Droid.
title body
Identity and components The M3 Expressive theme factory, navigation motion and predictive-back peek, plus the shared Compose vocabulary each screen is written out of — grouped rows, inline fields, option cards, full-screen pickers, collapsing scaffolds.
title body
Plumbing, not looks core-time (local-day windows, locale-aware formatting), core-reminders (lead-time model and codec), core-locale (per-app language), core-crash (on-device capture and issue hand-off) — each app layers its own storage and strings on top.
title body
Mechanics shared, look per-app The principle the kit is held to: a component moves here once two apps need the same behaviour, while palette and personality stay with the app.
codeberg donate
https://codeberg.org/jlmakiola/floret-kit https://ko-fi.com/jeanlucmakiola

"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. floret-kit 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. Gradle's dependency substitution maps de.jeanlucmakiola.floret:<module> to local source, so editing the kit updates every app immediately.