> Markdown version of [Overview](https://vaadin.com/docs/v8/framework/components/components-overview). Section index: [llms.txt](https://vaadin.com/docs/v8/framework/llms.txt)

# <a id="components.overview"></a>Overview

Vaadin provides a comprehensive set of user interface components and allows you to define custom components.

The component hierarchy of Vaadin is presented in the next four diagrams:

- [Basic Components](#figure.uicomponents) illustrates the inheritance hierarchy of the UI component classes and interfaces not bound directly to business objects.

- [Field Components](#figure.uifields) presents fields bound to single values

- [Selection Components](#figure.uiselects) presents components that show a list of data and allow selection

- [Layouts and Component Containers](#figure.uicontainers) layouts and other component containers

Interfaces are displayed with a dotted outline, abstract classes in gray, and regular classes in blue.

[Image: component class hierarchy]

Basic Components

[Image: field class hierarchy]

Field Components

[Image: selects class hierarchy]

Selection Components

[Image: component container class hierarchy]

Layouts and Component Containers

The Component is interface implemented by all components. In practice, all components extend the AbstractComponent abstract class.

There are three more specific types of components.

- Field Components

  allow user to edit a value in the UI. All extend AbstractField. Field components are described in detail in ["Field Components"](https://vaadin.com/docs/v8/framework/components/components-fields.md#components.fields).

- Selection Component

  show a list of data that the user can select from. All extend AbstractListing. Selection components are described in detail in ["Selection Components"](https://vaadin.com/docs/v8/framework/components/components-selection.md#components.selection).

- Layouts and Component Containers

  Components that can contain other components. All layouts and containers implement the HasComponents interface. Layout components are described in detail in ["Managing Layout"](https://vaadin.com/docs/v8/framework/layout/layout-overview.md#layout.overview).

You can browse the built-in UI components of Vaadin library in the Sampler application of the Vaadin Demo. The Sampler shows a description, JavaDoc documentation, and a code samples for each of the components.

In addition to the built-in components, many components are available as add-ons, either from the Vaadin Directory or from independent sources. Both commercial and free components exist. The installation of add-ons is described in ["Using Vaadin Add-ons"](https://vaadin.com/docs/v8/framework/addons/addons-overview.md#addons.overview).
