# Widgets
Types that implement [`Widget`][widget] are the [building
blocks](./about/widgets.md) of Cushy user interfaces. The built-in widgets each
aim to serve a single purpose or solve a single problem. [Through
composition](./about/composition.md), complex user interfaces can be built by
combining these single-purpose widgets.
This section is organized into four categories of widgets:
- [Multi-widget Layout Widgets](./multi-layout.md): Widgets that are designed to
layout multiple widgets as a single widget.
- [Single-widget Layout Widgets](./single-layout.md): Widgets that are designed
to influence a single widget's layout.
- [Controls](./controls.md): Widgets that are visible to the user to present
and/or interact with data.
- [Utility Widgets](./utility.md): Widgets that have no direct layout or visual
presentation. This type of widget usually associates extra data that may
impact how child widgets are presented.
[widget]: <{{ docs }}/widget/trait.Widget.html>