New Properties for GUI Elements

As a Roblox developer, it is currently too hard to design user interfaces using the given Roblox properties. Roblox is missing quite a few properties for frames, inputs, images, and buttons that are considered essential for user interface design. Some of those properties include:

BorderRadius - Allows the corners of frames, inputs, images, and buttons to be rounded.

BorderStyle - Allows for the border style to be either solid, dotted, dashed, or double.

BorderColor3Top - Sets the border color for just the top border.
BorderColor3Left - Sets the border color for just the left border.
BorderColor3Bottom - Sets the border color for just the bottom border.
BorderColor3Right - Sets the border color for just the right border.

MaxLength - Sets a maximum number of characters allowed for inputs.

22 Likes

All of this seems very situational and very easy to make yourself. I wouldn’t appreciate a bunch of random properties like this bloating the properties menu.

5 Likes

Going by that logic, then Roblox can remove a lot of current properties because you can make them yourself. Also, I don’t think a few extra properties is going bloat the menu if they do it right.

4 Likes

Roblox shouldn’t be trying to make APIs where a developer just has to input one number and then get an end result that they can ship their game with. These types of APIs (explosions, old particles, gui borders) are almost never actually used in a final game because they rarely do exactly what the developer wants. Instead of trying to anticipate developer needs and then add APIs for them, roblox should be enabling developers to solve their own problems. The APIs you want to solve these problems are 9Slice guis and GetPropertyChangedSignal for the text limit.

6 Likes

Borders are pretty meh. The only ones I would consider slightly important is giving the border the option to have a separate transparency, and to ignore ClipsDescendants.

Even then, though, they are very situational and won’t come into effect often.

If you really need an easy way to make borders, do some nine slicing. You’ll get way more customization than Roblox has through your image editor.

Aand I basically repeated what sharksie said lol

Plenty of games uses rounded user interfaces already, so it makes sense to make it easier for everyone by adding in a property rather than having to jump hoops and hurdles. Going by the logic that there are hacky ways of doing it and it doesn’t need to be a property, then Roblox could do away with things such as part materials and colors because you can just put some decals with materials and color on them.

Borders are probably unused because all you can do with them right now is change their size and the entire border color. It would be nice to be able to easily give each border different colors, each border a different size, set a border transparency,

2 Likes

You’re right for most of them, but BorderRadius is actually used a lot. Our Discourse avatars use it, the game/item cards on Roblox use it, and various games like Brick Bronze, Jailbreak, and Robloxian High School use rounded buttons. Real pain to upload 9-slice images for every button that uses it rather than tweaking with a number.

27 Likes

Going out of our way to make the most simple effects can just be annoying. I shouldn’t need a dozen frames if I wanted a ‘dashed’ border style.

These kind of features avoid bloat in the # of ui elements.

If anything we need a new UI object with VERY open customization options or some kind of way to make ‘layouts’ we can just apply to things like frames. That would organize properties. Although when it comes to aesthetics I don’t see a load of properties as a bad thing.

3 Likes

The only property here that seems useful to most would be BorderRadius. Otherwise, the others can be easily done.

Um actually MaxLength with be incredibly useful

local maxLength = 10
local TextBox = script.Parent -- or something else
TextBox:GetPropertyChangedSignal("Text"):Connect(function()
    local text = TextBox.Text
    TextBox.Text = text:sub(1, maxLength)
end)
5 Likes

I know it’s not hard to script I just, it’s something that I would use a lot and I would rather not have a bunch of different instances of this code being copied+pasted for different elements across my whole game.

It’s something that would speed up and clean up my development process, even though it’s a small thing

1 Like

We want to add border radius. We might be able to do it this year, but we’ll see.

Update (March 2022): Border radius can be done using UICorner. You can then add a border on top of that by adding a UIStroke.

41 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.