AngleSharp by Florian Rappl

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

.NET API 1,172,480 bytes

 CssAnimationFillModeProperty

More information available at: https://developer.mozilla.org/en-US/docs/CSS/animation-fill-mode
using AngleSharp.Css; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssAnimationFillModeProperty : CssProperty, ICssAnimationFillModeProperty, ICssProperty { internal static readonly IValueConverter<AnimationFillStyle> SingleConverter = Map.AnimationFillStyles.ToConverter(); internal static readonly IValueConverter<AnimationFillStyle[]> Converter = SingleConverter.FromList(); internal static readonly AnimationFillStyle Default = AnimationFillStyle.None; private readonly List<AnimationFillStyle> _fillModes; public IEnumerable<AnimationFillStyle> FillModes => _fillModes; internal CssAnimationFillModeProperty(CssStyleDeclaration rule) : base(PropertyNames.AnimationFillMode, rule, PropertyFlags.None) { _fillModes = new List<AnimationFillStyle>(); Reset(); } public void SetFillModes(IEnumerable<AnimationFillStyle> fillModes) { _fillModes.Clear(); _fillModes.AddRange(fillModes); } internal override void Reset() { _fillModes.Clear(); _fillModes.Add(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetFillModes); } } }