docs: @Override protected void initGraphics() {
          // Set initial size
          if (Double.compare(clock.getPrefWidth(), 0.0) <= 0 || Double.compare(clock.getPrefHeight(), 0.0) <= 0 ||
              Double.compare(clock.getWidth(), 0.0) <= 0 || Double.compare(clock.getHeight(), 0.0) <= 0) {
              if (clock.getPrefWidth() > 0 && clock.getPrefHeight() > 0) {
                  clock.setPrefSize(clock.getPrefWidth(), clock.getPrefHeight());
              } else {
                  clock.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT);
              }
          }
  
          canvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
          ctx = canvas.getGraphicsContext2D();
  
          pane = new Pane(canvas);
          pane.setBorder(new Border(new BorderStroke(clock.getBorderPaint(), BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(clock.getBorderWidth()))));
          pane.setBackground(new Background(new BackgroundFill(clock.getBackgroundPaint(), CornerRadii.EMPTY, Insets.EMPTY)));
  
          getChildren().setAll(pane);
      }