AngleSharp by Florian Rappl

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

.NET API 1,229,312 bytes

 CssStyleSheet

Represents a CSS Stylesheet.
using AngleSharp.Network; using AngleSharp.Parser.Css; using System.Text; namespace AngleSharp.Dom.Css { internal sealed class CssStyleSheet : StyleSheet, ICssStyleSheet, IStyleSheet { private readonly CssRuleList _rules; private readonly TextSource _source; private readonly IConfiguration _config; private ICssRule _ownerRule; public override string Type => MimeTypes.Css; internal CssRuleList Rules => _rules; ICssRuleList ICssStyleSheet.Rules { get { return _rules; } } public ICssRule OwnerRule { get { return _ownerRule; } internal set { _ownerRule = value; } } internal TextSource Source => _source; public string CssText { get { StringBuilder stringBuilder = Pool.NewStringBuilder(); if (_rules.Length > 0) { stringBuilder.Append(_rules[0].CssText); for (int i = 1; i < _rules.Length; i++) { stringBuilder.AppendLine(); stringBuilder.Append(_rules[i].CssText); } } return stringBuilder.ToPool(); } } internal IConfiguration Options => _config; internal CssStyleSheet(IConfiguration config) : this(config, new TextSource(string.Empty)) { } internal CssStyleSheet(IConfiguration config, string source) : this(config, new TextSource(source)) { } internal CssStyleSheet(IConfiguration config, TextSource source) { _source = source; _rules = new CssRuleList(); _config = (config ?? Configuration.Default); } public void RemoveAt(int index) { _rules.RemoveAt(index); } public int Insert(string rule, int index) { CssRule value = CssParser.ParseRule(rule, null); _rules.Insert(value, index, this, null); return index; } } }