# API reference
Source: http://realm.js.org/reference/
Exact names, types and defaults for everything in REALM. New to REALM? Start with the [Docs](/docs/).
All examples load REALM from the CDN:
```html
```
## Elements
| Element | Purpose |
| --- | --- |
| [``](/reference/elements/custom-element/) | Defines a component |
| [``](/reference/elements/import-element/) | Loads a file of component definitions |
| [``](/reference/elements/repeat-list/) | Repeats its content for each item of an array |
| [``](/reference/elements/is-visible/) | Mounts its content while a condition is true |
| [``](/reference/elements/is-hidden/) | Mounts its content while a condition is false |
| [Value slots](/reference/elements/value-slots/) | `` and `` show a value |
## Attributes
| Attribute | Purpose |
| --- | --- |
| [`_name`](/reference/attributes/bindings/) | Binds an attribute, property or CSS variable to a reference |
| [`on…`](/reference/attributes/handlers/) | Event handlers in component markup and on plain pages |
| [`debounce`, `throttle`](/reference/attributes/debounce-throttle/) | Delay or rate-limit handlers and requests |
| [`ref`](/reference/attributes/ref/) | Names an element for `refs` and `render` |
| [`repeat`](/reference/attributes/repeat/) | Repeats one element per item |
| [`focusgroup`](/reference/attributes/focusgroup/) | Arrow-key focus navigation |
| [`fetch`, `method`, `params`, `headers`](/reference/fetch/fetch/) | Send a request from markup |
| [`trigger`, `poll`](/reference/fetch/trigger/) | When the request is sent |
| [`into`, `into-mode`, `into-key`](/reference/fetch/into/) | Write the response into state |
| [`render`, `render-mode`, `render-select`](/reference/fetch/render/) | Insert the response as HTML |
| [`busy`, `timeout`](/reference/fetch/busy-timeout/) | Track a request and set a time limit |
## Script
Names available in every component `
```
To load less, import only the components you use instead of the bundle:
```html
```
Each file imports the files it depends on, so `sheet.html` also loads `dialog.html`. A file is fetched once, however many files import it.
Pin an exact version (currently `@realmorg/ui@2.0.0-alpha.2`) in production, as described in [Installation](/docs/installation/#pin-a-version). The package contains:
| File | Contents |
| --- | --- |
| `dist/theme.css` | Design tokens (colours, spacing, type, radius, shadows) with light and dark values |
| `dist/ui.html` | Every component in one file |
| `components/.html` | One component (or a small family, such as tabs and tab panels) per file, with its dependencies imported at the top |
To own a component, copy its file from `components/` into your project and import your copy instead. Components depend on REALM, the theme tokens and the files they import at the top, such as `button.html`.
## Conventions
- **Native first.** Components wrap native elements: `ui-button` renders a `