# Developer Guide: Angular HTML Compiler: Understanding Angular Widgets

Work in Progress This page is currently being revised. It might be incomplete or contain inaccuracies.

Widgets are DOM elements that the browser doesn't already understand. Angular provides some built-in widgets (such as `ng:repeat`), and you can create your own custom widgets.

Widgets are intended to manipulate the DOM tree by adding new elements (unlike angular directives, which are intended to modify only element properties).

Widgets come in two types:

- Element Widget â A custom DOM element. An example of a custom element is shown in Creating Custom Widgets.

- Attribute Widget â A custom attribute on an existing DOM element. An attribute widget is similar to an angular directive, with the main difference being that an attribute widget will always be processed before any directives that are specified on the same element. Only one attribute widget is allowed per element. An example of an attribute widget is shown in Creating Custom Widgets.

### Related Topics

- Angular HTML Compiler
- Angular Directives
- Creating Custom Widgets
- Creating Custom Directives

### Related API

- `Compiler API`