Implementing the 'var()' syntax in JavaFX CSS would probably be a nice
addition.
I always hated that the way JavaFX specifies color variables are not CSS
conform.
Also currently, because they start with a '-' (minus), they are first
parsed as integer, which will fail.
So I think this will also slightly improve parsing performance, if we
detect that more reliable with the standard 'var()'.
-- Marius
On 10/8/26 10:41 AM, John Hendrikx wrote:
On 07/10/2026 17:00, Nir Lisker wrote:
JavaFX has no way to derive rgba colors from color constants, but it can
derive brightness changes. For example:
.root {
-primary: #d4af37; // rgb: 212, 175, 55
-dim: derive(-primary, -25%); // brightness change
-wash: rgba(212, 175, 55, 0.14); // works by retyping the numbers
-wash2: rgba(-primary, 0.25); // fails: Expected '<number>' or
'<percentage>' while parsing '-wash2'
}
`derive` is not standard CSS, so we could do anything we want there.
Variables without using `var()` are not standard CSS.
`rgba` is standard CSS, and it doesn't support changing the transparency
in that way (only SCSS/LESS do it that way and was rejected for standard
CSS).
Options I think there that are available:
- Implement `color-mix`
- Implement the new relative color syntax `rgb(from var(--primary) r g b
/ 0.25)` -- nasty I think, extracting components etc.., probably
requires a new parser
- Extend `derive` with a 3rd parameter
Alternatively, you can just use SCSS in JavaFX:
https://github.com/int4-org/SCSS
--John
I haven't done much work in the CSS parser area. Can this functionality be
implemented in a CSS spec-compliant way?