0.17.2 • Public • Published

domx is a small, extensible library to help you embrace the native DOM in a simple, direct, and very powerful way.

Please check out the demo, the API and the F.A.Q.

Bower: bower install domx
NPM: npm install domx
Component: component install esha/domx

Build Status

Bower version NPM version Downloads per month

Dependency Status devDependency Status

Basic Version:

Download: domx.min.js, [domx.min.js.gz][domx-gz]

Includes each(), query(), queryAll(), only(), not(), all(), nearest(), farthest(), closest(), insert(), remove(), toArray(), document.x.add(), document.x.alias(), emmet abbreviations in insert(), and dot():

Tiny Version:

Download: domx.tiny.min.js, domx.tiny.js.gz

Includes each(), query(), queryAll(), only(), not(), all(), nearest(), farthest(), closest(), insert(), remove(), document.x.add(), document.x.alias(), and toArray():

Full Version:

The basic version with the most useful plugins (domx-value and domx-repeat) inserted. Those who used these plugins as part of the primary artifact prior to version 0.16.0 may use this artifact until they add the new projects for the plugins as dependencies. Download: domx.full.min.js, domx.full.min.js.gz

Dependent Projects:

These were originally part of [domx][domx] or its demo and have been pulled out into separate projects.


  • domx-value.js - Extension that adds a powerful xValue getter/setter to nodes and queryName(name) and queryNameAll(name) functions to nodes and lists. These make it trivial to read/write rich, typed, and even nested model values to/from the DOM.
  • domx-repeat.js - Extension that adds a repeat([value]) function to nodes and lists for easy duplicating of DOM structures. It takes an optional value parameter that will set xValue for the repeated node(s) if you also are using the domx-value extension.
  • domx-stringify.js - Extension that adds a stringify() function to nodes and lists to generate string versions of DOM nodes.
  • demo-x - Web component for interactive, scripted code demos.
  • random-x - Simple web component for random display of one of the child elements (mostly used as an example).

Release History

  • 2014-05-04 v0.7.0 (first public release)
  • 2014-05-13 v0.8.1 (repeat(), append())
  • 2014-05-30 v0.9.1 (not(), all(), dot())
  • 2014-09-08 v0.10.3 (utmost(), complete xvalue rewrite)
  • 2014-09-22 v0.11.2 (s/utmost()/farthest(), closest(), value change events)
  • 2014-10-28 v0.12.0 (reorganize secondary versions/plugins)
  • 2014-11-10 v0.13.2 (s/DOMxList/XList, s/properValue/xValue, list.queryNameAll)
  • 2014-11-10 v0.14.2 (document.x, s/D.extend/D.x.add, s/D._.resolve[]/D.x.alias(), 'x-' attributes)
  • 2014-12-04 v0.15.0 (not(node), s/closest()/nearest(), polyfill version of closest())
  • 2014-12-11 v0.16.1 (move xValue and repeat() out to domx-value and domx-repeat)
  • 2016-09-22 v0.17.0 (s/append/insert to avoid conflict with Safari 10's unadvertised, unspecified, and undocumented HTMLElement.prototype.append)
  • 2017-04-06 v0.17.2 (emmet updates, including minimal (non-nested) group support)


npm i domx

DownloadsWeekly Downloads






Last publish


  • nbubna