AngleSharp by Florian Rappl

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

.NET API 1,172,480 bytes

 CssAnimationPlayStateProperty

More information available at: https://developer.mozilla.org/en-US/docs/CSS/animation-play-state
using AngleSharp.Css; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssAnimationPlayStateProperty : CssProperty, ICssAnimationPlayStateProperty, ICssProperty { internal static readonly IValueConverter<PlayState> SingleConverter = Converters.Assign(Keywords.Running, PlayState.Running).Or(Keywords.Paused, PlayState.Paused); internal static readonly IValueConverter<PlayState[]> Converter = SingleConverter.FromList(); internal static readonly PlayState Default = PlayState.Running; private readonly List<PlayState> _states; public IEnumerable<PlayState> States => _states; internal CssAnimationPlayStateProperty(CssStyleDeclaration rule) : base(PropertyNames.AnimationPlayState, rule, PropertyFlags.None) { _states = new List<PlayState>(); Reset(); } public void SetStates(IEnumerable<PlayState> states) { _states.Clear(); _states.AddRange(states); } internal override void Reset() { _states.Clear(); _states.Add(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetStates); } } }