What is ROSS?
ROSS is a declarative framework that brings the power and simplicity of CSS to Roblox Studio. Itβs designed to let you create vibrant, animated interfaces without wasting time on boilerplate code.
Stop worrying about bulky code:
No more endless TweenServicefor every single button.
Forget complex UDim2andColor3.fromRGBconstructors.
No more manual low-level property manipulation.
With ROSS, you describe styles and animations declaratively. You tell the framework how an object should look, and it handles the tweens, gradients, and corner rounding for you. This can reduce your UI code by 3-5x!
Key Features
Pure Productivity β Say goodbye to UDim2,TweenService, and mountains ofColor3. Use simple tables, percentages, and built-in presets instead.
Native Gradients β Create gradients in a single line: Background = {"red", "blue", 90}. No more unnecessary objects in your hierarchy!
Advanced Corner Radii β Set individual rounding for each corner without any visual bugs or artifacts.
Built-in Interactions β Animations are included out of the box. Enjoy smooth transitions and automatic state reset.
Smart Value Parser β Write code your way: "red",{"green", 0.5},{150, "px"}, or"Bold". ROSS understands you perfectly.
Client-Side Optimized β Styles are resolved once, and animations only run when needed. Zero unnecessary overhead on your system.
Quick Start
local ROSS = require(path.to.ROSS) -- ROSS should be in ReplicatedStorage
ROSS:Create({
["Button"] = {
type = "Button",
properties = {
Background = {"green", "dark_green"},
Size = {15, 10, "%"},
Position = {50, 85, "%"},
Anchor = "center",
BorderRadius = {50, "%"},
Text = "Click Me!",
Font = {"white", 0, "Bold"},
Transition = 0.1,
},
animations = {
Hover = {
BackgroundColor = {"red", "dark_red", 180},
Size = {16, 11, "%"},
},
Active = {
BackgroundColor = {"red", "dark_green", "dark_red"},
Size = "Default",
}
}
}
})
Documentation
Detailed information about every property and animation is available in the Documentation included with ROSS (found inside the Docs folder). There you will also find Preset Tables and other core ROSS components.
Quick Summary:
- Background / BackgroundColor β Handle colors and transparency. Two or more colors automatically create a Gradient; a final number > 1 sets the Rotation Angle.
- Font β Set text color, size, family, weight, and style in a single line:
{"white", 14, "Arial", "Bold", "Italic"}. - BorderRadius β Custom corner rounding:
{20, 5, 10, 30, "%"}or{15, "px"}. - Size, Position, Width, Height, X, Y β Full support for both % and px.
- Anchor β Origin points like
"center","topLeft", and more. - Text Control β Full control over
TextAlign,TextHAlign,TextVAlign,TextTransparency, andTextStroke. - Transition β Defines the duration of your animations.
- Callback β Attach your own custom functions to events.
Note: Animations are defined in the
animationssection (e.g.,Hover)
All properties listed above are supported for animation
Installation
- Download the
.rbxmfile from the ROSS GitHub Repository - Insert the Model into
ReplicatedStorage(or any location accessible by the Client) - Initialize in a LocalScript:
local ROSS = require(path.to.ROSS.Main).New()
ROSS:Create({ ... })
Future Plans
- Shadows and border strokes
- Expanded element support:
ScrollingFrame,ProgressBar,Slider, etc. - Adaptive Layouts (Horizontal, Vertical, etc.) via simple properties
- Support for external style sheets (loading styles from separate tables/files)
- And much more!
Feedback
I built ROSS entirely on my own, and it is my first public library. I would be thrilled to receive any feedback, suggestions, or constructive criticism! If you have ideas on how to improve the syntax or features youβd like to see β please leave a comment below.
Letβs make UI in Roblox beautiful and simple together! ![]()
