Framework-agnostic · zero runtime dependencies

Schema-driven forms for any JavaScript application.

Define the journey as plain data. Demetria turns it into a semantic, navigable multi-step form while your application keeps control of presentation and integration.

npm install demetria

import { createForm } from 'demetria';

const form = createForm({
  target: '#signup',
  schema: {
    id: 'signup',
    steps: [/* your fields */]
  }
});

form.mount();

Focused core

The form flow, not a UI framework

Demetria owns predictable form state, validation, and navigation. Native controls and stable CSS hooks let the host application own presentation.

01 / SCHEMA

Typed definitions

Define steps and six native field types in plain data. TypeScript contracts keep the integration boundary explicit.

02 / FLOW

Two navigation models

Run all steps on one page, or coordinate real page-to-page navigation while restoring saved values.

03 / ACCESS

Accessible foundations

Semantic controls, error associations, keyboard operation, and managed focus are part of the renderer—not an add-on.

Try the flows

Working browser examples

Each example imports the same compiled ESM artifact a package consumer receives. No framework or runtime dependency is involved.

Single-page onboarding

Move between steps in place, validate fields, and inspect the completed values.

Multi-page application

Navigate between separate documents and restore state through session storage.

Read the contract

Review exact required, optional, field-type, and validation behavior before integrating.