docs: private void redraw() {
          double width  = getWidth() - getInsets().getLeft() - getInsets().getRight();
          double height = getHeight() - getInsets().getTop() - getInsets().getBottom();
          size          = width < height ? width : height;
  
          if (size > 0) {
              if (getWidth() > getHeight()) {
                  setTranslateX(0.5 * (getWidth() - size));
              } else if (getHeight() > getWidth()) {
                  setTranslateY(0.5 * (getHeight() - size));
              }
  
              frame.setPrefSize(size, size);
              frame.setBorder(gaugeDesign.getBorder(size));
  
              background.setCenterX(size * 0.5);
              background.setCenterY(size * 0.5);
              background.setRadius(size * 0.4375);
  
              background.setFill(gaugeBackground.getPaint(background.getLayoutBounds().getMinX(), background.getLayoutBounds().getMinY(),
                                                          background.getLayoutBounds().getMaxX(), background.getLayoutBounds().getMaxY()));
  
              switch(gaugeDesign) {
                  case NONE:
                      frame.setVisible(false);
                      foreground.setVisible(false);
                      background.setVisible(false);
                      break;
                  case ENZO:
                      background.setFill(Color.rgb(240, 240, 240));
                      innerShadow.setRadius(0.07407407 * size);
                      innerShadow.setOffsetX(0);
                      innerShadow.setOffsetY(0.07407407 * size);
                      innerShadow.setColor(Color.rgb(0, 0, 0, 0.35));
                      foreground.setFill(Color.TRANSPARENT);
                      foreground.setStroke(null);
                      break;
                  default:
                      frame.setVisible(true);
                      foreground.setVisible(true);
                      background.setVisible(true);
                      innerShadow.setColor(Color.rgb(0, 0, 0, 0.65));
                      innerShadow.setRadius(0.08 * size);
                      innerShadow.setOffsetX(0);
                      innerShadow.setOffsetY(0.0 * size);
                      foreground.setFill(new RadialGradient(0, 0, size * 0.5, size * gaugeDesign.FRAME_FACTOR * 0.5, size, false, CycleMethod.NO_CYCLE,
                                                            new Stop(0, Color.rgb(255, 255, 255, 0.6)),
                                                            new Stop(0.4, Color.TRANSPARENT)));
                      foreground.setStroke(null);
                      break;
              }
  
              gauge.setPrefSize(size * (1.0 - gaugeDesign.FRAME_FACTOR * 2.0), size * (1.0 - gaugeDesign.FRAME_FACTOR * 2.0));
              gauge.relocate(gaugeDesign.FRAME_FACTOR * size, gaugeDesign.FRAME_FACTOR * size);
  
              foreground.setCenterX(size * 0.5);
              foreground.setCenterY(size * 0.5);
              foreground.setRadius(size * 0.42);
          }
      }