@mixin hu-generic-classes($property, $modules, $types: null) {
  $content-exists: content-exists();
  $class-name-property: hu-get-class-name($property);
  $property: hu-get-property-name($property);

  @each $module in hu-format-modules($modules) {
    @if ($types) {
      @each $type, $value in $types {
        $class-name: hu-class-name("#{$class-name-property}:#{$type}");
        $value: if($value, $value, $type);

        @include hu-generic($class-name, $module) {
          #{$property}: $value #{hu-important()};
        }
      }
    }
    @else if ($content-exists) {
      $class-name: hu-class-name($class-name-property);

      @include hu-generic($class-name, $module) {
        @content;
      }
    }
  }
}
