SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →by a community orgby a community orgoriginPublished by a community organisation, so it outlives any one maintainer.See every one →Reference

@ui5-community/jsx-runtime-showcase

The showcase app of @ui5-community/jsx-runtime: it runs the library end-to-end and doubles as its documentation on GitHub Pages.

One running UI5 app per piece of the JSX runtime's API surface, with the Learn pages shipped inside it rather than beside it. Its samples under webapp/view/showcases/ are the targets the migration guide's translation table points at, one per row: dot-handler and function-reference events, string and object-form bindings, i18n, both senses of fragment, structural directives, and both directions in which a JSX and an XML view embed each other. The repository states what the showcase covers (elements, aggregations, events, bindings, fragments, structural directives, the plugin SPI, type coercion, embedding, i18n and both a responsive and a grid table) and keeps a separate page for the mainstream UI5 patterns it does not yet demonstrate, so a reader does not infer them from what is present.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Part of
@ui5-community/jsx-runtime@ui5-community/jsx-runtimeartifactA plugin-based JSX runtime for UI5: views are written as .tsx files with per-control typing, and the JSX compiles to plain new Control(settings) calls.
Requires
@ui5-community/jsx-runtime@ui5-community/jsx-runtimeartifactThe library it demonstrates, which it also serves as the dev harness for: editing the runtime's sources while the showcase's dev server runs reloads the browser through the workspace symlink.

Who is behind it

UI5 CommunityUI5 CommunityOrganisationMaintains this
In the atlas: maintains 69
@ui5-community
maintainerPeter MuessigPersonContributes to this
In the atlas: maintains 14, contributes to 80, wrote 1
@petermuessig
1 contributor

Before choosing this

Conditions

PracticalFunctional boundary

Its views are not a template for application code: every showcase view overrides getController() to return itself so a sample stays readable in one file, and the gotchas page says not to ship that in production, where a view keeps a separate *.controller.ts. Routing from a sample, an ODataModel v2 or v4, sap.ui.mdc.Table, forms and custom control authoring in TSX are absent by decision and documented as deferred.

What it declares

Every artifact

Type
Sample
Origin
By a community org
Use as
A reference

As a sample

Form
does not say

Connections2

README

quoted from ui5-community/jsx-runtime under Apache-2.0, read
ui5-community/jsx-runtime/README.mdOn GitHub

jsx-runtime

A plugin-based JSX runtime for UI5, write UI5 views as .tsx files with per-control TypeScript typing, no React, no VDOM, no reconciler. JSX expressions compile to plain new Control(settings) calls; a stable five-extension-point plugin SPI lets frameworks and libraries layer features on top of the core without touching it.

import Button from "sap/m/Button";
import Page from "sap/m/Page";

export default class Main extends View {
    createContent() {
        return (
            <Page title="Hello">
                <Button text="Click me" press=".onPress" />
            </Page>
        );
    }
}

Repository layout

This is a pnpm-workspace monorepo with three packages:

PackagePathDescription
@ui5-community/jsx-runtimepackages/jsx-runtime/The library. Ships the core JSX runtime and the <Switch> sample plugin. Publishable to npm.
@ui5-community/jsx-runtime-showcasepackages/jsx-runtime-showcase/The showcase app. Runs the library end-to-end and doubles as living documentation on GitHub Pages. Not published.
@ui5-community/jsx-runtime-helloworldpackages/jsx-runtime-helloworld/Minimal reference app — a plain scaffolded UI5 TypeScript project that consumes the runtime the way an external project would. Proves the from-scratch adoption path. Not published.

Additional docs live in docs/:

Getting started

Requires Node.js ≥ 22.13 (the Node 22 LTS line) and pnpm ≥ 11. A .nvmrc pins the Node major — run nvm use if you use nvm.

# 1) install
pnpm install

# 2) run the showcase (also the dev harness for the library)
pnpm dev
# → http://localhost:8080

# 3) build all packages
pnpm build

# 4) run all tests (QUnit for the library, OPA5 for the showcase, via ui5-test-runner)
pnpm test

# optional: run the minimal reference app (see how an external project consumes the runtime)
pnpm dev:helloworld
# → http://localhost:8080

Editing a file in packages/jsx-runtime/src/ while pnpm dev runs triggers ui5-middleware-livereload in the browser, no rebuild step needed. pnpm's workspace symlink and ui5-tooling-transpile-middleware do the rest.

Concepts at a glance

The runtime provides three layers of API surface:

  1. Core directives: jsx, <Fragment>, <For>, <If>. Always available, no setup.
  2. Plugin SPI: five extension points (Renderer, IntrinsicHandler, PropertyApplier, ChildrenProcessor, Scope) let plugins add directives, intrinsics, and output adapters without touching the core.
  3. Sample plugin: <Switch>/<Case>/<Default> in packages/jsx-runtime/src/plugins/switch/ proves the SPI on a non-trivial example.

Detailed rationale, walk-throughs, and API references are in docs/jsx-runtime.md.

License

Apache License 2.0.

Apache-2.0, read

Details

Sources3
GitHub APIdiscovered herechecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaGitHub API
first seen in the atlas
ecosystem and domainui5, developer-experience
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:ui5-community-jsx-runtime-showcase
JSON
/artifacts/ui5-community-jsx-runtime-showcase.json
MCP
Connecting an agent