RFR: 8358450: Viewport characteristics media features [v15]
Michael Strauß
mstrauss at openjdk.org
Tue Dec 16 20:08:10 UTC 2025
> Implementation of [viewport characteristics media features](https://www.w3.org/TR/mediaqueries-5/#mf-viewport-characteristics):
> * `width`
> * `height`
> * `aspect-ratio`: width / height
> * `orientation`: `portrait`, `landscape`
> * `display-mode`: `fullscreen`, `standalone` (note: `browser` and `minimal-ui` are not supported in JavaFX)
>
> Here's a small example how the new media features can be used:
>
> @Override
> public void start(Stage stage) {
> var button = new Button("Toggle full-screen");
> button.setOnAction(_ -> stage.setFullScreen(!stage.isFullScreen()));
> var label = new Label();
> var root = new BorderPane(button, null, null, label, null);
> var scene = new Scene(root, 650, 200);
> BorderPane.setAlignment(label, Pos.CENTER);
> label.textProperty().bind(scene.widthProperty().map(v -> String.format("Width: %.2f", v.doubleValue())));
> scene.getStylesheets().add("data:text/css;base64," + Base64.getEncoder().encodeToString("""
> @media (max-width: 500) {
> .button {
> -fx-background-color: red;
> }
> }
>
> @media (600 < width <= 700) {
> .button {
> -fx-background-color: green;
> }
> }
>
> @media (min-width: 800) {
> .button {
> -fx-background-color: yellow;
> }
> }
>
> @media (display-mode: fullscreen) {
> .button {
> -fx-background-color: black !important;
> }
> }
> """.getBytes(StandardCharsets.UTF_8)));
>
> stage.initStyle(StageStyle.DECORATED);
> stage.setScene(scene);
> stage.show();
> }
Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:
formatting
-------------
Changes:
- all: https://git.openjdk.org/jfx/pull/1844/files
- new: https://git.openjdk.org/jfx/pull/1844/files/795d1e14..1c690d4f
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jfx&pr=1844&range=14
- incr: https://webrevs.openjdk.org/?repo=jfx&pr=1844&range=13-14
Stats: 22 lines in 1 file changed: 6 ins; 1 del; 15 mod
Patch: https://git.openjdk.org/jfx/pull/1844.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1844/head:pull/1844
PR: https://git.openjdk.org/jfx/pull/1844
More information about the openjfx-dev
mailing list