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

# Creating Components

You can create components by combining or extending existing ones, or by constructing a new one using the Element API.

- [Single Element](https://vaadin.com/docs/v24/flow/create-ui/creating-components/basic.md): Creating a component using a single HTML element.
- [Multiple Elements](https://vaadin.com/docs/v24/flow/create-ui/creating-components/many-elements.md): Creating a component using multiple HTML elements.
- [Using API Helpers to Define Component Properties](https://vaadin.com/docs/v24/flow/create-ui/creating-components/property-descriptor.md): How to use PropertyDescriptors to define a property name and default value.
- [Using Existing Components](https://vaadin.com/docs/v24/flow/create-ui/creating-components/composite.md): Creating a component by combining existing components together.
- [Extending Components](https://vaadin.com/docs/v24/flow/create-ui/creating-components/extending-component.md): Create a new component by extending any existing component.
- [Using Events](https://vaadin.com/docs/v24/flow/create-ui/creating-components/events.md): How to handle events in your components.
- [Component Containers](https://vaadin.com/docs/v24/flow/create-ui/creating-components/container.md): Creating a component that can contain other components.
- [Lifecycle Callbacks](https://vaadin.com/docs/v24/flow/create-ui/creating-components/lifecycle-callbacks.md): How to react when a component is attached to or detached from an application.
- [Using Vaadin Mixin Interfaces](https://vaadin.com/docs/v24/flow/create-ui/creating-components/mixins.md): How provide common APIs and default behavior for sets of functions in most Web Components.

> **Note:** You can also create components using HTML with Lit templates. See [Creating a Simple Component Using the Template API](https://vaadin.com/docs/v24/flow/create-ui/templates/basic.md) for more.
