DOM-based renderer