Skip to main content

The Stack component for Retool Apps

A container to group other components together in a flexbox layout.

Settings

Stack includes the following configurable options when building apps in the IDE.

Show on desktopShow on mobileMaintain space when hiddenMarginAlways show in edit modeStyles

Properties

All properties for Stack with supported data types or values. You can write JavaScript almost anywhere in Retool to manipulate or read property values.

clickable

boolean

Whether there is an enabled Click event handler.


currentViewIndex

number

The index of the selected view.


currentViewKey

string

The key value of the selected view.


Whether input, interaction, selection, or triggering is disabled.


disabledByIndex

boolean[]

A list of boolean values for each item, by index, that reflect whether they are disabled.


Whether the container is in full bleed mode, where it can only contain a single component which expands to fit the available space.


events

object[]

A list of configured event handlers that trigger actions or queries.

Properties

event

enum

The event type.

Values
change

A user changes the value.

click

A user clicks or taps the component.

submit

A user submits the value.

focus

A user selects the input field.

blur

A user deselects the input field.

scan

A user scans a barcode.

open

A user opens the component.

close

A user closes the component.

true

A user sets the value to true.

false

A user sets the value to false.

select

A user selects a value.

clear

A user clears the value.

upload

A user uploads a file.

parse

An uploaded file is parsed.

inputValueChange

A user changes the value of the input field.


method

enum

The JavaScript method to perform when type is datasource, widget, state, or localStorage.


The type of action to perform.

Values
datasource

Control query.

widget

Control component.

script

Run script.

state

Set variable.

localStorage

Set localStorage.

util

Perform utility action (e.g., Open URL or Confetti).



footerPadding

string

The amount of padding used within the footer.


global

boolean

Whether the object is globally scoped for use in all app pages.


headerPadding

string

The amount of padding used within the header.


Whether the height automatically resizes to fit content or is a fixed size.

Values
fixed

Fixed height.

auto

Expand to fit content.


boolean

Whether the component is visible.


hiddenByIndex

boolean[]

A list of items, by index, and whether they are hidden.


hoistFetching

boolean[]

Whether to display a loading indicator whenever nested components are fetching data.


hovered

boolean

Whether the component is hovered.


id

string

The unique identifier.


Whether the component is visible in the desktop layout.


Whether the component is visible in the mobile layout.


The configuration mode for option lists. Either dynamic for mapped options or static for manual options.

Values
dynamic

Options dynamically mapped from an array.

manual

Options manually configured in the IDE.


labels

string

A list of labels for each item. Falls back to the corresponding value if no label is provided.


loading

boolean

Whether to display a loading indicator.


Whether the component takes up space on the canvas if hidden is true.


The amount of margin to render outside.

Values
4px 8px

Normal margin.

0

No margin.


The overflow behavior when the contents exceeds the height.

Values
scroll

Display a scrollbar.

pagination

Use pagination.


padding

number

The amount of padding to render inside.


pluginType

string

The plugin type.


Whether to show a border.


Whether to show a footer area.


Whether to show a border above the footer.


Whether to show a header area.


Whether to show a border under the header.


Whether to remain visible in the editor if hidden is true.


style

object

Custom style options in use. Not all style options may be available for all components.


tooltipByIndex

string[]

A list of tooltips for each item, by index.


The tooltip text to display.


transition

enum

The transition animation used when switching views.

Values
none

No animation.

fade

Views fade in and out.

slide

Views slide in and out.


viewKeys

string[]

A list of view keys.


views

object[]

A list of views configured for the container.

Properties

Whether input, interaction, selection, or triggering is disabled.


boolean

Whether the component is visible.


The prefix icon to display.

Values

You can select an icon or dynamically set one with a valid icon key.


iconPosition

The position of the icon relative to the label.


key

string

The view key.


label

string

The text label to display.


The tooltip text to display when the cursor hovers.



Methods

JavaScript API methods for interacting with Stack. You can write JavaScript almost anywhere in Retool and use methods to manipulate data and property values.

scrollIntoView

Scrolls the canvas or parent container so that the selected component appears in the visible area.

stack.scrollIntoView(scrollIntoViewOptions)
Parameters

scrollIntoViewOptions

object

The scroll options.

Properties

behavior

enum

The scroll behavior.

Values
auto

Scroll immediately to the specified position.

smooth

Scroll gradually to the specified position.


block

enum

The scroll position relative to the component.

Values
nearest

Scrolls only the minimum amount required for the component to appear in the visible area. Scrolling does not occur if the component is already in view.

start

Scrolls to position the component at the top of the visible area.

center

Scrolls to position the component in the middle of the visible area.

end

Scrolls to position the component at the bottom of the visible area.




setCurrentView

Set the current view of the container by key.

stack.setCurrentView(view)
Parameters

view

enum

The view.

Values
day

Day

week

Week

month

Month

year

Year

list

List



setCurrentViewIndex

Set the current view of the container by index.

stack.setCurrentViewIndex(index)
Parameters

index

number

The index of an item.



setDisabled

Set the disabled value to toggle whether the input field is disabled. Defaults to true without a parameter.

stack.setDisabled(disabled)
Parameters

Whether input, interaction, selection, or triggering is disabled.



setHidden

Set the hidden value to toggle whether the component is visible. Defaults to true without a parameter.

stack.setHidden(hidden)
Parameters

boolean

Whether the component is visible.



setShowBody

Set the showBody value to toggle whether the component body is visible.

stack.setShowBody(showBody)
Parameters

showBody

boolean

Whether to show the body.



setShowFooter

Set the showFooter value to toggle whether the component footer is visible.

stack.setShowFooter(showFooter)
Parameters

Whether to show a footer area.



setShowHeader

Set the showHeader value to toggle whether the component header is visible.

stack.setShowHeader(showHeader)
Parameters

Whether to show a header area.



showNextView

Show the next view of the container.

stack.showNextView()

showNextVisibleView

Show the next visible view of the container.

stack.showNextVisibleView()

showPreviousView

Show the previous view of the container.

stack.showPreviousView()

showPreviousVisibleView

Show the previous visible view of the container.

stack.showPreviousVisibleView()

Events

Events are triggered by user interactions, such as clicking a button or entering a value. Use event handlers to trigger queries or other actions in response to events.

change

The value is changed.


click

The item is clicked or pressed.