AngleSharp by Florian Rappl

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

.NET API 1,171,968 bytes

 CssBackgroundOriginProperty

More information available at: https://developer.mozilla.org/en-US/docs/Web/CSS/background-origins
using AngleSharp.Css; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssBackgroundOriginProperty : CssProperty, ICssBackgroundOriginProperty, ICssProperty { internal static readonly BoxModel Default = BoxModel.PaddingBox; internal static readonly IValueConverter<BoxModel> SingleConverter = Map.BoxModels.ToConverter(); internal static readonly IValueConverter<BoxModel[]> Converter = SingleConverter.FromList(); private readonly List<BoxModel> _origins; public IEnumerable<BoxModel> Origins => _origins; internal CssBackgroundOriginProperty(CssStyleDeclaration rule) : base(PropertyNames.BackgroundOrigin, rule, PropertyFlags.None) { _origins = new List<BoxModel>(); Reset(); } public void SetOrigins(IEnumerable<BoxModel> origins) { _origins.Clear(); _origins.AddRange(origins); } internal override void Reset() { _origins.Clear(); _origins.Add(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetOrigins); } } }