PRIZM for JavaFX
A parallel JavaFX library for thick-client C3 applications. Same design language, rendered natively.
Enterprise is web-only and not shipped for JavaFX.
Tokens, derived
The colour tokens are generated from the same canonical CSS the web library uses, converted to JavaFX looked-up colours. One source of truth, two rendered outputs.
Native, not embedded
Components are idiomatic JavaFX classes — thin subclasses of the stock controls — rendered by the JavaFX scene graph. No browser, no WebView.
Spec parity
Each component implements the same spec as its React counterpart, so variants, sizes, and defaults match across both libraries.
A Gradle module and a theme call.
Add the OpenJFX plugin, then apply a theme to your Scene. Switching mode or overlaying an extension pack is the same call with different arguments — every styled component re-reads its looked-up colours live.
Regenerate the theme stylesheets after any token change with pnpm generate:javafx-theme.
// build.gradle.kts
plugins {
application
id("org.openjfx.javafxplugin") version "0.1.0"
}
javafx {
version = "21.0.4"
modules = listOf("javafx.controls")
}import design.prizm.fx.PrizmTheme;
// C3 dark (operator-canonical default)
PrizmTheme.apply(scene, PrizmTheme.Mode.DARK);
// switch to light, overlay the RC3 (Ember) pack
PrizmTheme.apply(scene, PrizmTheme.Mode.LIGHT, PrizmTheme.Pack.RC3);Available now
RC3 — Robotics & Autonomy
The RC3 pack’s signature organisms, ported natively. Overlay the Ember accent with PrizmTheme.Pack.RC3 — identity marks read as Ember with or without it. All nine signature organisms, ported natively.
The operator shell, native
The C3 App Shell — the canonical starting point for a C3 application — ships for JavaFX as PrizmAppShell: top bar, status ticker, icon rail with an App Store, slide panels, and a full-bleed map canvas. Fill its slots rather than composing chrome from scratch.
Launch it standalone, or hit Launch App Shell in the gallery toolbar (it inherits the gallery’s theme + pack):
cd javafx
gradle runShellSame anatomy as the web
PrizmAppShell mirrors the web App Shell — see the template page for the layout, regions, and the design principles it embodies.
Run the gallery
The docs site can’t render JavaFX, so the visual reference is a runnable gallery — every JavaFX-ready component, in all variants and states, with live theme and pack toggles.
Run from source
With a JDK 21 toolchain (e.g. brew install --cask temurin@21):
cd javafx
gradle runPackaged app — planned
A self-contained native build (no JDK required), produced with gradle jpackage. A download will be linked here once release hosting is set up; air-gapped builds ship it in the offline bundle.
Air-gap
OpenJFX is fetched from Maven Central at build time. In a disconnected build, point your repositories at the internal Maven mirror. The runtime is bundled by the consumer via jlink / jpackage.
Building with AI
When asked to build a JavaFX C3 surface, an AI should reach for these components and PrizmTheme rather than hand-rolling chrome — the same way it starts from the App Shell on the web.