Themes & customization
Adjust existing theme fields and assets before constructing the interface.
Configure existing fields#
-- 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#
| Group | Fields / defaults |
|---|---|
| Colors | Window/Header/Surface/Surface2/Surface3; Hover/Pressed/Selected; BorderSoft; Text/TextMuted/TextDim; Accent/AccentBright/AccentDark/AccentSoft. All Color3. |
| Fonts | BuilderSans Regular / Medium / Semibold. Page=22, Section=14, Label=14, Description=13, Small=12, Brand=15. |
| Metrics | Radius=4, WindowRadius=7, Gap=8, Row=40, DescriptionRow=60, Control=30, FieldWidth=224, ButtonWidth=144, Rail=64, Header=52, Icon=24. |
| Toggle metrics | ToggleWidth=44, TrackWidth=38, TrackHeight=22, Thumb=14, ThumbInset=4. |
| Animation | Hover=0.10, Value=0.14 seconds; not a global transition duration. |
| Borders | Thickness=1, Normal=0.45, Focus=0.10, Disabled=0.65. |
The approved palette#
| Token | RGB |
|---|---|
| Window | 17, 17, 18 |
| Header / Surface | 23, 23, 25 |
| Surface2 | 29, 29, 31 |
| Surface3 / Hover | 37, 37, 39 |
| Pressed | 45, 45, 47 |
| Selected | 32, 32, 34 |
| BorderSoft | 49, 49, 51 |
| Text / AccentBright | 242, 242, 240 |
| TextMuted | 181, 181, 176 |
| TextDim | 151, 151, 146 |
| Accent | 222, 222, 218 |
| AccentDark | 68, 68, 65 |
| AccentSoft | 131, 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.