Introducing PageDriver
Core features
-
Little to no 'boilerplate' code, common in other popular libraries.
-
Expressive high-impact code. Focus on project goals, not implementation distractions.

Accessibility & internationalization 'baked-in'.

One function to intelligently update your frontend from any JSON or object.

Global context flag classes to reduce content duplication.

'Humane' binding system.
Practical in-browser debugging tools.

Frequently updated documentation.

... and of reasonable speed.
See bite-sized demonstrations of PageDriver's powerful, yet easy to use core features.
Feature highlights
Library
- A thin, intuitive and unobstructive layer built on clean HTML, CSS and JS, with a clear separation of concerns.
- Create rich user experiences by trivializing complex tasks. Rapidly empower junior engineers and maintain development velocity.
- Extend existing functionality using our innovative bind registry mechanism.
Easily update HTML/DOM from JavaScript objects
- Intelligent form element population
- Repeating/tabular elements
defaultValue,readOnlyanddisabledattribute handling- Generic element contents and original state restoration
timeelements
Single page application features
- Seamless local link routing
- Allows for fancy page transitions
- Per-page header tag management
- Dynamically load additional pages
- Powerful and accessible modals
- Mobile-friendly navigation menu generator
- Dynamically load additional scripts
CSS Helpers π§ββοΈ
- Global contextual display logic to reduce content duplication
- Automatically applied helper classes:
active,attention,selected,kbdFocus,appear,disappear - Smart DOM mutators:
closeableelementsrememberUI state across sessions
- Combine multiple features My closure state is retained until my underlying text content is modified, a predefined number of days have passed, or user resets reminders
Internationalization (i18n)
Accessibility (a11y)
- Intelligent 'skip link' creation for primary areas (navigation, content, footer)
- Differentiate keyboard and pointer input events
- Add keyboard specific styling via built-in
kbdFocusCSS class - Modal focus and tab restriction
Intelligent network requests
- Differentiates local and remote requests
- Zero-code asynchronous form submission to API endpoints, optionally derived from the form's name attribute
- Cross-site request forgery CSRF and app version added to local request headers (by default)
- Current active page and client UTC offset appended to local request form data (by default)
Fantastic debugging
- Coherent console messages and per-module verbosity toggles
- Built-in error reporting to 3rd party providers in production environment (currently Sentry.io)
- Disrupt caching of local network requests
- …and a function hook when debugging is disabled (for obnoxious console message etc)
- Missing something? Review the roadmap for planned functionality!