HTML
Display HTML and CSS or embed an external HTTPS document.
Quick start
Add Html1 in the Designer. Use the example in a page method.
Html1.title = 'Welcome information';
Html1.html = '<style>body { margin: 0; font-family: sans-serif; } article { padding: 16px; }</style>'
+ '<article><h2>Welcome</h2><p>Content with its own styling.</p></article>';
Html1.aspectRatio = '16:9';
Html1.onLoad = (sender) => { console.log(sender.title); };
// Html1.clear();Configure HTML
- Drag HTML from Builder → Standard onto the page or reusable component.
- In Content → HTML, enter a fragment or a complete HTML document. The editor preserves line breaks and indentation.
- Set Accessibility → Title to describe the embedded content.
- Configure dimensions and Size & position → Aspect ratio. A fixed ratio derives height from width.
HTML elements are edited inside the markup, rather than as Designer child components. Outer styles apply to the frame. Declare fonts, colors, spacing, and CSS inside the embedded document.
Inline content and external embeds
Inline markup supports HTML and CSS. Its sandbox disables scripts, inline JavaScript handlers, form submission, popups, and top navigation. Relative URLs follow the host URL; asset references inside the string are not automatically rewritten or included in exports.
For an external player, paste a single cross-origin HTTPS iframe into HTML, with only optional surrounding whitespace or comments. WebRAD uses it as the component frame, preserving the provider's origin and permitted script/media behavior. Configure the component's dimensions or aspect ratio in the Inspector. Mixed markup continues to use the inline sandbox.
External content requires network access and the provider's embedding permission. Serve the exported application over HTTP(S). Use F9 Preview to interact with it; Designer frames remain inert.
Code and loading
- html reads or replaces the content. Assigning the same string preserves the current document.
- title changes the accessible name; clear() empties the content.
- OnLoad runs when the embedded document finishes loading. Events inside that document remain inside it.
- Runtime changes affect the current instance; edit the Inspector to save content in the project.
More examples
External HTTPS iframe
Html1.title = 'Embedded video';
Html1.aspectRatio = '16:9';
Html1.html = '<iframe src="https://www.youtube.com/embed/VIDEO_ID"'
+ ' title="Video player" allow="autoplay; encrypted-media; picture-in-picture"'
+ ' referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>';
// Replace VIDEO_ID with a video that permits embedding.Inspector properties
Component options and defaults. Fields without runtime access are configured in the Inspector.
| Property / source | Type and options | Default | Runtime access |
|---|---|---|---|
nameName · Identity | string | — | name |
xLeft · Size & position | number | 0 | x |
yTop · Size & position | number | 0 | y |
widthWidth · Size & position | number | 320 | width |
heightHeight · Size & positionA fixed aspect ratio derives height from width. Choose none to edit the saved height rules. | number | 180 | heightConditional availability in the Inspector |
itemWidthResponsive width · Responsive sizeFit content grows the item to its widest rendered child and preserves child intrinsic widths; minimum and maximum width remain limits. | enumfixed stretch fit-content | "fixed" | Inspector / configuration |
itemHeightResponsive height · Responsive sizeA fixed aspect ratio derives height from width. Choose none to edit the saved height rules. | enumfixed stretch fit-content | "fixed" | Inspector / configurationConditional availability in the Inspector |
itemMinWidthMinimum width · Responsive size | number | 0 | Inspector / configuration |
itemMaxWidthMaximum width · Responsive size | number | null | Inspector / configuration |
itemMinHeightMinimum height · Responsive sizeA fixed aspect ratio derives height from width. Choose none to edit the saved height rules. | number | 0 | Inspector / configurationConditional availability in the Inspector |
itemMaxHeightMaximum height · Responsive sizeA fixed aspect ratio derives height from width. Choose none to edit the saved height rules. | number | null | Inspector / configurationConditional availability in the Inspector |
itemGrowGrow · Responsive size | number | 0 | Inspector / configuration |
itemShrinkShrink · Responsive sizeAllows fixed and stretch flow items to yield space. Fit-content keeps its intrinsic size so its children are not compressed. | boolean | true | Inspector / configuration |
itemAlignSelfItem alignment · Responsive sizeCross-axis alignment for this item in a row or column. Auto inherits the parent alignment; responsive cross-axis stretch retains its sizing behavior. | enumauto start center end stretch | "auto" | Inspector / configuration |
itemHorizontalAnchorHorizontal anchor · Anchors & offsets | enumstart center end stretch | "start" | Inspector / configuration |
itemVerticalAnchorVertical anchor · Anchors & offsets | enumstart center end stretch | "start" | Inspector / configuration |
itemLeftLeft inset · Anchors & offsets | number | 0 | Inspector / configuration |
itemRightRight inset · Anchors & offsets | number | 0 | Inspector / configuration |
itemTopTop inset · Anchors & offsets | number | 0 | Inspector / configuration |
itemBottomBottom inset · Anchors & offsets | number | 0 | Inspector / configuration |
marginMargin · SpacingOuter spacing on all four sides, in pixels. Row and column layouts include this spacing between components. | number | 0 | margin |
marginTopMargin top · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginTop |
marginRightMargin right · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginRight |
marginBottomMargin bottom · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginBottom |
marginLeftMargin left · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginLeft |
visibleVisible · Behavior | boolean | true | visible |
enabledEnabled · Behavior | boolean | true | enabled |
aspectRatioAspect ratio · Size & positionnone allows free dimensions. A fixed ratio derives height from the responsive width. | enumnone 1:1 4:3 3:4 16:9 9:16 | "none" | aspectRatio |
htmlHTML · ContentHTML and CSS, or a standalone HTTPS iframe embed. Inline markup scripts do not execute. | string | "<p>HTML content</p>" | html |
titleTitle · AccessibilityAccessible name of the embedded HTML document. | string | "HTML content" | title |
currentRowBindingsCurrent row · DataBind writable visual values to fields of this repeated row. | current-row-bindingsEditor: current-row-bindings | [] | currentRowBindings |
API in code
| Member | Signature | Access |
|---|---|---|
aspectRatioA fixed ratio derives height from width; none restores the saved height rules. | get aspectRatio(): WebAspectRatio; | Read and write |
htmlA fragment or complete HTML document, preserved exactly as authored. | get html(): string; | Read and write |
titleAccessible name for the embedded document. | get title(): string; | Read and write |
enabled | get enabled(): boolean; | Read and write |
onLoad | set onLoad(handler: WebComponentEventHandler<this> | null); | Read and write |
clear
methodclear(): void;Example
Html1.clear();Inherited members (26)
| Member | Signature | Access |
|---|---|---|
currentRowBindings | currentRowBindings: readonly WebCurrentRowBinding[]; | Read and write |
element | readonly element: TElement; | Read-only |
id | readonly id: string; | Read-only |
name | readonly name: string; | Read-only |
visible | visible: boolean; | Read and write |
x | x: number; | Read and write |
y | y: number; | Read and write |
width | width: number; | Read and write |
height | height: number; | Read and write |
marginOuter spacing on all four sides, in pixels. | margin: number; | Read and write |
marginTop | marginTop: number; | Read and write |
marginRight | marginRight: number; | Read and write |
marginBottom | marginBottom: number; | Read and write |
marginLeft | marginLeft: number; | Read and write |
alignSelf | alignSelf: RuntimeLayoutAlignSelf; | Read and write |
tabIndex | tabIndex: number; | Read and write |
backgroundColor | backgroundColor: string; | Read and write |
color | color: string; | Read and write |
borderColor | borderColor: string; | Read and write |
focus
methodfocus(options?: FocusOptions): void;show
methodshow(): void;hide
methodhide(): void;bindEvent
methodbindEvent(eventName: string, handler: WebComponentEventHandler<this> | null): () => void;emit
methodemit(eventName: string, detail?: unknown): boolean;dispose
methoddispose(): void;Events
Link methods in Interaction. How to use events.
OnLoad
Standard event (Event).
Signature and example
import type { WebHtml } from '@webrad/runtime';
// Copy this method into the page class and link it in Interaction.
class Example {
public async Html1Load(
sender: WebHtml,
event: Event,
): Promise<void> {
console.log(sender.name, event.type);
}
}