AngleSharp by Florian Rappl

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

.NET API 1,175,040 bytes

 CssNamespaceRule

Represents an @namespace rule.
using AngleSharp.Extensions; using AngleSharp.Parser.Css; namespace AngleSharp.Dom.Css { internal sealed class CssNamespaceRule : CssRule, ICssNamespaceRule, ICssRule, IStyleFormattable { private string _namespaceUri; private string _prefix; public string NamespaceUri { get { return _namespaceUri; } set { CheckValidity(); _namespaceUri = (value ?? string.Empty); } } public string Prefix { get { return _prefix; } set { CheckValidity(); _prefix = (value ?? string.Empty); } } internal CssNamespaceRule(CssParser parser) : base(CssRuleType.Namespace, parser) { } protected override void ReplaceWith(ICssRule rule) { CssNamespaceRule cssNamespaceRule = rule as CssNamespaceRule; _namespaceUri = cssNamespaceRule._namespaceUri; _prefix = cssNamespaceRule._prefix; } private void CheckValidity() { ICssRuleList cssRuleList = base.Owner?.Rules; if (cssRuleList != null) { foreach (ICssRule item in cssRuleList) { if (item.Type != CssRuleType.Charset && item.Type != CssRuleType.Import && item.Type != CssRuleType.Namespace) throw new DomException(DomError.InvalidState); } } } public override string ToCss(IStyleFormatter formatter) { string str = string.IsNullOrEmpty(_prefix) ? string.Empty : " "; string value = _prefix + str + _namespaceUri.CssUrl(); return formatter.Rule("@namespace", value); } } }