A declarative DSL for creating and manipulating DOM elements.
import { element, fragment, inlineStyle, listener, style, text } from '@composize/dom';
function Card(title: string, content: string) {
  element('div', { class: 'card' }, () => {
    element('h3', () => {
      inlineStyle({ color: '#333' });
      text(title);
    });
    element('p', content);
    element('button', { style: { color: 'blue' } }, () => {
      text('Action');
      listener('click', console.log);
    });
  });
}
fragment(() => {
  style({
    '.card': {
      border: '1px solid #e0e0e0',
      padding: '20px',
      width: '300px',
    }
  });
  for (let index = 0; index < 3; index++) {
    Card('Declarative Cards', 'Declaratively create DOM using DSL.');
  }
});