Very simplistic style add or update
The only thing that pops out to me (though admittedly, it is very minor) is that you're recompiling the regex every time you call ToDeclarations. 

You could use a static Regex instance which compiles the expression only once. Regex instances are also threadsafe - so no worries there.

Thus, your code could look like:

private static Regex _cssRegex = new Regex("(?&lt;property&gt;[a-z-]+):\s*(?&lt;value&gt;.+?)(;|$)", RegexOptions.IgnoreCase);
public static IEnumerable&lt;(string property, string value)&gt; ToDeclarations(this string style)
{
    return
        _cssRegex
            .Matches(style)
            .Cast&lt;Match&gt;()
            .Select(m =&gt; (
                property: m.Value("property").Trim(),
                value: m.Value("value").Trim())
            );
}