Build interactive surveys, questionnaires, and experiments using just HTML.
Executable HTML is a library of custom web components that turn static markup into interactive, sequential experiences. Instead of writing JavaScript to manage state, control flow, and data collection, you describe your entire application declaratively with HTML tags.
<aa-session name="my-survey">
<aa-sequence>
<aa-screen submit-button-text="Next">
<aa-label>How are you feeling?</aa-label>
<aa-slider name="mood" min="0" max="100"
min-label="Bad" max-label="Great">
</aa-slider>
</aa-screen>
<aa-screen submit-button-text="Done">
<aa-label>Thank you!</aa-label>
</aa-screen>
</aa-sequence>
</aa-session>npm install executable_htmlimport "executable_html";All custom elements are automatically registered. Just write HTML.
aa-session— Top-level container that manages memory and data collectionaa-variable— Declares a named variable with a valueaa-memory— Underlying storage layer (localStorage)
aa-sequence— Executes child elements one after anotheraa-choose/aa-when/aa-otherwise— Conditional branching based on expressionsaa-jump— Jump to a named step within a sequence
aa-screen— A page/step with a submit button that collects valuesaa-label— Display textaa-slider— Numeric slider inputaa-multiple-choice/aa-choice-item— Single-select choiceaa-checkboxes— Multi-select checkboxesaa-text-answer— Free text inputaa-likert-scale— Likert scale ratingaa-affect-grid— 2D affect/emotion grid
aa-function-random— Generate random valuesaa-geolocation— Capture device location
npm run dev # Start dev server
npm run storybook # Start Storybook
npm test # Run testsMIT