AngleSharp by Florian Rappl

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

.NET API 1,189,376 bytes

 CssBorderStyleProperty

Information can be found on MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/border-style
using AngleSharp.Css; using AngleSharp.Extensions; using System; using System.Collections.Generic; using System.Linq; namespace AngleSharp.Dom.Css { internal sealed class CssBorderStyleProperty : CssShorthandProperty { private static readonly IValueConverter<Tuple<ICssValue, ICssValue, ICssValue, ICssValue>> Converter = Converters.LineStyleConverter.Val().Periodic(); internal CssBorderStyleProperty(CssStyleDeclaration rule) : base(PropertyNames.BorderStyle, rule, PropertyFlags.None) { } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, delegate(Tuple<ICssValue, ICssValue, ICssValue, ICssValue> m) { Get<CssBorderTopStyleProperty>().TrySetValue(m.Item1); Get<CssBorderRightStyleProperty>().TrySetValue(m.Item2); Get<CssBorderBottomStyleProperty>().TrySetValue(m.Item3); Get<CssBorderLeftStyleProperty>().TrySetValue(m.Item4); }); } internal override string SerializeValue(IEnumerable<CssProperty> properties) { CssBorderTopStyleProperty cssBorderTopStyleProperty = properties.OfType<CssBorderTopStyleProperty>().FirstOrDefault(); CssBorderRightStyleProperty cssBorderRightStyleProperty = properties.OfType<CssBorderRightStyleProperty>().FirstOrDefault(); CssBorderBottomStyleProperty cssBorderBottomStyleProperty = properties.OfType<CssBorderBottomStyleProperty>().FirstOrDefault(); CssBorderLeftStyleProperty cssBorderLeftStyleProperty = properties.OfType<CssBorderLeftStyleProperty>().FirstOrDefault(); if (cssBorderTopStyleProperty == null || cssBorderRightStyleProperty == null || cssBorderBottomStyleProperty == null || cssBorderLeftStyleProperty == null) return string.Empty; if (!cssBorderTopStyleProperty.HasValue || !cssBorderRightStyleProperty.HasValue || !cssBorderBottomStyleProperty.HasValue || !cssBorderLeftStyleProperty.HasValue) return string.Empty; return CssShorthandProperty.SerializePeriodic(cssBorderTopStyleProperty, cssBorderRightStyleProperty, cssBorderBottomStyleProperty, cssBorderLeftStyleProperty); } } }