Skip to content

@thesephist thesephist released this May 11, 2019

Besides the usual performance improvements and bug fixes (TM), this patch release addresses three rendering bugs discovered while building side projects.


  • Fix a major bug that broke templates when jdom tags were nested inside jdom tags with falsy template params
  • Fixes in Styled(): when rendering nested CSS rules, nested rules should take precedence over rules on self
  • In render(): when rendering a reflected HTML attribute, first check if the property is already set, since it may trigger setters inadvertently on HTML elements like <video>, <iframe>, and <audio>.

Debugging improvements

  • Improve core library debugging facilities and remove potential breaking points in debugging, especially around logging replacement of nodes
Assets 5
Apr 30, 2019

This update focuses on two improvements:

  1. Error messages have been optimized to be equally helpful, but take up less data on the wire in a gzipped bundle.

  2. When calling Router.go(routeURL), we can now also pass the {replace: true} option to replace a current history entry rather than simply appending.

Assets 5

@thesephist thesephist released this Mar 24, 2019

This is a purely under-the-hood update that includes a significant performance improvement for Styled components that declare styles using the css template tag, by taking advantage of caching at multiple levels in the pipeline.

More information about this optimization can be found in 67575b7.

Assets 5

@thesephist thesephist released this Mar 24, 2019

Besides regular maintenance / dependency upgrades, this is a feature release containing one major new feature, a template tag called css to simplify declaring styles for Styled() components in Torus.

Like React's styled-components, the css tag takes a template literal that contains SCSS syntax for styles, and converts it to Torus's native style format. This makes authoring style easier, currently at the cost of a bit of measurable performance hit. You can read more about this new API in the documentation page.

See the new syntax in action at

Assets 5

@thesephist thesephist released this Mar 3, 2019

Besides regular maintenance / dependency upgrades, this release fixes a bug in the router that previously made it possible to push the same route onto the history stack multiple times.

Assets 5

@thesephist thesephist released this Feb 4, 2019

This is a regular maintenance update with small improvements and optimizations

  • Bundle size / performance improvements with terser notations around loops and redundant type casts
  • torus-dom is now linted with ESLint! yarn lint to lint the codebase


  • No dynamic values passed into jdom templates are evaluated as templates, to avoid script injection vulnerabilities. This was existing behavior, but is now made clearer in the documentation and covered by regression tests.
Assets 5