Yaru design system
Ubuntu Yaru widgets and themes for Compose Multiplatform, with a Nucleus-backed YaruDecoratedWindow.
yaru-compose-ui ports
yaru.dart to Compose Multiplatform: 50+ widgets, accent
variants, light/dark/high-contrast themes, and a GNOME-style YaruDecoratedWindow on Nucleus
Tao. Versioned independently of Nucleus (current release 1.0.1).
Live gallery: nucleusframework.github.io/yaru-compose-ui.
Add the dependency
Design system only (no native windowing):
dependencies {
implementation("dev.nucleusframework.yarucompose:yaru:1.0.1")
}Desktop window (pulls yaru + Nucleus Tao transitively):
dependencies {
implementation("dev.nucleusframework.yarucompose:yaru-decorated-window:1.0.1")
}Open a Yaru window
import dev.nucleusframework.application.nucleusApplication
import dev.nucleusframework.yarucompose.themes.YaruTheme
import dev.nucleusframework.yarucompose.themes.YaruVariant
import dev.nucleusframework.yarucompose.window.YaruDecoratedWindow
fun main() = nucleusApplication {
YaruDecoratedWindow(onCloseRequest = ::exitApplication, title = "Settings") {
YaruTheme(isDark = false, variant = YaruVariant.Orange) {
App()
}
}
}YaruTheme must sit inside the window content so chrome tracks the resolved colour scheme
and layout direction (including RTL).
How it works
yaru is design-only and talks to windowing through optional composition locals.
yaru-decorated-window fulfils those contracts with Nucleus and ships the native binaries;
leave it out if you draw into a plain Compose Window or a non-JVM target.