Supported on: Android SDK
1.0.33+Supported Formats
Lottie Animations
Lottie animations are rendered natively using Lottie Compose, which is bundled with the SDK.- Remote URL — provide a URL to a
.jsonLottie file - Inline JSON — embed the animation JSON directly in the config
- Controls — autoplay, loop, speed
Rive Animations
Rive animations are rendered natively using the Rive Android runtime, bundled with the SDK.- Remote URL — provide a URL to a
.rivfile - Artboard selection — choose which artboard to display
- State machine — drive interactive animations with state machine inputs
- Trigger on completion — fire a state machine trigger when the step or flow completes
Video
Inline video playback with ExoPlayer:- Remote URL — provide a URL to an MP4 or HLS video
- Thumbnail — optional poster image shown before playback
- Controls — autoplay, loop, muted, show/hide controls
- Sizing — configurable height and corner radius
Visual Effects
Haptic Feedback
Haptic feedback uses the AndroidHapticFeedbackConstants and VibrationEffect APIs. Supported haptic types:
Haptic triggers can be configured for:
- Step advances (onboarding)
- Button taps
- Plan selection (paywalls)
- Option selection (surveys, forms)
- Toggle changes
- Form submission
- Error and success states
Particle Effects
Particle effects overlay the current screen using Jetpack Compose Canvas. Supported effect types:
Each effect has a trigger (
on_appear, on_step_complete, on_purchase, on_flow_complete), duration, intensity (light, medium, heavy), and optional custom colors.
Blur / Glassmorphism
Blur backdrops useRenderEffect.createBlurEffect() (API 31+) with graceful fallback on older devices:
- Radius — blur intensity
- Tint — overlay color tint
- Saturation — color saturation adjustment
Icons
The SDK supports structured icon references across all modules. Icons are resolved to platform-appropriate rendering:
Icons are used in onboarding content blocks, paywall feature lists, in-app message CTA buttons, and survey question options.
Content Blocks
Onboarding steps support rich content blocks that are rendered in order using Jetpack Compose. Each block has a type and optional styling:Styling
All visual elements support fine-grained styling through the Console:- Text styles — font family, size, weight, color, alignment, line height, letter spacing, opacity
- Backgrounds — solid color, linear/radial gradient, or remote image with overlay
- Borders — width, color, style, and per-corner radius
- Shadows — offset, blur, spread, and color
- Spacing — per-side padding and margin
- Animations — entry animations (slide, fade, scale), section stagger, CTA pulse/glow/bounce, dismiss animations
The SDK uses platform-native fonts only. Custom web fonts are not supported. Specify system font families in the Console, and the SDK will render them using the device’s default typeface.
Dynamic Content Templates
Rich media content supports template interpolation using{{variable}} syntax. Available namespaces:
Use the pipe syntax for fallback values:
{{user.name | there}} renders as “there” if the user name is not set.

