Make JavaFX look like it's from the future

A hands-on guide to custom controls, skins, window chrome, runtime theme switching, and Fluent Design materials — for desktop developers who want their app to feel current.

ThemeManager.java
// three-tier tokens, resolved live public class ThemeManager {  public void applyTheme(Theme theme) {      theme.switch();      scene.getStylesheets().setAll(theme.stylesheet());    } }

Ten chapters, built from one ambitious idea

This book is for the developer who has just discovered that no existing control does quite what the project needs — and for the one who has found out that some default controls resist being restyled from CSS alone.

It will guide you through building your own UI control library. If you can imagine an ambitious or unconventional UI control, this book will be your main resource for building it.

01
The Basic Skeleton
Covers the architecture behind custom controls and skins, and the minimum skeleton you need before building anything on top of it.
02
Updating Properties
How a skin communicates with its corresponding control by attaching ChangeListeners or declaring bindings on properties.
03
Bounds
Optional reading. Covers the three kinds of layout bounds that JavaFX provides.
04
Regions and Layouts
Optional reading. Explains how layoutChildren() works and how to perform clipping operations on nodes.
05
Styling from CSS
A dense, essential chapter: how to customize your controls with your own CSS rules, such as -fx-my-rule.
06
Switching Modes
How an application can switch between light and dark mode without rebuilding the entire interface.
07
Virtualization
Optional reading. Explains how virtualization works on controls like ListView, TableView, and TreeView.
08
Microinteractions
Optional reading. Building a small animation library, with standard and premium microinteractions, to integrate into custom skins.
09
Fluent
Mandatory reading. Brings together everything from chapters 1–5 to dissect Mica, Acrylic, and Reveal, and shows you how to build your own backdrop-blur mechanism.
10
Custom Stages
How to build your own professional window chrome from scratch, instead of relying on what the OS gives you for free.

Read by developers shipping real desktop apps

The chapter on runtime theme switching alone paid for the book. I finally understand why my old stylesheet swaps used to flicker.

EK
Elena Kovač
JavaFX consultant

I went in for the skinning chapters and stayed for the custom Control/Skin architecture. My internal dashboard controls are unrecognizable now.

MR
Marcus Reyes
Desktop tooling lead

Clear, code-first, and honest about what's optional. The Fluent chapter on Mica and Acrylic is the best explanation of backdrop blur in JavaFX I've found anywhere.

PN
Priya Nandan
Indie developer

Before you get the book

You should already be comfortable building a JavaFX application — laying out scenes, wiring up FXML or plain Java, and applying basic CSS. The book doesn't cover JavaFX fundamentals; it picks up where the reference documentation stops, at the point where the default controls or default styling no longer do what you need.

Yes. Every control built in the book ships with its complete Control/Skin/CSS source, not fragments — you can drop each one into your own project and adapt it directly.

Both. The first half covers skinning and restyling the controls JavaFX already ships with. The second half walks through designing original controls — architecture, skin, and CSS — for components the platform doesn't provide at all.