Open Source · Zero Dependencies · MIT License

Interactive Scripting
for the Modern Web.

Replace video tutorials with scriptable, interactive walkthroughs. Animation engine, tour guide, scene scripting - all in one 21KB library.

Try Demo
21KBgzipped
0dependencies
6modules
ES2020target

Everything you need

Modular, tree-shakeable, built for production.

mtx.State

Persistent state storage with localStorage, sessionStorage, and memory fallback. Typed get/set with onChange observers.

Try demo →

mtx.Utils

Throttle, debounce, deepMerge, event helpers, waitFor (MutationObserver-based). The utility belt every module depends on.

Try demo →

mtx.Icons

Curated SVG icon bundle from FontAwesome, Bootstrap Icons, and Heroicons. Inline SVG, zero HTTP requests.

Try demo →

mtx.Dom

Multi-strategy element resolver (ID, CSS, XPath, data-attr). Best selector generator. Interactive Element Picker.

Try demo →

mtx.Modal

Promise-based alert/confirm, tooltip placement engine, dialog/drawer/fullscreen variants. Draggable, keyboard-accessible.

Try demo →

mtx.Scene

JSON-based scene scripting. Virtual cursor, practice mode, video-like playback bar. The heart of MTxFlow.

Try demo →

mtx.Tour

Interactive step-by-step walkthroughs, pulsing help badges, and admin visual tour builder panel.

Try demo →

mtx.Diagram

Flowchart diagram builder with draggable nodes, active connectors, state history (undo/redo), and SVG export.

Try demo →

mtx.Transform

Advanced overlay controls for element selection, moving, 8-point resizing, rotating, and quick action bar (Lock, Duplicate, Delete).

Try demo →

Live Demos

Interact with every module right here.

mtx.State - Storage Manager

Interactive
// Click "Set" to store a value, "Get" to retrieve it

mtx.Utils - Utilities

Interactive
// Click buttons to test utility functions

mtx.Icons - SVG Icon Bundle

Visual

mtx.Dom - Element Picker

Interactive

Click "Start Picker", then hover over any element on this page. Click to select it.

// Picker will show element info here after selection

mtx.Modal - Popup / Tooltip Engine

Interactive

mtx.Draw - SVG Shape Drawing

Visual
// Click any drawing button. Shapes will target elements on this section.

mtx.Anim & Timeline - Animation Engine

Interactive
Glow Effect Parameters
The quick brown fox jumps over the lazy dog.

mtx.Connect - Connector Lines

60 FPS Drag-n-Follow

Drag either block below to watch the connector re-route and follow in real time!

Box A
Box B

mtx.Transform - Interactive Layout Controls

Interactive
Scale Factor: 1.0x

Click "Enable Transform Overlay" to select and control the elements below. You can drag to move, drag the handles to resize, and drag the blue dot to rotate. Drag layers in the left panel to reorder their z-index depth.

Layers

No active elements
Interactive Item Drag, Resize or Rotate me!
Circle Shape
Purple Square
MTxFlow Engine
// Coordinates output: Click "Enable Transform Overlay" to begin

mtx.Scene - Scripted Interactive Flow Guide

Watch vs Practice

Watch mode simulates mouse movements, clicks and typing. Practice mode asks you to perform actions with real-time feedback.

Mock Registration Form

mtx.Tour - Interactive Walkthrough & Admin Builder

Step-by-Step
Build Your Own Custom Preset

Click "Create Custom Tour" to start picking elements on this page. When done, click "Save Preset" inside the builder panel to save it as a local preset, or "Save JSON" to download it.

Preset 1 will guide you through the logo, persistence state, dialogs, connectors, and playback scripting.

// Tour activity logs will be shown here...

mtx.Diagram - Workflow Flowchart Canvas

Interactive Editor

Drag any node in the canvas below to update connector paths automatically in real time.

// Exported SVG code will display here

mtx.Recorder - Scene Script Recorder

Admin Builder

Launch the Scene Recorder to open a floating panel. Perform interactions on the page (clicks, input typing, scrolling), add step tooltips using the "Tip" button, then click "Export" or "View Recorded JSON".

// Recorded SceneScript JSON will be shown here...

Quick Start

Get running in under 30 seconds.

HTML
<!-- CDN -->
<link rel="stylesheet" href="mtx-flow.bundle.css">
<script src="mtx-flow.bundle.min.js"></script>

<script>
  // Alert
  mtx.Modal.alert('Welcome to MTxFlow!');

  // State
  const state = new mtx.State('app');
  state.set('theme', 'dark');

  // Dom Picker
  const picker = new mtx.Dom.Picker({
    onPick: (result) => {
      console.log('Selected:', result.selector);
    }
  });
  picker.start();
</script>