AROYN UI LIBRARY / ADVANCED

Themes & customization

Adjust existing theme fields and assets before constructing the interface.

Configure existing fields#

LUAU
-- After loading Aroyn, before creating the window:
Aroyn.Theme.Colors.Text = Color3.fromRGB(242, 242, 240)
Aroyn.Theme.Animation.Hover = 0.10
Aroyn.MotionEnabled = false
local window = Aroyn:CreateWindow({Parent = parent, Id = "custom-demo", Logo = Aroyn.Logo})

Aroyn.Theme is a table, not a theme manager API. Mutate existing fields before construction. Do not replace the entire Colors or Fonts table: some subsystems retain references. Applying changes to existing elements is not consistently supported. No SetTheme or ApplyTheme method exists.

Theme groups#

GroupFields / defaults
ColorsWindow/Header/Surface/Surface2/Surface3; Hover/Pressed/Selected; BorderSoft; Text/TextMuted/TextDim; Accent/AccentBright/AccentDark/AccentSoft. All Color3.
FontsBuilderSans Regular / Medium / Semibold. Page=22, Section=14, Label=14, Description=13, Small=12, Brand=15.
MetricsRadius=4, WindowRadius=7, Gap=8, Row=40, DescriptionRow=60, Control=30, FieldWidth=224, ButtonWidth=144, Rail=64, Header=52, Icon=24.
Toggle metricsToggleWidth=44, TrackWidth=38, TrackHeight=22, Thumb=14, ThumbInset=4.
AnimationHover=0.10, Value=0.14 seconds; not a global transition duration.
BordersThickness=1, Normal=0.45, Focus=0.10, Disabled=0.65.

The approved palette#

TokenRGB
Window17, 17, 18
Header / Surface23, 23, 25
Surface229, 29, 31
Surface3 / Hover37, 37, 39
Pressed45, 45, 47
Selected32, 32, 34
BorderSoft49, 49, 51
Text / AccentBright242, 242, 240
TextMuted181, 181, 176
TextDim151, 151, 146
Accent222, 222, 218
AccentDark68, 68, 65
AccentSoft131, 131, 127

Motion and sharpness#

MotionEnabled=false makes page, popup and morph transitions immediate. It does not disable every hover, toggle, toast or dialog tween. Current rendering uses native Frames, not persistent CanvasGroup compositing or whole-window UIScale animation. Preserve native text clarity when extending an adapter.

Image fields#

Aroyn.IconAtlas accepts an already registered seven-cell image URI. Aroyn.Logo is a convenience field; pass it via Logo explicitly. The library does not fetch image assets or add a runtime HTTP dependency.