Features
Easy to use
Markup-driven and Intuitive API
- Leverage your existing HTML and CSS knowledge to create powerful forms with no effort.
- Just add the
data-smark
attribute to relevant tags and see the magic.
Zero-Wiring
- Controls (trigger components) reach their target fields by its context (position in the form) or by relative paths within the form.
- Just intercept import and export events for data load ond submit.
No need for extensive JavaScript coding.
- Most common functionalities are already built-in.
- Highly customizable through declarative options.
- Ex.:
<button data-smark='{action: "addItem"}'>
Responsive and accessible UX
Lightweight yet highly compatible
Only a few KBs of JavaScript
Just 35KB minified!
Bundled both as modern ES Module and UMD for wide compatibility.
> 0.25%, browser coverage thanks to Babel
Flexible and extendable
Markup agnostic
Don’t require specific HTML structure or CSS design rules.
Designers have complete freedom.
Develop your own component types to suit your specific needs.
Powerful
Import/Export capabilities (actions) for all fields.
Export proper data type for each field type:
- JSON object for forms.
- JSON array for lists.
- Number for numbers (
<input type="number" data-smark>
). - Well formed date for date…
Allow users to add or remove items from arrays.
Impose lower and upper limits for arrays lengths.
Advanced UX improvements
Configurable context-driven keyboard shortcuts with awesome hints revelation.
Automatically enabled/disabled controls (depending on context).
- Ex.: Add Item and Remove Item buttons are disabled when the list is full or empty, respectively.
Non-breaking unobtrusive keyboard navigation (controls are smartly added or removed from navigation flow when appropriate).