diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Theme.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Theme.java index 6c3a7f8b2..f6792fafc 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Theme.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Theme.java @@ -80,12 +80,15 @@ public class Theme { } public String[] getStylesheets() { + Color textFill = getForegroundColor(); + String css; try { File temp = File.createTempFile("hmcl", ".css"); FileUtils.writeText(temp, IOUtils.readFullyAsString(ResourceNotFoundError.getResourceAsStream("/assets/css/custom.css")) .replace("%base-color%", color) .replace("%base-rippler-color%", String.format("rgba(%d, %d, %d, 0.3)", (int)Math.ceil(paint.getRed() * 256), (int)Math.ceil(paint.getGreen() * 256), (int)Math.ceil(paint.getBlue() * 256))) + .replace("%disabled-font-color%", String.format("rgba(%d, %d, %d, 0.7)", (int)Math.ceil(textFill.getRed() * 256), (int)Math.ceil(textFill.getGreen() * 256), (int)Math.ceil(textFill.getBlue() * 256))) .replace("%font-color%", getColorDisplayName(getForegroundColor()))); css = temp.toURI().toString(); } catch (IOException | NullPointerException e) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DatapackListPageSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DatapackListPageSkin.java index bd7e1ba6c..2c5ec3d34 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DatapackListPageSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DatapackListPageSkin.java @@ -47,6 +47,7 @@ class DatapackListPageSkin extends SkinBase { super(skinnable); BorderPane root = new BorderPane(); + root.getStyleClass().add("content-background"); JFXListView listView = new JFXListView<>(); { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameAdvancedListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameAdvancedListItem.java index f2bd3fc3e..ee844b5ef 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameAdvancedListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameAdvancedListItem.java @@ -17,6 +17,7 @@ */ package org.jackhuang.hmcl.ui.versions; +import javafx.scene.control.Tooltip; import org.jackhuang.hmcl.setting.Profiles; import org.jackhuang.hmcl.setting.Theme; import org.jackhuang.hmcl.ui.FXUtils; @@ -27,18 +28,24 @@ import static org.jackhuang.hmcl.ui.FXUtils.newImage; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; public class GameAdvancedListItem extends AdvancedListItem { + private final Tooltip tooltip; public GameAdvancedListItem() { + tooltip = new Tooltip(); + FXUtils.installFastTooltip(this, tooltip); + FXUtils.onChangeAndOperate(Profiles.selectedVersionProperty(), version -> { if (version != null && Profiles.getSelectedProfile() != null && Profiles.getSelectedProfile().getRepository().hasVersion(version)) { setTitle(version); setSubtitle(null); setImage(Profiles.getSelectedProfile().getRepository().getVersionIconImage(version)); + tooltip.setText(version); } else { setTitle(i18n("version.empty")); setSubtitle(i18n("version.empty.add")); setImage(newImage("/assets/img/grass.png")); + tooltip.setText(""); } }); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListItemSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListItemSkin.java index 6b958ffad..d59a1b208 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListItemSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListItemSkin.java @@ -20,6 +20,7 @@ package org.jackhuang.hmcl.ui.versions; import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXPopup; import com.jfoenix.effects.JFXDepthManager; +import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.SkinBase; import javafx.scene.image.ImageView; @@ -56,6 +57,8 @@ public class WorldListItemSkin extends SkinBase { imageViewContainer.getChildren().setAll(imageView); TwoLineListItem item = new TwoLineListItem(); + item.titleProperty().bind(skinnable.titleProperty()); + item.subtitleProperty().bind(skinnable.subtitleProperty()); BorderPane.setAlignment(item, Pos.CENTER); center.getChildren().setAll(imageView, item); root.setCenter(center); @@ -81,10 +84,9 @@ public class WorldListItemSkin extends SkinBase { right.getChildren().add(btnManage); root.setRight(right); - root.setStyle("-fx-background-color: white; -fx-padding: 8 8 8 0;"); + root.getStyleClass().add("card"); + root.setPadding(new Insets(8, 8, 8, 0)); JFXDepthManager.setDepth(root, 1); - item.titleProperty().bind(skinnable.titleProperty()); - item.subtitleProperty().bind(skinnable.subtitleProperty()); getChildren().setAll(root); } diff --git a/HMCL/src/main/resources/assets/css/custom.css b/HMCL/src/main/resources/assets/css/custom.css index bce928f9f..5636c8728 100644 --- a/HMCL/src/main/resources/assets/css/custom.css +++ b/HMCL/src/main/resources/assets/css/custom.css @@ -20,5 +20,6 @@ -fx-base-darker-color: derive(-fx-base-color, -10%); -fx-base-check-color: derive(-fx-base-color, 30%); -fx-base-rippler-color: %base-rippler-color%; + -fx-base-disabled-text-fill: %disabled-font-color%; -fx-base-text-fill: %font-color%; } \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/css/root.css b/HMCL/src/main/resources/assets/css/root.css index 8fe972b53..615db89db 100644 --- a/HMCL/src/main/resources/assets/css/root.css +++ b/HMCL/src/main/resources/assets/css/root.css @@ -181,7 +181,6 @@ } .tab-label { - -fx-font-family: "Roboto"; -fx-font-size: 16; } @@ -1058,11 +1057,15 @@ -fx-font-size: 14; } -.jfx-decorator-tab .tab-label { - -fx-text-fill: -fx-base-text-fill; +.jfx-decorator-tab .tab-container .tab-label { + -fx-text-fill: -fx-base-disabled-text-fill; -fx-font-size: 14; } +.jfx-decorator-tab .tab-container:selected .tab-label { + -fx-text-fill: -fx-base-text-fill; +} + .resize-border { -fx-border-color: -fx-base-color; -fx-border-width: 0 2 2 2;