Skip to content

Element Mapping

HTML elements written in JSX map to Roblox GUI classes automatically. Default props are only applied when you don’t specify them yourself.

TSXRoblox ClassDefault behavior
<div>Frame
<span>, <p>, <h1><h6>, <label>TextLabel
<button>, <a>TextButton
<input>, <textarea>TextBox
<img>ImageLabel
<canvas>ViewportFrame
<video>VideoFrame
<scroll>ScrollingFrame
<nav>, <header>, <footer>, <main>, <section>, <article>, <aside>, <form>FrameTransparent, auto-height, full-width
<ul>, <ol>FrameVertical UIListLayout auto-injected
<li>FrameTransparent, auto-height, full-width
<table>, <thead>, <tbody>, <tfoot>FrameVertical UIListLayout auto-injected
<tr>FrameHorizontal UIListLayout auto-injected
<td>, <th>TextLabelTransparent, auto-sized
<dialog>FrameCentered (AnchorPoint + Position)
<select>FrameVertical UIListLayout auto-injected
<option>, <summary>TextButton

Any Roblox GUI class name (e.g. <Frame>, <ScrollingFrame>, <TextLabel>) is passed through directly.

See JSX & React for the props mapping (className, onClick, etc.).