The current GUI system can’t do, at all, even a tenth of the things that are useful and easy to do with CSS. It doesn’t even have full basic support for formatting, and formatting can only be applied to a whole text label! It’s hard to take it seriously.
There’s no way the GUI system can be extended to make possible even only the most useful features of CSS stylesheets. Even a basic web rendering engine is a bigger project than ROBLOX itself.
There’s a reason there are thousands of video games but only four web layout engines that power almost all web browsers: Blink, Gecko, Trident and WebKit. There are only nine layout engines in active development at the moment: Blink, Gecko, KHTML, MARTHA, Prince, Servo, Trident, EdgeHTML and WebKit. Many of these are based on others (Blink is a fork of WebKit, which is itself a fork of KHTML, while EdgeHTML is a fork of Trident), Prince is only used for converting web pages to PDF documents, Servo is an experimental layout engine that is not used at the moment by any browser and I didn’t even know about MARTHA before today. The only other major layout engine is Presto, which was discontinued in part because maintaining it was too hard.
The number of web technologies that make so many powerful features possible and easy to use is what makes it very difficult to create a web layout engine. ROBLOX can’t extend the GUI system enough to make it comparable.
It is currently very difficult to format long text (like game help) correctly with the GUI system. You can have a long text-wrapping text label, but you can’t format specific words or groups of words without creating a lot of text labels and somehow putting them together in a kludgy way. Even if you do that, which the properties window absolutely doesn’t help you with, you still can’t do much because the properties barely allow any basic formatting.
Of course, if you want any sort of proper alignment or hyphenation, you’re completely out unless you create a million text labels and write very sophisticated algorithms that require insane effort. Yet, having that is as easy in CSS as setting one or two properties!
Now, that’s just as far as basic properties are concerned. But CSS isn’t just about setting properties on elements! It’s about cascading style and selectors. You can write, with almost no effort, a stylesheet that will select the first letter of all paragraphs followed by a list, or in a cell in the last column of a table, and make it become green when you hover your mouse over it! That can be done with four lines of very simple CSS, and it’d require many hundreds of lines of code with the current GUI system. Did I mention how hard it is just to have tables with GUIs?
Now, that’s for textual content, sure. Let’s look at layout of UI elements, which is very important in games: unless you do really simple stuff, there’s no way to make things float around, no relative positioning or scaling, no way to easily make content adapt to different screen sizes, and certainly not anything that makes creating grids or lists of elements, images, etc. remotely as easy as CSS flexboxes make it. GUI elements can’t flow intelligently by themselves, you must give them all an absolute size and position. Look at how much code the stamper tool needed to do things that could be done with less than thirty lines of simple CSS code!
The properties window is fine when all you want to do is to make a given text label red, but if you want to do anything more complicated than that, it doesn’t help you and you need to either do it manually, which can be very long and boring, or write a lot of code. And in both cases, the result will probably be ugly.