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);
|
|
|
|
|
}
|
|
|
|
|
}
|