diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/instances/DownloadPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/instances/DownloadPage.java index 98cef6fb2b5..fed33160e70 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/instances/DownloadPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/instances/DownloadPage.java @@ -43,6 +43,7 @@ import org.jackhuang.hmcl.ui.Controllers; import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.SVG; +import org.jackhuang.hmcl.ui.SVGContainer; import org.jackhuang.hmcl.ui.construct.*; import org.jackhuang.hmcl.ui.decorator.DecoratorPage; import org.jackhuang.hmcl.util.*; @@ -436,19 +437,34 @@ private static final class AddonItem extends StackPane { content.setTitle(dataItem.name()); content.setSubtitle(I18n.formatDateTime(dataItem.datePublished())); - switch (dataItem.versionType()) { - case Alpha: - content.addTag(i18n("addon.channel.alpha")); - graphicPane.getChildren().setAll(SVG.ALPHA_CIRCLE.createIcon(24)); - break; - case Beta: - content.addTag(i18n("addon.channel.beta")); - graphicPane.getChildren().setAll(SVG.BETA_CIRCLE.createIcon(24)); - break; - case Release: - content.addTag(i18n("addon.channel.release")); - graphicPane.getChildren().setAll(SVG.RELEASE_CIRCLE.createIcon(24)); - break; + @Nullable SVG svg = null; + @Nullable String styleClass = null; + if (dataItem.versionType() != null) { + switch (dataItem.versionType()) { + case Alpha: + content.addTag(i18n("addon.channel.alpha")); + svg = SVG.ALPHA_CIRCLE; + styleClass = "alpha"; + break; + case Beta: + content.addTag(i18n("addon.channel.beta")); + svg = SVG.BETA_CIRCLE; + styleClass = "beta"; + break; + case Release: + content.addTag(i18n("addon.channel.release")); + svg = SVG.RELEASE_CIRCLE; + styleClass = "release"; + break; + default: + styleClass = ""; + break; + } + } + if (svg != null) { + SVGContainer icon = svg.createIcon(24); + icon.getStyleClass().addAll("addon-channel-icon", styleClass); + graphicPane.getChildren().setAll(icon); } for (ModLoaderType modLoaderType : dataItem.loaders()) { diff --git a/HMCL/src/main/resources/assets/css/brightness-dark.css b/HMCL/src/main/resources/assets/css/brightness-dark.css index 44b940ba0e6..d325a9bb293 100644 --- a/HMCL/src/main/resources/assets/css/brightness-dark.css +++ b/HMCL/src/main/resources/assets/css/brightness-dark.css @@ -21,3 +21,15 @@ -fixed-log-fatal-background: #842029; -fixed-log-selected: #3e3e3e; } + +.addon-channel-icon.alpha .svg { + -fx-fill: #ff496e; +} + +.addon-channel-icon.beta .svg { + -fx-fill: #ffa347; +} + +.addon-channel-icon.release .svg { + -fx-fill: #1bd96a; +} \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/css/brightness-light.css b/HMCL/src/main/resources/assets/css/brightness-light.css index 3490b67eeed..48b1a1971ec 100644 --- a/HMCL/src/main/resources/assets/css/brightness-light.css +++ b/HMCL/src/main/resources/assets/css/brightness-light.css @@ -21,3 +21,15 @@ -fixed-log-fatal-background: #F7A699; -fixed-log-selected: #f2f2f2; } + +.addon-channel-icon.alpha .svg { + -fx-fill: #cb2245; +} + +.addon-channel-icon.beta .svg { + -fx-fill: #e08325; +} + +.addon-channel-icon.release .svg { + -fx-fill: #00af5c; +} \ No newline at end of file