diff --git a/AGENTS.md b/AGENTS.md
index 3590dbb..c08c9d1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -62,6 +62,7 @@ dotnet test LanMountainDesktop.slnx -c Debug
### UI
- 主题、资源和视觉语义优先遵守 `docs/VISUAL_SPEC.md` 与 `docs/CORNER_RADIUS_SPEC.md`
+- **组件圆角**:所有内置与插件组件的根边框必须使用 `{DynamicResource DesignCornerRadiusComponent}` 资源。
- 设置页相关改动通常同时落在 `Views/`、`ViewModels/`、`Services/` 和 `.trae/specs/`
- UI 启动与窗口生命周期主线在 `Program.cs` 和 `App.axaml.cs`
@@ -76,6 +77,7 @@ dotnet test LanMountainDesktop.slnx -c Debug
- 设置持久化和 scope 变化优先检查 `LanMountainDesktop.Settings.Core/`
- 外观、圆角、主题资源优先检查 `LanMountainDesktop.Appearance/` 与专题规范
+- **圆角统一**:桌面组件(Widget)必须统一使用动态资源 `DesignCornerRadiusComponent`。严禁在组件根容器使用硬编码数值或非组件级令牌(如 `Xs`, `Md` 等),以确保全局圆角缩放设置能正确应用到所有组件。
## 6. 权威来源
diff --git a/LanMountainDesktop.Appearance/AppearanceCornerRadiusTokenFactory.cs b/LanMountainDesktop.Appearance/AppearanceCornerRadiusTokenFactory.cs
index a0a758b..da6bc51 100644
--- a/LanMountainDesktop.Appearance/AppearanceCornerRadiusTokenFactory.cs
+++ b/LanMountainDesktop.Appearance/AppearanceCornerRadiusTokenFactory.cs
@@ -11,12 +11,13 @@ public static class AppearanceCornerRadiusTokenFactory
var normalizedScale = GlobalAppearanceSettings.NormalizeCornerRadiusScale(scale);
return new AppearanceCornerRadiusTokens(
Radius(6, normalizedScale),
- Radius(10, normalizedScale),
+ Radius(12, normalizedScale),
Radius(14, normalizedScale),
- Radius(18, normalizedScale),
- Radius(24, normalizedScale),
- Radius(30, normalizedScale),
- Radius(36, normalizedScale));
+ Radius(20, normalizedScale),
+ Radius(28, normalizedScale),
+ Radius(32, normalizedScale),
+ Radius(36, normalizedScale),
+ Radius(18, normalizedScale));
}
private static CornerRadius Radius(double value, double scale)
diff --git a/LanMountainDesktop.PluginSdk/PluginCornerRadiusPreset.cs b/LanMountainDesktop.PluginSdk/PluginCornerRadiusPreset.cs
index d206714..601510e 100644
--- a/LanMountainDesktop.PluginSdk/PluginCornerRadiusPreset.cs
+++ b/LanMountainDesktop.PluginSdk/PluginCornerRadiusPreset.cs
@@ -9,5 +9,6 @@ public enum PluginCornerRadiusPreset
Md = 4,
Lg = 5,
Xl = 6,
- Island = 7
+ Island = 7,
+ Component = 8
}
diff --git a/LanMountainDesktop.PluginSdk/PluginCornerRadiusTokens.cs b/LanMountainDesktop.PluginSdk/PluginCornerRadiusTokens.cs
index 8bdfa89..8e71cf1 100644
--- a/LanMountainDesktop.PluginSdk/PluginCornerRadiusTokens.cs
+++ b/LanMountainDesktop.PluginSdk/PluginCornerRadiusTokens.cs
@@ -10,13 +10,14 @@ public sealed record PluginCornerRadiusTokens(
double Md,
double Lg,
double Xl,
- double Island)
+ double Island,
+ double Component)
{
public double Get(PluginCornerRadiusPreset preset)
{
return preset switch
{
- PluginCornerRadiusPreset.Default => Md,
+ PluginCornerRadiusPreset.Default => Component,
PluginCornerRadiusPreset.Micro => Micro,
PluginCornerRadiusPreset.Xs => Xs,
PluginCornerRadiusPreset.Sm => Sm,
@@ -24,7 +25,8 @@ public sealed record PluginCornerRadiusTokens(
PluginCornerRadiusPreset.Lg => Lg,
PluginCornerRadiusPreset.Xl => Xl,
PluginCornerRadiusPreset.Island => Island,
- _ => Md
+ PluginCornerRadiusPreset.Component => Component,
+ _ => Component
};
}
@@ -44,6 +46,7 @@ public sealed record PluginCornerRadiusTokens(
tokens.Md.TopLeft,
tokens.Lg.TopLeft,
tokens.Xl.TopLeft,
- tokens.Island.TopLeft);
+ tokens.Island.TopLeft,
+ tokens.Component.TopLeft);
}
}
diff --git a/LanMountainDesktop.Shared.Contracts/AppearanceCornerRadiusTokens.cs b/LanMountainDesktop.Shared.Contracts/AppearanceCornerRadiusTokens.cs
index 6f33088..67027d5 100644
--- a/LanMountainDesktop.Shared.Contracts/AppearanceCornerRadiusTokens.cs
+++ b/LanMountainDesktop.Shared.Contracts/AppearanceCornerRadiusTokens.cs
@@ -9,4 +9,5 @@ public sealed record AppearanceCornerRadiusTokens(
CornerRadius Md,
CornerRadius Lg,
CornerRadius Xl,
- CornerRadius Island);
+ CornerRadius Island,
+ CornerRadius Component);
diff --git a/LanMountainDesktop.Tests/CornerRadiusScaleTests.cs b/LanMountainDesktop.Tests/CornerRadiusScaleTests.cs
index 63a0b2e..70f733e 100644
--- a/LanMountainDesktop.Tests/CornerRadiusScaleTests.cs
+++ b/LanMountainDesktop.Tests/CornerRadiusScaleTests.cs
@@ -40,11 +40,11 @@ public sealed class CornerRadiusScaleTests
GlobalCornerRadiusScale: 0d,
CornerRadiusTokens: PluginCornerRadiusTokens.FromShared(new AppearanceCornerRadiusTokens(
new CornerRadius(6),
- new CornerRadius(10),
+ new CornerRadius(12),
new CornerRadius(14),
- new CornerRadius(18),
- new CornerRadius(24),
- new CornerRadius(30),
+ new CornerRadius(20),
+ new CornerRadius(28),
+ new CornerRadius(32),
new CornerRadius(36))),
ThemeVariant: "Unknown"));
diff --git a/LanMountainDesktop.Tests/DesktopComponentRuntimeRegistrationCornerRadiusTests.cs b/LanMountainDesktop.Tests/DesktopComponentRuntimeRegistrationCornerRadiusTests.cs
index 83ed058..fdea3ed 100644
--- a/LanMountainDesktop.Tests/DesktopComponentRuntimeRegistrationCornerRadiusTests.cs
+++ b/LanMountainDesktop.Tests/DesktopComponentRuntimeRegistrationCornerRadiusTests.cs
@@ -48,11 +48,11 @@ public sealed class DesktopComponentRuntimeRegistrationCornerRadiusTests
GlobalCornerRadiusScale: globalScale,
CornerRadiusTokens: new AppearanceCornerRadiusTokens(
new CornerRadius(6),
- new CornerRadius(10),
+ new CornerRadius(12),
new CornerRadius(14),
- new CornerRadius(18),
- new CornerRadius(24),
- new CornerRadius(30),
+ new CornerRadius(20),
+ new CornerRadius(28),
+ new CornerRadius(32),
new CornerRadius(36)));
}
}
diff --git a/LanMountainDesktop.Tests/InfoRecommendationHostCornerRadiusTests.cs b/LanMountainDesktop.Tests/InfoRecommendationHostCornerRadiusTests.cs
index a07e4d3..aad7b3c 100644
--- a/LanMountainDesktop.Tests/InfoRecommendationHostCornerRadiusTests.cs
+++ b/LanMountainDesktop.Tests/InfoRecommendationHostCornerRadiusTests.cs
@@ -53,8 +53,8 @@ public sealed class InfoRecommendationHostCornerRadiusTests
var max = descriptor.ResolveCornerRadius(CreateChromeContext(componentId, cellSize, 2.5d));
Assert.Equal(0d, zero, 3);
- Assert.Equal(24d, unit, 3);
- Assert.Equal(60d, max, 3);
+ Assert.Equal(28d, unit, 3);
+ Assert.Equal(70d, max, 3);
Assert.True(zero <= unit && unit <= max);
}
diff --git a/LanMountainDesktop/Services/AppearanceThemeService.cs b/LanMountainDesktop/Services/AppearanceThemeService.cs
index 295b849..b3635bf 100644
--- a/LanMountainDesktop/Services/AppearanceThemeService.cs
+++ b/LanMountainDesktop/Services/AppearanceThemeService.cs
@@ -476,6 +476,7 @@ internal sealed class AppearanceThemeService : IAppearanceThemeService, IDisposa
resources["DesignCornerRadiusLg"] = snapshot.CornerRadiusTokens.Lg;
resources["DesignCornerRadiusXl"] = snapshot.CornerRadiusTokens.Xl;
resources["DesignCornerRadiusIsland"] = snapshot.CornerRadiusTokens.Island;
+ resources["DesignCornerRadiusComponent"] = snapshot.CornerRadiusTokens.Component;
}
public AppearanceMaterialSurface GetMaterialSurface(MaterialSurfaceRole role)
diff --git a/LanMountainDesktop/Styles/ComponentEditorThemeResources.axaml b/LanMountainDesktop/Styles/ComponentEditorThemeResources.axaml
index 692f90f..2b345ee 100644
--- a/LanMountainDesktop/Styles/ComponentEditorThemeResources.axaml
+++ b/LanMountainDesktop/Styles/ComponentEditorThemeResources.axaml
@@ -18,7 +18,7 @@
-
+
@@ -40,7 +40,7 @@
-
+
diff --git a/LanMountainDesktop/Styles/GlassModule.axaml b/LanMountainDesktop/Styles/GlassModule.axaml
index e284830..7474126 100644
--- a/LanMountainDesktop/Styles/GlassModule.axaml
+++ b/LanMountainDesktop/Styles/GlassModule.axaml
@@ -11,6 +11,7 @@
14
12
36
+ 18
-
-
-
-
+
+
+
+
diff --git a/LanMountainDesktop/Views/ComponentLibraryWindow.axaml b/LanMountainDesktop/Views/ComponentLibraryWindow.axaml
index 5f8dbc6..4d45fbb 100644
--- a/LanMountainDesktop/Views/ComponentLibraryWindow.axaml
+++ b/LanMountainDesktop/Views/ComponentLibraryWindow.axaml
@@ -87,14 +87,14 @@
-
diff --git a/LanMountainDesktop/Views/Components/BilibiliHotSearchWidget.axaml b/LanMountainDesktop/Views/Components/BilibiliHotSearchWidget.axaml
index d7c17ef..bbe6b22 100644
--- a/LanMountainDesktop/Views/Components/BilibiliHotSearchWidget.axaml
+++ b/LanMountainDesktop/Views/Components/BilibiliHotSearchWidget.axaml
@@ -9,7 +9,7 @@
x:Class="LanMountainDesktop.Views.Components.BilibiliHotSearchWidget">
diff --git a/LanMountainDesktop/Views/Components/BrowserWidget.axaml b/LanMountainDesktop/Views/Components/BrowserWidget.axaml
index a1d4579..0e2724a 100644
--- a/LanMountainDesktop/Views/Components/BrowserWidget.axaml
+++ b/LanMountainDesktop/Views/Components/BrowserWidget.axaml
@@ -9,10 +9,12 @@
x:Class="LanMountainDesktop.Views.Components.BrowserWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="0"
+ ClipToBounds="True">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}">
diff --git a/LanMountainDesktop/Views/Components/CnrDailyNewsWidget.axaml b/LanMountainDesktop/Views/Components/CnrDailyNewsWidget.axaml
index e3c565f..1d4740c 100644
--- a/LanMountainDesktop/Views/Components/CnrDailyNewsWidget.axaml
+++ b/LanMountainDesktop/Views/Components/CnrDailyNewsWidget.axaml
@@ -9,7 +9,7 @@
x:Class="LanMountainDesktop.Views.Components.CnrDailyNewsWidget">
diff --git a/LanMountainDesktop/Views/Components/ComponentChromeCornerRadiusHelper.cs b/LanMountainDesktop/Views/Components/ComponentChromeCornerRadiusHelper.cs
index 4351090..2b7bb9c 100644
--- a/LanMountainDesktop/Views/Components/ComponentChromeCornerRadiusHelper.cs
+++ b/LanMountainDesktop/Views/Components/ComponentChromeCornerRadiusHelper.cs
@@ -9,15 +9,15 @@ namespace LanMountainDesktop.Views.Components;
internal static class ComponentChromeCornerRadiusHelper
{
- public static double ResolveMainRectangleRadiusValue(ComponentChromeContext? chromeContext = null, double fallback = 24d)
+ public static double ResolveMainRectangleRadiusValue(ComponentChromeContext? chromeContext = null, double fallback = 18d)
{
if (chromeContext is not null)
{
- return Math.Max(0d, chromeContext.CornerRadiusTokens.Lg.TopLeft);
+ return Math.Max(0d, chromeContext.CornerRadiusTokens.Component.TopLeft);
}
var snapshot = HostAppearanceThemeProvider.GetOrCreate().GetCurrent();
- var resolved = snapshot.CornerRadiusTokens.Lg.TopLeft;
+ var resolved = snapshot.CornerRadiusTokens.Component.TopLeft;
return double.IsFinite(resolved)
? Math.Max(0d, resolved)
: Math.Max(0d, fallback * ResolveScale(chromeContext));
diff --git a/LanMountainDesktop/Views/Components/DailyArtworkWidget.axaml b/LanMountainDesktop/Views/Components/DailyArtworkWidget.axaml
index 217d45d..d451977 100644
--- a/LanMountainDesktop/Views/Components/DailyArtworkWidget.axaml
+++ b/LanMountainDesktop/Views/Components/DailyArtworkWidget.axaml
@@ -9,7 +9,7 @@
x:Class="LanMountainDesktop.Views.Components.DailyArtworkWidget">
diff --git a/LanMountainDesktop/Views/Components/DailyPoetryWidget.axaml b/LanMountainDesktop/Views/Components/DailyPoetryWidget.axaml
index a8b036b..49bf3b6 100644
--- a/LanMountainDesktop/Views/Components/DailyPoetryWidget.axaml
+++ b/LanMountainDesktop/Views/Components/DailyPoetryWidget.axaml
@@ -9,7 +9,7 @@
x:Class="LanMountainDesktop.Views.Components.DailyPoetryWidget">
diff --git a/LanMountainDesktop/Views/Components/DateWidget.axaml b/LanMountainDesktop/Views/Components/DateWidget.axaml
index bf185c2..778588f 100644
--- a/LanMountainDesktop/Views/Components/DateWidget.axaml
+++ b/LanMountainDesktop/Views/Components/DateWidget.axaml
@@ -8,10 +8,11 @@
x:Class="LanMountainDesktop.Views.Components.DateWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/HolidayCalendarWidget.axaml b/LanMountainDesktop/Views/Components/HolidayCalendarWidget.axaml
index 776f8de..9f8f2f8 100644
--- a/LanMountainDesktop/Views/Components/HolidayCalendarWidget.axaml
+++ b/LanMountainDesktop/Views/Components/HolidayCalendarWidget.axaml
@@ -8,10 +8,11 @@
x:Class="LanMountainDesktop.Views.Components.HolidayCalendarWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/HourlyWeatherWidget.axaml b/LanMountainDesktop/Views/Components/HourlyWeatherWidget.axaml
index 8e1921b..f03b621 100644
--- a/LanMountainDesktop/Views/Components/HourlyWeatherWidget.axaml
+++ b/LanMountainDesktop/Views/Components/HourlyWeatherWidget.axaml
@@ -9,14 +9,14 @@
x:Class="LanMountainDesktop.Views.Components.HourlyWeatherWidget">
-
+
diff --git a/LanMountainDesktop/Views/Components/IfengNewsWidget.axaml b/LanMountainDesktop/Views/Components/IfengNewsWidget.axaml
index 8d66945..36a9163 100644
--- a/LanMountainDesktop/Views/Components/IfengNewsWidget.axaml
+++ b/LanMountainDesktop/Views/Components/IfengNewsWidget.axaml
@@ -9,7 +9,7 @@
x:Class="LanMountainDesktop.Views.Components.IfengNewsWidget">
diff --git a/LanMountainDesktop/Views/Components/JuyaNewsWidget.axaml b/LanMountainDesktop/Views/Components/JuyaNewsWidget.axaml
index fdd8017..b0b823d 100644
--- a/LanMountainDesktop/Views/Components/JuyaNewsWidget.axaml
+++ b/LanMountainDesktop/Views/Components/JuyaNewsWidget.axaml
@@ -9,15 +9,15 @@
x:Class="LanMountainDesktop.Views.Components.JuyaNewsWidget">
diff --git a/LanMountainDesktop/Views/Components/LunarCalendarWidget.axaml b/LanMountainDesktop/Views/Components/LunarCalendarWidget.axaml
index db7b6f7..7fed64b 100644
--- a/LanMountainDesktop/Views/Components/LunarCalendarWidget.axaml
+++ b/LanMountainDesktop/Views/Components/LunarCalendarWidget.axaml
@@ -8,10 +8,11 @@
x:Class="LanMountainDesktop.Views.Components.LunarCalendarWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
-
+
diff --git a/LanMountainDesktop/Views/Components/MusicControlWidget.axaml b/LanMountainDesktop/Views/Components/MusicControlWidget.axaml
index 25f4846..0936d2d 100644
--- a/LanMountainDesktop/Views/Components/MusicControlWidget.axaml
+++ b/LanMountainDesktop/Views/Components/MusicControlWidget.axaml
@@ -66,7 +66,7 @@
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/StudyDeductionReasonsWidget.axaml b/LanMountainDesktop/Views/Components/StudyDeductionReasonsWidget.axaml
index 5a4d353..f9f3db7 100644
--- a/LanMountainDesktop/Views/Components/StudyDeductionReasonsWidget.axaml
+++ b/LanMountainDesktop/Views/Components/StudyDeductionReasonsWidget.axaml
@@ -7,10 +7,11 @@
d:DesignHeight="220"
x:Class="LanMountainDesktop.Views.Components.StudyDeductionReasonsWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/StudyEnvironmentWidget.axaml b/LanMountainDesktop/Views/Components/StudyEnvironmentWidget.axaml
index cb189a1..fbd961e 100644
--- a/LanMountainDesktop/Views/Components/StudyEnvironmentWidget.axaml
+++ b/LanMountainDesktop/Views/Components/StudyEnvironmentWidget.axaml
@@ -10,7 +10,7 @@
Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
BorderThickness="1"
- CornerRadius="18"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
Padding="14,10">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/StudyNoiseCurveWidget.axaml b/LanMountainDesktop/Views/Components/StudyNoiseCurveWidget.axaml
index 2e0e975..d532c96 100644
--- a/LanMountainDesktop/Views/Components/StudyNoiseCurveWidget.axaml
+++ b/LanMountainDesktop/Views/Components/StudyNoiseCurveWidget.axaml
@@ -8,10 +8,11 @@
d:DesignHeight="320"
x:Class="LanMountainDesktop.Views.Components.StudyNoiseCurveWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/StudyScoreOverviewWidget.axaml b/LanMountainDesktop/Views/Components/StudyScoreOverviewWidget.axaml
index 23d3a79..6820fa4 100644
--- a/LanMountainDesktop/Views/Components/StudyScoreOverviewWidget.axaml
+++ b/LanMountainDesktop/Views/Components/StudyScoreOverviewWidget.axaml
@@ -7,10 +7,11 @@
d:DesignHeight="360"
x:Class="LanMountainDesktop.Views.Components.StudyScoreOverviewWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/StudySessionControlWidget.axaml b/LanMountainDesktop/Views/Components/StudySessionControlWidget.axaml
index 52df7ec..3fb14a4 100644
--- a/LanMountainDesktop/Views/Components/StudySessionControlWidget.axaml
+++ b/LanMountainDesktop/Views/Components/StudySessionControlWidget.axaml
@@ -8,8 +8,10 @@
d:DesignHeight="150"
x:Class="LanMountainDesktop.Views.Components.StudySessionControlWidget">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
+ Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
+ BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
+ BorderThickness="1"
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/WeatherWidget.axaml b/LanMountainDesktop/Views/Components/WeatherWidget.axaml
index b18d82d..065cc87 100644
--- a/LanMountainDesktop/Views/Components/WeatherWidget.axaml
+++ b/LanMountainDesktop/Views/Components/WeatherWidget.axaml
@@ -9,16 +9,16 @@
x:Class="LanMountainDesktop.Views.Components.WeatherWidget">
+ Background="#6B7B8F">
diff --git a/LanMountainDesktop/Views/Components/WhiteboardWidget.axaml b/LanMountainDesktop/Views/Components/WhiteboardWidget.axaml
index ed4bb86..2f596b7 100644
--- a/LanMountainDesktop/Views/Components/WhiteboardWidget.axaml
+++ b/LanMountainDesktop/Views/Components/WhiteboardWidget.axaml
@@ -11,10 +11,12 @@
+ Padding="12">
+ CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
+ Padding="14,12">
diff --git a/LanMountainDesktop/Views/Components/ZhiJiaoHubWidget.axaml b/LanMountainDesktop/Views/Components/ZhiJiaoHubWidget.axaml
index 9426646..422afa8 100644
--- a/LanMountainDesktop/Views/Components/ZhiJiaoHubWidget.axaml
+++ b/LanMountainDesktop/Views/Components/ZhiJiaoHubWidget.axaml
@@ -8,7 +8,7 @@
x:Class="LanMountainDesktop.Views.Components.ZhiJiaoHubWidget">
diff --git a/LanMountainDesktop/plugins/PluginLoader.cs b/LanMountainDesktop/plugins/PluginLoader.cs
index d01462e..d421884 100644
--- a/LanMountainDesktop/plugins/PluginLoader.cs
+++ b/LanMountainDesktop/plugins/PluginLoader.cs
@@ -340,7 +340,7 @@ public sealed class PluginLoader
{
var defaultSnapshot = new PluginAppearanceSnapshot(
GlobalCornerRadiusScale: 1d,
- CornerRadiusTokens: new PluginCornerRadiusTokens(6, 10, 14, 18, 24, 30, 36),
+ CornerRadiusTokens: new PluginCornerRadiusTokens(6, 12, 14, 20, 28, 32, 36, 18),
ThemeVariant: "Unknown");
if (hostServices?.GetService(typeof(IAppearanceThemeService)) is not IAppearanceThemeService appearanceThemeService)
diff --git a/LanMountainDesktop/plugins/PluginMarketEmbeddedView.cs b/LanMountainDesktop/plugins/PluginMarketEmbeddedView.cs
index 2e5843d..e49b7c6 100644
--- a/LanMountainDesktop/plugins/PluginMarketEmbeddedView.cs
+++ b/LanMountainDesktop/plugins/PluginMarketEmbeddedView.cs
@@ -515,12 +515,34 @@ internal sealed class PluginMarketEmbeddedView : UserControl, IDisposable
Background = isSelected ? SelectedSurfaceBrush : SurfaceBrush,
BorderBrush = isSelected ? SelectedBorderBrush : CardBorderBrush,
BorderThickness = new Thickness(1),
- CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusMd", 18),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 18),
Padding = new Thickness(14),
Child = layoutGrid
};
}
+ private Control CreateDetailInfoRow(Control icon, Control infoStack)
+ {
+ return new Border
+ {
+ Background = SurfaceBrush,
+ BorderBrush = CardBorderBrush,
+ BorderThickness = new Thickness(1),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 16),
+ Padding = new Thickness(14, 12),
+ Child = new Grid
+ {
+ ColumnDefinitions = new ColumnDefinitions("Auto,*"),
+ ColumnSpacing = 12,
+ Children =
+ {
+ icon,
+ infoStack
+ }
+ }
+ };
+ }
+
private void BuildDetailPanel()
{
if (_selectedPlugin is null)
@@ -617,7 +639,7 @@ internal sealed class PluginMarketEmbeddedView : UserControl, IDisposable
Background = SurfaceBrush,
BorderBrush = CardBorderBrush,
BorderThickness = new Thickness(1),
- CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusMd", 16),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 16),
Padding = new Thickness(16),
Child = new TextBlock
{
@@ -1011,7 +1033,7 @@ internal sealed class PluginMarketEmbeddedView : UserControl, IDisposable
return new Border
{
Background = SurfaceBrush,
- CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusMd", 18),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 18),
Padding = new Thickness(padding)
};
}
@@ -1021,7 +1043,7 @@ internal sealed class PluginMarketEmbeddedView : UserControl, IDisposable
return new Border
{
Background = SurfaceBrush,
- CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusMd", 16),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 16),
BorderBrush = CardBorderBrush,
BorderThickness = new Thickness(1),
Padding = new Thickness(18),
@@ -1124,7 +1146,7 @@ internal sealed class PluginMarketEmbeddedView : UserControl, IDisposable
Background = SurfaceBrush,
BorderBrush = CardBorderBrush,
BorderThickness = new Thickness(1),
- CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusSm", 14),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 14),
Padding = new Thickness(14),
Child = new StackPanel
{
@@ -1154,7 +1176,7 @@ internal sealed class PluginMarketEmbeddedView : UserControl, IDisposable
Background = SurfaceBrush,
BorderBrush = CardBorderBrush,
BorderThickness = new Thickness(1),
- CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusSm", 14),
+ CornerRadius = ResolveCornerRadiusResource("DesignCornerRadiusComponent", 14),
Padding = new Thickness(14),
Child = new StackPanel
{
diff --git a/docs/CORNER_RADIUS_SPEC.md b/docs/CORNER_RADIUS_SPEC.md
index e0daa89..338824d 100644
--- a/docs/CORNER_RADIUS_SPEC.md
+++ b/docs/CORNER_RADIUS_SPEC.md
@@ -10,6 +10,7 @@
- Level 2:16px,小型色块和紧凑控件
- Level 3:20px,普通按钮
- Level 4:24px,输入面板和小型容器
+- Component:18px,桌面组件的标准圆角(默认值)
- Level 5:28px,普通玻璃面板
- Level 6:32px,强化容器
- Level 7:36px,大容器、窗口、任务栏