AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.1" />

.NET API 1,172,480 bytes

 CssFontFamilyProperty

Information: https://developer.mozilla.org/en-US/docs/Web/CSS/font-family
using AngleSharp.Css; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssFontFamilyProperty : CssProperty, ICssFontFamilyProperty, ICssProperty { private enum SystemFonts { Serif, SansSerif, Monospace, Cursive, Fantasy } internal static readonly string[] Default = new string[1] { "Times New Roman" }; internal static readonly IValueConverter<string[]> Converter = Map.DefaultFontFamilies.ToConverter().Or(Converters.StringConverter).Or(Converters.IdentifierConverter.Many(1, 2147483647).To((string[] names) => string.Join(" ", names))) .FromList(); private readonly List<string> _families; public IEnumerable<string> Families => _families; internal CssFontFamilyProperty(CssStyleDeclaration rule) : base(PropertyNames.FontFamily, rule, PropertyFlags.Inherited) { _families = new List<string>(); Reset(); } private void SetFamilies(IEnumerable<string> families) { _families.Clear(); _families.AddRange(families); } internal override void Reset() { _families.Clear(); _families.AddRange(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetFamilies); } } }