Files
LanMountainDesktop/LanMountainDesktop.Appearance/AppearanceCornerRadiusTokenFactory.cs

29 lines
957 B
C#
Raw Normal View History

2026-03-20 00:41:14 +08:00
using Avalonia;
using LanMountainDesktop.Settings.Core;
using LanMountainDesktop.Shared.Contracts;
namespace LanMountainDesktop.Appearance;
public static class AppearanceCornerRadiusTokenFactory
{
public static AppearanceCornerRadiusTokens Create(double scale)
{
var normalizedScale = GlobalAppearanceSettings.NormalizeCornerRadiusScale(scale);
return new AppearanceCornerRadiusTokens(
Radius(6, normalizedScale),
2026-03-30 15:28:51 +08:00
Radius(12, normalizedScale),
2026-03-20 00:41:14 +08:00
Radius(14, normalizedScale),
2026-03-30 15:28:51 +08:00
Radius(20, normalizedScale),
Radius(28, normalizedScale),
Radius(32, normalizedScale),
Radius(36, normalizedScale),
Radius(18, normalizedScale));
2026-03-20 00:41:14 +08:00
}
private static CornerRadius Radius(double value, double scale)
{
var scaled = Math.Round(value * scale * 2, MidpointRounding.AwayFromZero) / 2d;
return new CornerRadius(scaled);
}
}