I took a deep dive into this question, and the answer is: kinda, mostly, yeah! CSS + HTML + user input is Turing complete. Is it possible to remove the user input part? Then I can re-title this post to be more, ahem, declarative.
The methods for white-boarding algorithm questions serve us quite well when writing CSS algorithms. This post is a written portion of the second half of version 1 of the Algorithms of CSS.
Over the past year, I’ve been giving a talk called The Algorithms of CSS, originally created for CSSConf EU. This post covers the first part of my presentation, and breaks down how CSS fits into the categories of programming languages.