AngleSharp by Florian Rappl

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

.NET API 1,171,968 bytes

 CssQuotesProperty

Information can be found on MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/quotes
using AngleSharp.Css; using AngleSharp.Extensions; using System; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssQuotesProperty : CssProperty, ICssQuotesProperty, ICssProperty { internal static readonly Tuple<string, string>[] Default = new Tuple<string, string>[1] { Tuple.Create("«", "»") }; internal static readonly IValueConverter<Tuple<string, string>[]> Converter = Converters.StringConverter.Many(1, 2147483647).Constraint((string[] m) => m.Length % 2 == 0).To(TransformArray) .Or(Keywords.None, new Tuple<string, string>[0]); private Tuple<string, string>[] _quotes; public IEnumerable<Tuple<string, string>> Quotes => _quotes; internal CssQuotesProperty(CssStyleDeclaration rule) : base(PropertyNames.Quotes, rule, PropertyFlags.Inherited) { Reset(); } public void SetQuotes(Tuple<string, string>[] quotes) { _quotes = quotes; } internal override void Reset() { _quotes = Default; } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetQuotes); } private static Tuple<string, string>[] TransformArray(string[] arrays) { Tuple<string, string>[] array = new Tuple<string, string>[arrays.Length / 2]; int num = 0; int num2 = 0; while (num < arrays.Length) { array[num2] = Tuple.Create(arrays[num], arrays[num + 1]); num += 2; num2++; } return array; } } }