docs: @Override protected void resize() {
          width  = gauge.getWidth() - gauge.getInsets().getLeft() - gauge.getInsets().getRight();
          height = gauge.getHeight() - gauge.getInsets().getTop() - gauge.getInsets().getBottom();
  
          if (aspectRatio * width > height) {
              width = 1 / (aspectRatio / height);
          } else if (1 / (aspectRatio / height) > width) {
              height = aspectRatio * width;
          }
  
          if (width > 0 && height > 0) {
              pane.setMaxSize(width, height);
              pane.setPrefSize(width, height);
              pane.relocate((gauge.getWidth() - width) * 0.5, (gauge.getHeight() - height) * 0.5);
              pane.setSpacing(width * 0.01960784);
  
              double barWidth = 0;
              for (int i = 0 ; i < 12 ; i++) {
                  bars[i].setPrefSize(0.3030303 * height, (0.3030303 * height + i * 0.06060606 * height));
                  Bounds bounds = bars[i].getLayoutBounds();
                  barWidth      = bounds.getWidth();
                  if (barWidth == 0) return;
  
                  BarColor barColor;
                  if (i < 2) {
                      barColor = BarColor.RED;
                  } else if (i < 9) {
                      barColor = BarColor.ORANGE;
                  } else {
                      barColor = BarColor.GREEN;
                  }
                  barBackgrounds[i] = new Background(new BackgroundFill[] {
                      new BackgroundFill(Color.WHITE, new CornerRadii(1024), Insets.EMPTY),
                      new BackgroundFill(new LinearGradient(0, bounds.getMinY(), 0, bounds.getMaxY(), false, CycleMethod.NO_CYCLE, new Stop(0.0, barColor.COLOR_FROM), new Stop(1.0, barColor.COLOR_TO)), new CornerRadii(1024), new Insets(0.15 * barWidth))
                  });
                  barBackgrounds[i + 12] = new Background(new BackgroundFill[] {
                      new BackgroundFill(Color.WHITE, new CornerRadii(1024), Insets.EMPTY),
                      new BackgroundFill(new LinearGradient(0, bounds.getMinY(), 0, bounds.getMaxY(), false, CycleMethod.NO_CYCLE, new Stop(0.0, BarColor.GRAY.COLOR_FROM), new Stop(1.0, BarColor.GRAY.COLOR_TO)), new CornerRadii(1024), new Insets(0.15 * barWidth))
                  });
              }
              barBorder = new Border(new BorderStroke(Color.rgb(102, 102, 102), BorderStrokeStyle.SOLID, new CornerRadii(1024), new BorderWidths(0.05 * barWidth)));
          }
          redraw();
      }