class="whostyle-jacobhall-net" seems a poor way of doing it because it allows unnecessary collisions.
You can actually put dots in class names: to match class="whostyle-jacobhall.net", you have two options: .whostyle-jacobhall\2enet, and [class ~= "whostyle-jacobhall.net"].
But I think it’d be better as a separate attribute e.g. whostyle="jacobhall.net" or perhaps who-style="jacobhall.net" if you want it to be valid HTML (custom attributes are supposed to have a hyphen in them), to be matched in stylesheets as [whostyle="jacobhall.net"]. (And then possibly use something other than hostnames, as I imagine sites don’t need to exist at the root of a domain name.) This also allows a global specification of [whostyle] { all: revert } if you desire it, which can’t be done with a class attribute (not properly, anyway—unless you’re willing to countenance :is([class^="whostyle-"], [class*=" whostyle-"], [class*="\09whostyle-"], [class*="\0awhostyle-"], [class*="\0dwhostyle-"], and possibly other whitespace)).
hey @chrismorgan, this is really valuable feedback, and I intend to explore these suggestions for my own site, and future articles on the topic. I've just recently converted every post to have an assigned whostyle, and this seems like the right way to set up the CSS.
Another issue I'm focused on right now, is how to exchange these whostyles in a way that allows for automatic moderation. @kickscondor suggested JSON as a way to format CSS in a more parse-able manner, and I think that approach might be the easiest way to trust my server to only save received CSS rules that are (relatively) safe.
You can actually put dots in class names: to match class="whostyle-jacobhall.net", you have two options: .whostyle-jacobhall\2enet, and [class ~= "whostyle-jacobhall.net"].
But I think it’d be better as a separate attribute e.g. whostyle="jacobhall.net" or perhaps who-style="jacobhall.net" if you want it to be valid HTML (custom attributes are supposed to have a hyphen in them), to be matched in stylesheets as [whostyle="jacobhall.net"]. (And then possibly use something other than hostnames, as I imagine sites don’t need to exist at the root of a domain name.) This also allows a global specification of [whostyle] { all: revert } if you desire it, which can’t be done with a class attribute (not properly, anyway—unless you’re willing to countenance :is([class^="whostyle-"], [class*=" whostyle-"], [class*="\09whostyle-"], [class*="\0awhostyle-"], [class*="\0dwhostyle-"], and possibly other whitespace)).