> Markdown version of [Creating UI](https://vaadin.com/docs/v24/flow/create-ui). Section index: [llms.txt](https://vaadin.com/docs/v24/flow/llms.txt)

# Creating UI in Vaadin Applications

The Vaadin Design System includes a set of [components](https://vaadin.com/docs/v24/components.md) that you can use to build your UI. The components have a server-side Java API in addition to the TypeScript API for client-side development.

[Browse components](https://vaadin.com/docs/v24/components.md)

You use a component by first creating it and then adding it to a containing layout.

For example, to add a [Button component](https://vaadin.com/docs/v24/components/button.md), create the object and add it to a layout.

`EventsLambda.java`

```java
Button button = new Button("Click me!",
        event -> event.getSource().setText("Clicked!!!"));
add(button);
```

## <a id="topics"></a>Topics

- [Basic Features](https://vaadin.com/docs/v24/flow/create-ui/basic-features.md): Common features available in all Vaadin components.
- [Enabled State](https://vaadin.com/docs/v24/flow/create-ui/enabled-state.md): Components that allow user interaction can have three different enabled states.
- [Keyboard Shortcuts](https://vaadin.com/docs/v24/flow/create-ui/shortcut.md): Creating keyboard shortcuts to components for a better user experience.
- [Creating Components](https://vaadin.com/docs/v24/flow/create-ui/creating-components.md): How to create components using the Element API.
- [Integrating Web Components](https://vaadin.com/docs/v24/flow/create-ui/web-components.md): How to create new HTML tags with custom names.
- [Element API](https://vaadin.com/docs/v24/flow/create-ui/element-api.md): You can control the HTML DOM in the browser from the server-side using the Element API.
- [Drag & Drop](https://vaadin.com/docs/v24/flow/create-ui/dnd.md): Drag and drop between components as well as between the UI and the operating system.
- [Templates](https://vaadin.com/docs/v24/flow/create-ui/templates.md): How to build views declaratively using templates.
