AngleSharp by Florian Rappl

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

.NET API 1,229,312 bytes

 CssColumnsProperty

More information available at: https://developer.mozilla.org/en-US/docs/Web/CSS/columns
using AngleSharp.Css; using AngleSharp.Extensions; using System; using System.Collections.Generic; using System.Linq; namespace AngleSharp.Dom.Css { internal sealed class CssColumnsProperty : CssShorthandProperty { private static readonly IValueConverter<Tuple<CssValue, CssValue>> Converter = Converters.WithAny(Converters.AutoLengthConverter.Val().Option(), Converters.OptionalIntegerConverter.Val().Option()); internal CssColumnsProperty(CssStyleDeclaration rule) : base(PropertyNames.Columns, rule, PropertyFlags.Animatable) { } protected override bool IsValid(CssValue value) { return Converter.TryConvert(value, delegate(Tuple<CssValue, CssValue> m) { Get<CssColumnWidthProperty>().TrySetValue(m.Item1); Get<CssColumnCountProperty>().TrySetValue(m.Item2); }); } internal override string SerializeValue(IEnumerable<CssProperty> properties) { CssColumnWidthProperty cssColumnWidthProperty = properties.OfType<CssColumnWidthProperty>().FirstOrDefault(); CssColumnCountProperty cssColumnCountProperty = properties.OfType<CssColumnCountProperty>().FirstOrDefault(); if (cssColumnWidthProperty == null || cssColumnCountProperty == null) return string.Empty; if (!cssColumnWidthProperty.HasValue || !cssColumnCountProperty.HasValue) return string.Empty; return cssColumnWidthProperty.SerializeValue() + " " + cssColumnCountProperty.SerializeValue(); } } }