docs: private void initGraphics() {
          // Set initial size
          if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 ||
              Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) {
              if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) {
                  gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight());
              } else {
                  gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT);
              }
          }
  
          backgroundCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
          backgroundCtx    = backgroundCanvas.getGraphicsContext2D();
          
          barCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
          barCtx    = barCanvas.getGraphicsContext2D();
  
          valueBkgText = new Text();
          valueBkgText.setStroke(null);
          valueBkgText.setFill(Helper.getTranslucentColorFrom(valueColor, 0.1));
  
          valueText = new Text();
          valueText.setStroke(null);
          valueText.setFill(valueColor);
          Helper.enableNode(valueText, gauge.isValueVisible());
  
          pane = new Pane(backgroundCanvas, barCanvas, valueBkgText, valueText);
          pane.setBackground(new Background(new BackgroundFill(gauge.getBackgroundPaint(), new CornerRadii(1024), Insets.EMPTY)));
          pane.setBorder(new Border(new BorderStroke(gauge.getBorderPaint(), BorderStrokeStyle.SOLID, new CornerRadii(1024), new BorderWidths(gauge.getBorderWidth()))));
  
          getChildren().setAll(pane);
      }