docs: @Override protected void resize() {
          double width  = getSkinnable().getWidth() - getSkinnable().getInsets().getLeft() - getSkinnable().getInsets().getRight();
          double height = getSkinnable().getHeight() - getSkinnable().getInsets().getTop() - getSkinnable().getInsets().getBottom();
          size          = width < height ? width : height;
  
          if (size > 0) {
              double center = size * 0.5;
  
              pane.setMaxSize(size, size);
              pane.relocate((getSkinnable().getWidth() - size) * 0.5, (getSkinnable().getHeight() - size) * 0.5);
  
              dropShadow.setRadius(0.008 * size);
              dropShadow.setOffsetY(0.008 * size);
  
              sectionsAndAreasCanvas.setWidth(size);
              sectionsAndAreasCanvas.setHeight(size);
  
              tickCanvas.setWidth(size);
              tickCanvas.setHeight(size);
  
              alarmPane.setMaxSize(size, size);
  
              hour.setFill(getSkinnable().getHourColor());
              hour.setCache(false);
              hour.setWidth(size * 0.015);
              hour.setHeight(size * 0.29);
              hour.setArcWidth(size * 0.015);
              hour.setArcHeight(size * 0.015);
              hour.setCache(true);
              hour.setCacheHint(CacheHint.ROTATE);
              hour.relocate((size - hour.getWidth()) * 0.5, size * 0.21);
  
              minute.setFill(getSkinnable().getMinuteColor());
              minute.setCache(false);
              minute.setWidth(size * 0.015);
              minute.setHeight(size * 0.47);
              minute.setArcWidth(size * 0.015);
              minute.setArcHeight(size * 0.015);
              minute.setCache(true);
              minute.setCacheHint(CacheHint.ROTATE);
              minute.relocate((size - minute.getWidth()) * 0.5, size * 0.03);
  
              second.setFill(getSkinnable().getSecondColor());
              second.setCache(false);
              second.setWidth(size * 0.005);
              second.setHeight(size * 0.47);
              second.setArcWidth(size * 0.015);
              second.setArcHeight(size * 0.015);
              second.setCache(true);
              second.setCacheHint(CacheHint.ROTATE);
              second.relocate((size - second.getWidth()) * 0.5, size * 0.03);
  
              knob.setFill(getSkinnable().getKnobColor());
              knob.setRadius(size * 0.0225);
              knob.setCenterX(center);
              knob.setCenterY(center);
  
              title.setFill(getSkinnable().getTextColor());
              title.setFont(Fonts.latoLight(size * 0.12));
              title.relocate((size - title.getLayoutBounds().getWidth()) * 0.5, size * 0.25);
  
              dateText.setFill(getSkinnable().getDateColor());
              dateText.setFont(Fonts.latoLight(size * 0.05));
              dateText.relocate((center - dateText.getLayoutBounds().getWidth()) * 0.5 + (size * 0.45), (size - dateText.getLayoutBounds().getHeight()) * 0.5);
  
              text.setFill(getSkinnable().getTextColor());
              text.setFont(Fonts.latoLight(size * 0.12));
              text.relocate((size - text.getLayoutBounds().getWidth()) * 0.5, size * 0.6);
  
              minuteRotate.setPivotX(minute.getWidth() * 0.5);
              minuteRotate.setPivotY(minute.getHeight());
              hourRotate.setPivotX(hour.getWidth() * 0.5);
              hourRotate.setPivotY(hour.getHeight());
              secondRotate.setPivotX(second.getWidth() * 0.5);
              secondRotate.setPivotY(second.getHeight());
          }
      }