App
You can create a new app by calling the New method from the Cascade API. This returns a custom object merged with a ScreenGui.
The returned object exposes all built-in Components such as Window, Tab, and others for UI composition.
Summary
Properties
| Property | Type | Description |
|---|---|---|
| WindowPill | boolean? |
Whether or not the window minimize/restore pill should be visible. |
| Theme | Theme? |
Light or Dark mode. See Themes |
| Accent | Accent? |
Accent color palette. See Accents |
View all inherited from ScreenGui
Methods
View all inherited from ScreenGui
Events
View all inherited from ScreenGui
Types
type AppProperties = ScreenGui & {
WindowPill: boolean?,
Theme: Theme?,
Accent: Accent?,
}
type App = AppProperties & Components
Function Signature
Example
local app = cascade.New({
WindowPill = true,
Theme = cascade.Themes.Light,
Accent = cascade.Accents.Blue,
})
Dumping an App
Use AppRecorder when you want a compact, Cascade-aware dump of the components you create.
local app = cascade.New({
Theme = cascade.Themes.Dark,
Accent = cascade.Accents.Blue,
})
local recorder = cascade.AppRecorder.new(app)
recorder:Start()
local window = app:Window({
Title = "Cascade",
Subtitle = "Cascade demo app",
})
window:Section({
Title = "Navigation",
})
recorder:Stop()
if setclipboard then
setclipboard(recorder:Dump())
end
recorder:Dump() returns JSON with a CascadeAppDump root, each recorded component, serializable component properties, and the current root instance properties for each component. Functions are skipped because they cannot be recreated outside Roblox.
If you did not start a recorder, cascade.AppDump(app) still works, but it falls back to a raw rendered instance tree:
You can include the full rendered tree alongside recorder data when you need pixel-level implementation details: