AngleSharp by AngleSharp

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

.NET API 1,230,336 bytes

 CssDocumentRule

Contains the rules specified by a @document { /* ... */ } rule.
using AngleSharp.Extensions; using AngleSharp.Parser.Css; using System.Collections.Generic; using System.IO; using System.Linq; namespace AngleSharp.Dom.Css { internal sealed class CssDocumentRule : CssGroupingRule, ICssDocumentRule, ICssConditionRule, ICssGroupingRule, ICssRule, ICssNode, IStyleFormattable, ICssRuleCreator { public string ConditionText { get { IEnumerable<string> values = from m in Conditions select m.ToCss(); return string.Join(", ", values); } set { List<DocumentFunction> list = base.Parser.ParseDocumentRules(value); if (list == null) throw new DomException(DomError.Syntax); Clear(); foreach (DocumentFunction item in list) { AppendChild(item); } } } public IEnumerable<IDocumentFunction> Conditions => base.Children.OfType<IDocumentFunction>(); internal CssDocumentRule(CssParser parser) : base(CssRuleType.Document, parser) { } internal bool IsValid(Url url) { return Conditions.Any((IDocumentFunction m) => m.Matches(url)); } public override void ToCss(TextWriter writer, IStyleFormatter formatter) { string rules = formatter.Block(base.Rules); writer.Write(formatter.Rule("@document", ConditionText, rules)); } } }