AngleSharp by Florian Rappl

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

.NET API 1,174,016 bytes

 CssDocumentRule

Contains the rules specified by a @document { /* ... */ } rule.
using AngleSharp.Css; using AngleSharp.Extensions; using AngleSharp.Parser.Css; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssDocumentRule : CssGroupingRule, ICssDocumentRule, ICssConditionRule, ICssGroupingRule, ICssRule, IStyleFormattable { private readonly List<IDocumentFunction> _conditions; public string ConditionText { get { string[] array = new string[_conditions.Count]; for (int i = 0; i < array.Length; i++) { IDocumentFunction documentFunction = _conditions[i]; string name = documentFunction.Name; string str = documentFunction.Data.CssString(); array[i] = name + "(" + str + ")"; } return string.Join(", ", array); } set { List<IDocumentFunction> list = CssParser.ParseDocumentRules(value); if (list == null) throw new DomException(DomError.Syntax); _conditions.Clear(); _conditions.AddRange(list); } } public List<IDocumentFunction> Conditions => _conditions; internal CssDocumentRule() : base(CssRuleType.Document) { _conditions = new List<IDocumentFunction>(); } protected override void ReplaceWith(ICssRule rule) { base.ReplaceWith(rule); CssDocumentRule cssDocumentRule = rule as CssDocumentRule; _conditions.Clear(); _conditions.AddRange(cssDocumentRule._conditions); } public override string ToCss(IStyleFormatter formatter) { string rules = formatter.Block(base.Rules); return formatter.Rule("@document", ConditionText, rules); } } }