AngleSharp by Florian Rappl

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

.NET API 1,172,480 bytes

 CssPageRule

Represents the @page rule.
using AngleSharp.Parser.Css; namespace AngleSharp.Dom.Css { internal sealed class CssPageRule : CssGroupingRule, ICssPageRule, ICssGroupingRule, ICssRule { private readonly CssStyleDeclaration _style; private ISelector _selector; public ISelector Selector { get { return _selector; } set { _selector = value; } } public string SelectorText { get { return _selector.Text; } set { ISelector selector = CssParser.ParseSelector(value, null); if (selector != null) _selector = selector; } } ICssStyleDeclaration ICssPageRule.Style { get { return _style; } } public CssStyleDeclaration Style => _style; internal CssPageRule() : base(CssRuleType.Page) { _style = new CssStyleDeclaration(this); _selector = SimpleSelector.All; } protected override void ReplaceWith(ICssRule rule) { base.ReplaceWith(rule); CssPageRule cssPageRule = (CssPageRule)rule; _selector = cssPageRule._selector; _style.Clear(); _style.SetDeclarations(cssPageRule._style); } protected override string ToCss() { string str = " { " + _style.CssText + ((_style.Length > 0) ? " }" : "}"); return "@page " + _selector.Text + str; } } }