Live demo

Reactivity

Every widget below is wired by signals.js — a few-KB, no-build, zero-dependency reactivity runtime that enhances this server-rendered HTML in place. Signals track what they read; directives re-render when those signals change. Read how it works →

Counter

data-text · data-on

A signal behind count. The buttons mutate it; data-text re-renders the number reactively.

0

Two-way binding

data-model

Type below. data-model binds the input to a signal, and data-text echoes it live — no event wiring by hand.

Hello, world!

Conditional

data-show

The checkbox is a boolean signal; data-show toggles the panel's visibility from it.

Visible. This panel is shown only while the signal is true.

List rendering

data-for

A <template data-for> renders one row per array item. Adding an item replaces the array, and the list re-renders.

Reactive UI, with zero runtime dependencies.