修复视觉验收夹具与运行态对比度

This commit is contained in:
张家训
2026-08-01 19:27:31 +08:00
parent 1290e3dc01
commit 086077beb6
10 changed files with 320 additions and 37 deletions
@@ -121,9 +121,20 @@ public class MainWindow {
menuButton.setFocusTraversable(true);
menuButton.setOnAction(event -> navigationRail.toggle());
Label brand = new Label("WorkUtils", IconFactory.create(AppIcon.APP, 20));
brand.setContentDisplay(ContentDisplay.LEFT);
brand.setFont(Theme.sectionTitle());
FontIcon brandIcon = IconFactory.create(AppIcon.APP, 18);
StackPane brandIconContainer = new StackPane(brandIcon);
brandIconContainer.setId("app-brand-icon-container");
brandIconContainer.getStyleClass().add("app-brand-icon");
brandIconContainer.setMinSize(32, 32);
brandIconContainer.setPrefSize(32, 32);
brandIconContainer.setMaxSize(32, 32);
brandIconContainer.setAccessibleText("WorkUtils 应用图标");
brandIconContainer.setFocusTraversable(false);
Label brandText = new Label("WorkUtils");
brandText.setFont(Theme.sectionTitle());
HBox brand = new HBox(Theme.S2, brandIconContainer, brandText);
brand.setAlignment(Pos.CENTER_LEFT);
toolbarChevron = IconFactory.create(AppIcon.CHEVRON_RIGHT, 14);
toolbarChevron.setVisible(false);
@@ -9,6 +9,7 @@ import javafx.application.Platform;
import javafx.beans.property.ReadOnlyBooleanProperty;
import javafx.beans.property.ReadOnlyBooleanWrapper;
import javafx.css.PseudoClass;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
@@ -54,7 +55,13 @@ public final class NavigationRail extends VBox {
buildBottomToggle();
Separator separator = new Separator();
separator.setId("navigation-rail-separator");
separator.getStyleClass().add(Theme.CSS_NAV_SEP);
separator.setPadding(Insets.EMPTY);
separator.setMinHeight(1);
separator.setPrefHeight(1);
separator.setMaxHeight(1);
separator.setFocusTraversable(false);
getChildren().addAll(itemBox, separator, collapseButton);
expanded.addListener((observable, oldValue, newValue) -> updateAppearance());
+39 -1
View File
@@ -30,7 +30,18 @@
}
.nav-separator {
-fx-background-color: -workutils-border;
-fx-padding: 0;
-fx-min-height: 1px;
-fx-pref-height: 1px;
-fx-max-height: 1px;
-fx-background-color: transparent;
}
.nav-separator .line {
-fx-border-color: -workutils-border transparent transparent transparent;
-fx-border-width: 1px 0 0 0;
-fx-border-insets: 0;
-fx-padding: 0;
}
/* ============ ToggleButton 导航 ============ */
@@ -99,6 +110,22 @@
-fx-max-height: 48px;
}
.app-brand-icon {
-fx-alignment: center;
-fx-background-color: -workutils-primary;
-fx-background-radius: 6px;
-fx-min-width: 32px;
-fx-pref-width: 32px;
-fx-max-width: 32px;
-fx-min-height: 32px;
-fx-pref-height: 32px;
-fx-max-height: 32px;
}
.app-brand-icon .app-icon {
-fx-icon-color: white;
}
/* ---- 内容区 ---- */
.content-area {
-fx-background-color: -workutils-bg;
@@ -153,6 +180,17 @@
-fx-background-color: derive(-workutils-primary, -12%);
}
.btn-primary:disabled:running {
-fx-opacity: 1;
-fx-background-color: -workutils-primary;
-fx-text-fill: white;
}
.btn-primary:disabled:running .loading-spinner {
-fx-progress-color: white;
-fx-opacity: 1;
}
.btn-danger {
-fx-background-color: -workutils-danger;
-fx-text-fill: white;