Nucleus
Window & toolkits

Design system Yaru

Widgets et thèmes Ubuntu Yaru pour Compose Multiplatform, avec YaruDecoratedWindow basé sur Nucleus.

yaru-compose-ui porte yaru.dart vers Compose Multiplatform : 50+ widgets, variantes d'accent, thèmes clair/sombre/contraste élevé, et une YaruDecoratedWindow style GNOME sur Nucleus Tao. Versionné indépendamment de Nucleus (release courante 1.0.1).

Galerie live : nucleusframework.github.io/yaru-compose-ui.

Ajouter la dépendance

Design system seul (sans fenêtrage natif) :

build.gradle.kts
dependencies {
    implementation("dev.nucleusframework.yarucompose:yaru:1.0.1")
}

Fenêtre desktop (tire yaru + Nucleus Tao en transitif) :

build.gradle.kts
dependencies {
    implementation("dev.nucleusframework.yarucompose:yaru-decorated-window:1.0.1")
}

Ouvrir une fenêtre Yaru

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 = "Paramètres") {
        YaruTheme(isDark = false, variant = YaruVariant.Orange) {
            App()
        }
    }
}

YaruTheme doit être dans le contenu de la fenêtre pour que le chrome suive le schéma de couleurs et le sens de mise en page.

Fonctionnement

yaru est purement design et parle au fenêtrage via des composition locals optionnels. yaru-decorated-window remplit ces contrats avec Nucleus et livre les binaires natifs.

Et ensuite