/// <summary>
/// Represents the configuration settings for a theme.
/// </summary>
public abstract record ThemeConfig<TColors> where TColors : ThemeColors
{
    public TColors Colors { get; init; }
    public LayoutConfig Layout { get; init; }
}

/// <summary>
/// Represents the default configuration settings for a light theme.
/// </summary>
public record ThemeConfigLight : ThemeConfig<ThemeColorsLight> { /* ... */ }

/// <summary>
/// Represents the default configuration settings for a dark theme.
/// </summary>
public record ThemeConfigDark : ThemeConfig<ThemeColorsDark> { /* ... */ }