Formspecs aren't the greatest looking things in the world, as we all know. When I designed the laptop mod's UI textures, I realized how hard it is to actually make it look better with image buttons and the like. Image buttons are limited and don't look good is almost all situations. I have a solution in mind that I think can help formspecs look better.
Concept 1: Image scroll bars, fields, textareas, tabs, dropdowns, sliders, etc.
There are image buttons, which are useful when trying to make things look better. But these won't fit in if everything else is the same dull grey gradient theme. So I think the answer to this is image elements for everything.
Concept 2: Hovering over elements like buttons, scroll bars, etc.
When you have an image button, the pressed state and non-pressed state look exactly the same unless the texture doesn't cover the whole button. This is definitely not ideal. Also, hovering the cursor over any element does absolutely nothing. So, I propose a three texture element for image buttons, scroll bars, dropdowns, tabs, sliders, checkboxes, and the like.
Texture 1: The normal texture of the element.
Texture 2: The texture of the element when the mouse is hovering over it.
Texture 3: The texture of the element when the mouse clicks on it and/or holds it down.
Note that for tabs, a texture for the active tab is a good idea as well, or else the texture will have to be stretched slighty, and it will have the same texture as the inactive tabs, which wouldn't look the best.
Concept 3: Invisible image buttons.
Image buttons with textures that don't cover the whole button have the grey gradient behind them. This might not be good, depending on the situation. One such example is the desktop icons in the laptop mod. I had to put the button textures behind them so that the grey isn't visible. Seeing the desktop background behind them instead of the button textures would have been much better. So, I suggest that image buttons have the ability to become invisible while the image on top of them stays visible.
Concept 4: Scrollbars that change size depending on how big the list of words is.
Scrollbars in Minetest are always really short, no matter how many lines there are in a textarea, dropdown, or textlist. The length of the scrollbar should depend on how many lines there are. Of course, the shortness will top off eventually so that the scrollbar doesn't get too short.
Concept 5: Better dropdown menu alignment.
The down arrow on the top of the dropdown menu is not aligned with the scroll bar when it's opened. It doesn't look very good.
While I'm talking about formspecs, I want to ask what the element APIs are for sliders (The thing the sound volume uses) and checkboxes (I've seen them in the advanced settings and change keys). They aren't recorded in the Developer Wiki.
I hope you consider my proposals. I think they would make formspecs have the capability to look much nicer.