> Markdown version of [Component Extensions](https://vaadin.com/docs/v7/framework/components/components-extensions). Section index: [llms.txt](https://vaadin.com/docs/v7/framework/llms.txt)

# <a id="components.extensions"></a>Component Extensions

Components and UIs can have extensions which are attached to the component dynamically. Especially, many add-ons are extensions.

How a component is extended depends on the extension. Typically, they have an extend() method that takes the component to be extended as the parameter.

```java
TextField tf = new TextField("Hello");
layout.addComponent(tf);

// Add a simple extension
new CapsLockWarning().extend(tf);

// Add an extension that requires some parameters
CSValidator validator = new CSValidator();
validator.setRegExp("[0-9]*");
validator.setErrorMessage("Must be a number");
validator.extend(tf);
```

Development of custom extensions is described in ["Component and UI Extensions"](https://vaadin.com/docs/v7/framework/gwt/gwt-extension.md#gwt.extension).
