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?

Reply via email to