Assemble web app UI components
Learn how to assemble Retool web app interfaces.
Components are fully interactive in creator mode. Hold Cmd/ctrl
when selecting or moving a component to prevent interacting with it.
Drag-and-drop components to rearrange them on the canvas. Components cannot overlap, so as you move components around, the layout of your app automatically updates and adjusts. All components have a default size (e.g., 2 columns x 5 rows) and built-in spacing.
Resize components
Most components can be resized to fit a custom area—select a component and then drag from a corner or edge. Certain components, such as Container or Text Area, have fixed sizes that expand to automatically grow with their content. You can set their Overflow setting to Scroll or Hidden using the Inspect tab of the right panel to control this behavior.
You can fine-tune the position of selected components using keyboard arrow keys.
You can configure containers to dynamically adjust their size based on their contents. Set the component's Height to Hug Contents in the component's Layout settings, available in the Inspect tab of the right panel.
Duplicate components
You can duplicate existing components in the following ways:
- Click and drag whilst holding Alt.
- Press ctrl D.
- Right-click the component on the canvas or in the Explorer tab of the left panel, then select Duplicate.
Hide or disable components
You can hide any component by setting Hidden to true
. You can also disable input components, or set them as read-only, using Disabled or Read only respectively.
Hidden components don't take up space on the canvas by default. You can enable Maintain space when hidden to preserve the component's layout regardless of visibility. This can maintain fixed positioning of components, regardless of visibility.
These values evaluate to true
based on a truthy value. For example, you can use the state of one component to toggle the Hidden property of another component. Checkbox can be used to toggle the visibility of another component when checked. To do this, set Hidden to {{ checkbox1.value }}
on the component you want to hide . This evaluates to true
when the checkbox is checked, and false
when unchecked.
You can also use event handlers if you need to control components based on user actions. For example, you could use a Button to show or hide a Text Area component.
Display images
Learn about the different ways to include images in your apps.
Build input forms
Learn how to assemble an input form using the Form component.
Build list views
Learn how to display and interact with your data using list views.
Build navigation menus
Learn how to build interfaces for users to navigate within apps.
Build tables
Learn how to display and interact with data using tables.
Build wizards
Learn how to build a step-by-step interface with multiple paths using the Wizard component.
Develop custom components
2 items
Display avatars
Learn how to display information about the current user and retrieve profile images from Gravatar.
Display key-value pairs
Learn how to display data in key-value pairs.
Generate charts
Learn how to use your data to create charts and graphs.
Organize with containers
Learn how to group components into multi-view interfaces.
Upload files and images
Learn how to upload files and images in web apps.