August 18th, 2025

New

Improved

v0.1.0

✨ New Features

KoffeeBar (Experimental)

A new wrapper for Koffee.Setup() + Koffee.Init().
Wrap your root (or target) layout to configure Koffee in one place — stable across recompositions.

val myConfig = remember {
    KoffeeDefaults.config.copy(
        layout = { GlowingToast(it) },
        dismissible = true,
        maxVisibleToasts = 3,
        position = ToastPosition.BottomCenter,
        animationStyle = ToastAnimation.SlideUp,
        durationResolver = ::customDurationResolver,
    )
}

fun customDurationResolver(duration: ToastDuration): Long? = when (duration) {
    ToastDuration.Short -> 5000L
    ToastDuration.Medium -> 7000L
    ToastDuration.Long -> 10000L
    ToastDuration.Indefinite -> null
}

KoffeeBar(
    modifier = Modifier.padding(innerPadding),
    config = myConfig,
) {
    NavHost()
}

ToastSuite (toasts_suite)

Two new demo toast layouts to inspire your own:

  • GlowingToast

  • GradientToast

Want yours featured? Open an issue + PR.


📈 Enhancements

  • Linting — Added custom lint rules for marking experimental Koffee APIs.


🪦 Deprecations

Koffee.show(scope = …) is deprecated.

  • Before: You could pass a custom coroutine scope.

  • Now: Always call Koffee.show() without a scope — DefaultToastHostState runs on the main thread and uses mutex.withLock to ensure only one toast shows/dismisses at a time.


🙌 Credits

  • Donald O. Isoe — Creator & Maintainer


Full Changelog: 0.0.4 → 0.1.0

Built on ☕ by Donald O. Isoe

What's Changed

  • test: Adds tests to project and workflow (closes #13) by @donald-okara in https://github.com/donald-okara/koffee/pull/19

  • docs: Adds inline documentation and markdowns (closes #14, #15) by @donald-okara in https://github.com/donald-okara/koffee/pull/20

  • chore: Deprecates unused scope from Koffee.show (closes #22) by @donald-okara in https://github.com/donald-okara/koffee/pull/23

  • docs: refactor readme to include maven central implementation (Fixes #28) by @donald-okara in https://github.com/donald-okara/koffee/pull/29

  • docs: add conventions to contributions md (Fixes #27) by @donald-okara in https://github.com/donald-okara/koffee/pull/30

  • feat: add custom lint rules (Fixes #24) by @donald-okara in https://github.com/donald-okara/koffee/pull/32

  • docs: add linting (closes #24, #25) by @donald-okara in https://github.com/donald-okara/koffee/pull/33

  • feat: add KoffeeBar to wrap composable using toasts (Fixes #34) by @donald-okara in https://github.com/donald-okara/koffee/pull/35

  • feat: merge branches to master by @donald-okara in https://github.com/donald-okara/koffee/pull/37

Full Changelog: https://github.com/donald-okara/koffee/compare/0.0.4...0.1.0