> Markdown version of [Component Internals](https://vaadin.com/docs/latest/flow/component-internals). Section index: [llms.txt](https://vaadin.com/docs/latest/flow/llms.txt)

# Component Internals Reference

This is the technical reference guide for Vaadin’s component architecture. For a list of available components, see the [Components](https://vaadin.com/docs/latest/components.md) documentation. For step-by-step guides on creating UIs with Vaadin, see the [Building Apps](https://vaadin.com/docs/latest/building-apps.md) guide.

- [Basics](https://vaadin.com/docs/latest/flow/component-internals/basic.md): Creating a Vaadin component with a client-side element and a server-side Java API.
- [Properties](https://vaadin.com/docs/latest/flow/component-internals/properties.md): Declaring and synchronizing Vaadin component properties between client and server.
- [Events](https://vaadin.com/docs/latest/flow/component-internals/events.md): Declaring, listening to, and firing events in Vaadin components.
- [Remote Procedure Calls](https://vaadin.com/docs/latest/flow/component-internals/client-server-rpc.md): Calling client-side functions from the server, and server-side methods from the client.
- [Component Containers](https://vaadin.com/docs/latest/flow/component-internals/container.md): Creating components that can contain other components.
- [Enabled State](https://vaadin.com/docs/latest/flow/component-internals/enabled-state.md): How enabling and disabling UI components affects user interaction and server communication in Vaadin applications.
- [Visibility](https://vaadin.com/docs/latest/flow/component-internals/visibility.md): How component visibility works in Vaadin.
- [Mixin Interfaces](https://vaadin.com/docs/latest/flow/component-internals/mixins.md): Using mixin interfaces to add a common API to Vaadin components.
- [Keyboard Shortcuts](https://vaadin.com/docs/latest/flow/component-internals/shortcut.md): Adding keyboard shortcuts to components for a better user experience.
- [Drag & Drop](https://vaadin.com/docs/latest/flow/component-internals/dnd.md): Dragging and dropping between components as well as between the UI and the operating system.
- [Element API](https://vaadin.com/docs/latest/flow/component-internals/element-api.md): Control the HTML DOM in the browser from the server side using the Element API.
- [Integrating Web Components](https://vaadin.com/docs/latest/flow/component-internals/web-components.md): How to create new HTML tags with custom names.
- [Templates](https://vaadin.com/docs/latest/flow/component-internals/templates.md): How to build views declaratively using templates.
