Components

SolidJS components for SceneGraph nodes in the RSG 2.0 SDK

Each component wraps one node, such as a Label, Poster, Rectangle or Effect, or composes several, and takes the node's fields as typed JSX props.

Pages

PageDescription
AnimatedImageThin binding for the native AnimatedImage node.
AnimationAnimation component for animating renderable node fields using interpolator functions.
AudioAudio plays streaming audio content.
BifDisplayBifDisplay — description pending.
BlendedBusySpinnerBlendedBusySpinner — description pending.
BoundingTrackerBoundingTracker — description pending.
BUSY_SPINNER_DIMENSIONSStandard dimensions for the default BusySpinner (theme:ActionHudSpinner).
BusySpinnerBusySpinner component - displays an animated spinning indicator.
ButtonButton is a simple widget that generates a buttonSelected event when the user selects it.
ButtonGroupButtonGroup manages the layout, visual attributes, and focus management of a vertical list of Button nodes.
ButtonRowButtonRow — description pending.
ChannelStoreChannelStore provides an interface to the Roku Streaming Store for in-app purchases, user authentication, subscription management, and credential storage.
CheckListCheckList displays a list of items with optional checkboxes for selection.
ColorFieldInterpolatorColorFieldInterpolator animates a color field of a node through a series of keyframes.
ContainerContainer is a Group wrapper that exposes typed imperative methods for dynamic node insertion and removal.
ContentNodeContentNode component for specifying data used to configure nodes and components.
CustomKeyboardVoice-enabled keyboard with a custom layout defined by a Key Definition File.
DialogDialog is a modal pop-up used to present the user with information requiring their immediate attention.
DynamicKeyboardStandalone DynamicKeyboard with built-in key layout and voice entry.
DynamicKeyGridStandalone key grid driven by a Key Definition File (no text edit box).
DynamicMiniKeyboardStandalone search-style mini keyboard (A–Z, 0–9) with voice entry.
DynamicPinPadVoice-enabled numeric PIN pad for standalone on-screen entry (not inside a dialog).
EffectEffect applies GPU shader-based rendering to a Rectangle or Poster.
FloatFieldInterpolatorFloatFieldInterpolator animates a floating point field of a node through a series of keyframes.
FocusableFocusable — description pending.
FocusableGroupFocusableGroup — description pending.
FontFont specifies the font to be used by a Label node, or any other nodes that render text.
getBusySpinnerHeightGet the height of the BusySpinner for the given UI resolution.
getBusySpinnerWidthGet the width of the BusySpinner for the given UI resolution.
GlyphsNamed character constants for symbols that are awkward or impossible to type directly in source.
GroupGroup component - a layout container for organizing and positioning child nodes.
INodePropsBase properties for all SceneGraph nodes.
installEffectGradientDevValidationInstalls the DEV setProperty observer that validates Effect gradient props for both and .
KeyHandlerKeyHandler — description pending.
LabelLabel component for displaying single-style text.
LabelListLabelList is a simple list class that displays a list of text items.
LayoutGroupA container node that automatically positions its child nodes in either a horizontal row or vertical column layout with configurable alignment and spacing.
ListPanelA panel component that displays a navigable list of items for the Roku Sliding Panels interface pattern.
MarkupGridMarkupGrid is a generic grid class that can be used to display a set of items arranged in a 2D grid.
MarkupListMarkupList is a generic list class that displays a vertical list of items, where the visual content of each item is an instance of an XML component specified by the itemComponentName field.
MaskGroupMaskGroup component for applying alpha masks to child content.
MultiStyleLabelMultiStyleLabel component for displaying text with mixed styles.
OverhangThe Overhang node provides an information bar that is displayed at the top of a screen in many Roku apps.
PanelPanel is a Group node subclass used to create sliding panels for app UI, similar to those in the Roku OS home screen.
PanelSetPanelSet is a Group node subclass that provides the panel sliding behavior seen in the Roku home screen.
PosterPoster is a renderable node that displays bitmap images.
PosterGridPosterGrid is a simple grid class that can be used to display two-dimensional grids of posters.
ProgressBarProgressBar — description pending.
RadioButtonListRadioButtonList displays a list of items with radio buttons for single selection.
RectangleRectangle component for rendering solid colored rectangles.
ResolutionProviderResolutionProvider — description pending.
RowListRowList displays a vertical list of rows, where each row scrolls horizontally through its items.
RsgPaletteSets the color palette used by a StandardDialog and its child elements.
scaleForDeviceResolutionWorkaround to scale the size based on the device resolution.
SceneScene component - the root node of a SceneGraph application.
ScrollableTextScrollableText component for displaying vertically scrolling text content.
ScrollingLabelScrollingLabel component for displaying horizontally scrolling text.
SequentialAnimationSequentialAnimation runs a set of child animations one after another.
SimpleLabelSimpleLabel component for displaying a single line of text.
SoundEffectSoundEffect plays short audio sound effects that can be triggered from UI events.
StandardDialogBase dialog node for the Roku standard dialog framework.
StandardDialogNextPortable dialog chrome composed from core-contract primitives on ModalBoundary.
StandardKeyboardDialogDisplays a keyboard dialog for text and voice entry of alphanumeric characters and symbols.
StandardMessageDialogDisplays a message dialog with optional title, text blocks, bulleted list, and buttons.
StandardPinPadDialogDisplays a PIN pad dialog for text and voice entry of numeric PIN codes.
StandardProgressDialogDisplays a progress dialog with a spinning indicator and message.
StdDlgActionCardItemFocusable action card that highlights child items with optional icons.
StdDlgBulletTextItemDisplays a bulleted list of text in a StdDlgContentArea.
StdDlgButtonA button in a StdDlgButtonArea.
StdDlgButtonAreaButton area positioned at the bottom of a StandardDialog.
StdDlgContentAreaContent area containing the main body of a StandardDialog.
StdDlgCustomItemFree-form custom item in a StdDlgContentArea for content requiring custom layout.
StdDlgDeterminateProgressItemDisplays a determinate progress indicator for tasks with a known duration.
StdDlgGraphicItemDisplays an image with optional text in a StdDlgContentArea.
StdDlgItemGroupGroups StdDlg item nodes with reduced spacing and optional radio-button exclusivity.
StdDlgKeyboardItemDisplays a keyboard or PIN pad in a StdDlgContentArea.
StdDlgMultiStyleTextItemDisplays text with multiple styles in a StdDlgContentArea.
StdDlgProgressItemDisplays an indeterminate spinning progress indicator in a StdDlgContentArea.
StdDlgSideCardAreaFreeform side card area on the left or right side of a StandardDialog.
StdDlgTextItemDisplays a block of text in a StdDlgContentArea.
StdDlgTitleAreaTitle area component displayed at the top of a StandardDialog.
TargetGroupTargetGroup creates scrolling lists (or rows) of items where each item's size and position is defined by rectangular target regions in a TargetSet.
TargetListTargetList extends TargetGroup with built-in focused/unfocused transitions and focus management policies, making it easy to create scrollable lists and rows with minimal scripting.
TargetSetTargetSet defines rectangular target regions for a TargetGroup.
TimeGridTimeGrid is an EPG (Electronic Program Guide) component that displays a scrollable, time-based grid of TV channels and their programs.
TrickPlayBarTrickPlayBar — description pending.
TweenTween — description pending.
useResolutionContextuseResolutionContext — description pending.
Vector2DFieldInterpolatorVector2DFieldInterpolator animates a Vector2D field of a node through a series of keyframes.
VideoVideo provides controlled playback of live or VOD content with optional built-in UI, trick play, and captions.
VideoContentNodeVideoContentNode component for specifying video playback content.
VoiceTextEditBoxVoice-enabled text edit box for standalone text entry (not inside a dialog).
ZoomRowListZoomRowList displays a vertically scrolling list of rows where the focused row smoothly zooms to a larger size.
Components typesTypes shared by several @roku-sdk/components exports.

What’s Next

Did this page help you?