Skip to content
Components

Text & Buttons

Add text content and interactive buttons to your screens.

Text & Buttons

Text and button components are the foundation of every in-app experience. Use text to communicate with users, and buttons to drive actions like navigation, dismissal, or opening URLs.

Text

The Text component displays styled text content on a screen. It is the most commonly used component and supports rich formatting and dynamic content through variable bindings.

Properties

PropertyTypeDescription
Text ContenttextareaThe text to display. Supports {{variable}} syntax for dynamic content.
Font SizenumberSize in points (8-128). Default: 16.
Font FamilyfontTypeface selection. Default: Inter.
Font WeightselectWeight from thin to black. Default: regular.
Text ColorcolorText color in hex or rgba. Default: #000000.
Text AlignmentselectLeft, center, or right alignment. Default: left.
Line HeightnumberLine spacing multiplier.
Letter SpacingnumberSpacing between characters.
WidthsizeComponent width. Can be a pixel value, percentage, or "auto".
PaddingspacingInternal spacing (top, right, bottom, left).
MarginspacingExternal spacing (top, right, bottom, left).

Variable bindings

Text content supports variable bindings using double-curly-brace syntax. You can insert user attributes or event properties directly into your text:

Welcome back, {{user.firstName}}!
You have {{user.credits}} credits remaining.

When the bound data is unavailable, the fallback value you configure is displayed instead.

Localization

The Text Content property is localizable. When you add translations for a screen, each text component can have its content overridden per language. See Localization for details.


Button

The Button component is the primary interactive element in Setgreet flows. Buttons trigger actions — navigating between screens, dismissing a flow, opening a URL, or requesting system permissions.

Variants

VariantUse case
PrimaryMain call-to-action. Bold, filled background.
SecondaryAlternative action alongside a primary button.
TextLow-emphasis action. No background, text only.
SuccessPositive confirmation actions.
DangerDestructive or warning actions.

Sizes

Buttons support four sizes: Tiny, Small, Medium (default), and Large. The Full Width option stretches the button to fill its container.

Actions

Every button has an action that fires when tapped:

ActionDescription
NextNavigate to the next screen in the flow.
PreviousNavigate back to the previous screen.
SkipSkip the current flow entirely.
DismissClose the flow.
URLOpen an external URL in the device browser.
Request Notification PermissionTrigger the native notification permission dialog.
Request Location PermissionTrigger the native location permission dialog.
Request Camera PermissionTrigger the native camera permission dialog.
Request ReviewPrompt the native app store review dialog.
ShareOpen the native share sheet.
Open SettingsOpen the device settings page for the app.
Track EventFire a custom analytics event.
CustomPass custom data to your app via SDK callback.

Appearance properties

PropertyTypeDescription
Background ColorcolorButton fill color.
Text ColorcolorLabel text color.
Font FamilyfontTypeface for the label.
Font WeightselectLabel font weight.
Border RadiusnumberCorner rounding in pixels.
Border WidthnumberBorder stroke width.
Border ColorcolorBorder stroke color.
IconiconOptional icon displayed alongside the label.
Icon PositionselectLeft or right of the label text.

Button labels are localizable. When you add a new language to a screen, you can provide translated button text for each locale.

Branching

Buttons support conditional branching. When multiple buttons are placed on a screen, each can route to a different next screen based on which one the user taps. This is configured in the flow graph editor by creating branch nodes.

On this page