> ## Documentation Index
> Fetch the complete documentation index at: https://luau.limerence.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> api.ui: build your script's tab and look up saved controls.

Start with a tab, add sections to it, then add controls (toggles, sliders, color pickers…) inside the sections.

## tab

```luau theme={null}
api.ui.tab(title: string, icon: string?): Tab
```

A tab in the menu. One per script. See [Tab](/ui/classes/tab).

<ParamField path="title" type="string" required>
  Tab label.
</ParamField>

<ParamField path="icon" type="string">
  Name of an image asset (resolved via [getAsset](/utility/get-asset)).
</ParamField>

## find

```luau theme={null}
api.ui.find(fullName: string): ElementHandle?
```

Look up any saved control by its full name (yours or another script's), e.g. `luau.my_script.enabled`. Returns `nil` if not found.

## notify

```luau theme={null}
api.ui.notify(spec: NotifySpec): NotifyHandle
```

Pop a toast notification in the top-right corner. Returns a handle to update or dismiss it. See [Notify](/ui/classes/notify).

## toast

```luau theme={null}
api.ui.toast(spec: ToastSpec | string): ToastHandle
```

Push a small pill toast into the same feed the hit logs use. Pass a table, or just a string as shorthand for `{ text = ... }`. See [Notify](/ui/classes/notify#pill-toasts).

## isOpen

```luau theme={null}
api.ui.isOpen(): boolean
```

Returns `true` while the menu is open.

## onToggle

```luau theme={null}
api.ui.onToggle: Signal
```

Signal. Call `:Connect(cb)`. Your `cb(open)` runs every time the menu opens or closes, with the new `boolean`. Disconnects on unload.

## Class reference

<CardGroup cols={2}>
  <Card title="Tab" href="/ui/classes/tab" />

  <Card title="Section" href="/ui/classes/section" />

  <Card title="ElementHandle" href="/ui/classes/element-handle" />

  <Card title="Notify" href="/ui/classes/notify" />
</CardGroup>

Widget and container classes are in the **UI** sidebar.
