/// <summary>
/// Represents a base size scale.
/// </summary>
public record BaseScale
{
    public string? Sm { get; set; }
    public string? Md { get; set; }
    public string? Lg { get; set; }
}

/// <summary>
/// Represents a font scale.
/// </summary>
public record FontScale : BaseScale
{
    public string? Xs { get; set; }
}

/// <summary>
/// Represents the font family settings.
/// </summary>
public record FontFamily
{
    public string? Sans { get; set; }
    public string? Mono { get; set; }
}

/// <summary>
/// Represents the layout settings for a theme.
/// </summary>
public record LayoutConfig
{
    public FontScale FontSize { get; set; }
    public FontScale LineHeight { get; set; }
    public FontFamily? FontFamily { get; set; }
    public BaseScale Radius { get; set; }
    public BaseScale Shadow { get; set; }
    public double DisabledOpacity { get; set; }
    public double FocusOpacity { get; set; }
    public double HoverOpacity { get; set; }
    public double DividerOpacity { get; set; }
}