Native design systems
macOS 26, Fluent, Yaru, Jewel and Material restyle the same Nucleus window for each desktop design language.
Nucleus opens the OS window; design systems style the chrome and the widgets. macOS 26, Fluent and Yaru ship as separate open-source Compose Multiplatform libraries on Maven Central, each with a Nucleus-backed decorated window for desktop. Jewel and Material adapters stay inside the Nucleus repository.
The toolkits
| Toolkit | Native to | Artifacts / module | Status |
|---|---|---|---|
| macOS 26 | macOS Tahoe | dev.nucleusframework:compose-macos-ui | Available (v1.0.0) |
| Fluent | Windows 11 | dev.nucleusframework.composefluent:fluent + decorated-window-fluent | Available (v1.0.0) |
| Yaru | Ubuntu / GNOME | dev.nucleusframework.yarucompose:yaru + yaru-decorated-window | Available (v1.0.1) |
| Jewel | Cross-platform | nucleus.decorated-window-jewel | Available (with Nucleus) |
| Material 2 | Fallback | nucleus.decorated-window-material2 | Available (with Nucleus) |
| Material 3 | Fallback | nucleus.decorated-window-material3 | Available (with Nucleus) |
The three design-system repos version independently of Nucleus. Pin them separately; they depend on Nucleus 2.2+ for the Tao window on desktop.
Live galleries:
Choose a toolkit
plugins {
id("dev.nucleusframework")
}
dependencies {
implementation("dev.nucleusframework:compose-macos-ui:1.0.0")
}import dev.nucleusframework.application.nucleusApplication
import dev.nucleusframework.macoscompose.window.MacosDecoratedWindow
fun main() = nucleusApplication {
MacosDecoratedWindow(onCloseRequest = ::exitApplication, title = "Mail") {
// MacosTheme + components live inside the window content
App()
}
}See the macOS 26 toolkit page and the repo README.
dependencies {
implementation("dev.nucleusframework.composefluent:fluent:1.0.0")
implementation("dev.nucleusframework.composefluent:decorated-window-fluent:1.0.0")
}import dev.nucleusframework.application.nucleusApplication
import dev.nucleusframework.window.fluent.FluentDecoratedWindow
import dev.nucleusframework.window.fluent.FluentTitleBar
fun main() = nucleusApplication {
FluentDecoratedWindow(onCloseRequest = ::exitApplication, title = "Settings") {
FluentTitleBar { /* … */ }
// FluentTheme + Mica / components
App()
}
}See the Fluent toolkit page and compose-fluent-ui.
dependencies {
// Pulls yaru + Nucleus Tao transitively.
implementation("dev.nucleusframework.yarucompose:yaru-decorated-window:1.0.1")
}import dev.nucleusframework.application.nucleusApplication
import dev.nucleusframework.yarucompose.window.YaruDecoratedWindow
fun main() = nucleusApplication {
YaruDecoratedWindow(onCloseRequest = ::exitApplication, title = "Settings") {
// YaruTheme must be inside the window content
App()
}
}See the Yaru toolkit page and yaru-compose-ui.
dependencies {
implementation("dev.nucleusframework:nucleus.nucleus-application:2.3.0")
implementation("dev.nucleusframework:nucleus.decorated-window-tao:2.3.0")
implementation("dev.nucleusframework:nucleus.decorated-window-jewel:2.3.0")
}import dev.nucleusframework.application.nucleusApplication
import dev.nucleusframework.window.jewel.JewelDecoratedWindow
import dev.nucleusframework.window.jewel.JewelTitleBar
fun main() = nucleusApplication {
JewelDecoratedWindow(onCloseRequest = ::exitApplication, title = "Tools") {
JewelTitleBar { state -> /* … */ }
MyContent()
}
}dependencies {
implementation("dev.nucleusframework:nucleus.nucleus-application:2.3.0")
implementation("dev.nucleusframework:nucleus.decorated-window-tao:2.3.0")
implementation("dev.nucleusframework:nucleus.decorated-window-material3:2.3.0")
}import dev.nucleusframework.application.nucleusApplication
import dev.nucleusframework.window.material.MaterialDecoratedWindow
import dev.nucleusframework.window.material.MaterialTitleBar
fun main() = nucleusApplication {
MaterialDecoratedWindow(onCloseRequest = ::exitApplication, title = "App") {
MaterialTitleBar { state -> /* … */ }
MyContent()
}
}How it works
macOS, Fluent and Yaru are full design systems (widgets, theme, icons) plus an optional
desktop window module that wraps Nucleus DecoratedWindow / Tao. Jewel and Material in this
repo are window chrome adapters only — you still pick the widget library yourself.
On desktop, apply the design-system Theme inside the decorated window content so native
surfaces (glass, caption, Mica) can follow the app theme rather than the OS setting alone.
For full-window layouts and custom chrome without a design-system pack, use
WindowScaffold on Tao.